beyond-simulator-web 0.5.1 → 0.5.2

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.
@@ -1,7 +1,7 @@
1
- var N1=Object.create;var Nl=Object.defineProperty;var z1=Object.getOwnPropertyDescriptor;var H1=Object.getOwnPropertyNames;var W1=Object.getPrototypeOf,V1=Object.prototype.hasOwnProperty;var p=(i,t)=>()=>(i&&(t=i(i=0)),t);var j1=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),zl=(i,t)=>{for(var e in t)Nl(i,e,{get:t[e],enumerable:!0})},X1=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of H1(t))!V1.call(i,s)&&s!==e&&Nl(i,s,{get:()=>t[s],enumerable:!(r=z1(t,s))||r.enumerable});return i};var Y1=(i,t,e)=>(e=i!=null?N1(W1(i)):{},X1(t||!i||!i.__esModule?Nl(e,"default",{value:i,enumerable:!0}):e,i));var y,Hl,_o,z,P=p(()=>{"use strict";y=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.TextureUploaderWebGL="texture-uploader-webgl",i.TextureUploaderWebGPU="texture-uploader-webgpu",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(y||{}),Hl=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i=="object")i={...i};else throw new Error("Invalid extension type");return typeof i.type=="string"&&(i.type=[i.type]),i},_o=(i,t)=>Hl(i).priority??t,z={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(Hl).forEach(t=>{t.type.forEach(e=>this._removeHandlers[e]?.(t))}),this},add(...i){return i.map(Hl).forEach(t=>{t.type.forEach(e=>{let r=this._addHandlers,s=this._queue;r[e]?r[e]?.(t):(s[e]=s[e]||[],s[e]?.push(t))})}),this},handle(i,t,e){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=t,s[i]=e;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>t(o)),delete n[i]),this},handleByMap(i,t){return this.handle(i,e=>{e.name&&(t[e.name]=e.ref)},e=>{e.name&&delete t[e.name]})},handleByNamedList(i,t,e=-1){return this.handle(i,r=>{t.findIndex(n=>n.name===r.name)>=0||(t.push({name:r.name,value:r.ref}),t.sort((n,o)=>_o(o.value,e)-_o(n.value,e)))},r=>{let s=t.findIndex(n=>n.name===r.name);s!==-1&&t.splice(s,1)})},handleByList(i,t,e=-1){return this.handle(i,r=>{t.includes(r.ref)||(t.push(r.ref),t.sort((s,n)=>_o(n,e)-_o(s,e)))},r=>{let s=t.indexOf(r.ref);s!==-1&&t.splice(s,1)})},mixin(i,...t){for(let e of t)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(e))}}});var Zd=j1((rE,Wl)=>{"use strict";var $1=Object.prototype.hasOwnProperty,re="~";function ms(){}Object.create&&(ms.prototype=Object.create(null),new ms().__proto__||(re=!1));function q1(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Kd(i,t,e,r,s){if(typeof e!="function")throw new TypeError("The listener must be a function");var n=new q1(e,r||i,s),o=re?re+t:t;return i._events[o]?i._events[o].fn?i._events[o]=[i._events[o],n]:i._events[o].push(n):(i._events[o]=n,i._eventsCount++),i}function yo(i,t){--i._eventsCount===0?i._events=new ms:delete i._events[t]}function Zt(){this._events=new ms,this._eventsCount=0}Zt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)$1.call(e,r)&&t.push(re?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Zt.prototype.listeners=function(t){var e=re?re+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s<n;s++)o[s]=r[s].fn;return o};Zt.prototype.listenerCount=function(t){var e=re?re+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Zt.prototype.emit=function(t,e,r,s,n,o){var a=re?re+t:t;if(!this._events[a])return!1;var l=this._events[a],c=arguments.length,h,u;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),c){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,s),!0;case 5:return l.fn.call(l.context,e,r,s,n),!0;case 6:return l.fn.call(l.context,e,r,s,n,o),!0}for(u=1,h=new Array(c-1);u<c;u++)h[u-1]=arguments[u];l.fn.apply(l.context,h)}else{var d=l.length,f;for(u=0;u<d;u++)switch(l[u].once&&this.removeListener(t,l[u].fn,void 0,!0),c){case 1:l[u].fn.call(l[u].context);break;case 2:l[u].fn.call(l[u].context,e);break;case 3:l[u].fn.call(l[u].context,e,r);break;case 4:l[u].fn.call(l[u].context,e,r,s);break;default:if(!h)for(f=1,h=new Array(c-1);f<c;f++)h[f-1]=arguments[f];l[u].fn.apply(l[u].context,h)}}return!0};Zt.prototype.on=function(t,e,r){return Kd(this,t,e,r,!1)};Zt.prototype.once=function(t,e,r){return Kd(this,t,e,r,!0)};Zt.prototype.removeListener=function(t,e,r,s){var n=re?re+t:t;if(!this._events[n])return this;if(!e)return yo(this,n),this;var o=this._events[n];if(o.fn)o.fn===e&&(!s||o.once)&&(!r||o.context===r)&&yo(this,n);else{for(var a=0,l=[],c=o.length;a<c;a++)(o[a].fn!==e||s&&!o[a].once||r&&o[a].context!==r)&&l.push(o[a]);l.length?this._events[n]=l.length===1?l[0]:l:yo(this,n)}return this};Zt.prototype.removeAllListeners=function(t){var e;return t?(e=re?re+t:t,this._events[e]&&yo(this,e)):(this._events=new ms,this._eventsCount=0),this};Zt.prototype.off=Zt.prototype.removeListener;Zt.prototype.addListener=Zt.prototype.on;Zt.prefixed=re;Zt.EventEmitter=Zt;typeof Wl<"u"&&(Wl.exports=Zt)});var Qd,ut,Ht=p(()=>{Qd=Y1(Zd(),1),ut=Qd.default});var K1,qe,Wt,_e,af,Jd,Vl,Z1,bo,lf,cf,tf,ef,rf,gs,Q1,J1,tS,eS,Yl,sf,rS,jl,Xl,nf,$l,Ce,of,hf,uf=p(()=>{K1={grad:.9,turn:360,rad:360/(2*Math.PI)},qe=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},Wt=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=Math.pow(10,t)),Math.round(e*i)/e+0},_e=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=1),i>e?e:i>t?i:t},af=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},Jd=function(i){return{r:_e(i.r,0,255),g:_e(i.g,0,255),b:_e(i.b,0,255),a:_e(i.a)}},Vl=function(i){return{r:Wt(i.r),g:Wt(i.g),b:Wt(i.b),a:Wt(i.a,3)}},Z1=/^#([0-9a-f]{3,8})$/i,bo=function(i){var t=i.toString(16);return t.length<2?"0"+t:t},lf=function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=Math.max(t,e,r),o=n-Math.min(t,e,r),a=o?n===t?(e-r)/o:n===e?2+(r-t)/o:4+(t-e)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},cf=function(i){var t=i.h,e=i.s,r=i.v,s=i.a;t=t/360*6,e/=100,r/=100;var n=Math.floor(t),o=r*(1-e),a=r*(1-(t-n)*e),l=r*(1-(1-t+n)*e),c=n%6;return{r:255*[r,a,o,o,l,r][c],g:255*[l,r,r,a,o,o][c],b:255*[o,o,l,r,r,a][c],a:s}},tf=function(i){return{h:af(i.h),s:_e(i.s,0,100),l:_e(i.l,0,100),a:_e(i.a)}},ef=function(i){return{h:Wt(i.h),s:Wt(i.s),l:Wt(i.l),a:Wt(i.a,3)}},rf=function(i){return cf((e=(t=i).s,{h:t.h,s:(e*=((r=t.l)<50?r:100-r)/100)>0?2*e/(r+e)*100:0,v:r+e,a:t.a}));var t,e,r},gs=function(i){return{h:(t=lf(i)).h,s:(s=(200-(e=t.s))*(r=t.v)/100)>0&&s<200?e*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:t.a};var t,e,r,s},Q1=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,J1=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,tS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,eS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Yl={string:[[function(i){var t=Z1.exec(i);return t?(i=t[1]).length<=4?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?Wt(parseInt(i[3]+i[3],16)/255,2):1}:i.length===6||i.length===8?{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16),a:i.length===8?Wt(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var t=tS.exec(i)||eS.exec(i);return t?t[2]!==t[4]||t[4]!==t[6]?null:Jd({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(i){var t=Q1.exec(i)||J1.exec(i);if(!t)return null;var e,r,s=tf({h:(e=t[1],r=t[2],r===void 0&&(r="deg"),Number(e)*(K1[r]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return rf(s)},"hsl"]],object:[[function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return qe(t)&&qe(e)&&qe(r)?Jd({r:Number(t),g:Number(e),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var t=i.h,e=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=tf({h:Number(t),s:Number(e),l:Number(r),a:Number(n)});return rf(o)},"hsl"],[function(i){var t=i.h,e=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=(function(a){return{h:af(a.h),s:_e(a.s,0,100),v:_e(a.v,0,100),a:_e(a.a)}})({h:Number(t),s:Number(e),v:Number(r),a:Number(n)});return cf(o)},"hsv"]]},sf=function(i,t){for(var e=0;e<t.length;e++){var r=t[e][0](i);if(r)return[r,t[e][1]]}return[null,void 0]},rS=function(i){return typeof i=="string"?sf(i.trim(),Yl.string):typeof i=="object"&&i!==null?sf(i,Yl.object):[null,void 0]},jl=function(i,t){var e=gs(i);return{h:e.h,s:_e(e.s+100*t,0,100),l:e.l,a:e.a}},Xl=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},nf=function(i,t){var e=gs(i);return{h:e.h,s:e.s,l:_e(e.l+100*t,0,100),a:e.a}},$l=(function(){function i(t){this.parsed=rS(t)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return i.prototype.isValid=function(){return this.parsed!==null},i.prototype.brightness=function(){return Wt(Xl(this.rgba),2)},i.prototype.isDark=function(){return Xl(this.rgba)<.5},i.prototype.isLight=function(){return Xl(this.rgba)>=.5},i.prototype.toHex=function(){return t=Vl(this.rgba),e=t.r,r=t.g,s=t.b,o=(n=t.a)<1?bo(Wt(255*n)):"","#"+bo(e)+bo(r)+bo(s)+o;var t,e,r,s,n,o},i.prototype.toRgb=function(){return Vl(this.rgba)},i.prototype.toRgbString=function(){return t=Vl(this.rgba),e=t.r,r=t.g,s=t.b,(n=t.a)<1?"rgba("+e+", "+r+", "+s+", "+n+")":"rgb("+e+", "+r+", "+s+")";var t,e,r,s,n},i.prototype.toHsl=function(){return ef(gs(this.rgba))},i.prototype.toHslString=function(){return t=ef(gs(this.rgba)),e=t.h,r=t.s,s=t.l,(n=t.a)<1?"hsla("+e+", "+r+"%, "+s+"%, "+n+")":"hsl("+e+", "+r+"%, "+s+"%)";var t,e,r,s,n},i.prototype.toHsv=function(){return t=lf(this.rgba),{h:Wt(t.h),s:Wt(t.s),v:Wt(t.v),a:Wt(t.a,3)};var t},i.prototype.invert=function(){return Ce({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},i.prototype.saturate=function(t){return t===void 0&&(t=.1),Ce(jl(this.rgba,t))},i.prototype.desaturate=function(t){return t===void 0&&(t=.1),Ce(jl(this.rgba,-t))},i.prototype.grayscale=function(){return Ce(jl(this.rgba,-1))},i.prototype.lighten=function(t){return t===void 0&&(t=.1),Ce(nf(this.rgba,t))},i.prototype.darken=function(t){return t===void 0&&(t=.1),Ce(nf(this.rgba,-t))},i.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},i.prototype.alpha=function(t){return typeof t=="number"?Ce({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):Wt(this.rgba.a,3);var e},i.prototype.hue=function(t){var e=gs(this.rgba);return typeof t=="number"?Ce({h:t,s:e.s,l:e.l,a:e.a}):Wt(e.h)},i.prototype.isEqual=function(t){return this.toHex()===Ce(t).toHex()},i})(),Ce=function(i){return i instanceof $l?i:new $l(i)},of=[],hf=function(i){i.forEach(function(t){of.indexOf(t)<0&&(t($l,Yl),of.push(t))})}});function df(i,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"},r={};for(var s in e)r[e[s]]=s;var n={};i.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,l,c=r[this.toHex()];if(c)return c;if(o?.closest){var h=this.toRgb(),u=1/0,d="black";if(!n.length)for(var f in e)n[f]=new i(e[f]).toRgb();for(var m in e){var g=(a=h,l=n[m],Math.pow(a.r-l.r,2)+Math.pow(a.g-l.g,2)+Math.pow(a.b-l.b,2));g<u&&(u=g,d=m)}return d}},t.string.push([function(o){var a=o.toLowerCase(),l=a==="transparent"?"#0000":e[a];return l?new i(l).toRgb():null},"name"])}var ff=p(()=>{});var mi,Q,Qt=p(()=>{uf();ff();hf([df]);mi=class xs{constructor(t=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=t}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(t){return this.value=t,this}set value(t){if(t instanceof xs)this._value=this._cloneSource(t._value),this._int=t._int,this._components.set(t._components);else{if(t===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,t))&&(this._value=this._cloneSource(t),this._normalize(this._value))}}get value(){return this._value}_cloneSource(t){return typeof t=="string"||typeof t=="number"||t instanceof Number||t===null?t:Array.isArray(t)||ArrayBuffer.isView(t)?t.slice(0):typeof t=="object"&&t!==null?{...t}:t}_isSourceEqual(t,e){let r=typeof t;if(r!==typeof e)return!1;if(r==="number"||r==="string"||t instanceof Number)return t===e;if(Array.isArray(t)&&Array.isArray(e)||ArrayBuffer.isView(t)&&ArrayBuffer.isView(e))return t.length!==e.length?!1:t.every((n,o)=>n===e[o]);if(t!==null&&e!==null){let n=Object.keys(t),o=Object.keys(e);return n.length!==o.length?!1:n.every(a=>t[a]===e[a])}return t===e}toRgba(){let[t,e,r,s]=this._components;return{r:t,g:e,b:r,a:s}}toRgb(){let[t,e,r]=this._components;return{r:t,g:e,b:r}}toRgbaString(){let[t,e,r]=this.toUint8RgbArray();return`rgba(${t},${e},${r},${this.alpha})`}toUint8RgbArray(t){let[e,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb),t[0]=Math.round(e*255),t[1]=Math.round(r*255),t[2]=Math.round(s*255),t}toArray(t){this._arrayRgba||(this._arrayRgba=[]),t||(t=this._arrayRgba);let[e,r,s,n]=this._components;return t[0]=e,t[1]=r,t[2]=s,t[3]=n,t}toRgbArray(t){this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb);let[e,r,s]=this._components;return t[0]=e,t[1]=r,t[2]=s,t}toNumber(){return this._int}toBgrNumber(){let[t,e,r]=this.toUint8RgbArray();return(r<<16)+(e<<8)+t}toLittleEndianNumber(){let t=this._int;return(t>>16)+(t&65280)+((t&255)<<16)}multiply(t){let[e,r,s,n]=xs._temp.setValue(t)._components;return this._components[0]*=e,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(t,e=!0){return e&&(this._components[0]*=t,this._components[1]*=t,this._components[2]*=t),this._components[3]=t,this._refreshInt(),this._value=null,this}toPremultiplied(t,e=!0){if(t===1)return(255<<24)+this._int;if(t===0)return e?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return e&&(r=r*t+.5|0,s=s*t+.5|0,n=n*t+.5|0),(t*255<<24)+(r<<16)+(s<<8)+n}toHex(){let t=this._int.toString(16);return`#${"000000".substring(0,6-t.length)+t}`}toHexa(){let e=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(t){return this._components[3]=this._clamp(t),this._value=null,this}_normalize(t){let e,r,s,n;if((typeof t=="number"||t instanceof Number)&&t>=0&&t<=16777215){let o=t;e=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(t)||t instanceof Float32Array)&&t.length>=3&&t.length<=4)t=this._clamp(t),[e,r,s,n=1]=t;else if((t instanceof Uint8Array||t instanceof Uint8ClampedArray)&&t.length>=3&&t.length<=4)t=this._clamp(t,0,255),[e,r,s,n=255]=t,e/=255,r/=255,s/=255,n/=255;else if(typeof t=="string"||typeof t=="object"){if(typeof t=="string"){let a=xs.HEX_PATTERN.exec(t);a&&(t=`#${a[2]}`)}let o=Ce(t);o.isValid()&&({r:e,g:r,b:s,a:n}=o.rgba,e/=255,r/=255,s/=255)}if(e!==void 0)this._components[0]=e,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${t}`)}_refreshInt(){this._clamp(this._components);let[t,e,r]=this._components;this._int=(t*255<<16)+(e*255<<8)+(r*255|0)}_clamp(t,e=0,r=1){return typeof t=="number"?Math.min(Math.max(t,e),r):(t.forEach((s,n)=>{t[n]=Math.min(Math.max(s,e),r)}),t)}static isColorLike(t){return typeof t=="number"||typeof t=="string"||t instanceof Number||t instanceof xs||Array.isArray(t)||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||t.r!==void 0&&t.g!==void 0&&t.b!==void 0||t.r!==void 0&&t.g!==void 0&&t.b!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0&&t.a!==void 0}};mi.shared=new mi;mi._temp=new mi;mi.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;Q=mi});var pf,mf=p(()=>{"use strict";pf={cullArea:null,cullable:!1,cullableChildren:!0}});var gf,xf,_f,ql=p(()=>{"use strict";gf=Math.PI*2,xf=180/Math.PI,_f=Math.PI/180});var nt,Kl,Ee=p(()=>{"use strict";nt=class i{constructor(t=0,e=0){this.x=0,this.y=0,this.x=t,this.y=e}clone(){return new i(this.x,this.y)}copyFrom(t){return this.set(t.x,t.y),this}copyTo(t){return t.set(this.x,this.y),t}equals(t){return t.x===this.x&&t.y===this.y}set(t=0,e=t){return this.x=t,this.y=e,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Kl.x=0,Kl.y=0,Kl}},Kl=new nt});var k,iS,sS,ot=p(()=>{ql();Ee();k=class i{constructor(t=1,e=0,r=0,s=1,n=0,o=0){this.array=null,this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]}set(t,e,r,s,n,o){return this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(t,e){this.array||(this.array=new Float32Array(9));let r=e||this.array;return t?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(t,e){e=e||new nt;let r=t.x,s=t.y;return e.x=this.a*r+this.c*s+this.tx,e.y=this.b*r+this.d*s+this.ty,e}applyInverse(t,e){e=e||new nt;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,l=this.ty,c=1/(r*o+n*-s),h=t.x,u=t.y;return e.x=o*c*h+-n*c*u+(l*n-a*o)*c,e.y=r*c*u+-s*c*h+(-l*r+a*s)*c,e}translate(t,e){return this.tx+=t,this.ty+=e,this}scale(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this}rotate(t){let e=Math.cos(t),r=Math.sin(t),s=this.a,n=this.c,o=this.tx;return this.a=s*e-this.b*r,this.b=s*r+this.b*e,this.c=n*e-this.d*r,this.d=n*r+this.d*e,this.tx=o*e-this.ty*r,this.ty=o*r+this.ty*e,this}append(t){let e=this.a,r=this.b,s=this.c,n=this.d;return this.a=t.a*e+t.b*s,this.b=t.a*r+t.b*n,this.c=t.c*e+t.d*s,this.d=t.c*r+t.d*n,this.tx=t.tx*e+t.ty*s+this.tx,this.ty=t.tx*r+t.ty*n+this.ty,this}appendFrom(t,e){let r=t.a,s=t.b,n=t.c,o=t.d,a=t.tx,l=t.ty,c=e.a,h=e.b,u=e.c,d=e.d;return this.a=r*c+s*u,this.b=r*h+s*d,this.c=n*c+o*u,this.d=n*h+o*d,this.tx=a*c+l*u+e.tx,this.ty=a*h+l*d+e.ty,this}setTransform(t,e,r,s,n,o,a,l,c){return this.a=Math.cos(a+c)*n,this.b=Math.sin(a+c)*n,this.c=-Math.sin(a-l)*o,this.d=Math.cos(a-l)*o,this.tx=t-(r*this.a+s*this.c),this.ty=e-(r*this.b+s*this.d),this}prepend(t){let e=this.tx;if(t.a!==1||t.b!==0||t.c!==0||t.d!==1){let r=this.a,s=this.c;this.a=r*t.a+this.b*t.c,this.b=r*t.b+this.b*t.d,this.c=s*t.a+this.d*t.c,this.d=s*t.b+this.d*t.d}return this.tx=e*t.a+this.ty*t.c+t.tx,this.ty=e*t.b+this.ty*t.d+t.ty,this}decompose(t){let e=this.a,r=this.b,s=this.c,n=this.d,o=t.pivot,a=-Math.atan2(-s,n),l=Math.atan2(r,e),c=Math.abs(a+l);return c<1e-5||Math.abs(gf-c)<1e-5?(t.rotation=l,t.skew.x=t.skew.y=0):(t.rotation=0,t.skew.x=a,t.skew.y=l),t.scale.x=Math.sqrt(e*e+r*r),t.scale.y=Math.sqrt(s*s+n*n),t.position.x=this.tx+(o.x*e+o.y*s),t.position.y=this.ty+(o.x*r+o.y*n),t}invert(){let t=this.a,e=this.b,r=this.c,s=this.d,n=this.tx,o=t*s-e*r;return this.a=s/o,this.b=-e/o,this.c=-r/o,this.d=t/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(t*this.ty-e*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let t=new i;return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyTo(t){return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyFrom(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this}equals(t){return t.a===this.a&&t.b===this.b&&t.c===this.c&&t.d===this.d&&t.tx===this.tx&&t.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return sS.identity()}static get shared(){return iS.identity()}},iS=new k,sS=new k});var Gt,vo=p(()=>{"use strict";Gt=class i{constructor(t,e,r){this._x=e||0,this._y=r||0,this._observer=t}clone(t){return new i(t??this._observer,this._x,this._y)}set(t=0,e=t){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._observer._onUpdate(this)),this}copyFrom(t){return(this._x!==t.x||this._y!==t.y)&&(this._x=t.x,this._y=t.y,this._observer._onUpdate(this)),this}copyTo(t){return t.set(this._x,this._y),t}equals(t){return t.x===this._x&&t.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(t){this._x!==t&&(this._x=t,this._observer._onUpdate(this))}get y(){return this._y}set y(t){this._y!==t&&(this._y=t,this._observer._onUpdate(this))}}});function $(i="default"){return Zl[i]===void 0&&(Zl[i]=-1),++Zl[i]}var Zl,Ft=p(()=>{"use strict";Zl={default:-1}});var yf,rt,bf,gi,O,yt=p(()=>{"use strict";yf=new Set,rt="8.0.0",bf="8.3.4",gi={quiet:!1,noColor:!1},O=((i,t,e=3)=>{if(gi.quiet||yf.has(t))return;let r=new Error().stack,s=`${t}
2
- Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!gi.noColor;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",s):(r=r.split(`
3
- `).splice(e).join(`
4
- `),n?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",s),console.warn(r),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",s),console.warn(r))),yf.add(t)});Object.defineProperties(O,{quiet:{get:()=>gi.quiet,set:i=>{gi.quiet=i},enumerable:!0,configurable:!1},noColor:{get:()=>gi.noColor,set:i=>{gi.noColor=i},enumerable:!0,configurable:!1}})});function L(...i){Ql!==vf&&(Ql++,Ql===vf?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var Ql,vf,ht=p(()=>{"use strict";Ql=0,vf=500});var ye,Pr=p(()=>{"use strict";ye={_registeredResources:new Set,register(i){this._registeredResources.add(i)},unregister(i){this._registeredResources.delete(i)},release(){this._registeredResources.forEach(i=>i.clear())},get registeredCount(){return this._registeredResources.size},isRegistered(i){return this._registeredResources.has(i)},reset(){this._registeredResources.clear()}}});var So,Sf=p(()=>{"use strict";So=class{constructor(t,e){this._pool=[],this._count=0,this._index=0,this._classType=t,e&&this.prepopulate(e)}prepopulate(t){for(let e=0;e<t;e++)this._pool[this._index++]=new this._classType;this._count+=t}get(t){let e;return this._index>0?e=this._pool[--this._index]:(e=new this._classType,this._count++),e.init?.(t),e}return(t){t.reset?.(),this._pool[this._index++]=t}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){if(this._pool.length>0&&this._pool[0].destroy)for(let t=0;t<this._index;t++)this._pool[t].destroy();this._pool.length=0,this._count=0,this._index=0}}});var Jl,bt,Ke=p(()=>{Pr();Sf();Jl=class{constructor(){this._poolsByClass=new Map}prepopulate(t,e){this.getPool(t).prepopulate(e)}get(t,e){return this.getPool(t).get(e)}return(t){this.getPool(t.constructor).return(t)}getPool(t){return this._poolsByClass.has(t)||this._poolsByClass.set(t,new So(t)),this._poolsByClass.get(t)}stats(){let t={};return this._poolsByClass.forEach(e=>{let r=t[e._classType.name]?e._classType.name+e._classType.ID:e._classType.name;t[r]={free:e.totalFree,used:e.totalUsed,size:e.totalSize}}),t}clear(){this._poolsByClass.forEach(t=>t.clear()),this._poolsByClass.clear()}},bt=new Jl;ye.register(bt)});var Tf,wf=p(()=>{yt();Tf={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){O("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function To(i,t,e){let r=i.length,s;if(t>=r||e===0)return;e=t+e>r?r-t:e;let n=r-e;for(s=t;s<n;++s)i[s]=i[s+e];i.length=n}var tc=p(()=>{"use strict"});var Cf,Ef=p(()=>{tc();yt();Cf={allowChildren:!0,removeChildren(i=0,t){let e=t??this.children.length,r=e-i,s=[];if(r>0&&r<=e){for(let o=e-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}To(this.children,i,e);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(r===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(i){let t=this.getChildAt(i);return this.removeChild(t)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,t){if(t<0||t>=this.children.length)throw new Error(`The index ${t} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,t)},getChildIndex(i){let t=this.children.indexOf(i);if(t===-1)throw new Error("The supplied Container must be a child of the caller");return t},addChildAt(i,t){this.allowChildren||O(rt,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:e}=this;if(t<0||t>e.length)throw new Error(`${i}addChildAt: The index ${t} supplied is out of bounds ${e.length}`);let r=i.parent===this;if(i.parent){let n=i.parent.children.indexOf(i);if(r){if(n===t)return i;i.parent.children.splice(n,1)}else i.removeFromParent()}t===e.length?e.push(i):e.splice(t,0,i);let s=this.renderGroup||this.parentRenderGroup;return this.sortableChildren&&(this.sortDirty=!0),r?(s&&(s.structureDidChange=!0),i):(i.parent=this,i.didChange=!0,i._updateFlags=15,s&&s.addChild(i),this.emit("childAdded",i,this,t),i.emit("added",this),i)},swapChildren(i,t){if(i===t)return;let e=this.getChildIndex(i),r=this.getChildIndex(t);this.children[e]=t,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(t=>this.reparentChildAt(t,this.children.length)),i[0])},reparentChildAt(i,t){if(i.parent===this)return this.setChildIndex(i,t),i;let e=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,t);let r=this.worldTransform.clone();return r.invert(),e.prepend(r),i.setFromMatrix(e),i},replaceChild(i,t){i.updateLocalTransform(),this.addChildAt(t,this.getChildIndex(i)),t.setFromMatrix(i.localTransform),t.updateLocalTransform(),this.removeChild(i)}}});var Pf,Mf=p(()=>{"use strict";Pf={collectRenderables(i,t,e){this.parentRenderLayer&&this.parentRenderLayer!==e||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,t,e):this.renderGroup?t.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,t,e))},collectRenderablesSimple(i,t,e){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,t,e)},collectRenderablesWithEffects(i,t,e){let{renderPipes:r}=t;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,t,e);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var Ze,wo=p(()=>{"use strict";Ze=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let t=0;t<this.filters.length;t++)this.filters[t].destroy();this.filters=null,this.filterArea=null}}});var ec,Co,Af=p(()=>{P();Ke();ec=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(t=>{this.add({test:t.test,maskClass:t})}))}add(t){this._tests.push(t)}getMaskEffect(t){this._initialized||this.init();for(let e=0;e<this._tests.length;e++){let r=this._tests[e];if(r.test(t))return bt.get(r.maskClass,t)}return t}returnMaskEffect(t){bt.return(t)}},Co=new ec;z.handleByList(y.MaskEffect,Co._effectClasses)});var Rf,kf=p(()=>{wo();Af();Rf={_maskEffect:null,_maskOptions:{inverse:!1,channel:"red"},_filterEffect:null,effects:[],_markStructureAsChanged(){let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)},addEffect(i){this.effects.indexOf(i)===-1&&(this.effects.push(i),this.effects.sort((e,r)=>e.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let t=this.effects.indexOf(i);t!==-1&&(this.effects.splice(t,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let t=this._maskEffect;t?.mask!==i&&(t&&(this.removeEffect(t),Co.returnMaskEffect(t),this._maskEffect=null),i!=null&&(this._maskEffect=Co.getMaskEffect(i),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(i){this._maskOptions={...this._maskOptions,...i},i.mask&&(this.mask=i.mask),this._markStructureAsChanged()},set filters(i){!Array.isArray(i)&&i&&(i=[i]);let t=this._filterEffect||(this._filterEffect=new Ze);i=i;let e=i?.length>0,r=t.filters?.length>0,s=e!==r;i=Array.isArray(i)?i.slice(0):i,t.filters=Object.freeze(i),s&&(e?this.addEffect(t):(this.removeEffect(t),t.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new Ze),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var Bf,If=p(()=>{yt();Bf={label:null,get name(){return O(rt,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){O(rt,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,t=!1){return this.getChildByLabel(i,t)},getChildByLabel(i,t=!1){let e=this.children;for(let r=0;r<e.length;r++){let s=e[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(t)for(let r=0;r<e.length;r++){let n=e[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,t=!1,e=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&e.push(n)}if(t)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,e);return e}}});var Eo,J,Yt=p(()=>{Ee();Eo=[new nt,new nt,new nt,new nt],J=class i{constructor(t=0,e=0,r=0,s=0){this.type="rectangle",this.x=Number(t),this.y=Number(e),this.width=Number(r),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new i(0,0,0,0)}clone(){return new i(this.x,this.y,this.width,this.height)}copyFromBounds(t){return this.x=t.minX,this.y=t.minY,this.width=t.maxX-t.minX,this.height=t.maxY-t.minY,this}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){return this.width<=0||this.height<=0?!1:t>=this.x&&t<this.x+this.width&&e>=this.y&&e<this.y+this.height}strokeContains(t,e,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,l=this.y,c=r*(1-s),h=r-c,u=a-c,d=a+n+c,f=l-c,m=l+o+c,g=a+h,_=a+n-h,x=l+h,b=l+o-h;return t>=u&&t<=d&&e>=f&&e<=m&&!(t>g&&t<_&&e>x&&e<b)}intersects(t,e){if(!e){let B=this.x<t.x?t.x:this.x;if((this.right>t.right?t.right:this.right)<=B)return!1;let M=this.y<t.y?t.y:this.y;return(this.bottom>t.bottom?t.bottom:this.bottom)>M}let r=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=r||o<=n)return!1;let a=Eo[0].set(t.left,t.top),l=Eo[1].set(t.left,t.bottom),c=Eo[2].set(t.right,t.top),h=Eo[3].set(t.right,t.bottom);if(c.x<=a.x||l.y<=a.y)return!1;let u=Math.sign(e.a*e.d-e.b*e.c);if(u===0||(e.apply(a,a),e.apply(l,l),e.apply(c,c),e.apply(h,h),Math.max(a.x,l.x,c.x,h.x)<=r||Math.min(a.x,l.x,c.x,h.x)>=s||Math.max(a.y,l.y,c.y,h.y)<=n||Math.min(a.y,l.y,c.y,h.y)>=o))return!1;let d=u*(l.y-a.y),f=u*(a.x-l.x),m=d*r+f*n,g=d*s+f*n,_=d*r+f*o,x=d*s+f*o;if(Math.max(m,g,_,x)<=d*a.x+f*a.y||Math.min(m,g,_,x)>=d*h.x+f*h.y)return!1;let b=u*(a.y-c.y),v=u*(c.x-a.x),S=b*r+v*n,T=b*s+v*n,w=b*r+v*o,E=b*s+v*o;return!(Math.max(S,T,w,E)<=b*a.x+v*a.y||Math.min(S,T,w,E)>=b*h.x+v*h.y)}pad(t=0,e=t){return this.x-=t,this.y-=e,this.width+=t*2,this.height+=e*2,this}fit(t){let e=Math.max(this.x,t.x),r=Math.min(this.x+this.width,t.x+t.width),s=Math.max(this.y,t.y),n=Math.min(this.y+this.height,t.y+t.height);return this.x=e,this.width=Math.max(r-e,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(t=1,e=.001){let r=Math.ceil((this.x+this.width-e)*t)/t,s=Math.ceil((this.y+this.height-e)*t)/t;return this.x=Math.floor((this.x+e)*t)/t,this.y=Math.floor((this.y+e)*t)/t,this.width=r-this.x,this.height=s-this.y,this}scale(t,e=t){return this.x*=t,this.y*=e,this.width*=t,this.height*=e,this}enlarge(t){let e=Math.min(this.x,t.x),r=Math.max(this.x+this.width,t.x+t.width),s=Math.min(this.y,t.y),n=Math.max(this.y+this.height,t.y+t.height);return this.x=e,this.width=r-e,this.y=s,this.height=n-s,this}getBounds(t){return t||(t=new i),t.copyFrom(this),t}containsRect(t){if(this.width<=0||this.height<=0)return!1;let e=t.x,r=t.y,s=t.x+t.width,n=t.y+t.height;return e>=this.x&&e<this.x+this.width&&r>=this.y&&r<this.y+this.height&&s>=this.x&&s<=this.x+this.width&&n>=this.y&&n<=this.y+this.height}set(t,e,r,s){return this.x=t,this.y=e,this.width=r,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var Gf,dt,ie=p(()=>{ot();Yt();Gf=new k,dt=class i{constructor(t=1/0,e=1/0,r=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Gf,this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new J);let t=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(t.x=0,t.y=0,t.width=0,t.height=0):t.copyFromBounds(this),t}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Gf,this}set(t,e,r,s){this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}addFrame(t,e,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,l=n.c,c=n.d,h=n.tx,u=n.ty,d=this.minX,f=this.minY,m=this.maxX,g=this.maxY,_=o*t+l*e+h,x=a*t+c*e+u;_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*e+h,x=a*r+c*e+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*t+l*s+h,x=a*t+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*s+h,x=a*r+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),this.minX=d,this.minY=f,this.maxX=m,this.maxY=g}addRect(t,e){this.addFrame(t.x,t.y,t.x+t.width,t.y+t.height,e)}addBounds(t,e){this.addFrame(t.minX,t.minY,t.maxX,t.maxY,e)}addBoundsMask(t){this.minX=this.minX>t.minX?this.minX:t.minX,this.minY=this.minY>t.minY?this.minY:t.minY,this.maxX=this.maxX<t.maxX?this.maxX:t.maxX,this.maxY=this.maxY<t.maxY?this.maxY:t.maxY}applyMatrix(t){let e=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c:l,d:c,tx:h,ty:u}=t,d=o*e+l*r+h,f=a*e+c*r+u;this.minX=d,this.minY=f,this.maxX=d,this.maxY=f,d=o*s+l*r+h,f=a*s+c*r+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*e+l*n+h,f=a*e+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*s+l*n+h,f=a*s+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(t){return this.minX<t.left&&(this.minX=t.left),this.maxX>t.right&&(this.maxX=t.right),this.minY<t.top&&(this.minY=t.top),this.maxY>t.bottom&&(this.maxY=t.bottom),this}fitBounds(t,e,r,s){return this.minX<t&&(this.minX=t),this.maxX>e&&(this.maxX=e),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(t,e=t){return this.minX-=t,this.maxX+=t,this.minY-=e,this.maxY+=e,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new i(this.minX,this.minY,this.maxX,this.maxY)}scale(t,e=t){return this.minX*=t,this.minY*=e,this.maxX*=t,this.maxY*=e,this}get x(){return this.minX}set x(t){let e=this.maxX-this.minX;this.minX=t,this.maxX=t+e}get y(){return this.minY}set y(t){let e=this.maxY-this.minY;this.minY=t,this.maxY=t+e}get width(){return this.maxX-this.minX}set width(t){this.maxX=this.minX+t}get height(){return this.maxY-this.minY}set height(t){this.maxY=this.minY+t}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(t,e,r,s){let n=this.minX,o=this.minY,a=this.maxX,l=this.maxY;s||(s=this.matrix);let c=s.a,h=s.b,u=s.c,d=s.d,f=s.tx,m=s.ty;for(let g=e;g<r;g+=2){let _=t[g],x=t[g+1],b=c*_+u*x+f,v=h*_+d*x+m;n=b<n?b:n,o=v<o?v:o,a=b>a?b:a,l=v>l?v:l}this.minX=n,this.minY=o,this.maxX=a,this.maxY=l}containsPoint(t,e){return this.minX<=t&&this.minY<=e&&this.maxX>=t&&this.maxY>=e}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(t){return this.minX=t.minX,this.minY=t.minY,this.maxX=t.maxX,this.maxY=t.maxY,this}}});var Ut,fe,Mr=p(()=>{ot();Ke();ie();Ut=bt.getPool(k),fe=bt.getPool(dt)});var nS,Ff,Uf=p(()=>{ot();ie();Mr();nS=new k,Ff={getFastGlobalBounds(i,t){t||(t=new dt),t.clear(),this._getGlobalBoundsRecursive(!!i,t,this.parentRenderLayer),t.isValid||t.set(0,0,0,0);let e=this.renderGroup||this.parentRenderGroup;return t.applyMatrix(e.worldTransform),t},_getGlobalBoundsRecursive(i,t,e){let r=t;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==e||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=fe.get().clear()),this.boundsArea)t.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;r.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(i,r,e)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,r.applyMatrix(o.worldTransform)),this.effects[a].addBounds(r,!0));n&&r.applyMatrix(o.worldTransform.copyTo(nS).invert()),t.addBounds(r),fe.return(r)}else this.renderGroup&&(t.addBounds(r,this.relativeGroupTransform),fe.return(r))}}});function xi(i,t,e){e.clear();let r,s;return i.parent?t?r=i.parent.worldTransform:(s=Ut.get().identity(),r=Po(i,s)):r=k.IDENTITY,Df(i,e,r,t),s&&Ut.return(s),e.isValid||e.set(0,0,0,0),e}function Df(i,t,e,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=Ut.get(),s.appendFrom(i.localTransform,e));let n=t,o=!!i.effects.length;if(o&&(t=fe.get().clear()),i.boundsArea)t.addRect(i.boundsArea,s);else{let a=i.bounds;a&&!a.isEmpty()&&(t.matrix=s,t.addBounds(a));for(let l=0;l<i.children.length;l++)Df(i.children[l],t,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(t);n.addBounds(t,k.IDENTITY),fe.return(t)}r||Ut.return(s)}function Po(i,t){let e=i.parent;return e&&(Po(e,t),e.updateLocalTransform(),t.append(e.localTransform)),t}var _s=p(()=>{ot();Mr()});function Ue(i,t){if(i===16777215||!t)return t;if(t===16777215||!i)return i;let e=i>>16&255,r=i>>8&255,s=i&255,n=t>>16&255,o=t>>8&255,a=t&255,l=e*n/255|0,c=r*o/255|0,h=s*a/255|0;return(l<<16)+(c<<8)+h}var ys=p(()=>{"use strict"});function _i(i,t){return i===Lf?t:t===Lf?i:Ue(i,t)}var Lf,rc=p(()=>{ys();Lf=16777215});function Qe(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var Of,Mo=p(()=>{ot();_s();Mr();rc();Of={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let t=this.alpha,e=this.parent;for(;e;)t*=e.alpha,e=e.parent;return t},getGlobalTransform(i=new k,t){if(t)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let e=Po(this,Ut.get().identity());return i.appendFrom(this.localTransform,e),Ut.return(e),i},getGlobalTint(i){if(i)return this.renderGroup?Qe(this.renderGroup.worldColor):this.parentRenderGroup?Qe(_i(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let t=this.localColor,e=this.parent;for(;e;)t=_i(t,e.localColor),e=e.parent;return Qe(t)}}});function yi(i,t,e){return t.clear(),e||(e=k.IDENTITY),Nf(i,t,e,i,!0),t.isValid||t.set(0,0,0,0),t}function Nf(i,t,e,r,s){let n;if(s)n=Ut.get(),n=e.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let l=i.localTransform;n=Ut.get(),n.appendFrom(l,e)}let o=t,a=!!i.effects.length;if(a&&(t=fe.get().clear()),i.boundsArea)t.addRect(i.boundsArea,n);else{i.renderPipeId&&(t.matrix=n,t.addBounds(i.bounds));let l=i.children;for(let c=0;c<l.length;c++)Nf(l[c],t,n,r,!1)}if(a){for(let l=0;l<i.effects.length;l++)i.effects[l].addLocalBounds?.(t,r);o.addBounds(t,k.IDENTITY),fe.return(t)}Ut.return(n)}var Ao=p(()=>{ot();Mr()});function ic(i,t){let e=i.children;for(let r=0;r<e.length;r++){let s=e[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=t.index;(t.data[a]!==n||t.data[a+1]!==o)&&(t.data[t.index]=n,t.data[t.index+1]=o,t.didChange=!0),t.index=a+2,s.children.length&&ic(s,t)}return t.didChange}var zf=p(()=>{"use strict"});var oS,Hf,Wf=p(()=>{ot();ie();_s();Ao();zf();oS=new k,Hf={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,t){let e=Math.sign(this.scale.x)||1;t!==0?this.scale.x=i/t*e:this.scale.x=e},_setHeight(i,t){let e=Math.sign(this.scale.y)||1;t!==0?this.scale.y=i/t*e:this.scale.y=e},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new dt});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),ic(this,i),i.didChange&&yi(this,i.localBounds,oS),i.localBounds},getBounds(i,t){return xi(this,i,t||new dt)}}});var Vf,jf=p(()=>{"use strict";Vf={_onRender:null,set onRender(i){let t=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&t?.removeOnRender(this),this._onRender=null;return}this._onRender||t?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function aS(i,t){return i._zIndex-t._zIndex}var Xf,Yf=p(()=>{"use strict";Xf={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(i){this._zIndex!==i&&(this._zIndex=i,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(aS))}}});var $f,qf=p(()=>{Ee();Mr();$f={getGlobalPosition(i=new nt,t=!1){return this.parent?this.parent.toGlobal(this._position,i,t):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,t,e=!1){let r=this.getGlobalTransform(Ut.get(),e);return t=r.apply(i,t),Ut.return(r),t},toLocal(i,t,e,r){t&&(i=t.toGlobal(i,e,r));let s=this.getGlobalTransform(Ut.get(),r);return e=s.applyInverse(i,e),Ut.return(s),e}}});var hr,Ro=p(()=>{Ft();hr=class{constructor(){this.uid=$("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}destroy(){this.instructions.length=0,this.renderables.length=0,this.renderPipes=null,this.gcTick=0}add(t){this.instructions[this.instructionSize++]=t}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function Je(i){return i+=i===0?1:0,--i,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i+1}function sc(i){return!(i&i-1)&&!!i}var bs=p(()=>{"use strict"});function ko(i){let t={};for(let e in i)i[e]!==void 0&&(t[e]=i[e]);return t}var nc=p(()=>{"use strict"});function lS(i){let t=Kf[i];return t===void 0&&(Kf[i]=$("resource")),t}var Kf,Zf,ce,Ar=p(()=>{Ht();Ft();yt();Kf=Object.create(null);Zf=class Qf extends ut{constructor(t={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,t={...Qf.defaultOptions,...t},this.addressMode=t.addressMode,this.addressModeU=t.addressModeU??this.addressModeU,this.addressModeV=t.addressModeV??this.addressModeV,this.addressModeW=t.addressModeW??this.addressModeW,this.scaleMode=t.scaleMode,this.magFilter=t.magFilter??this.magFilter,this.minFilter=t.minFilter??this.minFilter,this.mipmapFilter=t.mipmapFilter??this.mipmapFilter,this.lodMinClamp=t.lodMinClamp,this.lodMaxClamp=t.lodMaxClamp,this.compare=t.compare,this.maxAnisotropy=t.maxAnisotropy??1}set addressMode(t){this.addressModeU=t,this.addressModeV=t,this.addressModeW=t}get addressMode(){return this.addressModeU}set wrapMode(t){O(rt,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=t}get wrapMode(){return this.addressMode}set scaleMode(t){this.magFilter=t,this.minFilter=t,this.mipmapFilter=t}get scaleMode(){return this.magFilter}set maxAnisotropy(t){this._maxAnisotropy=Math.min(t,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this._sharedResourceId=null,this.emit("change",this)}_generateResourceId(){let t=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=lS(t),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};Zf.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};ce=Zf});var Jf,st,$t=p(()=>{Ht();bs();nc();Ft();Ar();Jf=class tp extends ut{constructor(t={}){super(),this.options=t,this._gpuData=Object.create(null),this._gcLastUsed=-1,this.uid=$("textureSource"),this._resourceType="textureSource",this._resourceId=$("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.viewDimension="2d",this.arrayLayerCount=1,this._ownsStyle=!1,this.antialias=!1,this.transient=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,t={...tp.defaultOptions,...t},this.label=t.label??"",this.resource=t.resource,this.autoGarbageCollect=t.autoGarbageCollect,this._resolution=t.resolution,t.width?this.pixelWidth=t.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,t.height?this.pixelHeight=t.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=t.format,this.dimension=t.dimensions,this.viewDimension=t.viewDimension??t.dimensions,this.arrayLayerCount=t.arrayLayerCount,this.mipLevelCount=t.mipLevelCount,this.autoGenerateMipmaps=t.autoGenerateMipmaps,this.sampleCount=t.sampleCount,this.antialias=t.antialias,this.transient=t.transient??!1,this.alphaMode=t.alphaMode,this.style=new ce(ko(t)),this._ownsStyle=!0,this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(t){this.style!==t&&(this._ownsStyle=!1,this._style?.off("change",this._onStyleChange,this),this._style=t,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}set maxAnisotropy(t){this._style.maxAnisotropy=t}get maxAnisotropy(){return this._style.maxAnisotropy}get addressMode(){return this._style.addressMode}set addressMode(t){this._style.addressMode=t}get repeatMode(){return this._style.addressMode}set repeatMode(t){this._style.addressMode=t}get magFilter(){return this._style.magFilter}set magFilter(t){this._style.magFilter=t}get minFilter(){return this._style.minFilter}set minFilter(t){this._style.minFilter=t}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(t){this._style.mipmapFilter=t}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(t){this._style.lodMinClamp=t}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(t){this._style.lodMaxClamp=t}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let t=this._resolution;if(this.resize(this.resourceWidth/t,this.resourceHeight/t))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this._style&&(this._ownsStyle&&this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=$("resource"),this.emit("change",this),this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy?.();this._gpuData=Object.create(null)}get resourceWidth(){let{resource:t}=this;return t.naturalWidth||t.videoWidth||t.displayWidth||t.width}get resourceHeight(){let{resource:t}=this;return t.naturalHeight||t.videoHeight||t.displayHeight||t.height}get resolution(){return this._resolution}set resolution(t){this._resolution!==t&&(this._resolution=t,this.width=this.pixelWidth/t,this.height=this.pixelHeight/t)}resize(t,e,r){r||(r=this._resolution),t||(t=this.width),e||(e=this.height);let s=Math.round(t*r),n=Math.round(e*r);return this.width=s/r,this.height=n/r,this._resolution=r,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=$("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(t){this._style.wrapMode=t}get wrapMode(){return this._style.wrapMode}set scaleMode(t){this._style.scaleMode=t}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=sc(this.pixelWidth)&&sc(this.pixelHeight)}static test(t){throw new Error("Unimplemented")}};Jf.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",viewDimension:"2d",arrayLayerCount:1,mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};st=Jf});function cS(){for(let i=0;i<16;i++){let t=[];oc.push(t);for(let e=0;e<16;e++){let r=Bo(Rr[i]*Rr[e]+Br[i]*kr[e]),s=Bo(kr[i]*Rr[e]+Ir[i]*kr[e]),n=Bo(Rr[i]*Br[e]+Br[i]*Ir[e]),o=Bo(kr[i]*Br[e]+Ir[i]*Ir[e]);for(let a=0;a<16;a++)if(Rr[a]===r&&kr[a]===s&&Br[a]===n&&Ir[a]===o){t.push(a);break}}}for(let i=0;i<16;i++){let t=new k;t.set(Rr[i],kr[i],Br[i],Ir[i],0,0),ep.push(t)}}var Rr,kr,Br,Ir,oc,ep,Bo,it,vs=p(()=>{ot();Rr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],kr=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Br=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Ir=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],oc=[],ep=[],Bo=Math.sign;cS();it={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:i=>Rr[i],uY:i=>kr[i],vX:i=>Br[i],vY:i=>Ir[i],inv:i=>i&8?i&15:-i&7,add:(i,t)=>oc[i][t],sub:(i,t)=>oc[i][it.inv(t)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,t)=>Math.abs(i)*2<=Math.abs(t)?t>=0?it.S:it.N:Math.abs(t)*2<=Math.abs(i)?i>0?it.E:it.W:t>0?i>0?it.SE:it.SW:i>0?it.NE:it.NW,matrixAppendRotationInv:(i,t,e=0,r=0,s=0,n=0)=>{let o=ep[it.inv(t)],a=o.a,l=o.b,c=o.c,h=o.d,u=e-Math.min(0,a*s,c*n,a*s+c*n),d=r-Math.min(0,l*s,h*n,l*s+h*n),f=i.a,m=i.b,g=i.c,_=i.d;i.a=a*f+l*g,i.b=a*m+l*_,i.c=c*f+h*g,i.d=c*m+h*_,i.tx=u*f+d*g+i.tx,i.ty=u*m+d*_+i.ty},transformRectCoords:(i,t,e,r)=>{let{x:s,y:n,width:o,height:a}=i,{x:l,y:c,width:h,height:u}=t;return e===it.E?(r.set(s+l,n+c,o,a),r):e===it.S?r.set(h-n-a+l,s+c,a,o):e===it.W?r.set(h-s-o+l,u-n-a+c,o,a):e===it.N?r.set(n+l,u-s-o+c,a,o):r.set(s+l,n+c,o,a)}}});var ac,rp=p(()=>{"use strict";ac=()=>{}});var Gr,lc=p(()=>{P();$t();Gr=class extends st{constructor(t){let e=t.resource||new Float32Array(t.width*t.height*4),r=t.format;r||(e instanceof Float32Array?r="rgba32float":e instanceof Int32Array||e instanceof Uint32Array?r="rgba32uint":e instanceof Int16Array||e instanceof Uint16Array?r="rgba16uint":(e instanceof Int8Array,r="bgra8unorm")),super({...t,resource:e,format:r}),this.uploadMethodId="buffer"}static test(t){return t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array}};Gr.extension=y.TextureSource});var ip,bi,cc=p(()=>{ot();ip=new k,bi=class{constructor(t,e){this.mapCoord=new k,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._updateID=0,this.clampOffset=0,typeof e>"u"?this.clampMargin=t.width<10?0:.5:this.clampMargin=e,this.isSimple=!1,this.texture=t}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture?.removeListener("update",this.update,this),this._texture=t,this._texture.addListener("update",this.update,this)),this.update()}destroy(){this._texture?.removeListener("update",this.update,this),this._texture=null}multiplyUvs(t,e){e===void 0&&(e=t);let r=this.mapCoord;for(let s=0;s<t.length;s+=2){let n=t[s],o=t[s+1];e[s]=n*r.a+o*r.c+r.tx,e[s+1]=n*r.b+o*r.d+r.ty}return e}update(){let t=this._texture;this._updateID++;let e=t.uvs;this.mapCoord.set(e.x1-e.x0,e.y1-e.y0,e.x3-e.x0,e.y3-e.y0,e.x0,e.y0);let r=t.orig,s=t.trim;s&&(ip.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(ip));let n=t.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,l=this.clampOffset/n._resolution;return o[0]=(t.frame.x+a+l)/n.width,o[1]=(t.frame.y+a+l)/n.height,o[2]=(t.frame.x+t.frame.width-a+l)/n.width,o[3]=(t.frame.y+t.frame.height-a+l)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=t.frame.width===n.width&&t.frame.height===n.height&&t.rotate===0,!0}}});var F,gt=p(()=>{Ht();vs();Yt();Ft();yt();rp();lc();$t();cc();F=class extends ut{constructor({source:t,label:e,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:l,dynamic:c}={}){if(super(),this.uid=$("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new J,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=e,this.source=t?.source??new st,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:h,height:u}=this._source;this.frame.width=h,this.frame.height=u}this.orig=s||this.frame,this.trim=n,this.rotate=l??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=c||!1,this.updateUvs()}set source(t){this._source&&this._source.off("resize",this.update,this),this._source=t,t.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new bi(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:t,frame:e}=this,{width:r,height:s}=this._source,n=e.x/r,o=e.y/s,a=e.width/r,l=e.height/s,c=this.rotate;if(c){let h=a/2,u=l/2,d=n+h,f=o+u;c=it.add(c,it.NW),t.x0=d+h*it.uX(c),t.y0=f+u*it.uY(c),c=it.add(c,2),t.x1=d+h*it.uX(c),t.y1=f+u*it.uY(c),c=it.add(c,2),t.x2=d+h*it.uX(c),t.y2=f+u*it.uY(c),c=it.add(c,2),t.x3=d+h*it.uX(c),t.y3=f+u*it.uY(c)}else t.x0=n,t.y0=o,t.x1=n+a,t.y1=o,t.x2=n+a,t.y2=o+l,t.x3=n,t.y3=o+l}destroy(t=!1){this._source&&(this._source.off("resize",this.update,this),t&&(this._source.destroy(),this._source=null)),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return O(rt,"Texture.baseTexture is now Texture.source"),this._source}};F.EMPTY=new F({label:"EMPTY",source:new st({label:"EMPTY"})});F.EMPTY.destroy=ac;F.WHITE=new F({source:new Gr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});F.WHITE.destroy=ac});var hS,hc,Mt,Fr=p(()=>{bs();Pr();$t();gt();Ar();hS=0,hc=class{constructor(t){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=t||{},this.enableFullScreen=!1,this.textureStyle=new ce(this.textureOptions)}createTexture(t,e,r,s){let n=new st({...this.textureOptions,width:t,height:e,resolution:1,antialias:r,autoGarbageCollect:!1,autoGenerateMipmaps:s});return new F({source:n,label:`texturePool_${hS++}`})}getOptimalTexture(t,e,r=1,s,n=!1){let o=Math.ceil(t*r-1e-6),a=Math.ceil(e*r-1e-6);o=Je(o),a=Je(a);let l=s?1:0,c=n?1:0,h=(o<<17)+(a<<2)+(c<<1)+l;this._texturePool[h]||(this._texturePool[h]=[]);let u=this._texturePool[h].pop();return u||(u=this.createTexture(o,a,s,n)),u.source._resolution=r,u.source.width=o/r,u.source.height=a/r,u.source.pixelWidth=o,u.source.pixelHeight=a,u.frame.x=0,u.frame.y=0,u.frame.width=t,u.frame.height=e,u.updateUvs(),this._poolKeyHash[u.uid]=h,u}getSameSizeTexture(t,e=!1){let r=t.source;return this.getOptimalTexture(t.width,t.height,r._resolution,e)}returnTexture(t,e=!1){let r=this._poolKeyHash[t.uid];e&&(t.source.style=this.textureStyle),this._texturePool[r].push(t)}clear(t){if(t=t!==!1,t)for(let e in this._texturePool){let r=this._texturePool[e];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Mt=new hc;ye.register(Mt)});var Ur,uc=p(()=>{ot();Ro();Fr();Ur=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new k,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new hr,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(t){this.root=t,t._onRender&&this.addOnRender(t),t.didChange=!0;let e=t.children;for(let r=0;r<e.length;r++){let s=e[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(t={}){this.textureOptions=t,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Mt.returnTexture(this.texture,!0),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0;let t=this._parentCacheAsTextureRenderGroup;t&&!t.textureNeedsUpdate&&t.updateCacheTexture()}reset(){this.renderGroupChildren.length=0;for(let t in this.childrenToUpdate){let e=this.childrenToUpdate[t];e.list.fill(null),e.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(t){t.renderGroupParent&&t.renderGroupParent._removeRenderGroupChild(t),t.renderGroupParent=this,this.renderGroupChildren.push(t)}_removeRenderGroupChild(t){let e=this.renderGroupChildren.indexOf(t);e>-1&&this.renderGroupChildren.splice(e,1),t.renderGroupParent=null}addChild(t){if(this.structureDidChange=!0,t.parentRenderGroup=this,t.updateTick=-1,t.parent===this.root?t.relativeRenderGroupDepth=1:t.relativeRenderGroupDepth=t.parent.relativeRenderGroupDepth+1,t.didChange=!0,this.onChildUpdate(t),t.renderGroup){this.addRenderGroupChild(t.renderGroup);return}t._onRender&&this.addOnRender(t);let e=t.children;for(let r=0;r<e.length;r++)this.addChild(e[r])}removeChild(t){if(this.structureDidChange=!0,t._onRender&&(t.renderGroup||this.removeOnRender(t)),t.parentRenderGroup=null,t.renderGroup){this._removeRenderGroupChild(t.renderGroup);return}let e=t.children;for(let r=0;r<e.length;r++)this.removeChild(e[r])}removeChildren(t){for(let e=0;e<t.length;e++)this.removeChild(t[e])}onChildUpdate(t){let e=this.childrenToUpdate[t.relativeRenderGroupDepth];e||(e=this.childrenToUpdate[t.relativeRenderGroupDepth]={index:0,list:[]}),e.list[e.index++]=t}updateRenderable(t){t.globalDisplayStatus<7||(this.instructionSet.renderPipes[t.renderPipeId].updateRenderable(t),t.didViewUpdate=!1)}onChildViewUpdate(t){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=t}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(t){this._onRenderContainers.indexOf(t)===-1&&this._onRenderContainers.push(t)}removeOnRender(t){let e=this._onRenderContainers.indexOf(t);e!==-1&&this._onRenderContainers.splice(e,1)}runOnRender(t){for(let e=0;e<this._onRenderContainers.length;e++)this._onRenderContainers[e]._onRender(t)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(t=[]){let e=this.root.children;for(let r=0;r<e.length;r++)this._getChildren(e[r],t);return t}_getChildren(t,e=[]){if(e.push(t),t.renderGroup)return e;let r=t.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],e);return e}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new k),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new k),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let t=this._parentCacheAsTextureRenderGroup;return t?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new k),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(t.inverseWorldTransform).translate(-t._textureBounds.x,-t._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this.isCachedAsTexture?this.textureOffsetInverseTransform:this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function sp(i,t,e={}){for(let r in t)!e[r]&&t[r]!==void 0&&(i[r]=t[r])}var np=p(()=>{"use strict"});var dc,Io,fc,Go,vi,Ss,Dr,mt,Pe=p(()=>{Ht();Qt();mf();P();ot();ql();vo();Ft();yt();ht();Ke();wf();Ef();Mf();kf();If();Uf();Mo();Wf();jf();Yf();qf();uc();np();dc=new Gt(null),Io=new Gt(null),fc=new Gt(null,1,1),Go=new Gt(null),vi=1,Ss=2,Dr=4,mt=class i extends ut{constructor(t={}){super(),this.uid=$("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.parentRenderLayer=null,this.updateTick=-1,this.localTransform=new k,this.relativeGroupTransform=new k,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new Gt(this,0,0),this._scale=fc,this._pivot=Io,this._origin=Go,this._skew=dc,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],sp(this,t,{children:!0,parent:!0,effects:!0}),t.children?.forEach(e=>this.addChild(e)),t.parent?.addChild(this)}static mixin(t){O("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),z.mixin(i,t)}set _didChangeId(t){this._didViewChangeTick=t>>12&4095,this._didContainerChangeTick=t&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...t){if(this.allowChildren||O(rt,"addChild: Only Containers will be allowed to add children in v8.0.0"),t.length>1){for(let s=0;s<t.length;s++)this.addChild(t[s]);return t[0]}let e=t[0],r=this.renderGroup||this.parentRenderGroup;return e.parent===this?(this.children.splice(this.children.indexOf(e),1),this.children.push(e),r&&(r.structureDidChange=!0),e):(e.parent&&e.parent.removeChild(e),this.children.push(e),this.sortableChildren&&(this.sortDirty=!0),e.parent=this,e.didChange=!0,e._updateFlags=15,r&&r.addChild(e),this.emit("childAdded",e,this,this.children.length-1),e.emit("added",this),this._didViewChangeTick++,e._zIndex!==0&&e.depthOfChildModified(),e)}removeChild(...t){if(t.length>1){for(let s=0;s<t.length;s++)this.removeChild(t[s]);return t[0]}let e=t[0],r=this.children.indexOf(e);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(e):this.parentRenderGroup&&this.parentRenderGroup.removeChild(e),e.parentRenderLayer&&e.parentRenderLayer.detach(e),e.parent=null,this.emit("childRemoved",e,this,r),e.emit("removed",this)),e}_onUpdate(t){t&&t===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(t){!!this.renderGroup!==t&&(t?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),this.renderGroup=bt.get(Ur,this),this.groupTransform=k.IDENTITY,t?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),bt.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,t?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new k),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(t){this._position.x=t}get y(){return this._position.y}set y(t){this._position.y=t}get position(){return this._position}set position(t){this._position.copyFrom(t)}get rotation(){return this._rotation}set rotation(t){this._rotation!==t&&(this._rotation=t,this._onUpdate(this._skew))}get angle(){return this.rotation*xf}set angle(t){this.rotation=t*_f}get pivot(){return this._pivot===Io&&(this._pivot=new Gt(this,0,0)),this._pivot}set pivot(t){this._pivot===Io&&(this._pivot=new Gt(this,0,0),this._origin!==Go&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._pivot.set(t):this._pivot.copyFrom(t)}get skew(){return this._skew===dc&&(this._skew=new Gt(this,0,0)),this._skew}set skew(t){this._skew===dc&&(this._skew=new Gt(this,0,0)),this._skew.copyFrom(t)}get scale(){return this._scale===fc&&(this._scale=new Gt(this,1,1)),this._scale}set scale(t){this._scale===fc&&(this._scale=new Gt(this,0,0)),typeof t=="string"&&(t=parseFloat(t)),typeof t=="number"?this._scale.set(t):this._scale.copyFrom(t)}get origin(){return this._origin===Go&&(this._origin=new Gt(this,0,0)),this._origin}set origin(t){this._origin===Go&&(this._origin=new Gt(this,0,0),this._pivot!==Io&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._origin.set(t):this._origin.copyFrom(t)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(t){let e=this.getLocalBounds().width;this._setWidth(t,e)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(t){let e=this.getLocalBounds().height;this._setHeight(t,e)}getSize(t){t||(t={});let e=this.getLocalBounds();return t.width=Math.abs(this.scale.x*e.width),t.height=Math.abs(this.scale.y*e.height),t}setSize(t,e){let r=this.getLocalBounds();typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,r.width),e!==void 0&&this._setHeight(e,r.height)}_updateSkew(){let t=this._rotation,e=this._skew;this._cx=Math.cos(t+e._y),this._sx=Math.sin(t+e._y),this._cy=-Math.sin(t-e._x),this._sy=Math.cos(t-e._x)}updateTransform(t){return this.position.set(typeof t.x=="number"?t.x:this.position.x,typeof t.y=="number"?t.y:this.position.y),this.scale.set(typeof t.scaleX=="number"?t.scaleX:this.scale.x,typeof t.scaleY=="number"?t.scaleY:this.scale.y),this.rotation=typeof t.rotation=="number"?t.rotation:this.rotation,this.skew.set(typeof t.skewX=="number"?t.skewX:this.skew.x,typeof t.skewY=="number"?t.skewY:this.skew.y),this.pivot.set(typeof t.pivotX=="number"?t.pivotX:this.pivot.x,typeof t.pivotY=="number"?t.pivotY:this.pivot.y),this.origin.set(typeof t.originX=="number"?t.originX:this.origin.x,typeof t.originY=="number"?t.originY:this.origin.y),this}setFromMatrix(t){t.decompose(this)}updateLocalTransform(){let t=this._didContainerChangeTick;if(this._didLocalTransformChangeId===t)return;this._didLocalTransformChangeId=t;let e=this.localTransform,r=this._scale,s=this._pivot,n=this._origin,o=this._position,a=r._x,l=r._y,c=s._x,h=s._y,u=-n._x,d=-n._y;e.a=this._cx*a,e.b=this._sx*a,e.c=this._cy*l,e.d=this._sy*l,e.tx=o._x-(c*e.a+h*e.c)+(u*e.a+d*e.c)-u,e.ty=o._y-(c*e.b+h*e.d)+(u*e.b+d*e.d)-d}set alpha(t){t!==this.localAlpha&&(this.localAlpha=t,this._updateFlags|=vi,this._onUpdate())}get alpha(){return this.localAlpha}set tint(t){let r=Q.shared.setValue(t??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=vi,this._onUpdate())}get tint(){return Qe(this.localColor)}set blendMode(t){this.localBlendMode!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Ss,this.localBlendMode=t,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(t){let e=t?2:0;(this.localDisplayStatus&2)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=2,this._onUpdate(),this.emit("visibleChanged",t))}get culled(){return!(this.localDisplayStatus&4)}set culled(t){let e=t?0:4;(this.localDisplayStatus&4)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(t){let e=t?1:0;(this.localDisplayStatus&1)!==e&&(this._updateFlags|=Dr,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(t=!1){if(this.destroyed)return;this.destroyed=!0;let e;if(this.children.length&&(e=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._origin=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof t=="boolean"?t:t?.children)&&e)for(let s=0;s<e.length;++s)e[s].destroy(t);this.renderGroup?.destroy(),this.renderGroup=null}};z.mixin(mt,Cf,Ff,$f,Vf,Hf,Rf,Bf,Xf,pf,Tf,Of,Pf)});var De,Ts=p(()=>{"use strict";De=(i=>(i[i.INTERACTION=50]="INTERACTION",i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(De||{})});var Si,op=p(()=>{"use strict";Si=class{constructor(t,e=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=t,this._context=e,this.priority=r,this._once=s}match(t,e=null){return this._fn===t&&this._context===e}emit(t){this._fn&&(this._context?this._fn.call(this._context,t):this._fn(t));let e=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),e}connect(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this}destroy(t=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let e=this.next;return this.next=t?null:e,this.previous=null,e}}});var ap,qt,Ti=p(()=>{Ts();op();ap=class pe{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Si(null,null,1/0),this.deltaMS=1/pe.targetFPMS,this.elapsedMS=1/pe.targetFPMS,this._tick=t=>{this._requestId=null,this.started&&(this.update(t),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(t,e,r=De.NORMAL){return this._addListener(new Si(t,e,r))}addOnce(t,e,r=De.NORMAL){return this._addListener(new Si(t,e,r,!0))}_addListener(t){let e=this._head.next,r=this._head;if(!e)t.connect(r);else{for(;e;){if(t.priority>e.priority){t.connect(r);break}r=e,e=e.next}t.previous||t.connect(r)}return this._startIfPossible(),this}remove(t,e){let r=this._head.next;for(;r;)r.match(t,e)?r=r.destroy():r=r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let t=0,e=this._head;for(;e=e.next;)t++;return t}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let t=this._head.next;for(;t;)t=t.destroy(!0);this._head.destroy(),this._head=null}}update(t=performance.now()){let e;if(t>this.lastTime){if(e=this.elapsedMS=t-this.lastTime,e>this._maxElapsedMS&&(e=this._maxElapsedMS),e*=this.speed,this._minElapsedMS){let n=t-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=t-n%this._minElapsedMS}this.deltaMS=e,this.deltaTime=this.deltaMS*pe.targetFPMS;let r=this._head,s=r.next;for(;s;)s=s.emit(this);r.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=t}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(t){let e=Math.min(Math.max(0,t)/1e3,pe.targetFPMS);this._maxElapsedMS=1/e,this._minElapsedMS&&t>this.maxFPS&&(this.maxFPS=t)}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(t){t===0?this._minElapsedMS=0:(t<this.minFPS&&(this.minFPS=t),this._minElapsedMS=1/(t/1e3))}static get shared(){if(!pe._shared){let t=pe._shared=new pe;t.autoStart=!0,t._protected=!0}return pe._shared}static get system(){if(!pe._system){let t=pe._system=new pe;t.autoStart=!0,t._protected=!0}return pe._system}};ap.targetFPMS=.06;qt=ap});var wi,pc=p(()=>{Ts();Ti();wi=class{constructor(t){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;let e=this._canvas.getBoundingClientRect(),r=this._canvas.width,s=this._canvas.height,n=e.width/r*this._renderer.resolution,o=e.height/s*this._renderer.resolution,a=e.left,l=e.top,c=`translate(${a}px, ${l}px) scale(${n}, ${o})`;c!==this._lastTransform&&(this._domElement.style.transform=c,this._lastTransform=c)},this._domElement=t.domElement,this._renderer=t.renderer,!(globalThis.OffscreenCanvas&&this._renderer.canvas instanceof OffscreenCanvas)&&(this._canvas=this._renderer.canvas,this._attachObserver())}get canvas(){return this._canvas}ensureAttached(){!this._domElement.parentNode&&this._canvas.parentNode&&(this._canvas.parentNode.appendChild(this._domElement),this.updateTranslation())}_attachObserver(){"ResizeObserver"in globalThis?(this._observer&&(this._observer.disconnect(),this._observer=null),this._observer=new ResizeObserver(t=>{for(let e of t){if(e.target!==this._canvas)continue;let r=this.canvas.width,s=this.canvas.height,n=e.contentRect.width/r*this._renderer.resolution,o=e.contentRect.height/s*this._renderer.resolution;(this._lastScaleX!==n||this._lastScaleY!==o)&&(this.updateTranslation(),this._lastScaleX=n,this._lastScaleY=o)}}),this._observer.observe(this._canvas)):this._tickerAttached||qt.shared.add(this.updateTranslation,this,De.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&qt.shared.remove(this.updateTranslation),this._domElement=null,this._renderer=null,this._canvas=null,this._tickerAttached=!1,this._lastTransform="",this._lastScaleX=null,this._lastScaleY=null}}});var ur,Fo=p(()=>{Ee();ur=class i{constructor(t){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=i.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new nt,this.page=new nt,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=t}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(t,e,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(t,e,r,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function uS(i){return function(t){return t.test(i)}}function ws(i){var t={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?t.userAgent=i:i&&i.userAgent&&(t={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var e=t.userAgent,r=e.split("[FBAN");typeof r[1]<"u"&&(e=r[0]),r=e.split("Twitter"),typeof r[1]<"u"&&(e=r[0]);var s=uS(e),n={apple:{phone:s(mc)&&!s(tr),ipod:s(lp),tablet:!s(mc)&&(s(cp)||_p(t))&&!s(tr),universal:s(hp),device:(s(mc)||s(lp)||s(cp)||s(hp)||_p(t))&&!s(tr)},amazon:{phone:s(Ci),tablet:!s(Ci)&&s(Uo),device:s(Ci)||s(Uo)},android:{phone:!s(tr)&&s(Ci)||!s(tr)&&s(gc),tablet:!s(tr)&&!s(Ci)&&!s(gc)&&(s(Uo)||s(up)),device:!s(tr)&&(s(Ci)||s(Uo)||s(gc)||s(up))||s(/\bokhttp\b/i)},windows:{phone:s(tr),tablet:s(dp),device:s(tr)||s(dp)},other:{blackberry:s(fp),blackberry10:s(pp),opera:s(mp),firefox:s(xp),chrome:s(gp),device:s(fp)||s(pp)||s(mp)||s(xp)||s(gp)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var mc,lp,cp,hp,gc,up,Ci,Uo,tr,dp,fp,pp,mp,gp,xp,_p,xc=p(()=>{mc=/iPhone/i,lp=/iPod/i,cp=/iPad/i,hp=/\biOS-universal(?:.+)Mac\b/i,gc=/\bAndroid(?:.+)Mobile\b/i,up=/Android/i,Ci=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Uo=/Silk/i,tr=/Windows Phone/i,dp=/\bWindows(?:.+)ARM\b/i,fp=/BlackBerry/i,pp=/BB10/i,mp=/Opera Mini/i,gp=/\b(CriOS|Chrome)(?:.+)Mobile/i,xp=/Mobile(?:.+)Firefox\b/i,_p=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var yp=p(()=>{xc();xc()});var dS,bp,vp=p(()=>{yp();dS=ws.default??ws,bp=dS(globalThis.navigator)});var fS,Sp,pS,mS,Tp,wp,gS,xS,_S,_c,Ep,Pp=p(()=>{pc();Fo();P();vp();tc();fS=9,Sp=100,pS=0,mS=0,Tp=2,wp=1,gS=-1e3,xS=-1e3,_S=2,_c=class Cp{constructor(t,e=bp){this._mobileInfo=e,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pools={},this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._isRunningTests=!1,this._boundOnKeyDown=this._onKeyDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._hookDiv=null,(e.tablet||e.phone)&&this._createTouchHook(),this._renderer=t}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){let t=document.createElement("button");t.style.width=`${wp}px`,t.style.height=`${wp}px`,t.style.position="absolute",t.style.top=`${gS}px`,t.style.left=`${xS}px`,t.style.zIndex=_S.toString(),t.style.backgroundColor="#FF0000",t.title="select to enable accessibility for this content",t.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(t),this._hookDiv=t}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.position="absolute",this._div.style.top=`${pS}px`,this._div.style.left=`${mS}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=Tp.toString(),this._canvasObserver=new wi({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);let t=this._renderer.view.canvas;if(t.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{let e=new MutationObserver(()=>{t.parentNode&&(e.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});e.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let t of this._children)t._accessibleDiv?.parentNode&&(t._accessibleDiv.parentNode.removeChild(t._accessibleDiv),t._accessibleDiv=null),t._accessibleActive=!1;for(let t in this._pools)this._pools[t].forEach(r=>{r.parentNode&&r.parentNode.removeChild(r)}),delete this._pools[t];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(t){if(!t.visible||!t.accessibleChildren)return;t.accessible&&(t._accessibleActive||this._addChild(t),t._renderId=this._renderId);let e=t.children;if(e)for(let r=0;r<e.length;r++)this._updateAccessibleObjects(e[r])}init(t){let r={accessibilityOptions:{...Cp.defaultOptions,...t?.accessibilityOptions||{}}};this.debug=r.accessibilityOptions.debug,this._activateOnTab=r.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=r.accessibilityOptions.deactivateOnMouseMove,r.accessibilityOptions.enabledByDefault&&this._activate(),this._renderer.runners.postrender.remove(this)}postrender(){let t=performance.now();if(this._mobileInfo.android.device&&t<this._androidUpdateCount||(this._androidUpdateCount=t+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;let e=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&e.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];e.has(r)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._getPool(s.accessibleType).push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,To(this._children,r,1))}this._renderer.renderingToScreen&&this._canvasObserver.ensureAttached();for(let r=0;r<this._children.length;r++){let s=this._children[r];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform;n.style.left=`${a.tx+o.x*a.a}px`,n.style.top=`${a.ty+o.y*a.d}px`,n.style.width=`${o.width*a.a}px`,n.style.height=`${o.height*a.d}px`}else this._capHitArea(o),n.style.left=`${o.x}px`,n.style.top=`${o.y}px`,n.style.width=`${o.width}px`,n.style.height=`${o.height}px`}this._renderId++}_updateDebugHTML(t){t.innerHTML=`type: ${t.type}</br> title : ${t.title}</br> tabIndex: ${t.tabIndex}`}_capHitArea(t){t.x<0&&(t.width+=t.x,t.x=0),t.y<0&&(t.height+=t.y,t.y=0);let{width:e,height:r}=this._renderer;t.x+t.width>e&&(t.width=e-t.x),t.y+t.height>r&&(t.height=r-t.y)}_addChild(t){let r=this._getPool(t.accessibleType).pop();r?(r.innerHTML="",r.removeAttribute("title"),r.removeAttribute("aria-label"),r.tabIndex=0):(t.accessibleType==="button"?r=document.createElement("button"):(r=document.createElement(t.accessibleType),r.style.cssText=`
1
+ var Jy=Object.create;var qc=Object.defineProperty;var ev=Object.getOwnPropertyDescriptor;var tv=Object.getOwnPropertyNames;var rv=Object.getPrototypeOf,iv=Object.prototype.hasOwnProperty;var p=(i,e)=>()=>(i&&(e=i(i=0)),e);var sv=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),Kc=(i,e)=>{for(var t in e)qc(i,t,{get:e[t],enumerable:!0})},nv=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of tv(e))!iv.call(i,s)&&s!==t&&qc(i,s,{get:()=>e[s],enumerable:!(r=ev(e,s))||r.enumerable});return i};var ov=(i,e,t)=>(t=i!=null?Jy(rv(i)):{},nv(e||!i||!i.__esModule?qc(t,"default",{value:i,enumerable:!0}):t,i));var _,Zc,To,H,P=p(()=>{"use strict";_=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.TextureUploaderWebGL="texture-uploader-webgl",i.TextureUploaderWebGPU="texture-uploader-webgpu",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(_||{}),Zc=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i=="object")i={...i};else throw new Error("Invalid extension type");return typeof i.type=="string"&&(i.type=[i.type]),i},To=(i,e)=>Zc(i).priority??e,H={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(Zc).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...i){return i.map(Zc).forEach(e=>{e.type.forEach(t=>{let r=this._addHandlers,s=this._queue;r[t]?r[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(i,e,t){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=e,s[i]=t;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>e(o)),delete n[i]),this},handleByMap(i,e){return this.handle(i,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(i,e,t=-1){return this.handle(i,r=>{e.findIndex(n=>n.name===r.name)>=0||(e.push({name:r.name,value:r.ref}),e.sort((n,o)=>To(o.value,t)-To(n.value,t)))},r=>{let s=e.findIndex(n=>n.name===r.name);s!==-1&&e.splice(s,1)})},handleByList(i,e,t=-1){return this.handle(i,r=>{e.includes(r.ref)||(e.push(r.ref),e.sort((s,n)=>To(n,t)-To(s,t)))},r=>{let s=e.indexOf(r.ref);s!==-1&&e.splice(s,1)})},mixin(i,...e){for(let t of e)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(t))}}});var hf=sv((yw,Qc)=>{"use strict";var av=Object.prototype.hasOwnProperty,Je="~";function ps(){}Object.create&&(ps.prototype=Object.create(null),new ps().__proto__||(Je=!1));function cv(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function df(i,e,t,r,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new cv(t,r||i,s),o=Je?Je+e:e;return i._events[o]?i._events[o].fn?i._events[o]=[i._events[o],n]:i._events[o].push(n):(i._events[o]=n,i._eventsCount++),i}function Eo(i,e){--i._eventsCount===0?i._events=new ps:delete i._events[e]}function Ye(){this._events=new ps,this._eventsCount=0}Ye.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)av.call(t,r)&&e.push(Je?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ye.prototype.listeners=function(e){var t=Je?Je+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s<n;s++)o[s]=r[s].fn;return o};Ye.prototype.listenerCount=function(e){var t=Je?Je+e:e,r=this._events[t];return r?r.fn?1:r.length:0};Ye.prototype.emit=function(e,t,r,s,n,o){var a=Je?Je+e:e;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,d,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,r),!0;case 4:return c.fn.call(c.context,t,r,s),!0;case 5:return c.fn.call(c.context,t,r,s,n),!0;case 6:return c.fn.call(c.context,t,r,s,n,o),!0}for(h=1,d=new Array(l-1);h<l;h++)d[h-1]=arguments[h];c.fn.apply(c.context,d)}else{var u=c.length,f;for(h=0;h<u;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),l){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,r);break;case 4:c[h].fn.call(c[h].context,t,r,s);break;default:if(!d)for(f=1,d=new Array(l-1);f<l;f++)d[f-1]=arguments[f];c[h].fn.apply(c[h].context,d)}}return!0};Ye.prototype.on=function(e,t,r){return df(this,e,t,r,!1)};Ye.prototype.once=function(e,t,r){return df(this,e,t,r,!0)};Ye.prototype.removeListener=function(e,t,r,s){var n=Je?Je+e:e;if(!this._events[n])return this;if(!t)return Eo(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!r||o.context===r)&&Eo(this,n);else{for(var a=0,c=[],l=o.length;a<l;a++)(o[a].fn!==t||s&&!o[a].once||r&&o[a].context!==r)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:Eo(this,n)}return this};Ye.prototype.removeAllListeners=function(e){var t;return e?(t=Je?Je+e:e,this._events[t]&&Eo(this,t)):(this._events=new ps,this._eventsCount=0),this};Ye.prototype.off=Ye.prototype.removeListener;Ye.prototype.addListener=Ye.prototype.on;Ye.prefixed=Je;Ye.EventEmitter=Ye;typeof Qc<"u"&&(Qc.exports=Ye)});var uf,fe,Ne=p(()=>{uf=ov(hf(),1),fe=uf.default});var lv,Kt,He,xt,yf,ff,Jc,dv,Co,vf,wf,pf,mf,gf,ms,hv,uv,fv,pv,rl,bf,mv,el,tl,xf,il,Ct,_f,Sf,Tf=p(()=>{lv={grad:.9,turn:360,rad:360/(2*Math.PI)},Kt=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},He=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*i)/t+0},xt=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),i>t?t:i>e?i:e},yf=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},ff=function(i){return{r:xt(i.r,0,255),g:xt(i.g,0,255),b:xt(i.b,0,255),a:xt(i.a)}},Jc=function(i){return{r:He(i.r),g:He(i.g),b:He(i.b),a:He(i.a,3)}},dv=/^#([0-9a-f]{3,8})$/i,Co=function(i){var e=i.toString(16);return e.length<2?"0"+e:e},vf=function(i){var e=i.r,t=i.g,r=i.b,s=i.a,n=Math.max(e,t,r),o=n-Math.min(e,t,r),a=o?n===e?(t-r)/o:n===t?2+(r-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},wf=function(i){var e=i.h,t=i.s,r=i.v,s=i.a;e=e/360*6,t/=100,r/=100;var n=Math.floor(e),o=r*(1-t),a=r*(1-(e-n)*t),c=r*(1-(1-e+n)*t),l=n%6;return{r:255*[r,a,o,o,c,r][l],g:255*[c,r,r,a,o,o][l],b:255*[o,o,c,r,r,a][l],a:s}},pf=function(i){return{h:yf(i.h),s:xt(i.s,0,100),l:xt(i.l,0,100),a:xt(i.a)}},mf=function(i){return{h:He(i.h),s:He(i.s),l:He(i.l),a:He(i.a,3)}},gf=function(i){return wf((t=(e=i).s,{h:e.h,s:(t*=((r=e.l)<50?r:100-r)/100)>0?2*t/(r+t)*100:0,v:r+t,a:e.a}));var e,t,r},ms=function(i){return{h:(e=vf(i)).h,s:(s=(200-(t=e.s))*(r=e.v)/100)>0&&s<200?t*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,r,s},hv=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,uv=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,fv=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,pv=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,rl={string:[[function(i){var e=dv.exec(i);return e?(i=e[1]).length<=4?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?He(parseInt(i[3]+i[3],16)/255,2):1}:i.length===6||i.length===8?{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16),a:i.length===8?He(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var e=fv.exec(i)||pv.exec(i);return e?e[2]!==e[4]||e[4]!==e[6]?null:ff({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(i){var e=hv.exec(i)||uv.exec(i);if(!e)return null;var t,r,s=pf({h:(t=e[1],r=e[2],r===void 0&&(r="deg"),Number(t)*(lv[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return gf(s)},"hsl"]],object:[[function(i){var e=i.r,t=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return Kt(e)&&Kt(t)&&Kt(r)?ff({r:Number(e),g:Number(t),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var e=i.h,t=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!Kt(e)||!Kt(t)||!Kt(r))return null;var o=pf({h:Number(e),s:Number(t),l:Number(r),a:Number(n)});return gf(o)},"hsl"],[function(i){var e=i.h,t=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!Kt(e)||!Kt(t)||!Kt(r))return null;var o=(function(a){return{h:yf(a.h),s:xt(a.s,0,100),v:xt(a.v,0,100),a:xt(a.a)}})({h:Number(e),s:Number(t),v:Number(r),a:Number(n)});return wf(o)},"hsv"]]},bf=function(i,e){for(var t=0;t<e.length;t++){var r=e[t][0](i);if(r)return[r,e[t][1]]}return[null,void 0]},mv=function(i){return typeof i=="string"?bf(i.trim(),rl.string):typeof i=="object"&&i!==null?bf(i,rl.object):[null,void 0]},el=function(i,e){var t=ms(i);return{h:t.h,s:xt(t.s+100*e,0,100),l:t.l,a:t.a}},tl=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},xf=function(i,e){var t=ms(i);return{h:t.h,s:t.s,l:xt(t.l+100*e,0,100),a:t.a}},il=(function(){function i(e){this.parsed=mv(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return i.prototype.isValid=function(){return this.parsed!==null},i.prototype.brightness=function(){return He(tl(this.rgba),2)},i.prototype.isDark=function(){return tl(this.rgba)<.5},i.prototype.isLight=function(){return tl(this.rgba)>=.5},i.prototype.toHex=function(){return e=Jc(this.rgba),t=e.r,r=e.g,s=e.b,o=(n=e.a)<1?Co(He(255*n)):"","#"+Co(t)+Co(r)+Co(s)+o;var e,t,r,s,n,o},i.prototype.toRgb=function(){return Jc(this.rgba)},i.prototype.toRgbString=function(){return e=Jc(this.rgba),t=e.r,r=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+r+", "+s+", "+n+")":"rgb("+t+", "+r+", "+s+")";var e,t,r,s,n},i.prototype.toHsl=function(){return mf(ms(this.rgba))},i.prototype.toHslString=function(){return e=mf(ms(this.rgba)),t=e.h,r=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+r+"%, "+s+"%, "+n+")":"hsl("+t+", "+r+"%, "+s+"%)";var e,t,r,s,n},i.prototype.toHsv=function(){return e=vf(this.rgba),{h:He(e.h),s:He(e.s),v:He(e.v),a:He(e.a,3)};var e},i.prototype.invert=function(){return Ct({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},i.prototype.saturate=function(e){return e===void 0&&(e=.1),Ct(el(this.rgba,e))},i.prototype.desaturate=function(e){return e===void 0&&(e=.1),Ct(el(this.rgba,-e))},i.prototype.grayscale=function(){return Ct(el(this.rgba,-1))},i.prototype.lighten=function(e){return e===void 0&&(e=.1),Ct(xf(this.rgba,e))},i.prototype.darken=function(e){return e===void 0&&(e=.1),Ct(xf(this.rgba,-e))},i.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},i.prototype.alpha=function(e){return typeof e=="number"?Ct({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):He(this.rgba.a,3);var t},i.prototype.hue=function(e){var t=ms(this.rgba);return typeof e=="number"?Ct({h:e,s:t.s,l:t.l,a:t.a}):He(t.h)},i.prototype.isEqual=function(e){return this.toHex()===Ct(e).toHex()},i})(),Ct=function(i){return i instanceof il?i:new il(i)},_f=[],Sf=function(i){i.forEach(function(e){_f.indexOf(e)<0&&(e(il,rl),_f.push(e))})}});function Ef(i,e){var t={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"},r={};for(var s in t)r[t[s]]=s;var n={};i.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,l=r[this.toHex()];if(l)return l;if(o?.closest){var d=this.toRgb(),h=1/0,u="black";if(!n.length)for(var f in t)n[f]=new i(t[f]).toRgb();for(var m in t){var g=(a=d,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));g<h&&(h=g,u=m)}return u}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new i(c).toRgb():null},"name"])}var Cf=p(()=>{});var _i,Z,$e=p(()=>{Tf();Cf();Sf([Ef]);_i=class gs{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(e){if(e instanceof gs)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let r=typeof e;if(r!==typeof t)return!1;if(r==="number"||r==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,r,s]=this._components;return{r:e,g:t,b:r,a:s}}toRgb(){let[e,t,r]=this._components;return{r:e,g:t,b:r}}toRgbaString(){let[e,t,r]=this.toUint8RgbArray();return`rgba(${e},${t},${r},${this.alpha})`}toUint8RgbArray(e){let[t,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(r*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,r,s,n]=this._components;return e[0]=t,e[1]=r,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,r,s]=this._components;return e[0]=t,e[1]=r,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,r]=this.toUint8RgbArray();return(r<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,r,s,n]=gs._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(r=r*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(r<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this._value=null,this}_normalize(e){let t,r,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,r,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,r,s,n=255]=e,t/=255,r/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=gs.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=Ct(e);o.isValid()&&({r:t,g:r,b:s,a:n}=o.rgba,t/=255,r/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,r]=this._components;this._int=(e*255<<16)+(t*255<<8)+(r*255|0)}_clamp(e,t=0,r=1){return typeof e=="number"?Math.min(Math.max(e,t),r):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),r)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof gs||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};_i.shared=new _i;_i._temp=new _i;_i.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;Z=_i});var Pf,Mf=p(()=>{"use strict";Pf={cullArea:null,cullable:!1,cullableChildren:!0}});var Af,Rf,kf,sl=p(()=>{"use strict";Af=Math.PI*2,Rf=180/Math.PI,kf=Math.PI/180});var ae,nl,Pt=p(()=>{"use strict";ae=class i{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new i(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return nl.x=0,nl.y=0,nl}},nl=new ae});var k,gv,bv,ce=p(()=>{sl();Pt();k=class i{constructor(e=1,t=0,r=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,r,s,n,o){return this.a=e,this.b=t,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let r=t||this.array;return e?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(e,t){t=t||new ae;let r=e.x,s=e.y;return t.x=this.a*r+this.c*s+this.tx,t.y=this.b*r+this.d*s+this.ty,t}applyInverse(e,t){t=t||new ae;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,l=1/(r*o+n*-s),d=e.x,h=e.y;return t.x=o*l*d+-n*l*h+(c*n-a*o)*l,t.y=r*l*h+-s*l*d+(-c*r+a*s)*l,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),r=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*r,this.b=s*r+this.b*t,this.c=n*t-this.d*r,this.d=n*r+this.d*t,this.tx=o*t-this.ty*r,this.ty=o*r+this.ty*t,this}append(e){let t=this.a,r=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*r+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*r+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*r+e.ty*n+this.ty,this}appendFrom(e,t){let r=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,l=t.a,d=t.b,h=t.c,u=t.d;return this.a=r*l+s*h,this.b=r*d+s*u,this.c=n*l+o*h,this.d=n*d+o*u,this.tx=a*l+c*h+t.tx,this.ty=a*d+c*u+t.ty,this}setTransform(e,t,r,s,n,o,a,c,l){return this.a=Math.cos(a+l)*n,this.b=Math.sin(a+l)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(r*this.a+s*this.c),this.ty=t-(r*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let r=this.a,s=this.c;this.a=r*e.a+this.b*e.c,this.b=r*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,r=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(r,t),l=Math.abs(a+c);return l<1e-5||Math.abs(Af-l)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+r*r),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*r+o.y*n),e}invert(){let e=this.a,t=this.b,r=this.c,s=this.d,n=this.tx,o=e*s-t*r;return this.a=s/o,this.b=-t/o,this.c=-r/o,this.d=e/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new i;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return bv.identity()}static get shared(){return gv.identity()}},gv=new k,bv=new k});var Be,Po=p(()=>{"use strict";Be=class i{constructor(e,t,r){this._x=t||0,this._y=r||0,this._observer=e}clone(e){return new i(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function Y(i="default"){return ol[i]===void 0&&(ol[i]=-1),++ol[i]}var ol,Ie=p(()=>{"use strict";ol={default:-1}});var Bf,re,If,yi,N,_e=p(()=>{"use strict";Bf=new Set,re="8.0.0",If="8.3.4",yi={quiet:!1,noColor:!1},N=((i,e,t=3)=>{if(yi.quiet||Bf.has(e))return;let r=new Error().stack,s=`${e}
2
+ Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!yi.noColor;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",s):(r=r.split(`
3
+ `).splice(t).join(`
4
+ `),n?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",s),console.warn(r),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",s),console.warn(r))),Bf.add(e)});Object.defineProperties(N,{quiet:{get:()=>yi.quiet,set:i=>{yi.quiet=i},enumerable:!0,configurable:!1},noColor:{get:()=>yi.noColor,set:i=>{yi.noColor=i},enumerable:!0,configurable:!1}})});function O(...i){al!==Gf&&(al++,al===Gf?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var al,Gf,he=p(()=>{"use strict";al=0,Gf=500});var _t,Mr=p(()=>{"use strict";_t={_registeredResources:new Set,register(i){this._registeredResources.add(i)},unregister(i){this._registeredResources.delete(i)},release(){this._registeredResources.forEach(i=>i.clear())},get registeredCount(){return this._registeredResources.size},isRegistered(i){return this._registeredResources.has(i)},reset(){this._registeredResources.clear()}}});var Mo,Ff=p(()=>{"use strict";Mo=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:(t=new this._classType,this._count++),t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){if(this._pool.length>0&&this._pool[0].destroy)for(let e=0;e<this._index;e++)this._pool[e].destroy();this._pool.length=0,this._count=0,this._index=0}}});var cl,ye,Zt=p(()=>{Mr();Ff();cl=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new Mo(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let r=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[r]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}clear(){this._poolsByClass.forEach(e=>e.clear()),this._poolsByClass.clear()}},ye=new cl;_t.register(ye)});var Uf,Df=p(()=>{_e();Uf={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){N("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function Ao(i,e,t){let r=i.length,s;if(e>=r||t===0)return;t=e+t>r?r-e:t;let n=r-t;for(s=e;s<n;++s)i[s]=i[s+t];i.length=n}var ll=p(()=>{"use strict"});var Lf,Of=p(()=>{ll();_e();Lf={allowChildren:!0,removeChildren(i=0,e){let t=e??this.children.length,r=t-i,s=[];if(r>0&&r<=t){for(let o=t-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}Ao(this.children,i,t);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(r===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(i){let e=this.getChildAt(i);return this.removeChild(e)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,e)},getChildIndex(i){let e=this.children.indexOf(i);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(i,e){this.allowChildren||N(re,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${i}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);let r=i.parent===this;if(i.parent){let n=i.parent.children.indexOf(i);if(r){if(n===e)return i;i.parent.children.splice(n,1)}else i.removeFromParent()}e===t.length?t.push(i):t.splice(e,0,i);let s=this.renderGroup||this.parentRenderGroup;return this.sortableChildren&&(this.sortDirty=!0),r?(s&&(s.structureDidChange=!0),i):(i.parent=this,i.didChange=!0,i._updateFlags=15,s&&s.addChild(i),this.emit("childAdded",i,this,e),i.emit("added",this),i)},swapChildren(i,e){if(i===e)return;let t=this.getChildIndex(i),r=this.getChildIndex(e);this.children[t]=e,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(e=>this.reparentChildAt(e,this.children.length)),i[0])},reparentChildAt(i,e){if(i.parent===this)return this.setChildIndex(i,e),i;let t=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,e);let r=this.worldTransform.clone();return r.invert(),t.prepend(r),i.setFromMatrix(t),i},replaceChild(i,e){i.updateLocalTransform(),this.addChildAt(e,this.getChildIndex(i)),e.setFromMatrix(i.localTransform),e.updateLocalTransform(),this.removeChild(i)}}});var Nf,Hf=p(()=>{"use strict";Nf={collectRenderables(i,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,e,t))},collectRenderablesSimple(i,e,t){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,e,t)},collectRenderablesWithEffects(i,e,t){let{renderPipes:r}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var Qt,Ro=p(()=>{"use strict";Qt=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var dl,ko,zf=p(()=>{P();Zt();dl=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let r=this._tests[t];if(r.test(e))return ye.get(r.maskClass,e)}return e}returnMaskEffect(e){ye.return(e)}},ko=new dl;H.handleByList(_.MaskEffect,ko._effectClasses)});var Wf,Vf=p(()=>{Ro();zf();Wf={_maskEffect:null,_maskOptions:{inverse:!1,channel:"red"},_filterEffect:null,effects:[],_markStructureAsChanged(){let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)},addEffect(i){this.effects.indexOf(i)===-1&&(this.effects.push(i),this.effects.sort((t,r)=>t.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let e=this.effects.indexOf(i);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let e=this._maskEffect;e?.mask!==i&&(e&&(this.removeEffect(e),ko.returnMaskEffect(e),this._maskEffect=null),i!=null&&(this._maskEffect=ko.getMaskEffect(i),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(i){this._maskOptions={...this._maskOptions,...i},i.mask&&(this.mask=i.mask),this._markStructureAsChanged()},set filters(i){!Array.isArray(i)&&i&&(i=[i]);let e=this._filterEffect||(this._filterEffect=new Qt);i=i;let t=i?.length>0,r=e.filters?.length>0,s=t!==r;i=Array.isArray(i)?i.slice(0):i,e.filters=Object.freeze(i),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new Qt),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var jf,Xf=p(()=>{_e();jf={label:null,get name(){return N(re,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){N(re,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,e=!1){return this.getChildByLabel(i,e)},getChildByLabel(i,e=!1){let t=this.children;for(let r=0;r<t.length;r++){let s=t[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(e)for(let r=0;r<t.length;r++){let n=t[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,e=!1,t=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&t.push(n)}if(e)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,t);return t}}});var Bo,Q,Ve=p(()=>{Pt();Bo=[new ae,new ae,new ae,new ae],Q=class i{constructor(e=0,t=0,r=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(r),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new i(0,0,0,0)}clone(){return new i(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,l=r*(1-s),d=r-l,h=a-l,u=a+n+l,f=c-l,m=c+o+l,g=a+d,x=a+n-d,b=c+d,y=c+o-d;return e>=h&&e<=u&&t>=f&&t<=m&&!(e>g&&e<x&&t>b&&t<y)}intersects(e,t){if(!t){let B=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=B)return!1;let M=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>M}let r=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=r||o<=n)return!1;let a=Bo[0].set(e.left,e.top),c=Bo[1].set(e.left,e.bottom),l=Bo[2].set(e.right,e.top),d=Bo[3].set(e.right,e.bottom);if(l.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(l,l),t.apply(d,d),Math.max(a.x,c.x,l.x,d.x)<=r||Math.min(a.x,c.x,l.x,d.x)>=s||Math.max(a.y,c.y,l.y,d.y)<=n||Math.min(a.y,c.y,l.y,d.y)>=o))return!1;let u=h*(c.y-a.y),f=h*(a.x-c.x),m=u*r+f*n,g=u*s+f*n,x=u*r+f*o,b=u*s+f*o;if(Math.max(m,g,x,b)<=u*a.x+f*a.y||Math.min(m,g,x,b)>=u*d.x+f*d.y)return!1;let y=h*(a.y-l.y),v=h*(l.x-a.x),w=y*r+v*n,S=y*s+v*n,T=y*r+v*o,C=y*s+v*o;return!(Math.max(w,S,T,C)<=y*a.x+v*a.y||Math.min(w,S,T,C)>=y*d.x+v*d.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),r=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(r-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let r=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=r-this.x,this.height=s-this.y,this}scale(e,t=e){return this.x*=e,this.y*=t,this.width*=e,this.height*=t,this}enlarge(e){let t=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=r-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new i),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,r=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<this.x+this.width&&r>=this.y&&r<this.y+this.height&&s>=this.x&&s<=this.x+this.width&&n>=this.y&&n<=this.y+this.height}set(e,t,r,s){return this.x=e,this.y=t,this.width=r,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var Yf,pe,et=p(()=>{ce();Ve();Yf=new k,pe=class i{constructor(e=1/0,t=1/0,r=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Yf,this.minX=e,this.minY=t,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Q);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Yf,this}set(e,t,r,s){this.minX=e,this.minY=t,this.maxX=r,this.maxY=s}addFrame(e,t,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,l=n.d,d=n.tx,h=n.ty,u=this.minX,f=this.minY,m=this.maxX,g=this.maxY,x=o*e+c*t+d,b=a*e+l*t+h;x<u&&(u=x),b<f&&(f=b),x>m&&(m=x),b>g&&(g=b),x=o*r+c*t+d,b=a*r+l*t+h,x<u&&(u=x),b<f&&(f=b),x>m&&(m=x),b>g&&(g=b),x=o*e+c*s+d,b=a*e+l*s+h,x<u&&(u=x),b<f&&(f=b),x>m&&(m=x),b>g&&(g=b),x=o*r+c*s+d,b=a*r+l*s+h,x<u&&(u=x),b<f&&(f=b),x>m&&(m=x),b>g&&(g=b),this.minX=u,this.minY=f,this.maxX=m,this.maxY=g}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:l,tx:d,ty:h}=e,u=o*t+c*r+d,f=a*t+l*r+h;this.minX=u,this.minY=f,this.maxX=u,this.maxY=f,u=o*s+c*r+d,f=a*s+l*r+h,this.minX=u<this.minX?u:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=u>this.maxX?u:this.maxX,this.maxY=f>this.maxY?f:this.maxY,u=o*t+c*n+d,f=a*t+l*n+h,this.minX=u<this.minX?u:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=u>this.maxX?u:this.maxX,this.maxY=f>this.maxY?f:this.maxY,u=o*s+c*n+d,f=a*s+l*n+h,this.minX=u<this.minX?u:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=u>this.maxX?u:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,r,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new i(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,r,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let l=s.a,d=s.b,h=s.c,u=s.d,f=s.tx,m=s.ty;for(let g=t;g<r;g+=2){let x=e[g],b=e[g+1],y=l*x+h*b+f,v=d*x+u*b+m;n=y<n?y:n,o=v<o?v:o,a=y>a?y:a,c=v>c?v:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var Ge,ft,Ar=p(()=>{ce();Zt();et();Ge=ye.getPool(k),ft=ye.getPool(pe)});var xv,$f,qf=p(()=>{ce();et();Ar();xv=new k,$f={getFastGlobalBounds(i,e){e||(e=new pe),e.clear(),this._getGlobalBoundsRecursive(!!i,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(i,e,t){let r=e;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=ft.get().clear()),this.boundsArea)e.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;r.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(i,r,t)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,r.applyMatrix(o.worldTransform)),this.effects[a].addBounds(r,!0));n&&r.applyMatrix(o.worldTransform.copyTo(xv).invert()),e.addBounds(r),ft.return(r)}else this.renderGroup&&(e.addBounds(r,this.relativeGroupTransform),ft.return(r))}}});function vi(i,e,t){t.clear();let r,s;return i.parent?e?r=i.parent.worldTransform:(s=Ge.get().identity(),r=Io(i,s)):r=k.IDENTITY,Kf(i,t,r,e),s&&Ge.return(s),t.isValid||t.set(0,0,0,0),t}function Kf(i,e,t,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=Ge.get(),s.appendFrom(i.localTransform,t));let n=e,o=!!i.effects.length;if(o&&(e=ft.get().clear()),i.boundsArea)e.addRect(i.boundsArea,s);else{let a=i.bounds;a&&!a.isEmpty()&&(e.matrix=s,e.addBounds(a));for(let c=0;c<i.children.length;c++)Kf(i.children[c],e,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(e);n.addBounds(e,k.IDENTITY),ft.return(e)}r||Ge.return(s)}function Io(i,e){let t=i.parent;return t&&(Io(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var bs=p(()=>{ce();Ar()});function Lt(i,e){if(i===16777215||!e)return e;if(e===16777215||!i)return i;let t=i>>16&255,r=i>>8&255,s=i&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,l=r*o/255|0,d=s*a/255|0;return(c<<16)+(l<<8)+d}var xs=p(()=>{"use strict"});function wi(i,e){return i===Zf?e:e===Zf?i:Lt(i,e)}var Zf,hl=p(()=>{xs();Zf=16777215});function Jt(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var Qf,Go=p(()=>{ce();bs();Ar();hl();Qf={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(i=new k,e){if(e)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let t=Io(this,Ge.get().identity());return i.appendFrom(this.localTransform,t),Ge.return(t),i},getGlobalTint(i){if(i)return this.renderGroup?Jt(this.renderGroup.worldColor):this.parentRenderGroup?Jt(wi(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=wi(e,t.localColor),t=t.parent;return Jt(e)}}});function Si(i,e,t){return e.clear(),t||(t=k.IDENTITY),Jf(i,e,t,i,!0),e.isValid||e.set(0,0,0,0),e}function Jf(i,e,t,r,s){let n;if(s)n=Ge.get(),n=t.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let c=i.localTransform;n=Ge.get(),n.appendFrom(c,t)}let o=e,a=!!i.effects.length;if(a&&(e=ft.get().clear()),i.boundsArea)e.addRect(i.boundsArea,n);else{i.renderPipeId&&(e.matrix=n,e.addBounds(i.bounds));let c=i.children;for(let l=0;l<c.length;l++)Jf(c[l],e,n,r,!1)}if(a){for(let c=0;c<i.effects.length;c++)i.effects[c].addLocalBounds?.(e,r);o.addBounds(e,k.IDENTITY),ft.return(e)}Ge.return(n)}var Fo=p(()=>{ce();Ar()});function ul(i,e){let t=i.children;for(let r=0;r<t.length;r++){let s=t[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&ul(s,e)}return e.didChange}var ep=p(()=>{"use strict"});var _v,tp,rp=p(()=>{ce();et();bs();Fo();ep();_v=new k,tp={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=i/e*t:this.scale.x=t},_setHeight(i,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=i/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new pe});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),ul(this,i),i.didChange&&Si(this,i.localBounds,_v),i.localBounds},getBounds(i,e){return vi(this,i,e||new pe)}}});var ip,sp=p(()=>{"use strict";ip={_onRender:null,set onRender(i){let e=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function yv(i,e){return i._zIndex-e._zIndex}var np,op=p(()=>{"use strict";np={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(i){this._zIndex!==i&&(this._zIndex=i,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(yv))}}});var ap,cp=p(()=>{Pt();Ar();ap={getGlobalPosition(i=new ae,e=!1){return this.parent?this.parent.toGlobal(this._position,i,e):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,e,t=!1){let r=this.getGlobalTransform(Ge.get(),t);return e=r.apply(i,e),Ge.return(r),e},toLocal(i,e,t,r){e&&(i=e.toGlobal(i,t,r));let s=this.getGlobalTransform(Ge.get(),r);return t=s.applyInverse(i,t),Ge.return(s),t}}});var hr,Uo=p(()=>{Ie();hr=class{constructor(){this.uid=Y("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}destroy(){this.instructions.length=0,this.renderables.length=0,this.renderPipes=null,this.gcTick=0}add(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function er(i){return i+=i===0?1:0,--i,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i+1}function fl(i){return!(i&i-1)&&!!i}var _s=p(()=>{"use strict"});function Do(i){let e={};for(let t in i)i[t]!==void 0&&(e[t]=i[t]);return e}var pl=p(()=>{"use strict"});function vv(i){let e=lp[i];return e===void 0&&(lp[i]=Y("resource")),e}var lp,dp,ot,Rr=p(()=>{Ne();Ie();_e();lp=Object.create(null);dp=class hp extends fe{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...hp.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){N(re,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this._sharedResourceId=null,this.emit("change",this)}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=vv(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};dp.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};ot=dp});var up,oe,je=p(()=>{Ne();_s();pl();Ie();Rr();up=class fp extends fe{constructor(e={}){super(),this.options=e,this._gpuData=Object.create(null),this._gcLastUsed=-1,this.uid=Y("textureSource"),this._resourceType="textureSource",this._resourceId=Y("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.viewDimension="2d",this.arrayLayerCount=1,this._ownsStyle=!1,this.antialias=!1,this.transient=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,e={...fp.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=e.format,this.dimension=e.dimensions,this.viewDimension=e.viewDimension??e.dimensions,this.arrayLayerCount=e.arrayLayerCount,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.transient=e.transient??!1,this.alphaMode=e.alphaMode,this.style=new ot(Do(e)),this._ownsStyle=!0,this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._ownsStyle=!1,this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}set maxAnisotropy(e){this._style.maxAnisotropy=e}get maxAnisotropy(){return this._style.maxAnisotropy}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this._style&&(this._ownsStyle&&this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=Y("resource"),this.emit("change",this),this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy?.();this._gpuData=Object.create(null)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,r){r||(r=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*r),n=Math.round(t*r);return this.width=s/r,this.height=n/r,this._resolution=r,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=Y("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=fl(this.pixelWidth)&&fl(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};up.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",viewDimension:"2d",arrayLayerCount:1,mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};oe=up});function wv(){for(let i=0;i<16;i++){let e=[];ml.push(e);for(let t=0;t<16;t++){let r=Lo(kr[i]*kr[t]+Ir[i]*Br[t]),s=Lo(Br[i]*kr[t]+Gr[i]*Br[t]),n=Lo(kr[i]*Ir[t]+Ir[i]*Gr[t]),o=Lo(Br[i]*Ir[t]+Gr[i]*Gr[t]);for(let a=0;a<16;a++)if(kr[a]===r&&Br[a]===s&&Ir[a]===n&&Gr[a]===o){e.push(a);break}}}for(let i=0;i<16;i++){let e=new k;e.set(kr[i],Br[i],Ir[i],Gr[i],0,0),pp.push(e)}}var kr,Br,Ir,Gr,ml,pp,Lo,ie,ys=p(()=>{ce();kr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Br=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Ir=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Gr=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],ml=[],pp=[],Lo=Math.sign;wv();ie={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:i=>kr[i],uY:i=>Br[i],vX:i=>Ir[i],vY:i=>Gr[i],inv:i=>i&8?i&15:-i&7,add:(i,e)=>ml[i][e],sub:(i,e)=>ml[i][ie.inv(e)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,e)=>Math.abs(i)*2<=Math.abs(e)?e>=0?ie.S:ie.N:Math.abs(e)*2<=Math.abs(i)?i>0?ie.E:ie.W:e>0?i>0?ie.SE:ie.SW:i>0?ie.NE:ie.NW,matrixAppendRotationInv:(i,e,t=0,r=0,s=0,n=0)=>{let o=pp[ie.inv(e)],a=o.a,c=o.b,l=o.c,d=o.d,h=t-Math.min(0,a*s,l*n,a*s+l*n),u=r-Math.min(0,c*s,d*n,c*s+d*n),f=i.a,m=i.b,g=i.c,x=i.d;i.a=a*f+c*g,i.b=a*m+c*x,i.c=l*f+d*g,i.d=l*m+d*x,i.tx=h*f+u*g+i.tx,i.ty=h*m+u*x+i.ty},transformRectCoords:(i,e,t,r)=>{let{x:s,y:n,width:o,height:a}=i,{x:c,y:l,width:d,height:h}=e;return t===ie.E?(r.set(s+c,n+l,o,a),r):t===ie.S?r.set(d-n-a+c,s+l,a,o):t===ie.W?r.set(d-s-o+c,h-n-a+l,o,a):t===ie.N?r.set(n+c,h-s-o+l,a,o):r.set(s+c,n+l,o,a)}}});var gl,mp=p(()=>{"use strict";gl=()=>{}});var Fr,bl=p(()=>{P();je();Fr=class extends oe{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),r=e.format;r||(t instanceof Float32Array?r="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?r="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?r="rgba16uint":(t instanceof Int8Array,r="bgra8unorm")),super({...e,resource:t,format:r}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};Fr.extension=_.TextureSource});var gp,Ti,xl=p(()=>{ce();gp=new k,Ti=class{constructor(e,t){this.mapCoord=new k,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this._texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this)),this.update()}destroy(){this._texture?.removeListener("update",this.update,this),this._texture=null}multiplyUvs(e,t){t===void 0&&(t=e);let r=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*r.a+o*r.c+r.tx,t[s+1]=n*r.b+o*r.d+r.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let r=e.orig,s=e.trim;s&&(gp.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(gp));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var U,ge=p(()=>{Ne();ys();Ve();Ie();_e();mp();bl();je();xl();U=class extends fe{constructor({source:e,label:t,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:l}={}){if(super(),this.uid=Y("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Q,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new oe,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:d,height:h}=this._source;this.frame.width=d,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=l||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new Ti(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:r,height:s}=this._source,n=t.x/r,o=t.y/s,a=t.width/r,c=t.height/s,l=this.rotate;if(l){let d=a/2,h=c/2,u=n+d,f=o+h;l=ie.add(l,ie.NW),e.x0=u+d*ie.uX(l),e.y0=f+h*ie.uY(l),l=ie.add(l,2),e.x1=u+d*ie.uX(l),e.y1=f+h*ie.uY(l),l=ie.add(l,2),e.x2=u+d*ie.uX(l),e.y2=f+h*ie.uY(l),l=ie.add(l,2),e.x3=u+d*ie.uX(l),e.y3=f+h*ie.uY(l)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&(this._source.off("resize",this.update,this),e&&(this._source.destroy(),this._source=null)),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return N(re,"Texture.baseTexture is now Texture.source"),this._source}};U.EMPTY=new U({label:"EMPTY",source:new oe({label:"EMPTY"})});U.EMPTY.destroy=gl;U.WHITE=new U({source:new Fr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});U.WHITE.destroy=gl});var Sv,_l,Pe,Ur=p(()=>{_s();Mr();je();ge();Rr();Sv=0,_l=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new ot(this.textureOptions)}createTexture(e,t,r,s){let n=new oe({...this.textureOptions,width:e,height:t,resolution:1,antialias:r,autoGarbageCollect:!1,autoGenerateMipmaps:s});return new U({source:n,label:`texturePool_${Sv++}`})}getOptimalTexture(e,t,r=1,s,n=!1){let o=Math.ceil(e*r-1e-6),a=Math.ceil(t*r-1e-6);o=er(o),a=er(a);let c=s?1:0,l=n?1:0,d=(o<<17)+(a<<2)+(l<<1)+c;this._texturePool[d]||(this._texturePool[d]=[]);let h=this._texturePool[d].pop();return h||(h=this.createTexture(o,a,s,n)),h.source._resolution=r,h.source.width=o/r,h.source.height=a/r,h.source.pixelWidth=o,h.source.pixelHeight=a,h.frame.x=0,h.frame.y=0,h.frame.width=e,h.frame.height=t,h.updateUvs(),this._poolKeyHash[h.uid]=d,h}getSameSizeTexture(e,t=!1){let r=e.source;return this.getOptimalTexture(e.width,e.height,r._resolution,t)}returnTexture(e,t=!1){let r=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[r].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let r=this._texturePool[t];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Pe=new _l;_t.register(Pe)});var Dr,yl=p(()=>{ce();Uo();Ur();Dr=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new k,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new hr,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let r=0;r<t.length;r++){let s=t[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Pe.returnTexture(this.texture,!0),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0;let e=this._parentCacheAsTextureRenderGroup;e&&!e.textureNeedsUpdate&&e.updateCacheTexture()}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let r=0;r<t.length;r++)this.addChild(t[r])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let r=0;r<t.length;r++)this.removeChild(t[r])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.indexOf(e)===-1&&this._onRenderContainers.push(e)}removeOnRender(e){let t=this._onRenderContainers.indexOf(e);t!==-1&&this._onRenderContainers.splice(t,1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(e=[]){let t=this.root.children;for(let r=0;r<t.length;r++)this._getChildren(t[r],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let r=e.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],t);return t}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new k),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new k),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new k),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this.isCachedAsTexture?this.textureOffsetInverseTransform:this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function bp(i,e,t={}){for(let r in e)!t[r]&&e[r]!==void 0&&(i[r]=e[r])}var xp=p(()=>{"use strict"});var vl,Oo,wl,No,Ei,vs,Lr,me,Mt=p(()=>{Ne();$e();Mf();P();ce();sl();Po();Ie();_e();he();Zt();Df();Of();Hf();Vf();Xf();qf();Go();rp();sp();op();cp();yl();xp();vl=new Be(null),Oo=new Be(null),wl=new Be(null,1,1),No=new Be(null),Ei=1,vs=2,Lr=4,me=class i extends fe{constructor(e={}){super(),this.uid=Y("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.parentRenderLayer=null,this.updateTick=-1,this.localTransform=new k,this.relativeGroupTransform=new k,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new Be(this,0,0),this._scale=wl,this._pivot=Oo,this._origin=No,this._skew=vl,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],bp(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){N("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),H.mixin(i,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||N(re,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],r=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),r&&(r.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,r&&r.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],r=this.children.indexOf(t);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,r),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=ye.get(Dr,this),this.groupTransform=k.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),ye.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new k),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*Rf}set angle(e){this.rotation=e*kf}get pivot(){return this._pivot===Oo&&(this._pivot=new Be(this,0,0)),this._pivot}set pivot(e){this._pivot===Oo&&(this._pivot=new Be(this,0,0),this._origin!==No&&O("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===vl&&(this._skew=new Be(this,0,0)),this._skew}set skew(e){this._skew===vl&&(this._skew=new Be(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===wl&&(this._scale=new Be(this,1,1)),this._scale}set scale(e){this._scale===wl&&(this._scale=new Be(this,0,0)),typeof e=="string"&&(e=parseFloat(e)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get origin(){return this._origin===No&&(this._origin=new Be(this,0,0)),this._origin}set origin(e){this._origin===No&&(this._origin=new Be(this,0,0),this._pivot!==Oo&&O("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof e=="number"?this._origin.set(e):this._origin.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let r=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,r.width),t!==void 0&&this._setHeight(t,r.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX:this.scale.x,typeof e.scaleY=="number"?e.scaleY:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this.origin.set(typeof e.originX=="number"?e.originX:this.origin.x,typeof e.originY=="number"?e.originY:this.origin.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,r=this._scale,s=this._pivot,n=this._origin,o=this._position,a=r._x,c=r._y,l=s._x,d=s._y,h=-n._x,u=-n._y;t.a=this._cx*a,t.b=this._sx*a,t.c=this._cy*c,t.d=this._sy*c,t.tx=o._x-(l*t.a+d*t.c)+(h*t.a+u*t.c)-h,t.ty=o._y-(l*t.b+d*t.d)+(h*t.b+u*t.d)-u}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=Ei,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let r=Z.shared.setValue(e??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=Ei,this._onUpdate())}get tint(){return Jt(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=vs,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Lr,this.localDisplayStatus^=2,this._onUpdate(),this.emit("visibleChanged",e))}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Lr,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=Lr,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._origin=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};H.mixin(me,Lf,$f,ap,ip,tp,Wf,jf,np,Pf,Uf,Qf,Nf)});var Ot,ws=p(()=>{"use strict";Ot=(i=>(i[i.INTERACTION=50]="INTERACTION",i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(Ot||{})});var Ci,_p=p(()=>{"use strict";Ci=class{constructor(e,t=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=r,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}}});var yp,Xe,Pi=p(()=>{ws();_p();yp=class pt{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Ci(null,null,1/0),this.deltaMS=1/pt.targetFPMS,this.elapsedMS=1/pt.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,r=Ot.NORMAL){return this._addListener(new Ci(e,t,r))}addOnce(e,t,r=Ot.NORMAL){return this._addListener(new Ci(e,t,r,!0))}_addListener(e){let t=this._head.next,r=this._head;if(!t)e.connect(r);else{for(;t;){if(e.priority>t.priority){e.connect(r);break}r=t,t=t.next}e.previous||e.connect(r)}return this._startIfPossible(),this}remove(e,t){let r=this._head.next;for(;r;)r.match(e,t)?r=r.destroy():r=r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*pt.targetFPMS;let r=this._head,s=r.next;for(;s;)s=s.emit(this);r.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(Math.max(0,e)/1e3,pt.targetFPMS);this._maxElapsedMS=1/t,this._minElapsedMS&&e>this.maxFPS&&(this.maxFPS=e)}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){e===0?this._minElapsedMS=0:(e<this.minFPS&&(this.minFPS=e),this._minElapsedMS=1/(e/1e3))}static get shared(){if(!pt._shared){let e=pt._shared=new pt;e.autoStart=!0,e._protected=!0}return pt._shared}static get system(){if(!pt._system){let e=pt._system=new pt;e.autoStart=!0,e._protected=!0}return pt._system}};yp.targetFPMS=.06;Xe=yp});var Mi,Sl=p(()=>{ws();Pi();Mi=class{constructor(e){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;let t=this._canvas.getBoundingClientRect(),r=this._canvas.width,s=this._canvas.height,n=t.width/r*this._renderer.resolution,o=t.height/s*this._renderer.resolution,a=t.left,c=t.top,l=`translate(${a}px, ${c}px) scale(${n}, ${o})`;l!==this._lastTransform&&(this._domElement.style.transform=l,this._lastTransform=l)},this._domElement=e.domElement,this._renderer=e.renderer,!(globalThis.OffscreenCanvas&&this._renderer.canvas instanceof OffscreenCanvas)&&(this._canvas=this._renderer.canvas,this._attachObserver())}get canvas(){return this._canvas}ensureAttached(){!this._domElement.parentNode&&this._canvas.parentNode&&(this._canvas.parentNode.appendChild(this._domElement),this.updateTranslation())}_attachObserver(){"ResizeObserver"in globalThis?(this._observer&&(this._observer.disconnect(),this._observer=null),this._observer=new ResizeObserver(e=>{for(let t of e){if(t.target!==this._canvas)continue;let r=this.canvas.width,s=this.canvas.height,n=t.contentRect.width/r*this._renderer.resolution,o=t.contentRect.height/s*this._renderer.resolution;(this._lastScaleX!==n||this._lastScaleY!==o)&&(this.updateTranslation(),this._lastScaleX=n,this._lastScaleY=o)}}),this._observer.observe(this._canvas)):this._tickerAttached||Xe.shared.add(this.updateTranslation,this,Ot.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&Xe.shared.remove(this.updateTranslation),this._domElement=null,this._renderer=null,this._canvas=null,this._tickerAttached=!1,this._lastTransform="",this._lastScaleX=null,this._lastScaleY=null}}});var ur,Ho=p(()=>{Pt();ur=class i{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=i.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new ae,this.page=new ae,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,r,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function Tv(i){return function(e){return e.test(i)}}function Ss(i){var e={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?e.userAgent=i:i&&i.userAgent&&(e={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var t=e.userAgent,r=t.split("[FBAN");typeof r[1]<"u"&&(t=r[0]),r=t.split("Twitter"),typeof r[1]<"u"&&(t=r[0]);var s=Tv(t),n={apple:{phone:s(Tl)&&!s(tr),ipod:s(vp),tablet:!s(Tl)&&(s(wp)||kp(e))&&!s(tr),universal:s(Sp),device:(s(Tl)||s(vp)||s(wp)||s(Sp)||kp(e))&&!s(tr)},amazon:{phone:s(Ai),tablet:!s(Ai)&&s(zo),device:s(Ai)||s(zo)},android:{phone:!s(tr)&&s(Ai)||!s(tr)&&s(El),tablet:!s(tr)&&!s(Ai)&&!s(El)&&(s(zo)||s(Tp)),device:!s(tr)&&(s(Ai)||s(zo)||s(El)||s(Tp))||s(/\bokhttp\b/i)},windows:{phone:s(tr),tablet:s(Ep),device:s(tr)||s(Ep)},other:{blackberry:s(Cp),blackberry10:s(Pp),opera:s(Mp),firefox:s(Rp),chrome:s(Ap),device:s(Cp)||s(Pp)||s(Mp)||s(Rp)||s(Ap)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var Tl,vp,wp,Sp,El,Tp,Ai,zo,tr,Ep,Cp,Pp,Mp,Ap,Rp,kp,Cl=p(()=>{Tl=/iPhone/i,vp=/iPod/i,wp=/iPad/i,Sp=/\biOS-universal(?:.+)Mac\b/i,El=/\bAndroid(?:.+)Mobile\b/i,Tp=/Android/i,Ai=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,zo=/Silk/i,tr=/Windows Phone/i,Ep=/\bWindows(?:.+)ARM\b/i,Cp=/BlackBerry/i,Pp=/BB10/i,Mp=/Opera Mini/i,Ap=/\b(CriOS|Chrome)(?:.+)Mobile/i,Rp=/Mobile(?:.+)Firefox\b/i,kp=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var Bp=p(()=>{Cl();Cl()});var Ev,Ip,Gp=p(()=>{Bp();Ev=Ss.default??Ss,Ip=Ev(globalThis.navigator)});var Cv,Fp,Pv,Mv,Up,Dp,Av,Rv,kv,Pl,Op,Np=p(()=>{Sl();Ho();P();Gp();ll();Cv=9,Fp=100,Pv=0,Mv=0,Up=2,Dp=1,Av=-1e3,Rv=-1e3,kv=2,Pl=class Lp{constructor(e,t=Ip){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pools={},this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._isRunningTests=!1,this._boundOnKeyDown=this._onKeyDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){let e=document.createElement("button");e.style.width=`${Dp}px`,e.style.height=`${Dp}px`,e.style.position="absolute",e.style.top=`${Av}px`,e.style.left=`${Rv}px`,e.style.zIndex=kv.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.position="absolute",this._div.style.top=`${Pv}px`,this._div.style.left=`${Mv}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=Up.toString(),this._canvasObserver=new Mi({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);let e=this._renderer.view.canvas;if(e.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(t.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let e of this._children)e._accessibleDiv?.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;for(let e in this._pools)this._pools[e].forEach(r=>{r.parentNode&&r.parentNode.removeChild(r)}),delete this._pools[e];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let r=0;r<t.length;r++)this._updateAccessibleObjects(t[r])}init(e){let r={accessibilityOptions:{...Lp.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=r.accessibilityOptions.debug,this._activateOnTab=r.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=r.accessibilityOptions.deactivateOnMouseMove,r.accessibilityOptions.enabledByDefault&&this._activate(),this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&t.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];t.has(r)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._getPool(s.accessibleType).push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,Ao(this._children,r,1))}this._renderer.renderingToScreen&&this._canvasObserver.ensureAttached();for(let r=0;r<this._children.length;r++){let s=this._children[r];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform;n.style.left=`${a.tx+o.x*a.a}px`,n.style.top=`${a.ty+o.y*a.d}px`,n.style.width=`${o.width*a.a}px`,n.style.height=`${o.height*a.d}px`}else this._capHitArea(o),n.style.left=`${o.x}px`,n.style.top=`${o.y}px`,n.style.width=`${o.width}px`,n.style.height=`${o.height}px`}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:r}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>r&&(e.height=r-e.y)}_addChild(e){let r=this._getPool(e.accessibleType).pop();r?(r.innerHTML="",r.removeAttribute("title"),r.removeAttribute("aria-label"),r.tabIndex=0):(e.accessibleType==="button"?r=document.createElement("button"):(r=document.createElement(e.accessibleType),r.style.cssText=`
5
5
  color: transparent;
6
6
  pointer-events: none;
7
7
  padding: 0;
@@ -14,7 +14,7 @@ Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!gi.noColor
14
14
  -webkit-user-select: none;
15
15
  -moz-user-select: none;
16
16
  -ms-user-select: none;
17
- `,t.accessibleText&&(r.innerText=t.accessibleText)),r.style.width=`${Sp}px`,r.style.height=`${Sp}px`,r.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",r.style.position="absolute",r.style.zIndex=Tp.toString(),r.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?r.setAttribute("aria-live","off"):r.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?r.setAttribute("aria-relevant","additions"):r.setAttribute("aria-relevant","text"),r.addEventListener("click",this._onClick.bind(this)),r.addEventListener("focus",this._onFocus.bind(this)),r.addEventListener("focusout",this._onFocusOut.bind(this))),r.style.pointerEvents=t.accessiblePointerEvents,r.type=t.accessibleType,t.accessibleTitle&&t.accessibleTitle!==null?r.title=t.accessibleTitle:(!t.accessibleHint||t.accessibleHint===null)&&(r.title=`container ${t.tabIndex}`),t.accessibleHint&&t.accessibleHint!==null&&r.setAttribute("aria-label",t.accessibleHint),t.interactive?r.tabIndex=t.tabIndex:r.tabIndex=0,this.debug&&this._updateDebugHTML(r),t._accessibleActive=!0,t._accessibleDiv=r,r.container=t,this._children.push(t),this._div.appendChild(t._accessibleDiv)}_dispatchEvent(t,e){let{container:r}=t.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,e.forEach(o=>s.dispatchEvent(n,o))}_onClick(t){this._dispatchEvent(t,["click","pointertap","tap"])}_onFocus(t){t.target.getAttribute("aria-live")||t.target.setAttribute("aria-live","assertive"),this._dispatchEvent(t,["mouseover"])}_onFocusOut(t){t.target.getAttribute("aria-live")||t.target.setAttribute("aria-live","polite"),this._dispatchEvent(t,["mouseout"])}_onKeyDown(t){t.keyCode!==fS||!this._activateOnTab||this._activate()}_onMouseMove(t){t.movementX===0&&t.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._canvasObserver?.destroy(),this._canvasObserver=null,this._div=null,this._pools=null,this._children=null,this._renderer=null,this._hookDiv=null,globalThis.removeEventListener("keydown",this._boundOnKeyDown),this._boundOnKeyDown=null,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._boundOnMouseMove=null}setAccessibilityEnabled(t){t?this._activate():this._deactivate()}_getPool(t){return this._pools[t]||(this._pools[t]=[]),this._pools[t]}};_c.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"accessibility"};_c.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};Ep=_c});var Mp,Ap=p(()=>{"use strict";Mp={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var Rp=p(()=>{P();Pe();Pp();Ap();z.add(Ep);z.mixin(mt,Mp)});var Cs,kp=p(()=>{P();pc();Cs=class{constructor(t){this._attachedDomElements=[],this._renderer=t,this._renderer.runners.postrender.add(this),this._renderer.runners.init.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}init(){this._canvasObserver=new wi({domElement:this._domElement,renderer:this._renderer})}addRenderable(t,e){this._attachedDomElements.includes(t)||this._attachedDomElements.push(t)}updateRenderable(t){}validateRenderable(t){return!0}postrender(){let t=this._attachedDomElements;if(t.length===0){this._domElement.remove();return}this._canvasObserver.ensureAttached();for(let e=0;e<t.length;e++){let r=t[e],s=r.element;if(!r.parent||r.globalDisplayStatus<7)s?.remove(),t.splice(e,1),e--;else{this._domElement.contains(s)||(s.style.position="absolute",s.style.pointerEvents="auto",this._domElement.appendChild(s));let n=r.worldTransform,o=r._anchor,a=r.width*o.x,l=r.height*o.y;s.style.transformOrigin=`${a}px ${l}px`,s.style.transform=`matrix(${n.a}, ${n.b}, ${n.c}, ${n.d}, ${n.tx-a}, ${n.ty-l})`,s.style.opacity=r.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let t=0;t<this._attachedDomElements.length;t++)this._attachedDomElements[t].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._canvasObserver.destroy(),this._renderer=null}};Cs.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"dom"}});var Le,Es=p(()=>{ie();Pe();Le=class extends mt{constructor(t){super(t),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this._bounds=new dt(0,1,0,0),this._boundsDirty=!0,this.autoGarbageCollect=t.autoGarbageCollect??!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(t){this._roundPixels=t?1:0}containsPoint(t){let e=this.bounds,{x:r,y:s}=t;return r>=e.minX&&r<=e.maxX&&s>=e.minY&&s<=e.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let t=this.renderGroup||this.parentRenderGroup;t&&t.onChildViewUpdate(this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.onViewUpdate()}destroy(t){this.unload(),super.destroy(t),this._bounds=null}collectRenderablesSimple(t,e,r){let{renderPipes:s}=e;s.blendMode.pushBlendMode(this,this.groupBlendMode,t);let o=s[this.renderPipeId];o?.addRenderable&&o.addRenderable(this,t),this.didViewUpdate=!1;let a=this.children,l=a.length;for(let c=0;c<l;c++)a[c].collectRenderables(t,e,r);s.blendMode.popBlendMode(t)}}});var Bp=p(()=>{P();kp();z.add(Cs)});var yc,Me,bc=p(()=>{Ts();Ti();yc=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(t){this.removeTickerListener(),this.events=t,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(t){this._pauseUpdate=t}addTickerListener(){this._tickerAdded||!this.domElement||(qt.system.add(this._tickerUpdate,this,De.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(qt.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let t=this.events._rootPointerEvent;this.events.supportsTouchEvents&&t.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:t.clientX,clientY:t.clientY,pointerType:t.pointerType,pointerId:t.pointerId}):new MouseEvent("mousemove",{clientX:t.clientX,clientY:t.clientY}))}_tickerUpdate(t){this._deltaTime+=t.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}destroy(){this.removeTickerListener(),this.events=null,this.domElement=null,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}},Me=new yc});var er,Do=p(()=>{Ee();Fo();er=class extends ur{constructor(){super(...arguments),this.client=new nt,this.movement=new nt,this.offset=new nt,this.global=new nt,this.screen=new nt}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(t,e,r){return t.worldTransform.applyInverse(r||this.global,e)}getModifierState(t){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(t,e,r,s,n,o,a,l,c,h,u,d,f,m,g){throw new Error("Method not implemented.")}}});var se,vc=p(()=>{Do();se=class extends er{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1,this.persistentDeviceId=0}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Oe,Sc=p(()=>{Do();Oe=class extends er{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Oe.DOM_DELTA_PIXEL=0;Oe.DOM_DELTA_LINE=1;Oe.DOM_DELTA_PAGE=2});var yS,bS,Ps,Lo,Ip=p(()=>{Ht();Ee();ht();bc();Do();vc();Sc();yS=2048,bS=new nt,Ps=new nt,Lo=class{constructor(t){this.dispatch=new ut,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=t,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(t,e){this.mappingTable[t]||(this.mappingTable[t]=[]),this.mappingTable[t].push({fn:e,priority:0}),this.mappingTable[t].sort((r,s)=>r.priority-s.priority)}dispatchEvent(t,e){t.propagationStopped=!1,t.propagationImmediatelyStopped=!1,this.propagate(t,e),this.dispatch.emit(e||t.type,t)}mapEvent(t){if(!this.rootTarget)return;let e=this.mappingTable[t.type];if(e)for(let r=0,s=e.length;r<s;r++)e[r].fn(t);else L(`[EventBoundary]: Event mapping not defined for ${t.type}`)}hitTest(t,e){Me.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,bS.set(t,e),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(t,e){if(!t.target)return;let r=t.composedPath();t.eventPhase=t.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;s++)if(t.currentTarget=r[s],this.notifyTarget(t,e),t.propagationStopped||t.propagationImmediatelyStopped)return;if(t.eventPhase=t.AT_TARGET,t.currentTarget=t.target,this.notifyTarget(t,e),!(t.propagationStopped||t.propagationImmediatelyStopped)){t.eventPhase=t.BUBBLING_PHASE;for(let s=r.length-2;s>=0;s--)if(t.currentTarget=r[s],this.notifyTarget(t,e),t.propagationStopped||t.propagationImmediatelyStopped)return}}all(t,e,r=this._allInteractiveElements){if(r.length===0)return;t.eventPhase=t.BUBBLING_PHASE;let s=Array.isArray(e)?e:[e];for(let n=r.length-1;n>=0;n--)s.forEach(o=>{t.currentTarget=r[n],this.notifyTarget(t,o)})}propagationPath(t){let e=[t];for(let r=0;r<yS&&t!==this.rootTarget&&t.parent;r++){if(!t.parent)throw new Error("Cannot find propagation path to disconnected target");e.push(t.parent),t=t.parent}return e.reverse(),e}hitTestMoveRecursive(t,e,r,s,n,o=!1){let a=!1;if(this._interactivePrune(t))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let h=t.children;for(let u=h.length-1;u>=0;u--){let d=h[u],f=this.hitTestMoveRecursive(d,this._isInteractive(e)?e:d.eventMode,r,s,n,o||n(t,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=t.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(t),f.push(t)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let l=this._isInteractive(e),c=t.isInteractive();return c&&c&&this._allInteractiveElements.push(t),o||this._hitElements.length>0?null:a?this._hitElements:l&&!n(t,r)&&s(t,r)?c?[t]:[]:null}hitTestRecursive(t,e,r,s,n){if(this._interactivePrune(t)||n(t,r))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let l=t.children,c=r;for(let h=l.length-1;h>=0;h--){let u=l[h],d=this.hitTestRecursive(u,this._isInteractive(e)?e:u.eventMode,c,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let f=t.isInteractive();return(d.length>0||f)&&d.push(t),d}}}let o=this._isInteractive(e),a=t.isInteractive();return o&&s(t,r)?a?[t]:[]:null}_isInteractive(t){return t==="static"||t==="dynamic"}_interactivePrune(t){return!t||!t.visible||!t.renderable||!t.measurable||t.eventMode==="none"||t.eventMode==="passive"&&!t.interactiveChildren}hitPruneFn(t,e){if(t.hitArea&&(t.worldTransform.applyInverse(e,Ps),!t.hitArea.contains(Ps.x,Ps.y)))return!0;if(t.effects&&t.effects.length)for(let r=0;r<t.effects.length;r++){let s=t.effects[r];if(s.containsPoint&&!s.containsPoint(e,this.hitTestFn))return!0}return!1}hitTestFn(t,e){return t.hitArea?!0:t?.containsPoint?(t.worldTransform.applyInverse(e,Ps),t.containsPoint(Ps)):!1}notifyTarget(t,e){if(!t.currentTarget.isInteractive())return;e??(e=t.type);let r=`on${e}`;t.currentTarget[r]?.(t);let s=t.eventPhase===t.CAPTURING_PHASE||t.eventPhase===t.AT_TARGET?`${e}capture`:e;this._notifyListeners(t,s),t.eventPhase===t.AT_TARGET&&this._notifyListeners(t,e)}mapPointerDown(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.createPointerEvent(t);if(this.dispatchEvent(e,"pointerdown"),e.pointerType==="touch")this.dispatchEvent(e,"touchstart");else if(e.pointerType==="mouse"||e.pointerType==="pen"){let s=e.button===2;this.dispatchEvent(e,s?"rightdown":"mousedown")}let r=this.trackingData(t.pointerId);r.pressTargetsByButton[t.button]=e.composedPath(),this.freeEvent(e)}mapPointerMove(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let e=this.createPointerEvent(t);this._isPointerMoveEvent=!1;let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.trackingData(t.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==e.target){let l=t.type==="mousemove"?"mouseout":"pointerout",c=this.createPointerEvent(t,l,n);if(this.dispatchEvent(c,"pointerout"),r&&this.dispatchEvent(c,"mouseout"),!e.composedPath().includes(n)){let h=this.createPointerEvent(t,"pointerleave",n);for(h.eventPhase=h.AT_TARGET;h.target&&!e.composedPath().includes(h.target);)h.currentTarget=h.target,this.notifyTarget(h),r&&this.notifyTarget(h,"mouseleave"),h.target=h.target.parent;this.freeEvent(h)}this.freeEvent(c)}if(n!==e.target){let l=t.type==="mousemove"?"mouseover":"pointerover",c=this.clonePointerEvent(e,l);this.dispatchEvent(c,"pointerover"),r&&this.dispatchEvent(c,"mouseover");let h=n?.parent;for(;h&&h!==this.rootTarget.parent&&h!==e.target;)h=h.parent;if(!h||h===this.rootTarget.parent){let d=this.clonePointerEvent(e,"pointerenter");for(d.eventPhase=d.AT_TARGET;d.target&&d.target!==n&&d.target!==this.rootTarget.parent;)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseenter"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(c)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(e,"pointermove"),a&&o.push("globalpointermove"),e.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(e,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(e,"mousemove"),a&&o.push("globalmousemove"),this.cursor=e.target?.cursor),o.length>0&&this.all(e,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=e.composedPath(),this.freeEvent(e)}mapPointerOver(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId),r=this.createPointerEvent(t),s=r.pointerType==="mouse"||r.pointerType==="pen";this.dispatchEvent(r,"pointerover"),s&&this.dispatchEvent(r,"mouseover"),r.pointerType==="mouse"&&(this.cursor=r.target?.cursor);let n=this.clonePointerEvent(r,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;e.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId);if(e.overTargets){let r=t.pointerType==="mouse"||t.pointerType==="pen",s=this.findMountedTarget(e.overTargets),n=this.createPointerEvent(t,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(t,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),r&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;e.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=performance.now(),r=this.createPointerEvent(t);if(this.dispatchEvent(r,"pointerup"),r.pointerType==="touch")this.dispatchEvent(r,"touchend");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let a=r.button===2;this.dispatchEvent(r,a?"rightup":"mouseup")}let s=this.trackingData(t.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[t.button]),o=n;if(n&&!r.composedPath().includes(n)){let a=n;for(;a&&!r.composedPath().includes(a);){if(r.currentTarget=a,this.notifyTarget(r,"pointerupoutside"),r.pointerType==="touch")this.notifyTarget(r,"touchendoutside");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let l=r.button===2;this.notifyTarget(r,l?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[t.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[t.button]||(s.clicksByButton[t.button]={clickCount:0,target:a.target,timeStamp:e});let l=s.clicksByButton[t.button];if(l.target===a.target&&e-l.timeStamp<200?++l.clickCount:l.clickCount=1,l.target=a.target,l.timeStamp=e,a.detail=l.clickCount,a.pointerType==="mouse"){let c=a.button===2;this.dispatchEvent(a,c?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(r)}mapPointerUpOutside(t){if(!(t instanceof se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId),r=this.findMountedTarget(e.pressTargetsByButton[t.button]),s=this.createPointerEvent(t);if(r){let n=r;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete e.pressTargetsByButton[t.button]}this.freeEvent(s)}mapWheel(t){if(!(t instanceof Oe)){L("EventBoundary cannot map a non-wheel event as a wheel event");return}let e=this.createWheelEvent(t);this.dispatchEvent(e),this.freeEvent(e)}findMountedTarget(t){if(!t)return null;let e=t[0];for(let r=1;r<t.length&&t[r].parent===e;r++)e=t[r];return e}createPointerEvent(t,e,r){let s=this.allocateEvent(se);return this.copyPointerData(t,s),this.copyMouseData(t,s),this.copyData(t,s),s.nativeEvent=t.nativeEvent,s.originalEvent=t,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof e=="string"&&(s.type=e),s}createWheelEvent(t){let e=this.allocateEvent(Oe);return this.copyWheelData(t,e),this.copyMouseData(t,e),this.copyData(t,e),e.nativeEvent=t.nativeEvent,e.originalEvent=t,e.target=this.hitTest(e.global.x,e.global.y),e}clonePointerEvent(t,e){let r=this.allocateEvent(se);return r.nativeEvent=t.nativeEvent,r.originalEvent=t.originalEvent,this.copyPointerData(t,r),this.copyMouseData(t,r),this.copyData(t,r),r.target=t.target,r.path=t.composedPath().slice(),r.type=e??r.type,r}copyWheelData(t,e){e.deltaMode=t.deltaMode,e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ}copyPointerData(t,e){t instanceof se&&e instanceof se&&(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.persistentDeviceId=t.persistentDeviceId)}copyMouseData(t,e){t instanceof er&&e instanceof er&&(e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.copyFrom(t.client),e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.copyFrom(t.movement),e.screen.copyFrom(t.screen),e.shiftKey=t.shiftKey,e.global.copyFrom(t.global))}copyData(t,e){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.detail=t.detail,e.view=t.view,e.which=t.which,e.layer.copyFrom(t.layer),e.page.copyFrom(t.page)}trackingData(t){return this.mappingState.trackingData[t]||(this.mappingState.trackingData[t]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[t]}allocateEvent(t){this.eventPool.has(t)||this.eventPool.set(t,[]);let e=this.eventPool.get(t).pop()||new t(this);return e.eventPhase=e.NONE,e.currentTarget=null,e.defaultPrevented=!1,e.path=null,e.target=null,e}freeEvent(t){if(t.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let e=t.constructor;this.eventPool.has(e)||this.eventPool.set(e,[]),this.eventPool.get(e).push(t)}_notifyListeners(t,e){let r=t.currentTarget._events[e];if(r)if("fn"in r)r.once&&t.currentTarget.removeListener(e,r.fn,void 0,!0),r.fn.call(r.context,t);else for(let s=0,n=r.length;s<n&&!t.propagationImmediatelyStopped;s++)r[s].once&&t.currentTarget.removeListener(e,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,t)}}});var vS,SS,wc,Oo,Cc=p(()=>{P();Ip();bc();vc();Sc();vS=1,SS={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},wc=class Tc{constructor(t){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=t,this.rootBoundary=new Lo(null),Me.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new se(null),this._rootWheelEvent=new Oe(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Tc.defaultEventFeatures},{set:(e,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),e[r]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(t){let{canvas:e,resolution:r}=this.renderer;this.setTargetElement(e),this.resolution=r,Tc._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(t){this.resolution=t}destroy(){Me.destroy(),this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(t){t||(t="default");let e=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(e=!1),this._currentCursor===t)return;this._currentCursor=t;let r=this.cursorStyles[t];if(r)switch(typeof r){case"string":e&&(this.domElement.style.cursor=r);break;case"function":r(t);break;case"object":e&&Object.assign(this.domElement.style,r);break}else e&&typeof t=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,t)&&(this.domElement.style.cursor=t)}get pointer(){return this._rootPointerEvent}_onPointerDown(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=this._normalizeToPointerData(t);this.autoPreventDefault&&e[0].isNormalized&&(t.cancelable||!("cancelable"in t))&&t.preventDefault();for(let r=0,s=e.length;r<s;r++){let n=e[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(t){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Me.pointerMoved();let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=t.target;t.composedPath&&t.composedPath().length>0&&(e=t.composedPath()[0]);let r=e!==this.domElement?"outside":"",s=this._normalizeToPointerData(t);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=r,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(t){if(!this.features.wheel)return;let e=this.normalizeWheelEvent(t);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(e)}setTargetElement(t){this._removeEvents(),this.domElement=t,Me.domElement=t,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Me.addTickerListener();let t=this.domElement.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="none",t.msTouchAction="none"):this.supportsPointerEvents&&(t.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Me.removeTickerListener();let t=this.domElement.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="",t.msTouchAction=""):this.supportsPointerEvents&&(t.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(t,e,r){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;t.x=(e-s.left)*(this.domElement.width/s.width)*n,t.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(t){let e=[];if(this.supportsTouchEvents&&t instanceof TouchEvent)for(let r=0,s=t.changedTouches.length;r<s;r++){let n=t.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=t.touches.length===1&&t.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=t.type,n.altKey??(n.altKey=t.altKey),n.ctrlKey??(n.ctrlKey=t.ctrlKey),n.metaKey??(n.metaKey=t.metaKey),n.shiftKey??(n.shiftKey=t.shiftKey),e.push(n)}else if(!globalThis.MouseEvent||t instanceof MouseEvent&&(!this.supportsPointerEvents||!(t instanceof globalThis.PointerEvent))){let r=t;typeof r.isPrimary>"u"&&(r.isPrimary=!0),typeof r.width>"u"&&(r.width=1),typeof r.height>"u"&&(r.height=1),typeof r.tiltX>"u"&&(r.tiltX=0),typeof r.tiltY>"u"&&(r.tiltY=0),typeof r.pointerType>"u"&&(r.pointerType="mouse"),typeof r.pointerId>"u"&&(r.pointerId=vS),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,e.push(r)}else e.push(t);return e}normalizeWheelEvent(t){let e=this._rootWheelEvent;return this._transferMouseData(e,t),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.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.nativeEvent=t,e.type=t.type,e}_bootstrapEvent(t,e){return t.originalEvent=null,t.nativeEvent=e,t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist,this._transferMouseData(t,e),this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.isTrusted=e.isTrusted,t.type==="pointerleave"&&(t.type="pointerout"),t.type.startsWith("mouse")&&(t.type=t.type.replace("mouse","pointer")),t.type.startsWith("touch")&&(t.type=SS[t.type]||t.type),t}_transferMouseData(t,e){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,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}};wc.extension={name:"events",type:[y.WebGLSystem,y.CanvasSystem,y.WebGPUSystem],priority:-1};wc.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Oo=wc});var Gp,Fp=p(()=>{Cc();Fo();Gp={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(i){this.eventMode=i?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Oo.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(i,t,e){let r=typeof e=="boolean"&&e||typeof e=="object"&&e.capture,s=typeof e=="object"?e.signal:void 0,n=typeof e=="object"?e.once===!0:!1,o=typeof t=="function"?void 0:t;i=r?`${i}capture`:i;let a=typeof t=="function"?t:t.handleEvent,l=this;s&&s.addEventListener("abort",()=>{l.off(i,a,o)}),n?l.once(i,a,o):l.on(i,a,o)},removeEventListener(i,t,e){let r=typeof e=="boolean"&&e||typeof e=="object"&&e.capture,s=typeof t=="function"?void 0:t;i=r?`${i}capture`:i,t=typeof t=="function"?t:t.handleEvent,this.off(i,t,s)},dispatchEvent(i){if(!(i instanceof ur))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=!1,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}}});var Up=p(()=>{P();Pe();Cc();Fp();z.add(Oo);z.mixin(mt,Gp)});var Ec,Dp=p(()=>{"use strict";Ec=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Ec||{})});var Lp,Op=p(()=>{"use strict";Lp={createCanvas:(i,t)=>{let e=document.createElement("canvas");return e.width=i,e.height=t,e},createImage:()=>new Image,getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,t)=>fetch(i,t),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")}});var Np,W,xt=p(()=>{Op();Np=Lp,W={get(){return Np},set(i){Np=i}}});function Ae(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function Ms(i){return i.split("?")[0].split("#")[0]}function TS(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wS(i,t,e){return i.replace(new RegExp(TS(t),"g"),e)}function CS(i,t){let e="",r=0,s=-1,n=0,o=-1;for(let a=0;a<=i.length;++a){if(a<i.length)o=i.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(e.length<2||r!==2||e.charCodeAt(e.length-1)!==46||e.charCodeAt(e.length-2)!==46){if(e.length>2){let l=e.lastIndexOf("/");if(l!==e.length-1){l===-1?(e="",r=0):(e=e.slice(0,l),r=e.length-1-e.lastIndexOf("/")),s=a,n=0;continue}}else if(e.length===2||e.length===1){e="",r=0,s=a,n=0;continue}}t&&(e.length>0?e+="/..":e="..",r=2)}else e.length>0?e+=`/${i.slice(s+1,a)}`:e=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return e}var Lr,Pc=p(()=>{xt();Lr={toPosix(i){return wS(i,"\\","/")},isUrl(i){return/^https?:/.test(this.toPosix(i))},isDataUrl(i){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(i)},isBlobUrl(i){return i.startsWith("blob:")},hasProtocol(i){return/^[^/:]+:/.test(this.toPosix(i))},getProtocol(i){Ae(i),i=this.toPosix(i);let t=/^file:\/\/\//.exec(i);if(t)return t[0];let e=/^[^/:]+:\/{0,2}/.exec(i);return e?e[0]:""},toAbsolute(i,t,e){if(Ae(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=Ms(this.toPosix(t??W.get().getBaseUrl())),s=Ms(this.toPosix(e??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Lr.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(Ae(i),i.length===0)return".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let t="",e=i.startsWith("/");this.hasProtocol(i)&&(t=this.rootname(i),i=i.slice(t.length));let r=i.endsWith("/");return i=CS(i,!1),i.length>0&&r&&(i+="/"),e?`/${i}`:t+i},isAbsolute(i){return Ae(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let t;for(let e=0;e<i.length;++e){let r=i[e];if(Ae(r),r.length>0)if(t===void 0)t=r;else{let s=i[e-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?t+=`/../${r}`:t+=`/${r}`}}return t===void 0?".":this.normalize(t)},dirname(i){if(Ae(i),i.length===0)return".";i=this.toPosix(i);let t=i.charCodeAt(0),e=t===47,r=-1,s=!0,n=this.getProtocol(i),o=i;i=i.slice(n.length);for(let a=i.length-1;a>=1;--a)if(t=i.charCodeAt(a),t===47){if(!s){r=a;break}}else s=!1;return r===-1?e?"/":this.isUrl(o)?n+i:n:e&&r===1?"//":n+i.slice(0,r)},rootname(i){Ae(i),i=this.toPosix(i);let t="";if(i.startsWith("/")?t="/":t=this.getProtocol(i),this.isUrl(i)){let e=i.indexOf("/",t.length);e!==-1?t=i.slice(0,e):t=i,t.endsWith("/")||(t+="/")}return t},basename(i,t){Ae(i),t&&Ae(t),i=Ms(this.toPosix(i));let e=0,r=-1,s=!0,n;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t.length===i.length&&t===i)return"";let o=t.length-1,a=-1;for(n=i.length-1;n>=0;--n){let l=i.charCodeAt(n);if(l===47){if(!s){e=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(l===t.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return e===r?r=a:r===-1&&(r=i.length),i.slice(e,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){e=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(e,r)},extname(i){Ae(i),i=Ms(this.toPosix(i));let t=-1,e=0,r=-1,s=!0,n=0;for(let o=i.length-1;o>=0;--o){let a=i.charCodeAt(o);if(a===47){if(!s){e=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?t===-1?t=o:n!==1&&(n=1):t!==-1&&(n=-1)}return t===-1||r===-1||n===0||n===1&&t===r-1&&t===e+1?"":i.slice(t,r)},parse(i){Ae(i);let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;i=Ms(this.toPosix(i));let e=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";t.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,l=-1,c=!0,h=i.length-1,u=0;for(;h>=s;--h){if(e=i.charCodeAt(h),e===47){if(!c){a=h+1;break}continue}l===-1&&(c=!1,l=h+1),e===46?o===-1?o=h:u!==1&&(u=1):o!==-1&&(u=-1)}return o===-1||l===-1||u===0||u===1&&o===l-1&&o===a+1?l!==-1&&(a===0&&r?t.base=t.name=i.slice(1,l):t.base=t.name=i.slice(a,l)):(a===0&&r?(t.name=i.slice(1,o),t.base=i.slice(1,l)):(t.name=i.slice(a,o),t.base=i.slice(a,l)),t.ext=i.slice(o,l)),t.dir=this.dirname(i),n&&(t.dir=n+t.dir),t},sep:"/",delimiter:":",joinExtensions:[".html"]}});var dr,Mc=p(()=>{"use strict";dr=(i,t,e=!1)=>(Array.isArray(i)||(i=[i]),t?i.map(r=>typeof r=="string"||e?t(r):r):i)});function zp(i,t,e,r,s){let n=t[e];for(let o=0;o<n.length;o++){let a=n[o];e<t.length-1?zp(i.replace(r[e],a),t,e+1,r,s):s.push(i.replace(r[e],a))}}function Hp(i){let t=/\{(.*?)\}/g,e=i.match(t),r=[];if(e){let s=[];e.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),zp(i,s,0,e,r)}else r.push(i);return r}var Wp=p(()=>{"use strict"});var Ac,Vp=p(()=>{"use strict";Ac=i=>!Array.isArray(i)});function ES(i){return i.split(".").pop().split("?").shift().split("#").shift()}var As,jp=p(()=>{ht();Pc();Mc();Wp();Vp();As=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(t,e)=>`${t}${this._bundleIdConnector}${e}`,extractAssetIdFromBundle:(t,e)=>e.replace(`${t}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(t){if(this._bundleIdConnector=t.connector??this._bundleIdConnector,this._createBundleAssetId=t.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=t.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...t){t.forEach(e=>{this._preferredOrder.push(e),e.priority||(e.priority=Object.keys(e.params))}),this._resolverHash={}}set basePath(t){this._basePath=t}get basePath(){return this._basePath}set rootPath(t){this._rootPath=t}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(t){if(typeof t=="string")this._defaultSearchParams=t;else{let e=t;this._defaultSearchParams=Object.keys(e).map(r=>`${encodeURIComponent(r)}=${encodeURIComponent(e[r])}`).join("&")}}getAlias(t){let{alias:e,src:r}=t;return dr(e||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}removeAlias(t,e){this._assetMap[t]&&(e&&e!==this._resolverHash[t]||(delete this._resolverHash[t],delete this._assetMap[t]))}addManifest(t){this._manifest&&L("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=t,t.bundles.forEach(e=>{this.addBundle(e.name,e.assets)})}addBundle(t,e){let r=[],s=e;Array.isArray(e)||(s=Object.entries(e).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,l;if(typeof a=="string"){let c=this._createBundleAssetId(t,a);r.push(c),l=[a,c]}else{let c=a.map(h=>this._createBundleAssetId(t,h));r.push(...c),l=[...a,...c]}this.add({...n,alias:l,src:o})}),this._bundles[t]=r}add(t){let e=[];Array.isArray(t)?e.push(...t):e.push(t);let r;r=n=>{this.hasKey(n)&&L(`[Resolver] already has key: ${n} overwriting`)},dr(e).forEach(n=>{let{src:o}=n,{data:a,format:l,loadParser:c,parser:h}=n,u=dr(o).map(g=>typeof g=="string"?Hp(g):Array.isArray(g)?g:[g]),d=this.getAlias(n);Array.isArray(d)?d.forEach(r):r(d);let f=[],m=g=>{let _=this._parsers.find(x=>x.test(g));return{src:g,..._?.parse(g)}};u.forEach(g=>{g.forEach(_=>{let x={};if(typeof _!="object"?x=m(_):(a=_.data??a,l=_.format??l,(_.loadParser||_.parser)&&(c=_.loadParser??c,h=_.parser??h),x={...m(_.src),..._}),!d)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:d,data:a,format:l,loadParser:c,parser:h,progressSize:n.progressSize}),f.push(x)})}),d.forEach(g=>{this._assetMap[g]=f})})}resolveBundle(t){let e=Ac(t);t=dr(t);let r={};return t.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let l in o){let c=o[l];a[this._extractAssetIdFromBundle(s,l)]=c}r[s]=a}}),e?r[t[0]]:r}resolveUrl(t){let e=this.resolve(t);if(typeof t!="string"){let r={};for(let s in e)r[s]=e[s].src;return r}return e.src}resolve(t){let e=Ac(t);t=dr(t);let r={};return t.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(l=>{let c=n.filter(h=>h[a]?h[a]===l:!1);c.length&&(n=c)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});r[s]=this._resolverHash[s]}),e?r[t[0]]:r}hasKey(t){return!!this._assetMap[t]}hasBundle(t){return!!this._bundles[t]}_getPreferredOrder(t){for(let e=0;e<t.length;e++){let r=t[e],s=this._preferredOrder.find(n=>n.params.format.includes(r.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(t){if(!this._defaultSearchParams)return t;let e=/\?/.test(t)?"&":"?";return`${t}${e}${this._defaultSearchParams}`}_buildResolvedAsset(t,e){let{aliases:r,data:s,loadParser:n,parser:o,format:a,progressSize:l}=e;return(this._basePath||this._rootPath)&&(t.src=Lr.toAbsolute(t.src,this._basePath,this._rootPath)),t.alias=r??t.alias??[t.src],t.src=this._appendDefaultSearchParams(t.src),t.data={...s||{},...t.data},t.loadParser=n??t.loadParser,t.parser=o??t.parser,t.format=a??t.format??ES(t.src),l!==void 0&&(t.progressSize=l),t}};As.RETINA_PREFIX=/@([0-9\.]+)x/});var Rc,Xp=p(()=>{"use strict";Rc=(i,t)=>{let e=t.split("?")[1];return e&&(i+=`?${e}`),i}});var Yp,kc,$p=p(()=>{Yt();$t();gt();Yp=class Rs{constructor(t,e){this.linkedSheets=[];let r=t;t?.source instanceof st&&(r={texture:t,data:e});let{texture:s,data:n,cachePrefix:o=""}=r;this.cachePrefix=o,this._texture=s instanceof F?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(t=>{this._callback=t,this._batchIndex=0,this._frameKeys.length<=Rs.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}parseSync(){return this._processFrames(0,!0),this._processAnimations(),this.textures}_processFrames(t,e=!1){let r=t,s=e?1/0:Rs.BATCH_SIZE;for(;r-t<s&&r<this._frameKeys.length;){let n=this._frameKeys[r],o=this._frames[n],a=o.frame;if(a){let l=null,c=null,h=o.trimmed!==!1&&o.sourceSize?o.sourceSize:o.frame,u=new J(0,0,Math.floor(h.w)/this.resolution,Math.floor(h.h)/this.resolution);o.rotated?l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.h)/this.resolution,Math.floor(a.w)/this.resolution):l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution),o.trimmed!==!1&&o.spriteSourceSize&&(c=new J(Math.floor(o.spriteSourceSize.x)/this.resolution,Math.floor(o.spriteSourceSize.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution)),this.textures[n]=new F({source:this.textureSource,frame:l,orig:u,trim:c,rotate:o.rotated?2:0,defaultAnchor:o.anchor,defaultBorders:o.borders,label:n.toString()})}r++}}_processAnimations(){let t=this.data.animations||{};for(let e in t){this.animations[e]=[];for(let r=0;r<t[e].length;r++){let s=t[e][r];this.animations[e].push(this.textures[s])}}}_parseComplete(){let t=this._callback;this._callback=null,this._batchIndex=0,t.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*Rs.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Rs.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(t=!1){for(let e in this.textures)this.textures[e].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,t&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};Yp.BATCH_SIZE=1e3;kc=Yp});function qp(i,t,e){let r={};if(i.forEach(s=>{r[s]=t}),Object.keys(t.textures).forEach(s=>{r[`${t.cachePrefix}${s}`]=t.textures[s]}),!e){let s=Lr.dirname(i[0]);t.linkedSheets.forEach((n,o)=>{let a=qp([`${s}/${t.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var PS,Kp,Zp=p(()=>{Dp();jp();Xp();P();gt();Pc();$p();PS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];Kp={extension:y.Asset,cache:{test:i=>i instanceof kc,getCacheableAssets:(i,t)=>qp(i,t,!1)},resolver:{extension:{type:y.ResolveParser,name:"resolveSpritesheet"},test:i=>{let e=i.split("?")[0].split("."),r=e.pop(),s=e.pop();return r==="json"&&PS.includes(s)},parse:i=>{let t=i.split(".");return{resolution:parseFloat(As.RETINA_PREFIX.exec(i)?.[1]??"1"),format:t[t.length-2],src:i}}},loader:{name:"spritesheetLoader",id:"spritesheet",extension:{type:y.LoadParser,priority:Ec.Normal,name:"spritesheetLoader"},async testParse(i,t){return Lr.extname(t.src).toLowerCase()===".json"&&!!i.frames},async parse(i,t,e){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=t?.data??{},a=Lr.dirname(t.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let l;if(r instanceof F)l=r;else{let u=Rc(a+(s??i.meta.image),t.src);l=(await e.load([{src:u,data:n}]))[u]}let c=new kc({texture:l.source,data:i,cachePrefix:o});await c.parse();let h=i?.meta?.related_multi_packs;if(Array.isArray(h)){let u=[];for(let f of h){if(typeof f!="string")continue;let m=a+f;t.data?.ignoreMultiPack||(m=Rc(m,t.src),u.push(e.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let d=await Promise.all(u);c.linkedSheets=d,d.forEach(f=>{f.linkedSheets=[c].concat(c.linkedSheets.filter(m=>m!==f))})}return c},async unload(i,t,e){await e.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var No=p(()=>{P();Zp();z.add(Kp)});function zo(i,t,e){let{width:r,height:s}=e.orig,n=e.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-t._x*r,i.maxX=i.minX+o,i.minY=n.y-t._y*s,i.maxY=i.minY+a}else i.minX=-t._x*r,i.maxX=i.minX+r,i.minY=-t._y*s,i.maxY=i.minY+s}var Bc=p(()=>{"use strict"});var he,Ho=p(()=>{vo();gt();Bc();yt();Es();he=class i extends Le{constructor(t=F.EMPTY){t instanceof F&&(t={texture:t});let{texture:e=F.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=t;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:e.defaultAnchor&&(this.anchor=e.defaultAnchor),this.texture=e,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(t,e=!1){return t instanceof F?new i(t):new i(F.from(t,e))}set texture(t){t||(t=F.EMPTY);let e=this._texture;e!==t&&(e&&e.dynamic&&e.off("update",this.onViewUpdate,this),t.dynamic&&t.on("update",this.onViewUpdate,this),this._texture=t,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return zo(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return O("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let t=this._anchor,e=this._texture,r=this._bounds,{width:s,height:n}=e.orig;r.minX=-t._x*s,r.maxX=r.minX+s,r.minY=-t._y*n,r.maxY=r.minY+n}destroy(t=!1){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(t){this._setWidth(t,this._texture.orig.width),this._width=t}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(t){this._setHeight(t,this._texture.orig.height),this._height=t}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this._texture.orig.width,t.height=Math.abs(this.scale.y)*this._texture.orig.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this._texture.orig.width),e!==void 0&&this._setHeight(e,this._texture.orig.height)}}});function Wo(i,t,e){let r=MS;i.measurable=!0,xi(i,e,r),t.addBoundsMask(r),i.measurable=!1}var MS,Ic=p(()=>{ie();_s();MS=new dt});function Vo(i,t,e){let r=fe.get();i.measurable=!0;let s=Ut.get().identity(),n=Qp(i,e,s);yi(i,r,n),i.measurable=!1,t.addBoundsMask(r),Ut.return(s),fe.return(r)}function Qp(i,t,e){return i?(i!==t&&(Qp(i.parent,t,e),i.updateLocalTransform(),e.append(i.localTransform)),e):(L("Mask bounds, renderable is not inside the root container"),e)}var Gc=p(()=>{Ao();Mr();ht()});var ks,Jp=p(()=>{P();Ho();Ic();Gc();ks=class{constructor(t){this.priority=0,this.inverse=!1,this.channel="red",this.pipe="alphaMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.renderMaskToTexture=!(t instanceof he),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask=null)}addBounds(t,e){this.inverse||Wo(this.mask,t,e)}addLocalBounds(t,e){Vo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof he}};ks.extension=y.MaskEffect});var Bs,tm=p(()=>{P();Bs=class{constructor(t){this.priority=0,this.pipe="colorMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t}destroy(){}static test(t){return typeof t=="number"}};Bs.extension=y.MaskEffect});var Is,em=p(()=>{P();Pe();Ic();Gc();Is=class{constructor(t){this.priority=0,this.pipe="stencilMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null)}addBounds(t,e){Wo(this.mask,t,e)}addLocalBounds(t,e){Vo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof mt}};Is.extension=y.MaskEffect});var Tt,fr=p(()=>{xt();P();$t();Tt=class extends st{constructor(t){t.resource||(t.resource=W.get().createCanvas()),t.width||(t.width=t.resource.width,t.autoDensity||(t.width/=t.resolution)),t.height||(t.height=t.resource.height,t.autoDensity||(t.height/=t.resolution)),super(t),this.uploadMethodId="image",this.autoDensity=t.autoDensity,this.resizeCanvas(),this.transparent=!!t.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(t=this.width,e=this.height,r=this._resolution){let s=super.resize(t,e,r);return s&&this.resizeCanvas(),s}static test(t){return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&t instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};Tt.extension=y.TextureSource});var Re,jo=p(()=>{P();$t();Re=class extends st{constructor(t){super(t),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(t){return globalThis.HTMLImageElement&&t instanceof HTMLImageElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||globalThis.VideoFrame&&t instanceof VideoFrame}};Re.extension=y.TextureSource});async function rm(){return Fc??(Fc=(async()=>{let t=W.get().createCanvas(1,1).getContext("webgl");if(!t)return"premultiply-alpha-on-upload";let e=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!e)return"premultiply-alpha-on-upload";let r=t.createTexture();t.bindTexture(t.TEXTURE_2D,r);let s=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,s),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e);let n=new Uint8Array(4);return t.readPixels(0,0,1,1,t.RGBA,t.UNSIGNED_BYTE,n),t.deleteFramebuffer(s),t.deleteTexture(r),t.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Fc}var Fc,im=p(()=>{xt()});var Xo,nm,om=p(()=>{P();Ti();im();$t();Xo=class sm extends st{constructor(t){super(t),this.isReady=!1,this.uploadMethodId="video",t={...sm.defaultOptions,...t},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==!1,this.alphaMode=t.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),this._onLoadedMetadata=this._onLoadedMetadata.bind(this),t.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let t=qt.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-t)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let t=this.resource,e=this.options;return(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._isSourceReady()?this._mediaReady():(e.preload||t.addEventListener("canplay",this._onCanPlay),t.addEventListener("canplaythrough",this._onCanPlayThrough),t.addEventListener("error",this._onError,!0)),this.isValid||t.addEventListener("loadedmetadata",this._onLoadedMetadata),this.alphaMode=await rm(),this._load=new Promise((r,s)=>{this.isValid?r(this):(this._resolve=r,this._reject=s,e.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${e.preloadTimeoutMs}ms`))})),t.load())}),this._load}_onError(t){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",t),this._reject&&(this._reject(t),this._reject=null,this._resolve=null)}_isSourcePlaying(){let t=this.resource;return!t.paused&&!t.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onLoadedMetadata(){this.isValid&&this._mediaReady()}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlayThrough),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let t=this.resource;this.isValid&&(this.isReady=!0,this.resize(t.videoWidth,t.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&this.isValid&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let t=this.resource;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._onCanPlayThrough),t.removeEventListener("loadedmetadata",this._onLoadedMetadata),t.removeEventListener("error",this._onError,!0),t.pause(),t.src="",t.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t!==this._autoUpdate&&(this._autoUpdate=t,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(t){t!==this._updateFPS&&(this._updateFPS=t,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(qt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(qt.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(qt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(t){return globalThis.HTMLVideoElement&&t instanceof HTMLVideoElement}};Xo.extension=y.TextureSource;Xo.defaultOptions={...st.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Xo.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};nm=Xo});var Uc,Or,am=p(()=>{ht();Mc();Uc=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(t){return this._cache.has(t)}get(t){let e=this._cache.get(t);return e||L(`[Assets] Asset id ${t} was not found in the Cache`),e}set(t,e){let r=dr(t),s;for(let l=0;l<this.parsers.length;l++){let c=this.parsers[l];if(c.test(e)){s=c.getCacheableAssets(r,e);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(l=>{n.set(l,e)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(l=>{this._cacheMap.set(l,a)}),o.forEach(l=>{let c=s?s[l]:e;this._cache.has(l)&&this._cache.get(l)!==c&&L("[Cache] already has key:",l),this._cache.set(l,n.get(l))})}remove(t){if(!this._cacheMap.has(t)){L(`[Assets] Asset id ${t} was not found in the Cache`);return}let e=this._cacheMap.get(t);e.cacheKeys.forEach(s=>{this._cache.delete(s)}),e.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},Or=new Uc});function lm(i={}){let t=i&&i.resource,e=t?i.resource:i,r=t?i:{resource:i};for(let s=0;s<Dc.length;s++){let n=Dc[s];if(n.test(e))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function cm(i={},t=!1){let e=i&&i.resource,r=e?i.resource:i,s=e?i:{resource:i};if(!t&&Or.has(r))return Or.get(r);let n=new F({source:lm(s)});return n.on("destroy",()=>{Or.has(r)&&Or.remove(r)}),t||Or.set(r,n),n}function hm(i,t=!1){return typeof i=="string"?Or.get(i):i instanceof st?new F({source:i}):cm(i,t)}var Dc,Lc=p(()=>{am();P();$t();gt();Dc=[];z.handleByList(y.TextureSource,Dc);F.from=hm;st.from=lm});var Yo=p(()=>{P();Jp();tm();em();lc();fr();jo();om();Lc();z.add(ks,Bs,Is,nm,Re,Tt,Gr)});function um(i){let t=W.get().createCanvas(6,1),e=t.getContext("2d");return e.fillStyle=i,e.fillRect(0,0,6,1),t}function $o(){if(Ei!==void 0)return Ei;try{let i=um("#ff00ff"),t=um("#ffff00"),r=W.get().createCanvas(6,1).getContext("2d");r.globalCompositeOperation="multiply",r.drawImage(i,0,0),r.drawImage(t,2,0);let s=r.getImageData(2,0,1,1);if(!s)Ei=!1;else{let n=s.data;Ei=n[0]===255&&n[1]===0&&n[2]===0}}catch{Ei=!1}return Ei}var Ei,Oc=p(()=>{xt()});var Z,Pi=p(()=>{Qt();xt();vs();Oc();Z={canvas:null,convertTintToImage:!1,cacheStepsPerColorChannel:8,canUseMultiply:$o(),tintMethod:null,_canvasSourceCache:new WeakMap,_unpremultipliedCache:new WeakMap,getCanvasSource:i=>{let t=i.source,e=t?.resource;if(!e)return null;let r=t.alphaMode==="premultiplied-alpha",s=t.resourceWidth??t.pixelWidth,n=t.resourceHeight??t.pixelHeight,o=s!==t.pixelWidth||n!==t.pixelHeight;if(r){if((e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)&&!o)return e;let a=Z._unpremultipliedCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas}if(e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof ArrayBuffer){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d"),h=c.createImageData(t.pixelWidth,t.pixelHeight),u=h.data,d=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.format==="bgra8unorm")for(let f=0;f<u.length&&f+3<d.length;f+=4)u[f]=d[f+2],u[f+1]=d[f+1],u[f+2]=d[f],u[f+3]=d[f+3];else u.set(d.subarray(0,u.length));return c.putImageData(h,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}if(r){let a=W.get().createCanvas(t.pixelWidth,t.pixelHeight),l=a.getContext("2d",{willReadFrequently:!0});a.width=t.pixelWidth,a.height=t.pixelHeight,l.drawImage(e,0,0);let c=l.getImageData(0,0,a.width,a.height),h=c.data;for(let u=0;u<h.length;u+=4){let d=h[u+3];if(d>0){let f=255/d;h[u]=Math.min(255,h[u]*f+.5),h[u+1]=Math.min(255,h[u+1]*f+.5),h[u+2]=Math.min(255,h[u+2]*f+.5)}}return l.putImageData(c,0,0),Z._unpremultipliedCache.set(t,{canvas:a,resourceId:t._resourceId}),a}if(o){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d");return l.width=t.pixelWidth,l.height=t.pixelHeight,c.drawImage(e,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}return e},getTintedCanvas:(i,t)=>{let e=i.texture,r=Q.shared.setValue(t).toHex(),s=e.tintCache||(e.tintCache={}),n=s[r],o=e.source._resourceId;if(n?.tintId===o)return n;let a=n&&"getContext"in n?n:W.get().createCanvas();if(Z.tintMethod(e,t,a),a.tintId=o,Z.convertTintToImage&&a.toDataURL!==void 0){let l=W.get().createImage();l.src=a.toDataURL(),l.tintId=o,s[r]=l}else s[r]=a;return s[r]},getTintedPattern:(i,t)=>{let e=Q.shared.setValue(t).toHex(),r=i.patternCache||(i.patternCache={}),s=i.source._resourceId,n=r[e];return n?.tintId===s||(Z.canvas||(Z.canvas=W.get().createCanvas()),Z.tintMethod(i,t,Z.canvas),n=Z.canvas.getContext("2d").createPattern(Z.canvas,"repeat"),n.tintId=s,r[e]=n),n},applyPatternTransform:(i,t,e=!0)=>{if(!t)return;let r=i;if(!r.setTransform)return;let s=globalThis.DOMMatrix;if(!s)return;let n=new s([t.a,t.b,t.c,t.d,t.tx,t.ty]);r.setTransform(e?n.inverse():n)},tintWithMultiply:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="multiply";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.globalCompositeOperation="destination-atop",r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithOverlay:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy",r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="destination-atop";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithPerPixel:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore();let u=t>>16&255,d=t>>8&255,f=t&255,m=r.getImageData(0,0,l,c),g=m.data;for(let _=0;_<g.length;_+=4)g[_]=g[_]*u/255,g[_+1]=g[_+1]*d/255,g[_+2]=g[_+2]*f/255;r.putImageData(m,0,0)},_applyInverseRotation:(i,t,e,r)=>{let s=it.inv(t),n=it.uX(s),o=it.uY(s),a=it.vX(s),l=it.vY(s),c=-Math.min(0,n*e,a*r,n*e+a*r),h=-Math.min(0,o*e,l*r,o*e+l*r);i.transform(n,o,a,l,c,h)}};Z.tintMethod=Z.canUseMultiply?Z.tintWithMultiply:Z.tintWithPerPixel});var Nc,rr,qo=p(()=>{xt();bs();Pr();Nc=class{constructor(t){this._canvasPool=Object.create(null),this.canvasOptions=t||{},this.enableFullScreen=!1}_createCanvasAndContext(t,e){let r=W.get().createCanvas();r.width=t,r.height=e;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(t,e,r=1){t=Math.ceil(t*r-1e-6),e=Math.ceil(e*r-1e-6),t=Je(t),e=Je(e);let s=(t<<17)+(e<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(t,e)),n}returnCanvasAndContext(t){let e=t.canvas,{width:r,height:s}=e,n=(r<<17)+(s<<1);t.context.resetTransform(),t.context.clearRect(0,0,r,s),this._canvasPool[n].push(t)}clear(){this._canvasPool={}}},rr=new Nc;ye.register(rr)});function Ko(i){let t=i.length;if(t<6)return 1;let e=0;for(let r=0,s=i[t-2],n=i[t-1];r<t;r+=2){let o=i[r],a=i[r+1];e+=(o-s)*(a+n),s=o,n=a}return e<0?-1:1}var zc=p(()=>{"use strict"});function dm(i,t,e,r,s,n){let o=i-e,a=t-r,l=s-e,c=n-r,h=o*l+a*c,u=l*l+c*c,d=-1;u!==0&&(d=h/u);let f,m;d<0?(f=e,m=r):d>1?(f=s,m=n):(f=e+d*l,m=r+d*c);let g=i-f,_=t-m;return g*g+_*_}var fm=p(()=>{"use strict"});function Hc(i,t,e,r,s,n,o,a){let l=o-e,c=a-r,h=s-e,u=n-r,d=i-e,f=t-r,m=l*l+c*c,g=l*h+c*u,_=l*d+c*f,x=h*h+u*u,b=h*d+u*f,v=1/(m*x-g*g),S=(x*_-g*b)*v,T=(m*b-g*_)*v;return S>=0&&T>=0&&S+T<1}var pm=p(()=>{"use strict"});var Zo,mm=p(()=>{Yt();Zo=class i{constructor(t=0,e=0,r=0){this.type="circle",this.x=t,this.y=e,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(t,e){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-t,n=this.y-e;return s*=s,n*=n,s+n<=r}strokeContains(t,e,r,s=.5){if(this.radius===0)return!1;let n=this.x-t,o=this.y-e,a=this.radius,l=(1-s)*r,c=Math.sqrt(n*n+o*o);return c<=a+l&&c>a-(r-l)}getBounds(t){return t||(t=new J),t.x=this.x-this.radius,t.y=this.y-this.radius,t.width=this.radius*2,t.height=this.radius*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var Qo,gm=p(()=>{Yt();Qo=class i{constructor(t=0,e=0,r=0,s=0){this.type="ellipse",this.x=t,this.y=e,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(t,e){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(t-this.x)/this.halfWidth,s=(e-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(t,e,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),l=r-a,c=n-l,h=o-l,u=n+a,d=o+a,f=t-this.x,m=e-this.y,g=f*f/(c*c)+m*m/(h*h),_=f*f/(u*u)+m*m/(d*d);return g>1&&_<=1}getBounds(t){return t||(t=new J),t.x=this.x-this.halfWidth,t.y=this.y-this.halfHeight,t.width=this.halfWidth*2,t.height=this.halfHeight*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.halfWidth=t.halfWidth,this.halfHeight=t.halfHeight,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});var AS,RS,Mi,xm=p(()=>{yt();zc();fm();Yt();Mi=class i{constructor(...t){this.type="polygon";let e=Array.isArray(t[0])?t[0]:t;if(typeof e[0]!="number"){let r=[];for(let s=0,n=e.length;s<n;s++)r.push(e[s].x,e[s].y);e=r}this.points=e,this.closePath=!0}isClockwise(){let t=0,e=this.points,r=e.length;for(let s=0;s<r;s+=2){let n=e[s],o=e[s+1],a=e[(s+2)%r],l=e[(s+3)%r];t+=(a-n)*(l+o)}return t<0}containsPolygon(t){let e=this.getBounds(AS),r=t.getBounds(RS);if(!e.containsRect(r))return!1;let s=t.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let t=this.points.slice(),e=new i(t);return e.closePath=this.closePath,e}contains(t,e){let r=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],l=this.points[n*2+1],c=this.points[o*2],h=this.points[o*2+1];l>e!=h>e&&t<(c-a)*((e-l)/(h-l))+a&&(r=!r)}return r}strokeContains(t,e,r,s=.5){let{points:n}=this,o=s===.5?s:(s-.5)*Ko(n)+.5,a=r*o,l=r-a,c=a*a,h=l*l,u=n.length-(this.closePath?0:2);for(let d=0;d<u;d+=2){let f=n[d],m=n[d+1],g=n[(d+2)%n.length],_=n[(d+3)%n.length],x=dm(t,e,f,m,g,_),b=Math.sign((g-f)*(e-m)-(_-m)*(t-f));if(x<=(b<0?c:h))return!0}return!1}getBounds(t){t||(t=new J);let e=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,l=e.length;a<l;a+=2){let c=e[a],h=e[a+1];r=c<r?c:r,s=c>s?c:s,n=h<n?h:n,o=h>o?h:o}return t.x=r,t.width=s-r,t.y=n,t.height=o-n,t}copyFrom(t){return this.points=t.points.slice(),this.closePath=t.closePath,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((t,e)=>`${t}, ${e}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return O("8.11.0","Polygon.lastX is deprecated, please use Polygon.lastX instead."),this.points[this.points.length-2]}get y(){return O("8.11.0","Polygon.y is deprecated, please use Polygon.lastY instead."),this.points[this.points.length-1]}get startX(){return this.points[0]}get startY(){return this.points[1]}}});var Jo,ta,_m=p(()=>{Yt();Jo=(i,t,e,r,s,n,o)=>{let a=i-e,l=t-r,c=Math.sqrt(a*a+l*l);return c>=s-n&&c<=s+o},ta=class i{constructor(t=0,e=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=t,this.y=e,this.width=r,this.height=s,this.radius=n}getBounds(t){return t||(t=new J),t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){if(this.width<=0||this.height<=0)return!1;if(t>=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(e>=this.y+r&&e<=this.y+this.height-r||t>=this.x+r&&t<=this.x+this.width-r)return!0;let s=t-(this.x+r),n=e-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=t-(this.x+this.width-r),s*s+n*n<=o)||(n=e-(this.y+this.height-r),s*s+n*n<=o)||(s=t-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(t,e,r,s=.5){let{x:n,y:o,width:a,height:l,radius:c}=this,h=r*(1-s),u=r-h,d=n+c,f=o+c,m=a-c*2,g=l-c*2,_=n+a,x=o+l;return(t>=n-h&&t<=n+u||t>=_-u&&t<=_+h)&&e>=f&&e<=f+g||(e>=o-h&&e<=o+u||e>=x-u&&e<=x+h)&&t>=d&&t<=d+m?!0:t<d&&e<f&&Jo(t,e,d,f,c,u,h)||t>_-c&&e<f&&Jo(t,e,_-c,f,c,u,h)||t>_-c&&e>x-c&&Jo(t,e,_-c,x-c,c,u,h)||t<d&&e>x-c&&Jo(t,e,d,x-c,c,u,h)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function ea(i,t){t.clear();let e=t.matrix;for(let r=0;r<i.length;r++){let s=i[r];if(s.globalDisplayStatus<7)continue;let n=s.renderGroup??s.parentRenderGroup;n?.isCachedAsTexture?t.matrix=ym.copyFrom(n.textureOffsetInverseTransform).append(s.worldTransform):n?._parentCacheAsTextureRenderGroup?t.matrix=ym.copyFrom(n._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(s.groupTransform):t.matrix=s.worldTransform,t.addBounds(s.bounds)}return t.matrix=e,t}var ym,Wc=p(()=>{ot();ym=new k});function ra(i,t,e,r,s=!1){let n=kS;n.minX=0,n.minY=0,n.maxX=i.width/r|0,n.maxY=i.height/r|0;let o=Mt.getOptimalTexture(n.width,n.height,r,!1,s);return o.source.uploadMethodId="image",o.source.resource=i,o.source.alphaMode="premultiply-alpha-on-upload",o.frame.width=t/r,o.frame.height=e/r,o.source.emit("update",o.source),o.updateUvs(),o}var kS,Vc=p(()=>{Fr();ie();kS=new dt});function bm(i){return typeof i.getCanvasFilterString=="function"}var jc,Gs,vm=p(()=>{P();Pi();qo();ie();Wc();Vc();jc=class{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new dt,this.cssFilterString=""}},Gs=class{constructor(t){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=t}push(t){let e=this._pushFilterFrame(),r=t.filterEffect.filters;if(e.skip=!1,e.useClip=!1,e.filters=r,e.container=t.container,e.cssFilterString="",r.every(l=>!l.enabled)){e.skip=!0;return}let s=[],n=1;for(let l of r){if(!l.enabled)continue;if(!bm(l)){this._warnUnsupportedFilter(l);continue}let c=l.getCanvasFilterString();if(c===null){this._warnUnsupportedFilter(l);continue}c&&s.push(c)}if(s.length===0&&n===1){e.skip=!0;return}e.cssFilterString=s.join(" "),this._calculateFilterArea(t,e.bounds),e.useClip=!!t.filterEffect.filterArea;let o=this.renderer.canvasContext.activeContext,a=o.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),e.useClip&&Number.isFinite(e.bounds.width)&&Number.isFinite(e.bounds.height)&&e.bounds.width>0&&e.bounds.height>0){let l=this.renderer.canvasContext.activeResolution||1;o.save(),o.setTransform(1,0,0,1,0,0),o.beginPath(),o.rect(e.bounds.x*l,e.bounds.y*l,e.bounds.width*l,e.bounds.height*l),o.clip()}else e.useClip=!1;n!==1&&(this._alphaMultiplier*=n),e.cssFilterString&&(o.filter=a!=="none"?`${a} ${e.cssFilterString}`:e.cssFilterString)}pop(){let t=this._popFilterFrame();if(t.skip)return;let e=this._savedStates.pop();if(!e)return;let r=this.renderer.canvasContext.activeContext;t.useClip?r.restore():r.filter=e.filter,this._alphaMultiplier=e.alphaMultiplier}generateFilteredTexture({texture:t,filters:e}){if(!e?.length||e.every(x=>!x.enabled))return t;let r=[],s=1;for(let x of e){if(!x.enabled)continue;if(!bm(x)){this._warnUnsupportedFilter(x);continue}let b=x.getCanvasFilterString();if(b===null){this._warnUnsupportedFilter(x);continue}b&&r.push(b)}if(r.length===0&&s===1)return t;let n=Z.getCanvasSource(t);if(!n)return t;let o=t.frame,a=t.source._resolution??t.source.resolution??1,l=o.width,c=o.height,h=rr.getOptimalCanvasAndContext(l,c,a),{canvas:u,context:d}=h;d.setTransform(1,0,0,1,0,0),d.clearRect(0,0,u.width,u.height),r.length&&(d.filter=r.join(" ")),s!==1&&(d.globalAlpha=s);let f=o.x*a,m=o.y*a,g=l*a,_=c*a;return d.drawImage(n,f,m,g,_,0,0,g,_),d.filter="none",d.globalAlpha=1,ra(u,l,c,a)}_calculateFilterArea(t,e){if(t.renderables?ea(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup)?.cacheToLocalTransform;s&&e.applyMatrix(s)}}_warnUnsupportedFilter(t){let e=t?.constructor?.name||"Filter";this._warnedFilterTypes.has(e)||(this._warnedFilterTypes.add(e),console.warn(`CanvasRenderer: filter "${e}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new jc),this._filterStackIndex++,t}_popFilterFrame(){return this._filterStackIndex<=0?this._filterStack[0]:(this._filterStackIndex--,this._filterStack[this._filterStackIndex])}destroy(){this._filterStack=null,this._savedStates=null,this._warnedFilterTypes=null,this._alphaMultiplier=1}};Gs.extension={type:[y.CanvasSystem],name:"filter"}});var Fs,Sm=p(()=>{P();Fs=class{constructor(t){this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:e,filterEffect:t})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(t){t.action==="pushFilter"?this._renderer.filter.push(t):t.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Fs.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"filter"}});function ke(i,t){let e=Tm[i];return e===void 0&&(Xc[t]===void 0&&(Xc[t]=1),Tm[i]=e=Xc[t]++),e}var Xc,Tm,Ai=p(()=>{"use strict";Xc=Object.create(null),Tm=Object.create(null)});function sa(){return(!ia||ia?.isContextLost())&&(ia=W.get().createCanvas().getContext("webgl",{})),ia}var ia,Yc=p(()=>{xt()});function wm(){if(!na){na="mediump";let i=sa();i&&i.getShaderPrecisionFormat&&(na=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return na}var na,Cm=p(()=>{Yc()});function Em(i,t,e){return t?i:e?(i=i.replace("out vec4 finalColor;",""),`
17
+ `,e.accessibleText&&(r.innerText=e.accessibleText)),r.style.width=`${Fp}px`,r.style.height=`${Fp}px`,r.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",r.style.position="absolute",r.style.zIndex=Up.toString(),r.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?r.setAttribute("aria-live","off"):r.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?r.setAttribute("aria-relevant","additions"):r.setAttribute("aria-relevant","text"),r.addEventListener("click",this._onClick.bind(this)),r.addEventListener("focus",this._onFocus.bind(this)),r.addEventListener("focusout",this._onFocusOut.bind(this))),r.style.pointerEvents=e.accessiblePointerEvents,r.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?r.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(r.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&r.setAttribute("aria-label",e.accessibleHint),e.interactive?r.tabIndex=e.tabIndex:r.tabIndex=0,this.debug&&this._updateDebugHTML(r),e._accessibleActive=!0,e._accessibleDiv=r,r.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv)}_dispatchEvent(e,t){let{container:r}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==Cv||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._canvasObserver?.destroy(),this._canvasObserver=null,this._div=null,this._pools=null,this._children=null,this._renderer=null,this._hookDiv=null,globalThis.removeEventListener("keydown",this._boundOnKeyDown),this._boundOnKeyDown=null,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._boundOnMouseMove=null}setAccessibilityEnabled(e){e?this._activate():this._deactivate()}_getPool(e){return this._pools[e]||(this._pools[e]=[]),this._pools[e]}};Pl.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"accessibility"};Pl.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};Op=Pl});var Hp,zp=p(()=>{"use strict";Hp={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var Wp=p(()=>{P();Mt();Np();zp();H.add(Op);H.mixin(me,Hp)});var Ts,Vp=p(()=>{P();Sl();Ts=class{constructor(e){this._attachedDomElements=[],this._renderer=e,this._renderer.runners.postrender.add(this),this._renderer.runners.init.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}init(){this._canvasObserver=new Mi({domElement:this._domElement,renderer:this._renderer})}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}this._canvasObserver.ensureAttached();for(let t=0;t<e.length;t++){let r=e[t],s=r.element;if(!r.parent||r.globalDisplayStatus<7)s?.remove(),e.splice(t,1),t--;else{this._domElement.contains(s)||(s.style.position="absolute",s.style.pointerEvents="auto",this._domElement.appendChild(s));let n=r.worldTransform,o=r._anchor,a=r.width*o.x,c=r.height*o.y;s.style.transformOrigin=`${a}px ${c}px`,s.style.transform=`matrix(${n.a}, ${n.b}, ${n.c}, ${n.d}, ${n.tx-a}, ${n.ty-c})`,s.style.opacity=r.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._canvasObserver.destroy(),this._renderer=null}};Ts.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"dom"}});var Nt,Es=p(()=>{et();Mt();Nt=class extends me{constructor(e){super(e),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this._bounds=new pe(0,1,0,0),this._boundsDirty=!0,this.autoGarbageCollect=e.autoGarbageCollect??!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:r,y:s}=e;return r>=t.minX&&r<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}unload(){this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy();this._gpuData=Object.create(null),this.onViewUpdate()}destroy(e){this.unload(),super.destroy(e),this._bounds=null}collectRenderablesSimple(e,t,r){let{renderPipes:s}=t;s.blendMode.pushBlendMode(this,this.groupBlendMode,e);let o=s[this.renderPipeId];o?.addRenderable&&o.addRenderable(this,e),this.didViewUpdate=!1;let a=this.children,c=a.length;for(let l=0;l<c;l++)a[l].collectRenderables(e,t,r);s.blendMode.popBlendMode(e)}}});var jp=p(()=>{P();Vp();H.add(Ts)});var Ml,At,Al=p(()=>{ws();Pi();Ml=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(Xe.system.add(this._tickerUpdate,this,Ot.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(Xe.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}destroy(){this.removeTickerListener(),this.events=null,this.domElement=null,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}},At=new Ml});var rr,Wo=p(()=>{Pt();Ho();rr=class extends ur{constructor(){super(...arguments),this.client=new ae,this.movement=new ae,this.offset=new ae,this.global=new ae,this.screen=new ae}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,r){return e.worldTransform.applyInverse(r||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,r,s,n,o,a,c,l,d,h,u,f,m,g){throw new Error("Method not implemented.")}}});var tt,Rl=p(()=>{Wo();tt=class extends rr{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1,this.persistentDeviceId=0}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Ht,kl=p(()=>{Wo();Ht=class extends rr{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Ht.DOM_DELTA_PIXEL=0;Ht.DOM_DELTA_LINE=1;Ht.DOM_DELTA_PAGE=2});var Bv,Iv,Cs,Vo,Xp=p(()=>{Ne();Pt();he();Al();Wo();Rl();kl();Bv=2048,Iv=new ae,Cs=new ae,Vo=class{constructor(e){this.dispatch=new fe,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((r,s)=>r.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let r=0,s=t.length;r<s;r++)t[r].fn(e);else O(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){At.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,Iv.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let r=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;s++)if(e.currentTarget=r[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=r.length-2;s>=0;s--)if(e.currentTarget=r[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,r=this._allInteractiveElements){if(r.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=r.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=r[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let r=0;r<Bv&&e!==this.rootTarget&&e.parent;r++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,r,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(At.pauseUpdate=!1),e.interactiveChildren&&e.children){let d=e.children;for(let h=d.length-1;h>=0;h--){let u=d[h],f=this.hitTestMoveRecursive(u,this._isInteractive(t)?t:u.eventMode,r,s,n,o||n(e,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=e.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(e),f.push(e)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let c=this._isInteractive(t),l=e.isInteractive();return l&&l&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,r)&&s(e,r)?l?[e]:[]:null}hitTestRecursive(e,t,r,s,n){if(this._interactivePrune(e)||n(e,r))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(At.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,l=r;for(let d=c.length-1;d>=0;d--){let h=c[d],u=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,l,s,n);if(u){if(u.length>0&&!u[u.length-1].parent)continue;let f=e.isInteractive();return(u.length>0||f)&&u.push(e),u}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,r)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,Cs),!e.hitArea.contains(Cs.x,Cs.y)))return!0;if(e.effects&&e.effects.length)for(let r=0;r<e.effects.length;r++){let s=e.effects[r];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,Cs),e.containsPoint(Cs)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let r=`on${t}`;e.currentTarget[r]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let r=this.trackingData(e.pointerId);r.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let r=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",l=this.createPointerEvent(e,c,n);if(this.dispatchEvent(l,"pointerout"),r&&this.dispatchEvent(l,"mouseout"),!t.composedPath().includes(n)){let d=this.createPointerEvent(e,"pointerleave",n);for(d.eventPhase=d.AT_TARGET;d.target&&!t.composedPath().includes(d.target);)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseleave"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(l)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",l=this.clonePointerEvent(t,c);this.dispatchEvent(l,"pointerover"),r&&this.dispatchEvent(l,"mouseover");let d=n?.parent;for(;d&&d!==this.rootTarget.parent&&d!==t.target;)d=d.parent;if(!d||d===this.rootTarget.parent){let u=this.clonePointerEvent(t,"pointerenter");for(u.eventPhase=u.AT_TARGET;u.target&&u.target!==n&&u.target!==this.rootTarget.parent;)u.currentTarget=u.target,this.notifyTarget(u),r&&this.notifyTarget(u,"mouseenter"),u.target=u.target.parent;this.freeEvent(u)}this.freeEvent(l)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),r=this.createPointerEvent(e),s=r.pointerType==="mouse"||r.pointerType==="pen";this.dispatchEvent(r,"pointerover"),s&&this.dispatchEvent(r,"mouseover"),r.pointerType==="mouse"&&(this.cursor=r.target?.cursor);let n=this.clonePointerEvent(r,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),r&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),r=this.createPointerEvent(e);if(this.dispatchEvent(r,"pointerup"),r.pointerType==="touch")this.dispatchEvent(r,"touchend");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let a=r.button===2;this.dispatchEvent(r,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!r.composedPath().includes(n)){let a=n;for(;a&&!r.composedPath().includes(a);){if(r.currentTarget=a,this.notifyTarget(r,"pointerupoutside"),r.pointerType==="touch")this.notifyTarget(r,"touchendoutside");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let c=r.button===2;this.notifyTarget(r,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let l=a.button===2;this.dispatchEvent(a,l?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(r)}mapPointerUpOutside(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),r=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(r){let n=r;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof Ht)){O("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let r=1;r<e.length&&e[r].parent===t;r++)t=e[r];return t}createPointerEvent(e,t,r){let s=this.allocateEvent(tt);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent(Ht);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let r=this.allocateEvent(tt);return r.nativeEvent=e.nativeEvent,r.originalEvent=e.originalEvent,this.copyPointerData(e,r),this.copyMouseData(e,r),this.copyData(e,r),r.target=e.target,r.path=e.composedPath().slice(),r.type=t??r.type,r}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof tt&&t instanceof tt&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist,t.persistentDeviceId=e.persistentDeviceId)}copyMouseData(e,t){e instanceof rr&&t instanceof rr&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let r=e.currentTarget._events[t];if(r)if("fn"in r)r.once&&e.currentTarget.removeListener(t,r.fn,void 0,!0),r.fn.call(r.context,e);else for(let s=0,n=r.length;s<n&&!e.propagationImmediatelyStopped;s++)r[s].once&&e.currentTarget.removeListener(t,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,e)}}});var Gv,Fv,Il,jo,Gl=p(()=>{P();Xp();Al();Rl();kl();Gv=1,Fv={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Il=class Bl{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Vo(null),At.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new tt(null),this._rootWheelEvent=new Ht(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Bl.defaultEventFeatures},{set:(t,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[r]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(e){let{canvas:t,resolution:r}=this.renderer;this.setTargetElement(t),this.resolution=r,Bl._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){At.destroy(),this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let r=this.cursorStyles[e];if(r)switch(typeof r){case"string":t&&(this.domElement.style.cursor=r);break;case"function":r(e);break;case"object":t&&Object.assign(this.domElement.style,r);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let r=0,s=t.length;r<s;r++){let n=t[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,At.pointerMoved();let t=this._normalizeToPointerData(e);for(let r=0,s=t.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,t[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let r=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=r,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let r=0,s=t.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,t[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,At.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;At.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;At.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,r){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let r=0,s=e.changedTouches.length;r<s;r++){let n=e.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,n.altKey??(n.altKey=e.altKey),n.ctrlKey??(n.ctrlKey=e.ctrlKey),n.metaKey??(n.metaKey=e.metaKey),n.shiftKey??(n.shiftKey=e.shiftKey),t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let r=e;typeof r.isPrimary>"u"&&(r.isPrimary=!0),typeof r.width>"u"&&(r.width=1),typeof r.height>"u"&&(r.height=1),typeof r.tiltX>"u"&&(r.tiltX=0),typeof r.tiltY>"u"&&(r.tiltY=0),typeof r.pointerType>"u"&&(r.pointerType="mouse"),typeof r.pointerId>"u"&&(r.pointerId=Gv),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,t.push(r)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){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,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=Fv[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};Il.extension={name:"events",type:[_.WebGLSystem,_.CanvasSystem,_.WebGPUSystem],priority:-1};Il.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};jo=Il});var Yp,$p=p(()=>{Gl();Ho();Yp={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(i){this.eventMode=i?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??jo.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(i,e,t){let r=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;i=r?`${i}capture`:i;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(i,a,o)}),n?c.once(i,a,o):c.on(i,a,o)},removeEventListener(i,e,t){let r=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;i=r?`${i}capture`:i,e=typeof e=="function"?e:e.handleEvent,this.off(i,e,s)},dispatchEvent(i){if(!(i instanceof ur))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=!1,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}}});var qp=p(()=>{P();Mt();Gl();$p();H.add(jo);H.mixin(me,Yp)});var Fl,Kp=p(()=>{"use strict";Fl=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Fl||{})});var Zp,Qp=p(()=>{"use strict";Zp={createCanvas:(i,e)=>{let t=document.createElement("canvas");return t.width=i,t.height=e,t},createImage:()=>new Image,getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,e)=>fetch(i,e),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")}});var Jp,z,be=p(()=>{Qp();Jp=Zp,z={get(){return Jp},set(i){Jp=i}}});function Rt(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function Ps(i){return i.split("?")[0].split("#")[0]}function Uv(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Dv(i,e,t){return i.replace(new RegExp(Uv(e),"g"),t)}function Lv(i,e){let t="",r=0,s=-1,n=0,o=-1;for(let a=0;a<=i.length;++a){if(a<i.length)o=i.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(t.length<2||r!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",r=0):(t=t.slice(0,c),r=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",r=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",r=2)}else t.length>0?t+=`/${i.slice(s+1,a)}`:t=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Or,Ul=p(()=>{be();Or={toPosix(i){return Dv(i,"\\","/")},isUrl(i){return/^https?:/.test(this.toPosix(i))},isDataUrl(i){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(i)},isBlobUrl(i){return i.startsWith("blob:")},hasProtocol(i){return/^[^/:]+:/.test(this.toPosix(i))},getProtocol(i){Rt(i),i=this.toPosix(i);let e=/^file:\/\/\//.exec(i);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(i);return t?t[0]:""},toAbsolute(i,e,t){if(Rt(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=Ps(this.toPosix(e??z.get().getBaseUrl())),s=Ps(this.toPosix(t??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Or.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(Rt(i),i.length===0)return".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let e="",t=i.startsWith("/");this.hasProtocol(i)&&(e=this.rootname(i),i=i.slice(e.length));let r=i.endsWith("/");return i=Lv(i,!1),i.length>0&&r&&(i+="/"),t?`/${i}`:e+i},isAbsolute(i){return Rt(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let e;for(let t=0;t<i.length;++t){let r=i[t];if(Rt(r),r.length>0)if(e===void 0)e=r;else{let s=i[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${r}`:e+=`/${r}`}}return e===void 0?".":this.normalize(e)},dirname(i){if(Rt(i),i.length===0)return".";i=this.toPosix(i);let e=i.charCodeAt(0),t=e===47,r=-1,s=!0,n=this.getProtocol(i),o=i;i=i.slice(n.length);for(let a=i.length-1;a>=1;--a)if(e=i.charCodeAt(a),e===47){if(!s){r=a;break}}else s=!1;return r===-1?t?"/":this.isUrl(o)?n+i:n:t&&r===1?"//":n+i.slice(0,r)},rootname(i){Rt(i),i=this.toPosix(i);let e="";if(i.startsWith("/")?e="/":e=this.getProtocol(i),this.isUrl(i)){let t=i.indexOf("/",e.length);t!==-1?e=i.slice(0,t):e=i,e.endsWith("/")||(e+="/")}return e},basename(i,e){Rt(i),e&&Rt(e),i=Ps(this.toPosix(i));let t=0,r=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=i.length){if(e.length===i.length&&e===i)return"";let o=e.length-1,a=-1;for(n=i.length-1;n>=0;--n){let c=i.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return t===r?r=a:r===-1&&(r=i.length),i.slice(t,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){t=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(t,r)},extname(i){Rt(i),i=Ps(this.toPosix(i));let e=-1,t=0,r=-1,s=!0,n=0;for(let o=i.length-1;o>=0;--o){let a=i.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||r===-1||n===0||n===1&&e===r-1&&e===t+1?"":i.slice(e,r)},parse(i){Rt(i);let e={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return e;i=Ps(this.toPosix(i));let t=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";e.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,c=-1,l=!0,d=i.length-1,h=0;for(;d>=s;--d){if(t=i.charCodeAt(d),t===47){if(!l){a=d+1;break}continue}c===-1&&(l=!1,c=d+1),t===46?o===-1?o=d:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&r?e.base=e.name=i.slice(1,c):e.base=e.name=i.slice(a,c)):(a===0&&r?(e.name=i.slice(1,o),e.base=i.slice(1,c)):(e.name=i.slice(a,o),e.base=i.slice(a,c)),e.ext=i.slice(o,c)),e.dir=this.dirname(i),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var fr,Dl=p(()=>{"use strict";fr=(i,e,t=!1)=>(Array.isArray(i)||(i=[i]),e?i.map(r=>typeof r=="string"||t?e(r):r):i)});function e0(i,e,t,r,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?e0(i.replace(r[t],a),e,t+1,r,s):s.push(i.replace(r[t],a))}}function t0(i){let e=/\{(.*?)\}/g,t=i.match(e),r=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),e0(i,s,0,t,r)}else r.push(i);return r}var r0=p(()=>{"use strict"});var Ll,i0=p(()=>{"use strict";Ll=i=>!Array.isArray(i)});function Ov(i){return i.split(".").pop().split("?").shift().split("#").shift()}var Ms,s0=p(()=>{he();Ul();Dl();r0();i0();Ms=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(r=>`${encodeURIComponent(r)}=${encodeURIComponent(t[r])}`).join("&")}}getAlias(e){let{alias:t,src:r}=e;return fr(t||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}removeAlias(e,t){this._assetMap[e]&&(t&&t!==this._resolverHash[e]||(delete this._resolverHash[e],delete this._assetMap[e]))}addManifest(e){this._manifest&&O("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let r=[],s=t;Array.isArray(t)||(s=Object.entries(t).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,c;if(typeof a=="string"){let l=this._createBundleAssetId(e,a);r.push(l),c=[a,l]}else{let l=a.map(d=>this._createBundleAssetId(e,d));r.push(...l),c=[...a,...l]}this.add({...n,alias:c,src:o})}),this._bundles[e]=r}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let r;r=n=>{this.hasKey(n)&&O(`[Resolver] already has key: ${n} overwriting`)},fr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:l,parser:d}=n,h=fr(o).map(g=>typeof g=="string"?t0(g):Array.isArray(g)?g:[g]),u=this.getAlias(n);Array.isArray(u)?u.forEach(r):r(u);let f=[],m=g=>{let x=this._parsers.find(b=>b.test(g));return{src:g,...x?.parse(g)}};h.forEach(g=>{g.forEach(x=>{let b={};if(typeof x!="object"?b=m(x):(a=x.data??a,c=x.format??c,(x.loadParser||x.parser)&&(l=x.loadParser??l,d=x.parser??d),b={...m(x.src),...x}),!u)throw new Error(`[Resolver] alias is undefined for this asset: ${b.src}`);b=this._buildResolvedAsset(b,{aliases:u,data:a,format:c,loadParser:l,parser:d,progressSize:n.progressSize}),f.push(b)})}),u.forEach(g=>{this._assetMap[g]=f})})}resolveBundle(e){let t=Ll(e);e=fr(e);let r={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let l=o[c];a[this._extractAssetIdFromBundle(s,c)]=l}r[s]=a}}),t?r[e[0]]:r}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let r={};for(let s in t)r[s]=t[s].src;return r}return t.src}resolve(e){let t=Ll(e);e=fr(e);let r={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(c=>{let l=n.filter(d=>d[a]?d[a]===c:!1);l.length&&(n=l)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});r[s]=this._resolverHash[s]}),t?r[e[0]]:r}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let r=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(r.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:r,data:s,loadParser:n,parser:o,format:a,progressSize:c}=t;return(this._basePath||this._rootPath)&&(e.src=Or.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=r??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.parser=o??e.parser,e.format=a??e.format??Ov(e.src),c!==void 0&&(e.progressSize=c),e}};Ms.RETINA_PREFIX=/@([0-9\.]+)x/});var Ol,n0=p(()=>{"use strict";Ol=(i,e)=>{let t=e.split("?")[1];return t&&(i+=`?${t}`),i}});var o0,Nl,a0=p(()=>{Ve();je();ge();o0=class As{constructor(e,t){this.linkedSheets=[];let r=e;e?.source instanceof oe&&(r={texture:e,data:t});let{texture:s,data:n,cachePrefix:o=""}=r;this.cachePrefix=o,this._texture=s instanceof U?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=As.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}parseSync(){return this._processFrames(0,!0),this._processAnimations(),this.textures}_processFrames(e,t=!1){let r=e,s=t?1/0:As.BATCH_SIZE;for(;r-e<s&&r<this._frameKeys.length;){let n=this._frameKeys[r],o=this._frames[n],a=o.frame;if(a){let c=null,l=null,d=o.trimmed!==!1&&o.sourceSize?o.sourceSize:o.frame,h=new Q(0,0,Math.floor(d.w)/this.resolution,Math.floor(d.h)/this.resolution);o.rotated?c=new Q(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.h)/this.resolution,Math.floor(a.w)/this.resolution):c=new Q(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution),o.trimmed!==!1&&o.spriteSourceSize&&(l=new Q(Math.floor(o.spriteSourceSize.x)/this.resolution,Math.floor(o.spriteSourceSize.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution)),this.textures[n]=new U({source:this.textureSource,frame:c,orig:h,trim:l,rotate:o.rotated?2:0,defaultAnchor:o.anchor,defaultBorders:o.borders,label:n.toString()})}r++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let r=0;r<e[t].length;r++){let s=e[t][r];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*As.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*As.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};o0.BATCH_SIZE=1e3;Nl=o0});function c0(i,e,t){let r={};if(i.forEach(s=>{r[s]=e}),Object.keys(e.textures).forEach(s=>{r[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Or.dirname(i[0]);e.linkedSheets.forEach((n,o)=>{let a=c0([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var Nv,l0,d0=p(()=>{Kp();s0();n0();P();ge();Ul();a0();Nv=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];l0={extension:_.Asset,cache:{test:i=>i instanceof Nl,getCacheableAssets:(i,e)=>c0(i,e,!1)},resolver:{extension:{type:_.ResolveParser,name:"resolveSpritesheet"},test:i=>{let t=i.split("?")[0].split("."),r=t.pop(),s=t.pop();return r==="json"&&Nv.includes(s)},parse:i=>{let e=i.split(".");return{resolution:parseFloat(Ms.RETINA_PREFIX.exec(i)?.[1]??"1"),format:e[e.length-2],src:i}}},loader:{name:"spritesheetLoader",id:"spritesheet",extension:{type:_.LoadParser,priority:Fl.Normal,name:"spritesheetLoader"},async testParse(i,e){return Or.extname(e.src).toLowerCase()===".json"&&!!i.frames},async parse(i,e,t){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Or.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(r instanceof U)c=r;else{let h=Ol(a+(s??i.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let l=new Nl({texture:c.source,data:i,cachePrefix:o});await l.parse();let d=i?.meta?.related_multi_packs;if(Array.isArray(d)){let h=[];for(let f of d){if(typeof f!="string")continue;let m=a+f;e.data?.ignoreMultiPack||(m=Ol(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let u=await Promise.all(h);l.linkedSheets=u,u.forEach(f=>{f.linkedSheets=[l].concat(l.linkedSheets.filter(m=>m!==f))})}return l},async unload(i,e,t){await t.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var Xo=p(()=>{P();d0();H.add(l0)});function Yo(i,e,t){let{width:r,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-e._x*r,i.maxX=i.minX+o,i.minY=n.y-e._y*s,i.maxY=i.minY+a}else i.minX=-e._x*r,i.maxX=i.minX+r,i.minY=-e._y*s,i.maxY=i.minY+s}var Hl=p(()=>{"use strict"});var at,$o=p(()=>{Po();ge();Hl();_e();Es();at=class i extends Nt{constructor(e=U.EMPTY){e instanceof U&&(e={texture:e});let{texture:t=U.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Be({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof U?new i(e):new i(U.from(e,t))}set texture(e){e||(e=U.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return Yo(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return N("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,r=this._bounds,{width:s,height:n}=t.orig;r.minX=-e._x*s,r.maxX=r.minX+s,r.minY=-e._y*n,r.maxY=r.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(r)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function qo(i,e,t){let r=Hv;i.measurable=!0,vi(i,t,r),e.addBoundsMask(r),i.measurable=!1}var Hv,zl=p(()=>{et();bs();Hv=new pe});function Ko(i,e,t){let r=ft.get();i.measurable=!0;let s=Ge.get().identity(),n=h0(i,t,s);Si(i,r,n),i.measurable=!1,e.addBoundsMask(r),Ge.return(s),ft.return(r)}function h0(i,e,t){return i?(i!==e&&(h0(i.parent,e,t),i.updateLocalTransform(),t.append(i.localTransform)),t):(O("Mask bounds, renderable is not inside the root container"),t)}var Wl=p(()=>{Fo();Ar();he()});var Rs,u0=p(()=>{P();$o();zl();Wl();Rs=class{constructor(e){this.priority=0,this.inverse=!1,this.channel="red",this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof at),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask=null)}addBounds(e,t){this.inverse||qo(this.mask,e,t)}addLocalBounds(e,t){Ko(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof at}};Rs.extension=_.MaskEffect});var ks,f0=p(()=>{P();ks=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};ks.extension=_.MaskEffect});var Bs,p0=p(()=>{P();Mt();zl();Wl();Bs=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null)}addBounds(e,t){qo(this.mask,e,t)}addLocalBounds(e,t){Ko(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof me}};Bs.extension=_.MaskEffect});var Se,pr=p(()=>{be();P();je();Se=class extends oe{constructor(e){e.resource||(e.resource=z.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,r=this._resolution){let s=super.resize(e,t,r);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};Se.extension=_.TextureSource});var kt,Zo=p(()=>{P();je();kt=class extends oe{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};kt.extension=_.TextureSource});async function m0(){return Vl??(Vl=(async()=>{let e=z.get().createCanvas(1,1).getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!t)return"premultiply-alpha-on-upload";let r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(r),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Vl}var Vl,g0=p(()=>{be()});var Qo,x0,_0=p(()=>{P();Pi();g0();je();Qo=class b0 extends oe{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...b0.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),this._onLoadedMetadata=this._onLoadedMetadata.bind(this),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=Xe.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.isValid||e.addEventListener("loadedmetadata",this._onLoadedMetadata),this.alphaMode=await m0(),this._load=new Promise((r,s)=>{this.isValid?r(this):(this._resolve=r,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onLoadedMetadata(){this.isValid&&this._mediaReady()}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlayThrough),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&this.isValid&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("loadedmetadata",this._onLoadedMetadata),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(Xe.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(Xe.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(Xe.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};Qo.extension=_.TextureSource;Qo.defaultOptions={...oe.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Qo.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};x0=Qo});var jl,Nr,y0=p(()=>{he();Dl();jl=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||O(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let r=fr(e),s;for(let c=0;c<this.parsers.length;c++){let l=this.parsers[c];if(l.test(t)){s=l.getCacheableAssets(r,t);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let l=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==l&&O("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){O(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},Nr=new jl});function v0(i={}){let e=i&&i.resource,t=e?i.resource:i,r=e?i:{resource:i};for(let s=0;s<Xl.length;s++){let n=Xl[s];if(n.test(t))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function w0(i={},e=!1){let t=i&&i.resource,r=t?i.resource:i,s=t?i:{resource:i};if(!e&&Nr.has(r))return Nr.get(r);let n=new U({source:v0(s)});return n.on("destroy",()=>{Nr.has(r)&&Nr.remove(r)}),e||Nr.set(r,n),n}function S0(i,e=!1){return typeof i=="string"?Nr.get(i):i instanceof oe?new U({source:i}):w0(i,e)}var Xl,Yl=p(()=>{y0();P();je();ge();Xl=[];H.handleByList(_.TextureSource,Xl);U.from=S0;oe.from=v0});var Jo=p(()=>{P();u0();f0();p0();bl();pr();Zo();_0();Yl();H.add(Rs,ks,Bs,x0,kt,Se,Fr)});function T0(i){let e=z.get().createCanvas(6,1),t=e.getContext("2d");return t.fillStyle=i,t.fillRect(0,0,6,1),e}function ea(){if(Ri!==void 0)return Ri;try{let i=T0("#ff00ff"),e=T0("#ffff00"),r=z.get().createCanvas(6,1).getContext("2d");r.globalCompositeOperation="multiply",r.drawImage(i,0,0),r.drawImage(e,2,0);let s=r.getImageData(2,0,1,1);if(!s)Ri=!1;else{let n=s.data;Ri=n[0]===255&&n[1]===0&&n[2]===0}}catch{Ri=!1}return Ri}var Ri,$l=p(()=>{be()});var q,ki=p(()=>{$e();be();ys();$l();q={canvas:null,convertTintToImage:!1,cacheStepsPerColorChannel:8,canUseMultiply:ea(),tintMethod:null,_canvasSourceCache:new WeakMap,_unpremultipliedCache:new WeakMap,getCanvasSource:i=>{let e=i.source,t=e?.resource;if(!t)return null;let r=e.alphaMode==="premultiplied-alpha",s=e.resourceWidth??e.pixelWidth,n=e.resourceHeight??e.pixelHeight,o=s!==e.pixelWidth||n!==e.pixelHeight;if(r){if((t instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas)&&!o)return t;let a=q._unpremultipliedCache.get(e);if(a?.resourceId===e._resourceId)return a.canvas}if(t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||t instanceof Uint16Array||t instanceof Int16Array||t instanceof Uint32Array||t instanceof Int32Array||t instanceof Float32Array||t instanceof ArrayBuffer){let a=q._canvasSourceCache.get(e);if(a?.resourceId===e._resourceId)return a.canvas;let c=z.get().createCanvas(e.pixelWidth,e.pixelHeight),l=c.getContext("2d"),d=l.createImageData(e.pixelWidth,e.pixelHeight),h=d.data,u=t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength);if(e.format==="bgra8unorm")for(let f=0;f<h.length&&f+3<u.length;f+=4)h[f]=u[f+2],h[f+1]=u[f+1],h[f+2]=u[f],h[f+3]=u[f+3];else h.set(u.subarray(0,h.length));return l.putImageData(d,0,0),q._canvasSourceCache.set(e,{canvas:c,resourceId:e._resourceId}),c}if(r){let a=z.get().createCanvas(e.pixelWidth,e.pixelHeight),c=a.getContext("2d",{willReadFrequently:!0});a.width=e.pixelWidth,a.height=e.pixelHeight,c.drawImage(t,0,0);let l=c.getImageData(0,0,a.width,a.height),d=l.data;for(let h=0;h<d.length;h+=4){let u=d[h+3];if(u>0){let f=255/u;d[h]=Math.min(255,d[h]*f+.5),d[h+1]=Math.min(255,d[h+1]*f+.5),d[h+2]=Math.min(255,d[h+2]*f+.5)}}return c.putImageData(l,0,0),q._unpremultipliedCache.set(e,{canvas:a,resourceId:e._resourceId}),a}if(o){let a=q._canvasSourceCache.get(e);if(a?.resourceId===e._resourceId)return a.canvas;let c=z.get().createCanvas(e.pixelWidth,e.pixelHeight),l=c.getContext("2d");return c.width=e.pixelWidth,c.height=e.pixelHeight,l.drawImage(t,0,0),q._canvasSourceCache.set(e,{canvas:c,resourceId:e._resourceId}),c}return t},getTintedCanvas:(i,e)=>{let t=i.texture,r=Z.shared.setValue(e).toHex(),s=t.tintCache||(t.tintCache={}),n=s[r],o=t.source._resourceId;if(n?.tintId===o)return n;let a=n&&"getContext"in n?n:z.get().createCanvas();if(q.tintMethod(t,e,a),a.tintId=o,q.convertTintToImage&&a.toDataURL!==void 0){let c=z.get().createImage();c.src=a.toDataURL(),c.tintId=o,s[r]=c}else s[r]=a;return s[r]},getTintedPattern:(i,e)=>{let t=Z.shared.setValue(e).toHex(),r=i.patternCache||(i.patternCache={}),s=i.source._resourceId,n=r[t];return n?.tintId===s||(q.canvas||(q.canvas=z.get().createCanvas()),q.tintMethod(i,e,q.canvas),n=q.canvas.getContext("2d").createPattern(q.canvas,"repeat"),n.tintId=s,r[t]=n),n},applyPatternTransform:(i,e,t=!0)=>{if(!e)return;let r=i;if(!r.setTransform)return;let s=globalThis.DOMMatrix;if(!s)return;let n=new s([e.a,e.b,e.c,e.d,e.tx,e.ty]);r.setTransform(t?n.inverse():n)},tintWithMultiply:(i,e,t)=>{let r=t.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=ie.isVertical(o),c=a?s.height:s.width,l=a?s.width:s.height;t.width=Math.ceil(c),t.height=Math.ceil(l),r.save(),r.fillStyle=Z.shared.setValue(e).toHex(),r.fillRect(0,0,c,l),r.globalCompositeOperation="multiply";let d=q.getCanvasSource(i);if(!d){r.restore();return}o&&q._applyInverseRotation(r,o,s.width,s.height),r.drawImage(d,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.globalCompositeOperation="destination-atop",r.drawImage(d,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithOverlay:(i,e,t)=>{let r=t.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=ie.isVertical(o),c=a?s.height:s.width,l=a?s.width:s.height;t.width=Math.ceil(c),t.height=Math.ceil(l),r.save(),r.globalCompositeOperation="copy",r.fillStyle=Z.shared.setValue(e).toHex(),r.fillRect(0,0,c,l),r.globalCompositeOperation="destination-atop";let d=q.getCanvasSource(i);if(!d){r.restore();return}o&&q._applyInverseRotation(r,o,s.width,s.height),r.drawImage(d,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithPerPixel:(i,e,t)=>{let r=t.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=ie.isVertical(o),c=a?s.height:s.width,l=a?s.width:s.height;t.width=Math.ceil(c),t.height=Math.ceil(l),r.save(),r.globalCompositeOperation="copy";let d=q.getCanvasSource(i);if(!d){r.restore();return}o&&q._applyInverseRotation(r,o,s.width,s.height),r.drawImage(d,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore();let h=e>>16&255,u=e>>8&255,f=e&255,m=r.getImageData(0,0,c,l),g=m.data;for(let x=0;x<g.length;x+=4)g[x]=g[x]*h/255,g[x+1]=g[x+1]*u/255,g[x+2]=g[x+2]*f/255;r.putImageData(m,0,0)},_applyInverseRotation:(i,e,t,r)=>{let s=ie.inv(e),n=ie.uX(s),o=ie.uY(s),a=ie.vX(s),c=ie.vY(s),l=-Math.min(0,n*t,a*r,n*t+a*r),d=-Math.min(0,o*t,c*r,o*t+c*r);i.transform(n,o,a,c,l,d)}};q.tintMethod=q.canUseMultiply?q.tintWithMultiply:q.tintWithPerPixel});var ql,ir,ta=p(()=>{be();_s();Mr();ql=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let r=z.get().createCanvas();r.width=e,r.height=t;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(e,t,r=1){e=Math.ceil(e*r-1e-6),t=Math.ceil(t*r-1e-6),e=er(e),t=er(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:r,height:s}=t,n=(r<<17)+(s<<1);e.context.resetTransform(),e.context.clearRect(0,0,r,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},ir=new ql;_t.register(ir)});function ra(i){let e=i.length;if(e<6)return 1;let t=0;for(let r=0,s=i[e-2],n=i[e-1];r<e;r+=2){let o=i[r],a=i[r+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var Kl=p(()=>{"use strict"});function E0(i,e,t,r,s,n){let o=i-t,a=e-r,c=s-t,l=n-r,d=o*c+a*l,h=c*c+l*l,u=-1;h!==0&&(u=d/h);let f,m;u<0?(f=t,m=r):u>1?(f=s,m=n):(f=t+u*c,m=r+u*l);let g=i-f,x=e-m;return g*g+x*x}var C0=p(()=>{"use strict"});function Zl(i,e,t,r,s,n,o,a){let c=o-t,l=a-r,d=s-t,h=n-r,u=i-t,f=e-r,m=c*c+l*l,g=c*d+l*h,x=c*u+l*f,b=d*d+h*h,y=d*u+h*f,v=1/(m*b-g*g),w=(b*x-g*y)*v,S=(m*y-g*x)*v;return w>=0&&S>=0&&w+S<1}var P0=p(()=>{"use strict"});var ia,M0=p(()=>{Ve();ia=class i{constructor(e=0,t=0,r=0){this.type="circle",this.x=e,this.y=t,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=r}strokeContains(e,t,r,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*r,l=Math.sqrt(n*n+o*o);return l<=a+c&&l>a-(r-c)}getBounds(e){return e||(e=new Q),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var sa,A0=p(()=>{Ve();sa=class i{constructor(e=0,t=0,r=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(e,t,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),c=r-a,l=n-c,d=o-c,h=n+a,u=o+a,f=e-this.x,m=t-this.y,g=f*f/(l*l)+m*m/(d*d),x=f*f/(h*h)+m*m/(u*u);return g>1&&x<=1}getBounds(e){return e||(e=new Q),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});var zv,Wv,Bi,R0=p(()=>{_e();Kl();C0();Ve();Bi=class i{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let r=[];for(let s=0,n=t.length;s<n;s++)r.push(t[s].x,t[s].y);t=r}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,r=t.length;for(let s=0;s<r;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%r],c=t[(s+3)%r];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(zv),r=e.getBounds(Wv);if(!t.containsRect(r))return!1;let s=e.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let e=this.points.slice(),t=new i(e);return t.closePath=this.closePath,t}contains(e,t){let r=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],c=this.points[n*2+1],l=this.points[o*2],d=this.points[o*2+1];c>t!=d>t&&e<(l-a)*((t-c)/(d-c))+a&&(r=!r)}return r}strokeContains(e,t,r,s=.5){let{points:n}=this,o=s===.5?s:(s-.5)*ra(n)+.5,a=r*o,c=r-a,l=a*a,d=c*c,h=n.length-(this.closePath?0:2);for(let u=0;u<h;u+=2){let f=n[u],m=n[u+1],g=n[(u+2)%n.length],x=n[(u+3)%n.length],b=E0(e,t,f,m,g,x),y=Math.sign((g-f)*(t-m)-(x-m)*(e-f));if(b<=(y<0?l:d))return!0}return!1}getBounds(e){e||(e=new Q);let t=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let l=t[a],d=t[a+1];r=l<r?l:r,s=l>s?l:s,n=d<n?d:n,o=d>o?d:o}return e.x=r,e.width=s-r,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return N("8.11.0","Polygon.lastX is deprecated, please use Polygon.lastX instead."),this.points[this.points.length-2]}get y(){return N("8.11.0","Polygon.y is deprecated, please use Polygon.lastY instead."),this.points[this.points.length-1]}get startX(){return this.points[0]}get startY(){return this.points[1]}}});var na,oa,k0=p(()=>{Ve();na=(i,e,t,r,s,n,o)=>{let a=i-t,c=e-r,l=Math.sqrt(a*a+c*c);return l>=s-n&&l<=s+o},oa=class i{constructor(e=0,t=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=r,this.height=s,this.radius=n}getBounds(e){return e||(e=new Q),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+r&&t<=this.y+this.height-r||e>=this.x+r&&e<=this.x+this.width-r)return!0;let s=e-(this.x+r),n=t-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=e-(this.x+this.width-r),s*s+n*n<=o)||(n=t-(this.y+this.height-r),s*s+n*n<=o)||(s=e-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,r,s=.5){let{x:n,y:o,width:a,height:c,radius:l}=this,d=r*(1-s),h=r-d,u=n+l,f=o+l,m=a-l*2,g=c-l*2,x=n+a,b=o+c;return(e>=n-d&&e<=n+h||e>=x-h&&e<=x+d)&&t>=f&&t<=f+g||(t>=o-d&&t<=o+h||t>=b-h&&t<=b+d)&&e>=u&&e<=u+m?!0:e<u&&t<f&&na(e,t,u,f,l,h,d)||e>x-l&&t<f&&na(e,t,x-l,f,l,h,d)||e>x-l&&t>b-l&&na(e,t,x-l,b-l,l,h,d)||e<u&&t>b-l&&na(e,t,u,b-l,l,h,d)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function aa(i,e){e.clear();let t=e.matrix;for(let r=0;r<i.length;r++){let s=i[r];if(s.globalDisplayStatus<7)continue;let n=s.renderGroup??s.parentRenderGroup;n?.isCachedAsTexture?e.matrix=B0.copyFrom(n.textureOffsetInverseTransform).append(s.worldTransform):n?._parentCacheAsTextureRenderGroup?e.matrix=B0.copyFrom(n._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(s.groupTransform):e.matrix=s.worldTransform,e.addBounds(s.bounds)}return e.matrix=t,e}var B0,Ql=p(()=>{ce();B0=new k});function ca(i,e,t,r,s=!1){let n=Vv;n.minX=0,n.minY=0,n.maxX=i.width/r|0,n.maxY=i.height/r|0;let o=Pe.getOptimalTexture(n.width,n.height,r,!1,s);return o.source.uploadMethodId="image",o.source.resource=i,o.source.alphaMode="premultiply-alpha-on-upload",o.frame.width=e/r,o.frame.height=t/r,o.source.emit("update",o.source),o.updateUvs(),o}var Vv,Jl=p(()=>{Ur();et();Vv=new pe});function I0(i){return typeof i.getCanvasFilterString=="function"}var ed,Is,G0=p(()=>{P();ki();ta();et();Ql();Jl();ed=class{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new pe,this.cssFilterString=""}},Is=class{constructor(e){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=e}push(e){let t=this._pushFilterFrame(),r=e.filterEffect.filters;if(t.skip=!1,t.useClip=!1,t.filters=r,t.container=e.container,t.cssFilterString="",r.every(c=>!c.enabled)){t.skip=!0;return}let s=[],n=1;for(let c of r){if(!c.enabled)continue;if(!I0(c)){this._warnUnsupportedFilter(c);continue}let l=c.getCanvasFilterString();if(l===null){this._warnUnsupportedFilter(c);continue}l&&s.push(l)}if(s.length===0&&n===1){t.skip=!0;return}t.cssFilterString=s.join(" "),this._calculateFilterArea(e,t.bounds),t.useClip=!!e.filterEffect.filterArea;let o=this.renderer.canvasContext.activeContext,a=o.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),t.useClip&&Number.isFinite(t.bounds.width)&&Number.isFinite(t.bounds.height)&&t.bounds.width>0&&t.bounds.height>0){let c=this.renderer.canvasContext.activeResolution||1;o.save(),o.setTransform(1,0,0,1,0,0),o.beginPath(),o.rect(t.bounds.x*c,t.bounds.y*c,t.bounds.width*c,t.bounds.height*c),o.clip()}else t.useClip=!1;n!==1&&(this._alphaMultiplier*=n),t.cssFilterString&&(o.filter=a!=="none"?`${a} ${t.cssFilterString}`:t.cssFilterString)}pop(){let e=this._popFilterFrame();if(e.skip)return;let t=this._savedStates.pop();if(!t)return;let r=this.renderer.canvasContext.activeContext;e.useClip?r.restore():r.filter=t.filter,this._alphaMultiplier=t.alphaMultiplier}generateFilteredTexture({texture:e,filters:t}){if(!t?.length||t.every(b=>!b.enabled))return e;let r=[],s=1;for(let b of t){if(!b.enabled)continue;if(!I0(b)){this._warnUnsupportedFilter(b);continue}let y=b.getCanvasFilterString();if(y===null){this._warnUnsupportedFilter(b);continue}y&&r.push(y)}if(r.length===0&&s===1)return e;let n=q.getCanvasSource(e);if(!n)return e;let o=e.frame,a=e.source._resolution??e.source.resolution??1,c=o.width,l=o.height,d=ir.getOptimalCanvasAndContext(c,l,a),{canvas:h,context:u}=d;u.setTransform(1,0,0,1,0,0),u.clearRect(0,0,h.width,h.height),r.length&&(u.filter=r.join(" ")),s!==1&&(u.globalAlpha=s);let f=o.x*a,m=o.y*a,g=c*a,x=l*a;return u.drawImage(n,f,m,g,x,0,0,g,x),u.filter="none",u.globalAlpha=1,ca(h,c,l,a)}_calculateFilterArea(e,t){if(e.renderables?aa(e.renderables,t):e.filterEffect.filterArea?(t.clear(),t.addRect(e.filterEffect.filterArea),t.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,t),e.container){let s=(e.container.renderGroup||e.container.parentRenderGroup)?.cacheToLocalTransform;s&&t.applyMatrix(s)}}_warnUnsupportedFilter(e){let t=e?.constructor?.name||"Filter";this._warnedFilterTypes.has(t)||(this._warnedFilterTypes.add(t),console.warn(`CanvasRenderer: filter "${t}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new ed),this._filterStackIndex++,e}_popFilterFrame(){return this._filterStackIndex<=0?this._filterStack[0]:(this._filterStackIndex--,this._filterStack[this._filterStackIndex])}destroy(){this._filterStack=null,this._savedStates=null,this._warnedFilterTypes=null,this._alphaMultiplier=1}};Is.extension={type:[_.CanvasSystem],name:"filter"}});var Gs,F0=p(()=>{P();Gs=class{constructor(e){this._renderer=e}push(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Gs.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"filter"}});function Bt(i,e){let t=U0[i];return t===void 0&&(td[e]===void 0&&(td[e]=1),U0[i]=t=td[e]++),t}var td,U0,Ii=p(()=>{"use strict";td=Object.create(null),U0=Object.create(null)});function da(){return(!la||la?.isContextLost())&&(la=z.get().createCanvas().getContext("webgl",{})),la}var la,rd=p(()=>{be()});function D0(){if(!ha){ha="mediump";let i=da();i&&i.getShaderPrecisionFormat&&(ha=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return ha}var ha,L0=p(()=>{rd()});function O0(i,e,t){return e?i:t?(i=i.replace("out vec4 finalColor;",""),`
18
18
 
19
19
  #ifdef GL_ES // This checks if it is WebGL1
20
20
  #define in varying
@@ -29,10 +29,10 @@ Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!gi.noColor
29
29
  #define out varying
30
30
  #endif
31
31
  ${i}
32
- `}var Pm=p(()=>{"use strict"});function Mm(i,t,e){let r=e?t.maxSupportedFragmentPrecision:t.maxSupportedVertexPrecision;if(i.substring(0,9)!=="precision"){let s=e?t.requestedFragmentPrecision:t.requestedVertexPrecision;return s==="highp"&&r!=="highp"&&(s="mediump"),`precision ${s} float;
33
- ${i}`}else if(r!=="highp"&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}var Am=p(()=>{"use strict"});function Rm(i,t){return t?`#version 300 es
34
- ${i}`:i}var km=p(()=>{"use strict"});function Bm(i,{name:t="pixi-program"},e=!0){t=t.replace(/\s+/g,"-"),t+=e?"-fragment":"-vertex";let r=e?BS:IS;return r[t]?(r[t]++,t+=`-${r[t]}`):r[t]=1,i.indexOf("#define SHADER_NAME")!==-1?i:`${`#define SHADER_NAME ${t}`}
35
- ${i}`}var BS,IS,Im=p(()=>{"use strict";BS={},IS={}});function Gm(i,t){return t?i.replace("#version 300 es",""):i}var Fm=p(()=>{"use strict"});var $c,Us,Um,be,Nr=p(()=>{Ai();Cm();Pm();Am();km();Im();Fm();$c={stripVersion:Gm,ensurePrecision:Mm,addProgramDefines:Em,setProgramName:Bm,insertVersion:Rm},Us=Object.create(null),Um=class qc{constructor(t){t={...qc.defaultOptions,...t};let e=t.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:e,ensurePrecision:{requestedFragmentPrecision:t.preferredFragmentPrecision,requestedVertexPrecision:t.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:wm()},setProgramName:{name:t.name},addProgramDefines:e,insertVersion:e},s=t.fragment,n=t.vertex;Object.keys($c).forEach(o=>{let a=r[o];s=$c[o](s,a,!0),n=$c[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=t.transformFeedbackVaryings,this._key=ke(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null,Us[this._cacheKey]=null}static from(t){let e=`${t.vertex}:${t.fragment}`;return Us[e]||(Us[e]=new qc(t),Us[e]._cacheKey=e),Us[e]}};Um.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};be=Um});function Jt(i){return Dm[i]??Dm.float32}var Dm,pr=p(()=>{"use strict";Dm={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function Om(i,t){let e;for(;(e=Lm.exec(i))!==null;){let r=GS[e[3]]??"float32";t[e[2]]={location:parseInt(e[1],10),format:r,stride:Jt(r).stride,offset:0,instance:!1,start:0}}Lm.lastIndex=0}function FS(i){return i.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function Nm({source:i,entryPoint:t}){let e={},r=FS(i),s=r.indexOf(`fn ${t}(`);if(s===-1)return e;let n=r.indexOf("->",s);if(n===-1)return e;let o=r.substring(s,n);if(Om(o,e),Object.keys(e).length===0){let a=o.match(/\(\s*\w+\s*:\s*(\w+)/);if(a){let l=a[1],c=new RegExp(`struct\\s+${l}\\s*\\{([^}]+)\\}`,"s"),h=r.match(c);h&&Om(h[1],e)}}return e}var GS,Lm,zm=p(()=>{pr();GS={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",vec2i:"sint32x2",vec3i:"sint32x3",vec4i:"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",vec2u:"uint32x2",vec3u:"uint32x3",vec4u:"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"},Lm=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|\)|$)/g});function oa(i){let t=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,e=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*([\w<>]+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,l=/struct\s+(\w+)/,c=i.match(t)?.map(u=>{let d=u.match(s),f=d?.[1]??"",m;return f==="<uniform>"?m="uniform":f.startsWith("<storage")&&(m="storage"),{group:parseInt(u.match(e)[1],10),binding:parseInt(u.match(r)[1],10),name:d[2],accessMode:m,type:u.match(n)[1]}});if(!c)return{groups:[],structs:[]};let h=i.match(o)?.map(u=>{let d=u.match(l)[1],f=u.match(a).reduce((m,g)=>{let[_,x]=g.split(":");return m[_.trim()]=x.trim(),m},{});return f?{name:d,members:f}:null}).filter(({name:u})=>c.some(d=>d.type===u||d.type.includes(`<${u}>`)))??[];return{groups:c,structs:h}}var Hm=p(()=>{"use strict"});var Dt,Wm=p(()=>{"use strict";Dt=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Dt||{})});function Vm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]=[]),r.accessMode==="uniform"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"uniform"}}):r.accessMode==="storage"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"read-only-storage"}}):r.type==="sampler"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"filtering"}}):r.type==="sampler_comparison"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"comparison"}}):r.type==="texture_2d"||r.type.startsWith("texture_2d<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d_array"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d-array",multisampled:!1}}):r.type==="texture_2d_array"||r.type.startsWith("texture_2d_array<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d-array",multisampled:!1}}):(r.type==="texture_cube"||r.type.startsWith("texture_cube<"))&&t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"cube",multisampled:!1}})}for(let e=0;e<t.length;e++)t[e]||(t[e]=[]);return t}var jm=p(()=>{Wm()});function Xm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]={}),t[r.group][r.name]=r.binding}return t}var Ym=p(()=>{"use strict"});function $m(i,t){let e=new Set,r=new Set,s=[...i.structs,...t.structs].filter(o=>e.has(o.name)?!1:(e.add(o.name),!0)),n=[...i.groups,...t.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return r.has(a)?!1:(r.add(a),!0)});return{structs:s,groups:n}}var qm=p(()=>{"use strict"});var Ds,ve,Ri=p(()=>{Ai();zm();Hm();jm();Ym();qm();Ds=Object.create(null),ve=class i{constructor(t){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:e,vertex:r,layout:s,gpuLayout:n,name:o}=t;if(this.name=o,this.fragment=e,this.vertex=r,e.source===r.source){let a=oa(e.source);this.structsAndGroups=a}else{let a=oa(r.source),l=oa(e.source);this.structsAndGroups=$m(a,l)}this.layout=s??Xm(this.structsAndGroups),this.gpuLayout=n??Vm(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:t,fragment:e}=this,r=t.source+e.source+t.entryPoint+e.entryPoint;this._layoutKey=ke(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=Nm(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null,Ds[this._cacheKey]=null}static from(t){let e=`${t.vertex.source}:${t.fragment.source}:${t.fragment.entryPoint}:${t.vertex.entryPoint}`;return Ds[e]||(Ds[e]=new i(t),Ds[e]._cacheKey=e),Ds[e]}}});var Vt,mr=p(()=>{ht();Vt=class{constructor(t){this.resources=Object.create(null),this._dirty=!0;let e=0;for(let r in t){let s=t[r];this.setResource(s,e++)}}get _key(){if(this._dirty){this._dirty=!1;let t=[],e=0;for(let r in this.resources)t[e++]=this.resources[r]?this.resources[r]._resourceId:-1;this._keyValue=t.join("|")}return this._keyValue}setResource(t,e){let r=this.resources[e];t!==r&&(r&&r.off?.("change",this.onResourceChange,this),t.on?.("change",this.onResourceChange,this),this.resources[e]=t,this._dirty=!0)}getResource(t){return this.resources[t]}_touch(t,e){let r=this.resources;for(let s in r){let n=r[s];n&&(n._gcLastUsed=t,n._touched=e)}}destroy(){let t=this.resources;for(let e in t)t[e]?.off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(t){if(this._dirty=!0,t.destroyed){let e=this.resources;for(let r in e)e[r]===t&&(e[r]=null);L(`[BindGroup] a '${t._resourceType}' was destroyed while still bound to a shader. Remove it from the shader before destroying it.`)}}}});var Lt,Ne=p(()=>{"use strict";Lt=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.CANVAS=4]="CANVAS",i[i.BOTH=3]="BOTH",i))(Lt||{})});var ki,Kc=p(()=>{Ai();ki=class i{constructor(t){this.data={...t};let e=Object.keys(t).sort().map(r=>`${r}:${t[r]}`).join("|");this.id=ke(e,"shader-overrides")}static from(t){return t instanceof i?t:new i(t)}}});var Zc,Km,Zm=p(()=>{"use strict";Zc=["f32","i32","u32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>","vec2<u32>","vec3<u32>","vec4<u32>"],Km=Zc.reduce((i,t)=>(i[t]=!0,i),{})});function Qm(i,t){switch(i){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*t);case"vec3<f32>":return new Float32Array(3*t);case"vec4<f32>":return new Float32Array(4*t);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Jm=p(()=>{"use strict"});var tg,Ct,me=p(()=>{Ht();Ft();Ai();Zm();Jm();tg=class eg extends ut{constructor(t,e){super(),this._touched=0,this.uid=$("uniform"),this._resourceType="uniformGroup",this._resourceId=$("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,e={...eg.defaultOptions,...e},this.uniformStructures=t;let r={};for(let s in t){let n=t[s];if(n.name=s,n.size=n.size??1,!Km[n.type]){let o=n.type.match(/^array<(\w+(?:<\w+>)?),\s*(\d+)>$/);if(o){let[,a,l]=o;throw new Error(`Uniform type ${n.type} is not supported. Use type: '${a}', size: ${l} instead.`)}throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${Zc.join(", ")}`)}n.value??(n.value=Qm(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=e.ubo,this.isStatic=e.isStatic,this._signature=ke(Object.keys(r).map(s=>`${s}-${t[s].type}`).join("-"),"uniform-group")}get buffer(){return this._buffer}set buffer(t){this._buffer!==t&&(this._buffer?.off("change",this.onBufferChange,this),this._buffer=t,t?.on("change",this.onBufferChange,this))}get _gcLastUsed(){return this._buffer?._gcLastUsed??-1}set _gcLastUsed(t){this._buffer&&(this._buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}update(){this._dirtyId++}};tg.defaultOptions={ubo:!1,isStatic:!1};Ct=tg});var te,gr=p(()=>{Ht();Ft();ht();Nr();mr();Ri();Ne();Kc();me();te=class i extends ut{constructor(t){super(),this.uid=$("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[],this._destroyed=!1;let{gpuProgram:e,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a,overrides:l}=t;this._overrides=l?ki.from(l):null,this.gpuProgram=e,this.glProgram=r,o===void 0&&(o=0,e&&(o|=Lt.WEBGPU),r&&(o|=Lt.WEBGL)),this.compatibleRenderers=o;let c={};if(a)for(let h in a)for(let u in a[h]){let d=a[h][u];c[d]={group:h,binding:u,name:d}}if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!e&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(e&&s&&!a){let h=e.structsAndGroups.groups;a={},h.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,c[u.name]=u})}else if(n){s={},a||(a={}),e&&e.structsAndGroups.groups.forEach(d=>{a[d.group]=a[d.group]||{},a[d.group][d.binding]=d.name,c[d.name]=d});let h=0;for(let u in n)c[u]||(e&&!r&&L(`[Shader] the resource '${u}' matches no binding in the WGSL source \u2014 is the name correct?`),s[99]||(s[99]=new Vt,this._ownedBindGroups.push(s[99])),c[u]={group:99,binding:h,name:u},a[99]=a[99]||{},a[99][h]=u,h++);for(let u in n){let d=u,f=n[u];!f.source&&!f._resourceType&&(f=new Ct(f));let m=c[d];m&&(s[m.group]||(s[m.group]=new Vt,this._ownedBindGroups.push(s[m.group])),s[m.group].setResource(f,m.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(t,e,r){var s,n;(s=this._uniformBindMap)[e]||(s[e]={}),(n=this._uniformBindMap[e])[r]||(n[r]=t),this.groups[e]||(this.groups[e]=new Vt,this._ownedBindGroups.push(this.groups[e]))}_buildResourceAccessor(t,e){let r={};for(let s in e){let n=e[s];Object.defineProperty(r,n.name,{get(){return t[n.group].getResource(n.binding)},set(o){t[n.group].setResource(o,n.binding)}})}return r}destroy(t=!1){this._destroyed||(this._destroyed=!0,this.emit("destroy",this),t&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(e=>{e.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null,this._overrides=null)}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var US,nh,Qc,Jc,th,eh,rh,ih,sh,Ot,Be=p(()=>{"use strict";US={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},nh={BLEND:0,OFFSET:1,CULLING:2,DEPTH_TEST:3,WINDING:4,DEPTH_MASK:5},{BLEND:Qc,OFFSET:Jc,CULLING:th,DEPTH_TEST:eh,WINDING:rh,DEPTH_MASK:ih}=nh,sh=class rg{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<Qc)}set blend(t){!!(this.data&1<<Qc)!==t&&(this.data^=1<<Qc)}get offsets(){return!!(this.data&1<<Jc)}set offsets(t){!!(this.data&1<<Jc)!==t&&(this.data^=1<<Jc)}set cullMode(t){if(t==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=t==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<th)}set culling(t){!!(this.data&1<<th)!==t&&(this.data^=1<<th)}get depthTest(){return!!(this.data&1<<eh)}set depthTest(t){!!(this.data&1<<eh)!==t&&(this.data^=1<<eh)}get depthMask(){return!!(this.data&1<<ih)}set depthMask(t){!!(this.data&1<<ih)!==t&&(this.data^=1<<ih)}get clockwiseFrontFace(){return!!(this.data&1<<rh)}set clockwiseFrontFace(t){!!(this.data&1<<rh)!==t&&(this.data^=1<<rh)}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=US[t]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let t=new rg;return t.depthTest=!1,t.depthMask=!1,t.blend=!0,t}};sh.default2d=sh.for2d();Ot=sh});var ig,aa,ah=p(()=>{Nr();Ri();gr();Be();ig=class oh extends te{constructor(t){t={...oh.defaultOptions,...t},super(t),this.enabled=!0,this._state=Ot.for2d(),this.blendMode=t.blendMode,this.padding=t.padding,typeof t.antialias=="boolean"?this.antialias=t.antialias?"on":"off":this.antialias=t.antialias,this.resolution=t.resolution,this.blendRequired=t.blendRequired,this.clipToViewport=t.clipToViewport,this.addResource("uTexture",0,1),t.blendRequired&&this.addResource("uBackTexture",0,3)}apply(t,e,r,s){t.applyFilter(this,e,r,s)}get blendMode(){return this._state.blendMode}set blendMode(t){this._state.blendMode=t}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new oh({gpuProgram:n,glProgram:o,...s})}};ig.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};aa=ig});var sg,ng=p(()=>{sg=`in vec2 aPosition;
32
+ `}var N0=p(()=>{"use strict"});function H0(i,e,t){let r=t?e.maxSupportedFragmentPrecision:e.maxSupportedVertexPrecision;if(i.substring(0,9)!=="precision"){let s=t?e.requestedFragmentPrecision:e.requestedVertexPrecision;return s==="highp"&&r!=="highp"&&(s="mediump"),`precision ${s} float;
33
+ ${i}`}else if(r!=="highp"&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}var z0=p(()=>{"use strict"});function W0(i,e){return e?`#version 300 es
34
+ ${i}`:i}var V0=p(()=>{"use strict"});function j0(i,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let r=t?jv:Xv;return r[e]?(r[e]++,e+=`-${r[e]}`):r[e]=1,i.indexOf("#define SHADER_NAME")!==-1?i:`${`#define SHADER_NAME ${e}`}
35
+ ${i}`}var jv,Xv,X0=p(()=>{"use strict";jv={},Xv={}});function Y0(i,e){return e?i.replace("#version 300 es",""):i}var $0=p(()=>{"use strict"});var id,Fs,q0,yt,Hr=p(()=>{Ii();L0();N0();z0();V0();X0();$0();id={stripVersion:Y0,ensurePrecision:H0,addProgramDefines:O0,setProgramName:j0,insertVersion:W0},Fs=Object.create(null),q0=class sd{constructor(e){e={...sd.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:D0()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys(id).forEach(o=>{let a=r[o];s=id[o](s,a,!0),n=id[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=Bt(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null,Fs[this._cacheKey]=null}static from(e){let t=`${e.vertex}:${e.fragment}`;return Fs[t]||(Fs[t]=new sd(e),Fs[t]._cacheKey=t),Fs[t]}};q0.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};yt=q0});function qe(i){return K0[i]??K0.float32}var K0,mr=p(()=>{"use strict";K0={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function Q0(i,e){let t;for(;(t=Z0.exec(i))!==null;){let r=Yv[t[3]]??"float32";e[t[2]]={location:parseInt(t[1],10),format:r,stride:qe(r).stride,offset:0,instance:!1,start:0}}Z0.lastIndex=0}function $v(i){return i.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function J0({source:i,entryPoint:e}){let t={},r=$v(i),s=r.indexOf(`fn ${e}(`);if(s===-1)return t;let n=r.indexOf("->",s);if(n===-1)return t;let o=r.substring(s,n);if(Q0(o,t),Object.keys(t).length===0){let a=o.match(/\(\s*\w+\s*:\s*(\w+)/);if(a){let c=a[1],l=new RegExp(`struct\\s+${c}\\s*\\{([^}]+)\\}`,"s"),d=r.match(l);d&&Q0(d[1],t)}}return t}var Yv,Z0,em=p(()=>{mr();Yv={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",vec2i:"sint32x2",vec3i:"sint32x3",vec4i:"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",vec2u:"uint32x2",vec3u:"uint32x3",vec4u:"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"},Z0=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|\)|$)/g});function ua(i){let e=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,t=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*([\w<>]+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,c=/struct\s+(\w+)/,l=i.match(e)?.map(h=>{let u=h.match(s),f=u?.[1]??"",m;return f==="<uniform>"?m="uniform":f.startsWith("<storage")&&(m="storage"),{group:parseInt(h.match(t)[1],10),binding:parseInt(h.match(r)[1],10),name:u[2],accessMode:m,type:h.match(n)[1]}});if(!l)return{groups:[],structs:[]};let d=i.match(o)?.map(h=>{let u=h.match(c)[1],f=h.match(a).reduce((m,g)=>{let[x,b]=g.split(":");return m[x.trim()]=b.trim(),m},{});return f?{name:u,members:f}:null}).filter(({name:h})=>l.some(u=>u.type===h||u.type.includes(`<${h}>`)))??[];return{groups:l,structs:d}}var tm=p(()=>{"use strict"});var Fe,rm=p(()=>{"use strict";Fe=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Fe||{})});function im({groups:i}){let e=[];for(let t=0;t<i.length;t++){let r=i[t];e[r.group]||(e[r.group]=[]),r.accessMode==="uniform"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,buffer:{type:"uniform"}}):r.accessMode==="storage"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,buffer:{type:"read-only-storage"}}):r.type==="sampler"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,sampler:{type:"filtering"}}):r.type==="sampler_comparison"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,sampler:{type:"comparison"}}):r.type==="texture_2d"||r.type.startsWith("texture_2d<")?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d_array"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d-array",multisampled:!1}}):r.type==="texture_2d_array"||r.type.startsWith("texture_2d_array<")?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d-array",multisampled:!1}}):(r.type==="texture_cube"||r.type.startsWith("texture_cube<"))&&e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"float",viewDimension:"cube",multisampled:!1}})}for(let t=0;t<e.length;t++)e[t]||(e[t]=[]);return e}var sm=p(()=>{rm()});function nm({groups:i}){let e=[];for(let t=0;t<i.length;t++){let r=i[t];e[r.group]||(e[r.group]={}),e[r.group][r.name]=r.binding}return e}var om=p(()=>{"use strict"});function am(i,e){let t=new Set,r=new Set,s=[...i.structs,...e.structs].filter(o=>t.has(o.name)?!1:(t.add(o.name),!0)),n=[...i.groups,...e.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return r.has(a)?!1:(r.add(a),!0)});return{structs:s,groups:n}}var cm=p(()=>{"use strict"});var Us,vt,Gi=p(()=>{Ii();em();tm();sm();om();cm();Us=Object.create(null),vt=class i{constructor(e){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:t,vertex:r,layout:s,gpuLayout:n,name:o}=e;if(this.name=o,this.fragment=t,this.vertex=r,t.source===r.source){let a=ua(t.source);this.structsAndGroups=a}else{let a=ua(r.source),c=ua(t.source);this.structsAndGroups=am(a,c)}this.layout=s??nm(this.structsAndGroups),this.gpuLayout=n??im(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:e,fragment:t}=this,r=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=Bt(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=J0(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null,Us[this._cacheKey]=null}static from(e){let t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return Us[t]||(Us[t]=new i(e),Us[t]._cacheKey=t),Us[t]}}});var ze,gr=p(()=>{he();ze=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let r in e){let s=e[r];this.setResource(s,t++)}}get _key(){if(this._dirty){this._dirty=!1;let e=[],t=0;for(let r in this.resources)e[t++]=this.resources[r]?this.resources[r]._resourceId:-1;this._keyValue=e.join("|")}return this._keyValue}setResource(e,t){let r=this.resources[t];e!==r&&(r&&r.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e,t){let r=this.resources;for(let s in r){let n=r[s];n&&(n._gcLastUsed=e,n._touched=t)}}destroy(){let e=this.resources;for(let t in e)e[t]?.off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let r in t)t[r]===e&&(t[r]=null);O(`[BindGroup] a '${e._resourceType}' was destroyed while still bound to a shader. Remove it from the shader before destroying it.`)}}}});var Ue,zt=p(()=>{"use strict";Ue=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.CANVAS=4]="CANVAS",i[i.BOTH=3]="BOTH",i))(Ue||{})});var Fi,nd=p(()=>{Ii();Fi=class i{constructor(e){this.data={...e};let t=Object.keys(e).sort().map(r=>`${r}:${e[r]}`).join("|");this.id=Bt(t,"shader-overrides")}static from(e){return e instanceof i?e:new i(e)}}});var od,lm,dm=p(()=>{"use strict";od=["f32","i32","u32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>","vec2<u32>","vec3<u32>","vec4<u32>"],lm=od.reduce((i,e)=>(i[e]=!0,i),{})});function hm(i,e){switch(i){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var um=p(()=>{"use strict"});var fm,Te,mt=p(()=>{Ne();Ie();Ii();dm();um();fm=class pm extends fe{constructor(e,t){super(),this._touched=0,this.uid=Y("uniform"),this._resourceType="uniformGroup",this._resourceId=Y("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...pm.defaultOptions,...t},this.uniformStructures=e;let r={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!lm[n.type]){let o=n.type.match(/^array<(\w+(?:<\w+>)?),\s*(\d+)>$/);if(o){let[,a,c]=o;throw new Error(`Uniform type ${n.type} is not supported. Use type: '${a}', size: ${c} instead.`)}throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${od.join(", ")}`)}n.value??(n.value=hm(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Bt(Object.keys(r).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}get buffer(){return this._buffer}set buffer(e){this._buffer!==e&&(this._buffer?.off("change",this.onBufferChange,this),this._buffer=e,e?.on("change",this.onBufferChange,this))}get _gcLastUsed(){return this._buffer?._gcLastUsed??-1}set _gcLastUsed(e){this._buffer&&(this._buffer._gcLastUsed=e)}onBufferChange(){this._resourceId=Y("resource"),this.emit("change",this)}update(){this._dirtyId++}};fm.defaultOptions={ubo:!1,isStatic:!1};Te=fm});var Ke,br=p(()=>{Ne();Ie();he();Hr();gr();Gi();zt();nd();mt();Ke=class i extends fe{constructor(e){super(),this.uid=Y("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[],this._destroyed=!1;let{gpuProgram:t,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a,overrides:c}=e;this._overrides=c?Fi.from(c):null,this.gpuProgram=t,this.glProgram=r,o===void 0&&(o=0,t&&(o|=Ue.WEBGPU),r&&(o|=Ue.WEBGL)),this.compatibleRenderers=o;let l={};if(a)for(let d in a)for(let h in a[d]){let u=a[d][h];l[u]={group:d,binding:h,name:u}}if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(t&&s&&!a){let d=t.structsAndGroups.groups;a={},d.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,l[h.name]=h})}else if(n){s={},a||(a={}),t&&t.structsAndGroups.groups.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,l[u.name]=u});let d=0;for(let h in n)l[h]||(t&&!r&&O(`[Shader] the resource '${h}' matches no binding in the WGSL source \u2014 is the name correct?`),s[99]||(s[99]=new ze,this._ownedBindGroups.push(s[99])),l[h]={group:99,binding:d,name:h},a[99]=a[99]||{},a[99][d]=h,d++);for(let h in n){let u=h,f=n[h];!f.source&&!f._resourceType&&(f=new Te(f));let m=l[u];m&&(s[m.group]||(s[m.group]=new ze,this._ownedBindGroups.push(s[m.group])),s[m.group].setResource(f,m.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,l)}addResource(e,t,r){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[r]||(n[r]=e),this.groups[t]||(this.groups[t]=new ze,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let r={};for(let s in t){let n=t[s];Object.defineProperty(r,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return r}destroy(e=!1){this._destroyed||(this._destroyed=!0,this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null,this._overrides=null)}static from(e){let{gpu:t,gl:r,...s}=e,n,o;return t&&(n=vt.from(t)),r&&(o=yt.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var qv,pd,ad,cd,ld,dd,hd,ud,fd,De,It=p(()=>{"use strict";qv={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},pd={BLEND:0,OFFSET:1,CULLING:2,DEPTH_TEST:3,WINDING:4,DEPTH_MASK:5},{BLEND:ad,OFFSET:cd,CULLING:ld,DEPTH_TEST:dd,WINDING:hd,DEPTH_MASK:ud}=pd,fd=class mm{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<ad)}set blend(e){!!(this.data&1<<ad)!==e&&(this.data^=1<<ad)}get offsets(){return!!(this.data&1<<cd)}set offsets(e){!!(this.data&1<<cd)!==e&&(this.data^=1<<cd)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<ld)}set culling(e){!!(this.data&1<<ld)!==e&&(this.data^=1<<ld)}get depthTest(){return!!(this.data&1<<dd)}set depthTest(e){!!(this.data&1<<dd)!==e&&(this.data^=1<<dd)}get depthMask(){return!!(this.data&1<<ud)}set depthMask(e){!!(this.data&1<<ud)!==e&&(this.data^=1<<ud)}get clockwiseFrontFace(){return!!(this.data&1<<hd)}set clockwiseFrontFace(e){!!(this.data&1<<hd)!==e&&(this.data^=1<<hd)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=qv[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new mm;return e.depthTest=!1,e.depthMask=!1,e.blend=!0,e}};fd.default2d=fd.for2d();De=fd});var gm,fa,gd=p(()=>{Hr();Gi();br();It();gm=class md extends Ke{constructor(e){e={...md.defaultOptions,...e},super(e),this.enabled=!0,this._state=De.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1),e.blendRequired&&this.addResource("uBackTexture",0,3)}apply(e,t,r,s){e.applyFilter(this,t,r,s)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){let{gpu:t,gl:r,...s}=e,n,o;return t&&(n=vt.from(t)),r&&(o=yt.from(r)),new md({gpuProgram:n,glProgram:o,...s})}};gm.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};fa=gm});var bm,xm=p(()=>{bm=`in vec2 aPosition;
36
36
  out vec2 vTextureCoord;
37
37
 
38
38
  uniform vec4 uInputSize;
@@ -59,13 +59,13 @@ void main(void)
59
59
  gl_Position = filterVertexPosition();
60
60
  vTextureCoord = filterTextureCoord();
61
61
  }
62
- `});var og,ag=p(()=>{og=`in vec2 vTextureCoord;
62
+ `});var _m,ym=p(()=>{_m=`in vec2 vTextureCoord;
63
63
  out vec4 finalColor;
64
64
  uniform sampler2D uTexture;
65
65
  void main() {
66
66
  finalColor = texture(uTexture, vTextureCoord);
67
67
  }
68
- `});var lh,lg=p(()=>{lh=`struct GlobalFilterUniforms {
68
+ `});var bd,vm=p(()=>{bd=`struct GlobalFilterUniforms {
69
69
  uInputSize: vec4<f32>,
70
70
  uInputPixel: vec4<f32>,
71
71
  uInputClamp: vec4<f32>,
@@ -114,24 +114,24 @@ fn mainFragment(
114
114
  ) -> @location(0) vec4<f32> {
115
115
  return textureSample(uTexture, uSampler, uv);
116
116
  }
117
- `});var la,cg=p(()=>{Nr();Ri();ah();ng();ag();lg();la=class extends aa{constructor(){let t=ve.from({vertex:{source:lh,entryPoint:"mainVertex"},fragment:{source:lh,entryPoint:"mainFragment"},name:"passthrough-filter"}),e=be.from({vertex:sg,fragment:og,name:"passthrough-filter"});super({gpuProgram:t,glProgram:e})}}});var tt,ir=p(()=>{"use strict";tt=(i=>(i[i.MAP_READ=1]="MAP_READ",i[i.MAP_WRITE=2]="MAP_WRITE",i[i.COPY_SRC=4]="COPY_SRC",i[i.COPY_DST=8]="COPY_DST",i[i.INDEX=16]="INDEX",i[i.VERTEX=32]="VERTEX",i[i.UNIFORM=64]="UNIFORM",i[i.STORAGE=128]="STORAGE",i[i.INDIRECT=256]="INDIRECT",i[i.QUERY_RESOLVE=512]="QUERY_RESOLVE",i[i.STATIC=1024]="STATIC",i))(tt||{})});var At,xr=p(()=>{Ht();Ft();ir();At=class extends ut{constructor(t){let{data:e,size:r}=t,{usage:s,label:n,shrinkToFit:o}=t;super(),this._gpuData=Object.create(null),this._gcLastUsed=-1,this.autoGarbageCollect=!0,this.uid=$("buffer"),this._resourceType="buffer",this._resourceId=$("resource"),this._touched=0,this._updateID=1,this._updateOffset=0,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,e instanceof Array&&(e=new Float32Array(e)),this._data=e,r??(r=e?.byteLength);let a=!!e;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(t){this.setDataWithSize(t,t.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&tt.STATIC)}set static(t){t?this.descriptor.usage|=tt.STATIC:this.descriptor.usage&=~tt.STATIC}setDataWithSize(t,e,r){if(this._updateID++,this._updateSize=e*t.BYTES_PER_ELEMENT,this._updateOffset=0,this._data===t){r&&this.emit("update",this);return}let s=this._data;if(this._data=t,this._dataInt32=null,!s||s.length!==t.length){!this.shrinkToFit&&s&&t.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=t.byteLength,this._resourceId=$("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(t,e){this._updateSize=t??this._updateSize,this._updateOffset=e||0,this._updateID++,this.emit("update",this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.destroyed||(this._resourceId=$("resource"),this.emit("change",this))}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function ch(i,t){if(!(i instanceof At)){let e=t?tt.INDEX:tt.VERTEX;i instanceof Array&&(t?(i=new Uint32Array(i),e=tt.INDEX|tt.COPY_DST):(i=new Float32Array(i),e=tt.VERTEX|tt.COPY_DST)),i=new At({data:i,label:t?"index-mesh-buffer":"vertex-mesh-buffer",usage:e})}return i}var hg=p(()=>{xr();ir()});function ug(i,t,e){let r=i.getAttribute(t);if(!r)return e.minX=0,e.minY=0,e.maxX=0,e.maxY=0,e;let s=r.buffer.data,n=1/0,o=1/0,a=-1/0,l=-1/0,c=s.BYTES_PER_ELEMENT,h=(r.offset||0)/c,u=(r.stride||8)/c;for(let d=h;d<s.length;d+=u){let f=s[d],m=s[d+1];f>a&&(a=f),m>l&&(l=m),f<n&&(n=f),m<o&&(o=m)}return e.minX=n,e.minY=o,e.maxX=a,e.maxY=l,e}var dg=p(()=>{"use strict"});function DS(i){return(i instanceof At||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=ch(i.buffer,!1),i}var ue,zr=p(()=>{Ht();ie();Ft();yt();xr();hg();dg();ue=class extends ut{constructor(t={}){super(),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new dt,this._boundsDirty=!0,this._vertexCount=0,this._vertexCountDirty=!0;let{attributes:e,indexBuffer:r,topology:s}=t;if(this.buffers=[],this.attributes={},e)for(let n in e)this.addAttribute(n,e[n]);this.instanceCount=t.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this._vertexCountDirty=!0,this.emit("update",this)}getAttribute(t){return this.attributes[t]}getIndex(){return this.indexBuffer}getBuffer(t){return this.getAttribute(t).buffer}get vertexCount(){if(!this._vertexCountDirty)return this._vertexCount;this._vertexCountDirty=!1;let t=this.attributes;for(let e in t){let r=t[e];if(r.instance)continue;let s=r.buffer;return this._vertexCount=s.data.length/(r.stride/4||r.size),this._vertexCount}return this._vertexCount=0,0}getSize(){return O("8.20.0","Geometry.getSize is deprecated, please use Geometry.vertexCount instead."),this.vertexCount}addAttribute(t,e){let r=DS(e);this.buffers.indexOf(r.buffer)===-1&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this)),this.attributes[t]=r,this._vertexCountDirty=!0}addIndex(t){this.indexBuffer=ch(t,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,ug(this,"aPosition",this._bounds)):this._bounds}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){this.emit("destroy",this),this.removeAllListeners(),t&&this.buffers.forEach(e=>e.destroy()),this.unload(),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var LS,hh,Ls,fg=p(()=>{P();cg();ot();mr();zr();me();gt();Fr();Ne();ie();Wc();ht();LS=new ue({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),hh=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new dt,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.globalFrame={x:0,y:0,width:0,height:0},this.firstEnabledIndex=-1,this.lastEnabledIndex=-1}},Ls=class{constructor(t){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Ct({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new Vt({}),this.renderer=t}get activeBackTexture(){return this._activeFilterData?.backTexture}push(t){let e=this.renderer,r=t.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=t.container,s.outputRenderSurface=e.renderTarget.renderSurface;let n=e.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.every(f=>!f.enabled)){s.skip=!0;return}let l=s.bounds;if(this._calculateFilterArea(t,l),this._calculateFilterBounds(s,e.renderTarget.rootViewPort,a,o,1),s.skip)return;let c=this._getPreviousFilterData(),h=this._findFilterResolution(o),u=0,d=0;c&&(u=c.bounds.minX,d=c.bounds.minY),this._calculateGlobalFrame(s,u,d,h,n.width,n.height),this._setupFilterTextures(s,l,e,c)}generateFilteredTexture({texture:t,filters:e}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=e;let s=t.source,n=s.resolution,o=s.antialias;if(e.every(f=>!f.enabled))return r.skip=!0,t;let a=r.bounds;if(a.addRect(t.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return t;let l=n;this._calculateGlobalFrame(r,0,0,l,s.width,s.height),r.outputRenderSurface=Mt.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=F.EMPTY,r.inputTexture=t,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let d=r.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let t=this.renderer,e=this._popFilterData();e.skip||(t.globalUniforms.pop(),t.renderTarget.finishRenderPass(),this._activeFilterData=e,this._applyFiltersToTexture(e,!1),e.blendRequired&&Mt.returnTexture(e.backTexture),Mt.returnTexture(e.inputTexture))}getBackTexture(t,e,r){let s=t.colorTexture.source._resolution,n=Mt.getOptimalTexture(e.width,e.height,s,!1),o=e.minX,a=e.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let l=Math.ceil(e.width*s),c=Math.ceil(e.height*s);return this.renderer.renderTarget.copyToTexture(t,n,{x:o,y:a},{width:l,height:c},{x:0,y:0}),n}applyFilter(t,e,r,s){let n=this.renderer,o=this._activeFilterData,l=o.outputRenderSurface===r,c=n.renderTarget.rootRenderTarget.colorTexture.source._resolution,h=this._findFilterResolution(c),u=0,d=0;if(l){let m=this._findPreviousFilterOffset();u=m.x,d=m.y}this._updateFilterUniforms(e,r,o,u,d,h,l,s);let f=t.enabled?t:this._getPassthroughFilter();this._setupBindGroupsAndRender(f,e,n)}calculateSpriteMatrix(t,e){let r=this._activeFilterData,s=t.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),n=e.worldTransform.copyTo(k.shared),o=e.renderGroup||e.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/e.texture.orig.width,1/e.texture.orig.height),s.translate(e.anchor.x,e.anchor.y),s}destroy(){this._passthroughFilter?.destroy(!0),this._passthroughFilter=null}_getPassthroughFilter(){return this._passthroughFilter??(this._passthroughFilter=new la),this._passthroughFilter}_setupBindGroupsAndRender(t,e,r){if(r.renderPipes.uniformBatch){let s=r.renderPipes.uniformBatch.getUboResource(this._filterGlobalUniforms);this._globalFilterBindGroup.setResource(s,0)}else this._globalFilterBindGroup.setResource(this._filterGlobalUniforms,0);this._globalFilterBindGroup.setResource(e.source,1),this._globalFilterBindGroup.setResource(e.source.style,2),t.groups[0]=this._globalFilterBindGroup,r.encoder.draw({geometry:LS,shader:t,state:t._state,topology:"triangle-list"}),r.type===Lt.WEBGL&&r.renderTarget.finishRenderPass()}_setupFilterTextures(t,e,r,s){if(t.backTexture=F.EMPTY,t.inputTexture=Mt.getOptimalTexture(e.width,e.height,t.resolution,t.antialias),t.blendRequired){r.renderTarget.finishRenderPass();let n=r.renderTarget.getRenderTarget(t.outputRenderSurface);t.backTexture=this.getBackTexture(n,e,s?.bounds)}r.renderTarget.bind({target:t.inputTexture,clear:!0}),r.globalUniforms.push({offset:e})}_calculateGlobalFrame(t,e,r,s,n,o){let a=t.globalFrame;a.x=e*s,a.y=r*s,a.width=n*s,a.height=o*s}_updateFilterUniforms(t,e,r,s,n,o,a,l){let c=this._filterGlobalUniforms.uniforms,h=c.uOutputFrame,u=c.uInputSize,d=c.uInputPixel,f=c.uInputClamp,m=c.uGlobalFrame,g=c.uOutputTexture;a?(h[0]=r.bounds.minX-s,h[1]=r.bounds.minY-n):(h[0]=0,h[1]=0),h[2]=t.frame.width,h[3]=t.frame.height,u[0]=t.source.width,u[1]=t.source.height,u[2]=1/u[0],u[3]=1/u[1],d[0]=t.source.pixelWidth,d[1]=t.source.pixelHeight,d[2]=1/d[0],d[3]=1/d[1],f[0]=.5*d[2],f[1]=.5*d[3],f[2]=t.frame.width*u[2]-.5*d[2],f[3]=t.frame.height*u[3]-.5*d[3];let _=this.renderer.renderTarget.rootRenderTarget.colorTexture;m[0]=s*o,m[1]=n*o,m[2]=_.source.width*o,m[3]=_.source.height*o,e instanceof F&&(e.source.resource=null);let x=this.renderer.renderTarget.getRenderTarget(e);this.renderer.renderTarget.bind({target:e,clear:!!l}),e instanceof F?(g[0]=e.frame.width,g[1]=e.frame.height):(g[0]=x.width,g[1]=x.height),g[2]=x.isRoot?-1:1,this._filterGlobalUniforms.update()}_findFilterResolution(t){let e=this._filterStackIndex-1;for(;e>0&&this._filterStack[e].skip;)--e;return e>0&&this._filterStack[e].inputTexture?this._filterStack[e].inputTexture.source._resolution:t}_findPreviousFilterOffset(){let t=0,e=0,r=this._filterStackIndex;for(;r>0;){r--;let s=this._filterStack[r];if(!s.skip){t=s.bounds.minX,e=s.bounds.minY;break}}return{x:t,y:e}}_calculateFilterArea(t,e){if(t.renderables?ea(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup).cacheToLocalTransform;s&&e.applyMatrix(s)}}_applyFiltersToTexture(t,e){let r=t.inputTexture,s=t.bounds,n=t.filters,o=t.firstEnabledIndex,a=t.lastEnabledIndex;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(t.backTexture.source,3),o===a)n[o].apply(this,r,t.outputRenderSurface,e);else{let l=t.inputTexture,c=Mt.getOptimalTexture(s.width,s.height,l.source._resolution,!1),h=c;for(let u=o;u<a;u++){let d=n[u];if(!d.enabled)continue;d.apply(this,l,h,!0);let f=l;l=h,h=f}n[a].apply(this,l,t.outputRenderSurface,e),Mt.returnTexture(c)}}_calculateFilterBounds(t,e,r,s,n){let o=this.renderer,a=t.bounds,l=t.filters,c=1/0,h=0,u=!0,d=!1,f=!1,m=!0,g=-1,_=-1;for(let x=0;x<l.length;x++){let b=l[x];if(!b.enabled)continue;if(g===-1&&(g=x),_=x,c=Math.min(c,b.resolution==="inherit"?s:b.resolution),h+=b.padding,b.antialias==="off"?u=!1:b.antialias==="inherit"&&u&&(u=r),b.clipToViewport||(m=!1),!!!(b.compatibleRenderers&o.type)){f=!1;break}if(b.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){L("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=!0,d||(d=b.blendRequired)}if(!f){t.skip=!0;return}if(m&&a.fitBounds(0,e.width/s,0,e.height/s),a.scale(c).ceil().scale(1/c).pad((h|0)*n),!a.isPositive){t.skip=!0;return}t.antialias=u,t.resolution=c,t.blendRequired=d,t.firstEnabledIndex=g,t.lastEnabledIndex=_}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let t,e=this._filterStackIndex-1;for(;e>0&&(e--,t=this._filterStack[e],!!t.skip););return t}_pushFilterData(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new hh),this._filterStackIndex++,t}};Ls.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"filter"}});var uh=p(()=>{P();vm();Sm();fg();z.add(Ls,Gs);z.add(Fs)});var OS={};var pg=p(()=>{Rp();Bp();Up();No();Yo();uh()});var NS={};var gg=p(()=>{No();Yo();uh()});async function _g(i){if(!i)for(let t=0;t<dh.length;t++){let e=dh[t];if(e.value.test()){await e.value.load();return}}}var dh,yg=p(()=>{P();dh=[];z.handleByNamedList(y.Environment,dh)});function ca(){if(typeof Os=="boolean")return Os;try{Os=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Os=!1}return Os}var Os,fh=p(()=>{"use strict"});function pa(i,t,e=2){let r=t&&t.length,s=r?t[0]*e:i.length;Ws.size&&Ws.clear();let n=Tg(i,0,s,e,!0),o=[];if(!n||n.next===n.prev)return o;let a=0,l=0,c=0;if(r&&(n=jS(i,t,n,e)),i.length>80*e){a=i[0],l=i[1];let h=a,u=l;for(let d=e;d<s;d+=e){let f=i[d],m=i[d+1];f<a&&(a=f),m<l&&(l=m),f>h&&(h=f),m>u&&(u=m)}c=Math.max(h-a,u-l),c=c!==0?32767/c:0}return mh(n,o,a,l,c),o}function Tg(i,t,e,r,s){let n=null;if(s===sT(i,t,e,r)>0)for(let o=t;o<e;o+=r)n=Sg(o/r|0,i[o],i[o+1],n);else for(let o=e-r;o>=t;o-=r)n=Sg(o/r|0,i[o],i[o+1],n);return n&&Vs(n,n.next)&&(Xs(n),n=n.next),n}function Wr(i,t=i){let e=t===i,r=i,s;do s=!1,r!==r.next&&(Ws.size===0||!Ws.has(r))&&(Vs(r,r.next)||Nt(r.prev,r,r.next)===0)?((e||r===t)&&(t=r.prev),ph=!0,Xs(r),r=r.prev,s=!0):(e||r!==t)&&(r=r.next,s=!e);while(s||r!==t);return t}function mh(i,t,e,r,s){s&&QS(i,e,r,s);let n=i,o=!1;for(;i.prev!==i.next;){let a=i.prev,l=i.next;if(Nt(a,i,l)<0&&(s?HS(i,e,r,s):zS(i))){t.push(a.i,i.i,l.i),Xs(i),i=l,n=l;continue}if(i=l,i===n){if(ph=!1,i=Wr(i),ph){n=i;continue}if(!o){i=WS(i,t),n=i,o=!0;continue}VS(i,t,e,r,s);break}}}function zS(i){let t=i.prev,e=i,r=i.next,s=t.x,n=e.x,o=r.x,a=t.y,l=e.y,c=r.y,h=Math.min(s,n,o),u=Math.min(a,l,c),d=Math.max(s,n,o),f=Math.max(a,l,c),m=r.next;for(;m!==t;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=f&&!(s===m.x&&a===m.y)&&fa(s,a,n,l,o,c,m.x,m.y)&&Nt(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function HS(i,t,e,r){let s=i.prev,n=i,o=i.next,a=s.x,l=n.x,c=o.x,h=s.y,u=n.y,d=o.y,f=Math.min(a,l,c),m=Math.min(h,u,d),g=Math.max(a,l,c),_=Math.max(h,u,d),x=yh(f,m,t,e,r),b=yh(g,_,t,e,r),v=i.prevZ;for(;v&&v.z>=x;){if(v.x>=f&&v.x<=g&&v.y>=m&&v.y<=_&&v!==o&&!(a===v.x&&h===v.y)&&fa(a,h,l,u,c,d,v.x,v.y)&&Nt(v.prev,v,v.next)>=0)return!1;v=v.prevZ}let S=i.nextZ;for(;S&&S.z<=b;){if(S.x>=f&&S.x<=g&&S.y>=m&&S.y<=_&&S!==o&&!(a===S.x&&h===S.y)&&fa(a,h,l,u,c,d,S.x,S.y)&&Nt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function WS(i,t){let e=i,r=!1;do{let s=e.prev,n=e.next.next;Eg(s,e,e.next,n,!1)&&js(s,n)&&js(n,s)&&(t.push(s.i,e.i,n.i),Xs(e),Xs(e.next),e=i=n,r=!0),e=e.next}while(e!==i);return r?Wr(e):e}function VS(i,t,e,r,s){let n=i;do{let o=n.next.next;for(;o!==n.prev;){if(n.i!==o.i&&eT(n,o)){let a=Pg(n,o);n=Wr(n,n.next),a=Wr(a,a.next),mh(n,t,e,r,s),mh(a,t,e,r,s);return}o=o.next}n=n.next}while(n!==i)}function jS(i,t,e,r){let s=[];for(let n=0,o=t.length;n<o;n++){let a=t[n]*r,l=n<o-1?t[n+1]*r:i.length,c=Tg(i,a,l,r,!1);c===c.next&&Ws.add(c),s.push(tT(c))}s.sort(XS),$S(i.length/r,t.length),Cg(e,e),gh=!0;for(let n=0;n<s.length;n++)e=YS(s[n],e);return gh=!1,Wr(e)}function XS(i,t){return i.x-t.x||i.y-t.y||(i.next.y-i.y)/(i.next.x-i.x)-(t.next.y-t.y)/(t.next.x-t.x)}function YS(i,t){let e=KS(i,t);if(!e)return t;let r=Pg(e,i),s=r.next;return Cg(e,s.next),Wr(r,r.next),Wr(e,e.next)}function $S(i,t){let e=Math.ceil((i+2*t)/wg)+t+2;Rt.length<e*4&&(Rt=new Float64Array(e*4)),da=0}function Cg(i,t){let e=i;do{let r=da++;xh[r]=e;let s=1/0,n=1/0,o=-1/0,a=-1/0,l=0;do{let h=e.next;e.z=r,e.x<s&&(s=e.x),e.x>o&&(o=e.x),e.y<n&&(n=e.y),e.y>a&&(a=e.y),h.x<s&&(s=h.x),h.x>o&&(o=h.x),h.y<n&&(n=h.y),h.y>a&&(a=h.y),e=h}while(++l<wg&&e!==t);_h[r]=e;let c=r*4;Rt[c]=s,Rt[c+1]=n,Rt[c+2]=o,Rt[c+3]=a}while(e!==t)}function qS(i,t){let e=i.z*4;t.x<Rt[e]&&(Rt[e]=t.x),t.y<Rt[e+1]&&(Rt[e+1]=t.y),t.x>Rt[e+2]&&(Rt[e+2]=t.x),t.y>Rt[e+3]&&(Rt[e+3]=t.y)}function bg(i){let t=_h[i];for(;t.prev.next!==t;)t=t.next;return _h[i]=t,t}function vg(i){let t=xh[i];for(;t.prev.next!==t;)t=t.next;return xh[i]=t,t}function KS(i,t){let e=t,r=i.x,s=i.y,n=-1/0,o;if(Vs(i,e))return e;for(let d=0,f=0;d<da;d++,f+=4){if(s<Rt[f+1]||s>Rt[f+3]||Rt[f]>r||Rt[f+2]<=n)continue;let m=bg(d);e=vg(d);do{if(e.prev.next===e){if(Vs(i,e.next))return e.next;if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){let g=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(g<=r&&g>n&&(n=g,o=e.x<e.next.x?e:e.next,g===r))return o}}e=e.next}while(e!==m)}if(!o)return null;let a=o.x,l=o.y,c=Math.min(s,l),h=Math.max(s,l),u=1/0;for(let d=0,f=0;d<da;d++,f+=4){if(Rt[f+2]<a||Rt[f]>r||Rt[f+3]<c||Rt[f+1]>h)continue;let m=bg(d);e=vg(d);do{if(e.prev.next===e&&r>=e.x&&e.x>=a&&r!==e.x&&fa(s<l?r:n,s,a,l,s<l?n:r,s,e.x,e.y)){let g=Math.abs(s-e.y)/(r-e.x);(js(e,i)||e.y===s&&e.next.y===s&&e.next.x>r)&&(g<u||g===u&&(e.x>o.x||e.x===o.x&&ZS(o,e)))&&(o=e,u=g)}e=e.next}while(e!==m)}return o}function ZS(i,t){return Nt(i.prev,i,t.prev)<0&&Nt(t.next,i,i.next)<0}function QS(i,t,e,r){let s=i,n=0;do s.z=yh(s.x,s.y,t,e,r),Se[n++]=s,s=s.next;while(s!==i);JS(n);let o=null;for(let a=0;a<n;a++){let l=Se[a];l.prevZ=o,o&&(o.nextZ=l),o=l}o.nextZ=null}function JS(i){if(i<=32){for(let t=1;t<i;t++){let e=Se[t],r=e.z,s=t-1;for(;s>=0&&Se[s].z>r;)Se[s+1]=Se[s],s--;Se[s+1]=e}return}Hr.length<i&&(Hr=new Uint32Array(i),zs=new Uint32Array(i),Ns=new Array(i));for(let t=0;t<i;t++)Hr[t]=Se[t].z;ha(i,Se,Hr,Ns,zs,0),ha(i,Ns,zs,Se,Hr,8),ha(i,Se,Hr,Ns,zs,16),ha(i,Ns,zs,Se,Hr,24)}function ha(i,t,e,r,s,n){Hs.fill(0);for(let a=0;a<i;a++)Hs[e[a]>>>n&255]++;let o=0;for(let a=0;a<256;a++){let l=Hs[a];Hs[a]=o,o+=l}for(let a=0;a<i;a++){let l=e[a],c=Hs[l>>>n&255]++;r[c]=t[a],s[c]=l}}function yh(i,t,e,r,s){return i=(i-e)*s|0,t=(t-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function tT(i){let t=i,e=i;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==i);return e}function fa(i,t,e,r,s,n,o,a){return(s-o)*(t-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(e-o)*(t-a)&&(e-o)*(n-a)>=(s-o)*(r-a)}function eT(i,t){let e=Vs(i,t)&&Nt(i.prev,i,i.next)>0&&Nt(t.prev,t,t.next)>0;return i.next.i!==t.i&&(e||js(i,t)&&js(t,i)&&(Nt(i.prev,i,t.prev)!==0||Nt(i,t.prev,t)!==0))&&!rT(i,t)&&(e||iT(i,t))}function Nt(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function Vs(i,t){return i.x===t.x&&i.y===t.y}function Eg(i,t,e,r,s=!0){let n=Nt(i,t,e),o=Nt(i,t,r),a=Nt(e,r,i),l=Nt(e,r,t);return(n>0&&o<0||n<0&&o>0)&&(a>0&&l<0||a<0&&l>0)?!0:s?!!(n===0&&ua(i,e,t)||o===0&&ua(i,r,t)||a===0&&ua(e,i,r)||l===0&&ua(e,t,r)):!1}function ua(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function rT(i,t){let e=Math.min(i.x,t.x),r=Math.max(i.x,t.x),s=Math.min(i.y,t.y),n=Math.max(i.y,t.y),o=i;do{let a=o.next;if(o.x>r&&a.x>r||o.x<e&&a.x<e||o.y>n&&a.y>n||o.y<s&&a.y<s){o=a;continue}if(o.i!==i.i&&a.i!==i.i&&o.i!==t.i&&a.i!==t.i&&Eg(o,a,i,t))return!0;o=a}while(o!==i);return!1}function js(i,t){return Nt(i.prev,i,i.next)<0?Nt(i,t,i.next)>=0&&Nt(i,i.prev,t)>=0:Nt(i,t,i.prev)<0||Nt(i,i.next,t)<0}function iT(i,t){let e=i,r=!1,s=(i.x+t.x)/2,n=(i.y+t.y)/2;do{let o=e.next;e.y>n!=o.y>n&&s<(o.x-e.x)*(n-e.y)/(o.y-e.y)+e.x&&(r=!r),e=o}while(e!==i);return r}function Pg(i,t){let e=bh(i.i,i.x,i.y),r=bh(t.i,t.x,t.y),s=i.next,n=t.prev;return i.next=t,t.prev=i,e.next=s,s.prev=e,r.next=e,e.prev=r,n.next=r,r.prev=n,r}function Sg(i,t,e,r){let s=bh(i,t,e);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s}function Xs(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ),gh&&qS(i.prev,i.next)}function bh(i,t,e){return{i,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function sT(i,t,e,r){let s=0;for(let n=t,o=e-r;n<e;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var Ws,ph,gh,wg,Rt,da,xh,_h,Se,Ns,Hr,zs,Hs,Mg=p(()=>{Ws=new Set,ph=!1;gh=!1;wg=16,Rt=new Float64Array(0),da=0,xh=[],_h=[];Se=[],Ns=[],Hr=new Uint32Array(0),zs=new Uint32Array(0),Hs=new Uint32Array(256)});var Ag,Rg=p(()=>{Mg();Ht();Ag=pa.default||pa});var Et,Bi=p(()=>{"use strict";Et=(i=>(i[i.NONE=0]="NONE",i[i.COLOR=16384]="COLOR",i[i.STENCIL=1024]="STENCIL",i[i.DEPTH=256]="DEPTH",i[i.COLOR_DEPTH=16640]="COLOR_DEPTH",i[i.COLOR_STENCIL=17408]="COLOR_STENCIL",i[i.DEPTH_STENCIL=1280]="DEPTH_STENCIL",i[i.ALL=17664]="ALL",i))(Et||{})});var Ii,vh=p(()=>{"use strict";Ii=class{constructor(t){this.items=[],this._name=t}emit(t,e,r,s,n,o,a,l){let{name:c,items:h}=this;for(let u=0,d=h.length;u<d;u++)h[u][c](t,e,r,s,n,o,a,l);return this}add(t){return t[this._name]&&(this.remove(t),this.items.push(t)),this}remove(t){let e=this.items.indexOf(t);return e!==-1&&this.items.splice(e,1),this}contains(t){return this.items.indexOf(t)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var nT,kg,Te,Vr=p(()=>{Qt();yg();Pe();fh();Ft();yt();Pr();Bi();vh();Ht();nT=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],kg=class Bg extends ut{constructor(t){super(),this.tick=0,this.uid=$("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=t.type,this.name=t.name,this.config=t;let e=[...nT,...this.config.runners??[]];this._addRunners(...e),this._unsafeEvalCheck()}async init(t={}){let e=t.skipExtensionImports===!0?!0:t.manageImports===!1;await _g(e),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let r in this._systemsHash)t={...this._systemsHash[r].constructor.defaultOptions,...t};t={...Bg.defaultOptions,...t},this._roundPixels=t.roundPixels?1:0;for(let r=0;r<this.runners.init.items.length;r++)await this.runners.init.items[r].init(t);this._initOptions=t}render(t,e){this.tick++;let r=t;if(r instanceof mt&&(r={container:r},e&&(O(rt,"passing a second argument is deprecated, please use render options instead"),r.target=e.renderTexture)),r.target||(r.target=this.view.renderTarget),r.target===this.view.renderTarget&&(this._lastObjectRendered=r.container,r.clearColor??(r.clearColor=this.background.colorRgba),r.clear??(r.clear=this.background.clearBeforeRender)),r.clearColor){let s=Array.isArray(r.clearColor)&&r.clearColor.length===4;r.clearColor=s?r.clearColor:Q.shared.setValue(r.clearColor).toArray()}r.transform||(r.container.updateLocalTransform(),r.transform=r.container.localTransform),r.container.visible&&(r.container.enableRenderGroup(),this.runners.prerender.emit(r),this.runners.renderStart.emit(r),this.runners.render.emit(r),this.runners.renderEnd.emit(r),this.runners.postrender.emit(r))}resize(t,e,r){let s=this.view.resolution;this.view.resize(t,e,r),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),r!==void 0&&r!==s&&this.runners.resolutionChange.emit(r)}clear(t={}){let e=this;t.target||(t.target=e.renderTarget.renderTarget),t.clearColor||(t.clearColor=this.background.colorRgba),t.clear??(t.clear=Et.ALL);let{clear:r,clearColor:s,target:n,mipLevel:o,layer:a}=t;Q.shared.setValue(s??this.background.colorRgba),e.renderTarget.clear(n,r,Q.shared.toArray(),o??0,a??0)}get resolution(){return this.view.resolution}set resolution(t){this.view.resolution=t,this.runners.resolutionChange.emit(t)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...t){t.forEach(e=>{this.runners[e]=new Ii(e)})}_addSystems(t){let e;for(e in t){let r=t[e];this._addSystem(r.value,r.name)}}_addSystem(t,e){let r=new t(this);if(this[e])throw new Error(`Whoops! The name "${e}" is already in use`);this[e]=r,this._systemsHash[e]=r;for(let s in this.runners)this.runners[s].add(r);return this}_addPipes(t,e){let r=e.reduce((s,n)=>(s[n.name]=n.value,s),{});t.forEach(s=>{let n=s.value,o=s.name,a=r[o];this.renderPipes[o]=new n(this,a?new a:null),this.runners.destroy.add(this.renderPipes[o])})}destroy(t=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(t),(t===!0||typeof t=="object"&&t.releaseGlobalResources)&&ye.release(),Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash=null,this.renderPipes=null,this.removeAllListeners()}generateTexture(t){return this.textureGenerator.generateTexture(t)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!ca())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};kg.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};Te=kg});function Gi(i,t,e){let r=2166136261;for(let s=0;s<t;s++)r^=i[s].uid,r=Math.imul(r,16777619),r>>>=0;return Fg[r]||oT(i,t,r,e)}function oT(i,t,e,r){let s={},n=0;for(let a=0;a<r;a++){let l=a<t?i[a]:F.EMPTY.source;s[n++]=l.source,s[n++]=l.style}let o=new Vt(s);return Fg[e]=o,o}var Fg,xa=p(()=>{mr();gt();Fg={}});function Sh(i,t,e){if(i)for(let r in i){let s=r.toLocaleLowerCase(),n=t[s];if(n){let o=i[r];r==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),e&&n.push(`//----${e}----//`),n.push(o)}else L(`${r} placement hook does not exist in shader`)}}var Ug=p(()=>{ht()});function Th(i){let t={};return(i.match(aT)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{t[r]=[]}),t}var aT,Dg=p(()=>{"use strict";aT=/\{\{(.*?)\}\}/g});function Lg(i,t){let e,r=/@in\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function wh(i,t,e=!1){let r=[];Lg(t,r),i.forEach(a=>{a.header&&Lg(a.header,r)});let s=r;e&&s.sort();let n=s.map((a,l)=>` @location(${l}) ${a},`).join(`
118
- `),o=t.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
117
+ `});var pa,wm=p(()=>{Hr();Gi();gd();xm();ym();vm();pa=class extends fa{constructor(){let e=vt.from({vertex:{source:bd,entryPoint:"mainVertex"},fragment:{source:bd,entryPoint:"mainFragment"},name:"passthrough-filter"}),t=yt.from({vertex:bm,fragment:_m,name:"passthrough-filter"});super({gpuProgram:e,glProgram:t})}}});var J,sr=p(()=>{"use strict";J=(i=>(i[i.MAP_READ=1]="MAP_READ",i[i.MAP_WRITE=2]="MAP_WRITE",i[i.COPY_SRC=4]="COPY_SRC",i[i.COPY_DST=8]="COPY_DST",i[i.INDEX=16]="INDEX",i[i.VERTEX=32]="VERTEX",i[i.UNIFORM=64]="UNIFORM",i[i.STORAGE=128]="STORAGE",i[i.INDIRECT=256]="INDIRECT",i[i.QUERY_RESOLVE=512]="QUERY_RESOLVE",i[i.STATIC=1024]="STATIC",i))(J||{})});var Me,xr=p(()=>{Ne();Ie();sr();Me=class extends fe{constructor(e){let{data:t,size:r}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this._gpuData=Object.create(null),this._gcLastUsed=-1,this.autoGarbageCollect=!0,this.uid=Y("buffer"),this._resourceType="buffer",this._resourceId=Y("resource"),this._touched=0,this._updateID=1,this._updateOffset=0,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,r??(r=t?.byteLength);let a=!!t;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&J.STATIC)}set static(e){e?this.descriptor.usage|=J.STATIC:this.descriptor.usage&=~J.STATIC}setDataWithSize(e,t,r){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._updateOffset=0,this._data===e){r&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=Y("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(e,t){this._updateSize=e??this._updateSize,this._updateOffset=t||0,this._updateID++,this.emit("update",this)}unload(){this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy();this._gpuData=Object.create(null),this.destroyed||(this._resourceId=Y("resource"),this.emit("change",this))}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function xd(i,e){if(!(i instanceof Me)){let t=e?J.INDEX:J.VERTEX;i instanceof Array&&(e?(i=new Uint32Array(i),t=J.INDEX|J.COPY_DST):(i=new Float32Array(i),t=J.VERTEX|J.COPY_DST)),i=new Me({data:i,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return i}var Sm=p(()=>{xr();sr()});function Tm(i,e,t){let r=i.getAttribute(e);if(!r)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=r.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,l=s.BYTES_PER_ELEMENT,d=(r.offset||0)/l,h=(r.stride||8)/l;for(let u=d;u<s.length;u+=h){let f=s[u],m=s[u+1];f>a&&(a=f),m>c&&(c=m),f<n&&(n=f),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var Em=p(()=>{"use strict"});function Kv(i){return(i instanceof Me||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=xd(i.buffer,!1),i}var ct,zr=p(()=>{Ne();et();Ie();_e();xr();Sm();Em();ct=class extends fe{constructor(e={}){super(),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=Y("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new pe,this._boundsDirty=!0,this._vertexCount=0,this._vertexCountDirty=!0;let{attributes:t,indexBuffer:r,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this._vertexCountDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}get vertexCount(){if(!this._vertexCountDirty)return this._vertexCount;this._vertexCountDirty=!1;let e=this.attributes;for(let t in e){let r=e[t];if(r.instance)continue;let s=r.buffer;return this._vertexCount=s.data.length/(r.stride/4||r.size),this._vertexCount}return this._vertexCount=0,0}getSize(){return N("8.20.0","Geometry.getSize is deprecated, please use Geometry.vertexCount instead."),this.vertexCount}addAttribute(e,t){let r=Kv(t);this.buffers.indexOf(r.buffer)===-1&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this)),this.attributes[e]=r,this._vertexCountDirty=!0}addIndex(e){this.indexBuffer=xd(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,Tm(this,"aPosition",this._bounds)):this._bounds}unload(){this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy();this._gpuData=Object.create(null)}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.unload(),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var Zv,_d,Ds,Cm=p(()=>{P();wm();ce();gr();zr();mt();ge();Ur();zt();et();Ql();he();Zv=new ct({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),_d=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new pe,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.globalFrame={x:0,y:0,width:0,height:0},this.firstEnabledIndex=-1,this.lastEnabledIndex=-1}},Ds=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Te({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new ze({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,r=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.every(f=>!f.enabled)){s.skip=!0;return}let c=s.bounds;if(this._calculateFilterArea(e,c),this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let l=this._getPreviousFilterData(),d=this._findFilterResolution(o),h=0,u=0;l&&(h=l.bounds.minX,u=l.bounds.minY),this._calculateGlobalFrame(s,h,u,d,n.width,n.height),this._setupFilterTextures(s,c,t,l)}generateFilteredTexture({texture:e,filters:t}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.every(f=>!f.enabled))return r.skip=!0,e;let a=r.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return e;let c=n;this._calculateGlobalFrame(r,0,0,c,s.width,s.height),r.outputRenderSurface=Pe.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=U.EMPTY,r.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let u=r.outputRenderSurface;return u.source.alphaMode="premultiplied-alpha",u}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Pe.returnTexture(t.backTexture),Pe.returnTexture(t.inputTexture))}getBackTexture(e,t,r){let s=e.colorTexture.source._resolution,n=Pe.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),l=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:l},{x:0,y:0}),n}applyFilter(e,t,r,s){let n=this.renderer,o=this._activeFilterData,c=o.outputRenderSurface===r,l=n.renderTarget.rootRenderTarget.colorTexture.source._resolution,d=this._findFilterResolution(l),h=0,u=0;if(c){let m=this._findPreviousFilterOffset();h=m.x,u=m.y}this._updateFilterUniforms(t,r,o,h,u,d,c,s);let f=e.enabled?e:this._getPassthroughFilter();this._setupBindGroupsAndRender(f,t,n)}calculateSpriteMatrix(e,t){let r=this._activeFilterData,s=e.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),n=t.worldTransform.copyTo(k.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.orig.width,1/t.texture.orig.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){this._passthroughFilter?.destroy(!0),this._passthroughFilter=null}_getPassthroughFilter(){return this._passthroughFilter??(this._passthroughFilter=new pa),this._passthroughFilter}_setupBindGroupsAndRender(e,t,r){if(r.renderPipes.uniformBatch){let s=r.renderPipes.uniformBatch.getUboResource(this._filterGlobalUniforms);this._globalFilterBindGroup.setResource(s,0)}else this._globalFilterBindGroup.setResource(this._filterGlobalUniforms,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,r.encoder.draw({geometry:Zv,shader:e,state:e._state,topology:"triangle-list"}),r.type===Ue.WEBGL&&r.renderTarget.finishRenderPass()}_setupFilterTextures(e,t,r,s){if(e.backTexture=U.EMPTY,e.inputTexture=Pe.getOptimalTexture(t.width,t.height,e.resolution,e.antialias),e.blendRequired){r.renderTarget.finishRenderPass();let n=r.renderTarget.getRenderTarget(e.outputRenderSurface);e.backTexture=this.getBackTexture(n,t,s?.bounds)}r.renderTarget.bind({target:e.inputTexture,clear:!0}),r.globalUniforms.push({offset:t})}_calculateGlobalFrame(e,t,r,s,n,o){let a=e.globalFrame;a.x=t*s,a.y=r*s,a.width=n*s,a.height=o*s}_updateFilterUniforms(e,t,r,s,n,o,a,c){let l=this._filterGlobalUniforms.uniforms,d=l.uOutputFrame,h=l.uInputSize,u=l.uInputPixel,f=l.uInputClamp,m=l.uGlobalFrame,g=l.uOutputTexture;a?(d[0]=r.bounds.minX-s,d[1]=r.bounds.minY-n):(d[0]=0,d[1]=0),d[2]=e.frame.width,d[3]=e.frame.height,h[0]=e.source.width,h[1]=e.source.height,h[2]=1/h[0],h[3]=1/h[1],u[0]=e.source.pixelWidth,u[1]=e.source.pixelHeight,u[2]=1/u[0],u[3]=1/u[1],f[0]=.5*u[2],f[1]=.5*u[3],f[2]=e.frame.width*h[2]-.5*u[2],f[3]=e.frame.height*h[3]-.5*u[3];let x=this.renderer.renderTarget.rootRenderTarget.colorTexture;m[0]=s*o,m[1]=n*o,m[2]=x.source.width*o,m[3]=x.source.height*o,t instanceof U&&(t.source.resource=null);let b=this.renderer.renderTarget.getRenderTarget(t);this.renderer.renderTarget.bind({target:t,clear:!!c}),t instanceof U?(g[0]=t.frame.width,g[1]=t.frame.height):(g[0]=b.width,g[1]=b.height),g[2]=b.isRoot?-1:1,this._filterGlobalUniforms.update()}_findFilterResolution(e){let t=this._filterStackIndex-1;for(;t>0&&this._filterStack[t].skip;)--t;return t>0&&this._filterStack[t].inputTexture?this._filterStack[t].inputTexture.source._resolution:e}_findPreviousFilterOffset(){let e=0,t=0,r=this._filterStackIndex;for(;r>0;){r--;let s=this._filterStack[r];if(!s.skip){e=s.bounds.minX,t=s.bounds.minY;break}}return{x:e,y:t}}_calculateFilterArea(e,t){if(e.renderables?aa(e.renderables,t):e.filterEffect.filterArea?(t.clear(),t.addRect(e.filterEffect.filterArea),t.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,t),e.container){let s=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;s&&t.applyMatrix(s)}}_applyFiltersToTexture(e,t){let r=e.inputTexture,s=e.bounds,n=e.filters,o=e.firstEnabledIndex,a=e.lastEnabledIndex;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),o===a)n[o].apply(this,r,e.outputRenderSurface,t);else{let c=e.inputTexture,l=Pe.getOptimalTexture(s.width,s.height,c.source._resolution,!1),d=l;for(let h=o;h<a;h++){let u=n[h];if(!u.enabled)continue;u.apply(this,c,d,!0);let f=c;c=d,d=f}n[a].apply(this,c,e.outputRenderSurface,t),Pe.returnTexture(l)}}_calculateFilterBounds(e,t,r,s,n){let o=this.renderer,a=e.bounds,c=e.filters,l=1/0,d=0,h=!0,u=!1,f=!1,m=!0,g=-1,x=-1;for(let b=0;b<c.length;b++){let y=c[b];if(!y.enabled)continue;if(g===-1&&(g=b),x=b,l=Math.min(l,y.resolution==="inherit"?s:y.resolution),d+=y.padding,y.antialias==="off"?h=!1:y.antialias==="inherit"&&h&&(h=r),y.clipToViewport||(m=!1),!!!(y.compatibleRenderers&o.type)){f=!1;break}if(y.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){O("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=!0,u||(u=y.blendRequired)}if(!f){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(l).ceil().scale(1/l).pad((d|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=l,e.blendRequired=u,e.firstEnabledIndex=g,e.lastEnabledIndex=x}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>0&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new _d),this._filterStackIndex++,e}};Ds.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"filter"}});var yd=p(()=>{P();G0();F0();Cm();H.add(Ds,Is);H.add(Gs)});var Qv={};var Pm=p(()=>{Wp();jp();qp();Xo();Jo();yd()});var Jv={};var Am=p(()=>{Xo();Jo();yd()});async function km(i){if(!i)for(let e=0;e<vd.length;e++){let t=vd[e];if(t.value.test()){await t.value.load();return}}}var vd,Bm=p(()=>{P();vd=[];H.handleByNamedList(_.Environment,vd)});function ma(){if(typeof Ls=="boolean")return Ls;try{Ls=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Ls=!1}return Ls}var Ls,wd=p(()=>{"use strict"});function ya(i,e,t=2){let r=e&&e.length,s=r?e[0]*t:i.length;zs.size&&zs.clear();let n=Um(i,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a=0,c=0,l=0;if(r&&(n=s3(i,e,n,t)),i.length>80*t){a=i[0],c=i[1];let d=a,h=c;for(let u=t;u<s;u+=t){let f=i[u],m=i[u+1];f<a&&(a=f),m<c&&(c=m),f>d&&(d=f),m>h&&(h=m)}l=Math.max(d-a,h-c),l=l!==0?32767/l:0}return Td(n,o,a,c,l),o}function Um(i,e,t,r,s){let n=null;if(s===b3(i,e,t,r)>0)for(let o=e;o<t;o+=r)n=Fm(o/r|0,i[o],i[o+1],n);else for(let o=t-r;o>=e;o-=r)n=Fm(o/r|0,i[o],i[o+1],n);return n&&Ws(n,n.next)&&(js(n),n=n.next),n}function Vr(i,e=i){let t=e===i,r=i,s;do s=!1,r!==r.next&&(zs.size===0||!zs.has(r))&&(Ws(r,r.next)||Le(r.prev,r,r.next)===0)?((t||r===e)&&(e=r.prev),Sd=!0,js(r),r=r.prev,s=!0):(t||r!==e)&&(r=r.next,s=!t);while(s||r!==e);return e}function Td(i,e,t,r,s){s&&h3(i,t,r,s);let n=i,o=!1;for(;i.prev!==i.next;){let a=i.prev,c=i.next;if(Le(a,i,c)<0&&(s?t3(i,t,r,s):e3(i))){e.push(a.i,i.i,c.i),js(i),i=c,n=c;continue}if(i=c,i===n){if(Sd=!1,i=Vr(i),Sd){n=i;continue}if(!o){i=r3(i,e),n=i,o=!0;continue}i3(i,e,t,r,s);break}}}function e3(i){let e=i.prev,t=i,r=i.next,s=e.x,n=t.x,o=r.x,a=e.y,c=t.y,l=r.y,d=Math.min(s,n,o),h=Math.min(a,c,l),u=Math.max(s,n,o),f=Math.max(a,c,l),m=r.next;for(;m!==e;){if(m.x>=d&&m.x<=u&&m.y>=h&&m.y<=f&&!(s===m.x&&a===m.y)&&_a(s,a,n,c,o,l,m.x,m.y)&&Le(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function t3(i,e,t,r){let s=i.prev,n=i,o=i.next,a=s.x,c=n.x,l=o.x,d=s.y,h=n.y,u=o.y,f=Math.min(a,c,l),m=Math.min(d,h,u),g=Math.max(a,c,l),x=Math.max(d,h,u),b=Md(f,m,e,t,r),y=Md(g,x,e,t,r),v=i.prevZ;for(;v&&v.z>=b;){if(v.x>=f&&v.x<=g&&v.y>=m&&v.y<=x&&v!==o&&!(a===v.x&&d===v.y)&&_a(a,d,c,h,l,u,v.x,v.y)&&Le(v.prev,v,v.next)>=0)return!1;v=v.prevZ}let w=i.nextZ;for(;w&&w.z<=y;){if(w.x>=f&&w.x<=g&&w.y>=m&&w.y<=x&&w!==o&&!(a===w.x&&d===w.y)&&_a(a,d,c,h,l,u,w.x,w.y)&&Le(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function r3(i,e){let t=i,r=!1;do{let s=t.prev,n=t.next.next;Om(s,t,t.next,n,!1)&&Vs(s,n)&&Vs(n,s)&&(e.push(s.i,t.i,n.i),js(t),js(t.next),t=i=n,r=!0),t=t.next}while(t!==i);return r?Vr(t):t}function i3(i,e,t,r,s){let n=i;do{let o=n.next.next;for(;o!==n.prev;){if(n.i!==o.i&&p3(n,o)){let a=Nm(n,o);n=Vr(n,n.next),a=Vr(a,a.next),Td(n,e,t,r,s),Td(a,e,t,r,s);return}o=o.next}n=n.next}while(n!==i)}function s3(i,e,t,r){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*r,c=n<o-1?e[n+1]*r:i.length,l=Um(i,a,c,r,!1);l===l.next&&zs.add(l),s.push(f3(l))}s.sort(n3),a3(i.length/r,e.length),Lm(t,t),Ed=!0;for(let n=0;n<s.length;n++)t=o3(s[n],t);return Ed=!1,Vr(t)}function n3(i,e){return i.x-e.x||i.y-e.y||(i.next.y-i.y)/(i.next.x-i.x)-(e.next.y-e.y)/(e.next.x-e.x)}function o3(i,e){let t=l3(i,e);if(!t)return e;let r=Nm(t,i),s=r.next;return Lm(t,s.next),Vr(r,r.next),Vr(t,t.next)}function a3(i,e){let t=Math.ceil((i+2*e)/Dm)+e+2;Ae.length<t*4&&(Ae=new Float64Array(t*4)),xa=0}function Lm(i,e){let t=i;do{let r=xa++;Cd[r]=t;let s=1/0,n=1/0,o=-1/0,a=-1/0,c=0;do{let d=t.next;t.z=r,t.x<s&&(s=t.x),t.x>o&&(o=t.x),t.y<n&&(n=t.y),t.y>a&&(a=t.y),d.x<s&&(s=d.x),d.x>o&&(o=d.x),d.y<n&&(n=d.y),d.y>a&&(a=d.y),t=d}while(++c<Dm&&t!==e);Pd[r]=t;let l=r*4;Ae[l]=s,Ae[l+1]=n,Ae[l+2]=o,Ae[l+3]=a}while(t!==e)}function c3(i,e){let t=i.z*4;e.x<Ae[t]&&(Ae[t]=e.x),e.y<Ae[t+1]&&(Ae[t+1]=e.y),e.x>Ae[t+2]&&(Ae[t+2]=e.x),e.y>Ae[t+3]&&(Ae[t+3]=e.y)}function Im(i){let e=Pd[i];for(;e.prev.next!==e;)e=e.next;return Pd[i]=e,e}function Gm(i){let e=Cd[i];for(;e.prev.next!==e;)e=e.next;return Cd[i]=e,e}function l3(i,e){let t=e,r=i.x,s=i.y,n=-1/0,o;if(Ws(i,t))return t;for(let u=0,f=0;u<xa;u++,f+=4){if(s<Ae[f+1]||s>Ae[f+3]||Ae[f]>r||Ae[f+2]<=n)continue;let m=Im(u);t=Gm(u);do{if(t.prev.next===t){if(Ws(i,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let g=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(g<=r&&g>n&&(n=g,o=t.x<t.next.x?t:t.next,g===r))return o}}t=t.next}while(t!==m)}if(!o)return null;let a=o.x,c=o.y,l=Math.min(s,c),d=Math.max(s,c),h=1/0;for(let u=0,f=0;u<xa;u++,f+=4){if(Ae[f+2]<a||Ae[f]>r||Ae[f+3]<l||Ae[f+1]>d)continue;let m=Im(u);t=Gm(u);do{if(t.prev.next===t&&r>=t.x&&t.x>=a&&r!==t.x&&_a(s<c?r:n,s,a,c,s<c?n:r,s,t.x,t.y)){let g=Math.abs(s-t.y)/(r-t.x);(Vs(t,i)||t.y===s&&t.next.y===s&&t.next.x>r)&&(g<h||g===h&&(t.x>o.x||t.x===o.x&&d3(o,t)))&&(o=t,h=g)}t=t.next}while(t!==m)}return o}function d3(i,e){return Le(i.prev,i,e.prev)<0&&Le(e.next,i,i.next)<0}function h3(i,e,t,r){let s=i,n=0;do s.z=Md(s.x,s.y,e,t,r),wt[n++]=s,s=s.next;while(s!==i);u3(n);let o=null;for(let a=0;a<n;a++){let c=wt[a];c.prevZ=o,o&&(o.nextZ=c),o=c}o.nextZ=null}function u3(i){if(i<=32){for(let e=1;e<i;e++){let t=wt[e],r=t.z,s=e-1;for(;s>=0&&wt[s].z>r;)wt[s+1]=wt[s],s--;wt[s+1]=t}return}Wr.length<i&&(Wr=new Uint32Array(i),Ns=new Uint32Array(i),Os=new Array(i));for(let e=0;e<i;e++)Wr[e]=wt[e].z;ga(i,wt,Wr,Os,Ns,0),ga(i,Os,Ns,wt,Wr,8),ga(i,wt,Wr,Os,Ns,16),ga(i,Os,Ns,wt,Wr,24)}function ga(i,e,t,r,s,n){Hs.fill(0);for(let a=0;a<i;a++)Hs[t[a]>>>n&255]++;let o=0;for(let a=0;a<256;a++){let c=Hs[a];Hs[a]=o,o+=c}for(let a=0;a<i;a++){let c=t[a],l=Hs[c>>>n&255]++;r[l]=e[a],s[l]=c}}function Md(i,e,t,r,s){return i=(i-t)*s|0,e=(e-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,i|e<<1}function f3(i){let e=i,t=i;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==i);return t}function _a(i,e,t,r,s,n,o,a){return(s-o)*(e-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(r-a)}function p3(i,e){let t=Ws(i,e)&&Le(i.prev,i,i.next)>0&&Le(e.prev,e,e.next)>0;return i.next.i!==e.i&&(t||Vs(i,e)&&Vs(e,i)&&(Le(i.prev,i,e.prev)!==0||Le(i,e.prev,e)!==0))&&!m3(i,e)&&(t||g3(i,e))}function Le(i,e,t){return(e.y-i.y)*(t.x-e.x)-(e.x-i.x)*(t.y-e.y)}function Ws(i,e){return i.x===e.x&&i.y===e.y}function Om(i,e,t,r,s=!0){let n=Le(i,e,t),o=Le(i,e,r),a=Le(t,r,i),c=Le(t,r,e);return(n>0&&o<0||n<0&&o>0)&&(a>0&&c<0||a<0&&c>0)?!0:s?!!(n===0&&ba(i,t,e)||o===0&&ba(i,r,e)||a===0&&ba(t,i,r)||c===0&&ba(t,e,r)):!1}function ba(i,e,t){return e.x<=Math.max(i.x,t.x)&&e.x>=Math.min(i.x,t.x)&&e.y<=Math.max(i.y,t.y)&&e.y>=Math.min(i.y,t.y)}function m3(i,e){let t=Math.min(i.x,e.x),r=Math.max(i.x,e.x),s=Math.min(i.y,e.y),n=Math.max(i.y,e.y),o=i;do{let a=o.next;if(o.x>r&&a.x>r||o.x<t&&a.x<t||o.y>n&&a.y>n||o.y<s&&a.y<s){o=a;continue}if(o.i!==i.i&&a.i!==i.i&&o.i!==e.i&&a.i!==e.i&&Om(o,a,i,e))return!0;o=a}while(o!==i);return!1}function Vs(i,e){return Le(i.prev,i,i.next)<0?Le(i,e,i.next)>=0&&Le(i,i.prev,e)>=0:Le(i,e,i.prev)<0||Le(i,i.next,e)<0}function g3(i,e){let t=i,r=!1,s=(i.x+e.x)/2,n=(i.y+e.y)/2;do{let o=t.next;t.y>n!=o.y>n&&s<(o.x-t.x)*(n-t.y)/(o.y-t.y)+t.x&&(r=!r),t=o}while(t!==i);return r}function Nm(i,e){let t=Ad(i.i,i.x,i.y),r=Ad(e.i,e.x,e.y),s=i.next,n=e.prev;return i.next=e,e.prev=i,t.next=s,s.prev=t,r.next=t,t.prev=r,n.next=r,r.prev=n,r}function Fm(i,e,t,r){let s=Ad(i,e,t);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s}function js(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ),Ed&&c3(i.prev,i.next)}function Ad(i,e,t){return{i,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function b3(i,e,t,r){let s=0;for(let n=e,o=t-r;n<t;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var zs,Sd,Ed,Dm,Ae,xa,Cd,Pd,wt,Os,Wr,Ns,Hs,Hm=p(()=>{zs=new Set,Sd=!1;Ed=!1;Dm=16,Ae=new Float64Array(0),xa=0,Cd=[],Pd=[];wt=[],Os=[],Wr=new Uint32Array(0),Ns=new Uint32Array(0),Hs=new Uint32Array(256)});var zm,Wm=p(()=>{Hm();Ne();zm=ya.default||ya});var Ee,Ui=p(()=>{"use strict";Ee=(i=>(i[i.NONE=0]="NONE",i[i.COLOR=16384]="COLOR",i[i.STENCIL=1024]="STENCIL",i[i.DEPTH=256]="DEPTH",i[i.COLOR_DEPTH=16640]="COLOR_DEPTH",i[i.COLOR_STENCIL=17408]="COLOR_STENCIL",i[i.DEPTH_STENCIL=1280]="DEPTH_STENCIL",i[i.ALL=17664]="ALL",i))(Ee||{})});var Di,Rd=p(()=>{"use strict";Di=class{constructor(e){this.items=[],this._name=e}emit(e,t,r,s,n,o,a,c){let{name:l,items:d}=this;for(let h=0,u=d.length;h<u;h++)d[h][l](e,t,r,s,n,o,a,c);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var x3,Vm,St,jr=p(()=>{$e();Bm();Mt();wd();Ie();_e();Mr();Ui();Rd();Ne();x3=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],Vm=class jm extends fe{constructor(e){super(),this.tick=0,this.uid=Y("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...x3,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await km(t),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let r in this._systemsHash)e={...this._systemsHash[r].constructor.defaultOptions,...e};e={...jm.defaultOptions,...e},this._roundPixels=e.roundPixels?1:0;for(let r=0;r<this.runners.init.items.length;r++)await this.runners.init.items[r].init(e);this._initOptions=e}render(e,t){this.tick++;let r=e;if(r instanceof me&&(r={container:r},t&&(N(re,"passing a second argument is deprecated, please use render options instead"),r.target=t.renderTexture)),r.target||(r.target=this.view.renderTarget),r.target===this.view.renderTarget&&(this._lastObjectRendered=r.container,r.clearColor??(r.clearColor=this.background.colorRgba),r.clear??(r.clear=this.background.clearBeforeRender)),r.clearColor){let s=Array.isArray(r.clearColor)&&r.clearColor.length===4;r.clearColor=s?r.clearColor:Z.shared.setValue(r.clearColor).toArray()}r.transform||(r.container.updateLocalTransform(),r.transform=r.container.localTransform),r.container.visible&&(r.container.enableRenderGroup(),this.runners.prerender.emit(r),this.runners.renderStart.emit(r),this.runners.render.emit(r),this.runners.renderEnd.emit(r),this.runners.postrender.emit(r))}resize(e,t,r){let s=this.view.resolution;this.view.resize(e,t,r),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),r!==void 0&&r!==s&&this.runners.resolutionChange.emit(r)}clear(e={}){let t=this;e.target||(e.target=t.renderTarget.renderTarget),e.clearColor||(e.clearColor=this.background.colorRgba),e.clear??(e.clear=Ee.ALL);let{clear:r,clearColor:s,target:n,mipLevel:o,layer:a}=e;Z.shared.setValue(s??this.background.colorRgba),t.renderTarget.clear(n,r,Z.shared.toArray(),o??0,a??0)}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...e){e.forEach(t=>{this.runners[t]=new Di(t)})}_addSystems(e){let t;for(t in e){let r=e[t];this._addSystem(r.value,r.name)}}_addSystem(e,t){let r=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=r,this._systemsHash[t]=r;for(let s in this.runners)this.runners[s].add(r);return this}_addPipes(e,t){let r=t.reduce((s,n)=>(s[n.name]=n.value,s),{});e.forEach(s=>{let n=s.value,o=s.name,a=r[o];this.renderPipes[o]=new n(this,a?new a:null),this.runners.destroy.add(this.renderPipes[o])})}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),(e===!0||typeof e=="object"&&e.releaseGlobalResources)&&_t.release(),Object.values(this.runners).forEach(t=>{t.destroy()}),this._systemsHash=null,this.renderPipes=null,this.removeAllListeners()}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!ma())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};Vm.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};St=Vm});function Li(i,e,t){let r=2166136261;for(let s=0;s<e;s++)r^=i[s].uid,r=Math.imul(r,16777619),r>>>=0;return $m[r]||_3(i,e,r,t)}function _3(i,e,t,r){let s={},n=0;for(let a=0;a<r;a++){let c=a<e?i[a]:U.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new ze(s);return $m[t]=o,o}var $m,Sa=p(()=>{gr();ge();$m={}});function kd(i,e,t){if(i)for(let r in i){let s=r.toLocaleLowerCase(),n=e[s];if(n){let o=i[r];r==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),t&&n.push(`//----${t}----//`),n.push(o)}else O(`${r} placement hook does not exist in shader`)}}var qm=p(()=>{he()});function Bd(i){let e={};return(i.match(y3)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{e[r]=[]}),e}var y3,Km=p(()=>{"use strict";y3=/\{\{(.*?)\}\}/g});function Zm(i,e){let t,r=/@in\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function Id(i,e,t=!1){let r=[];Zm(e,r),i.forEach(a=>{a.header&&Zm(a.header,r)});let s=r;t&&s.sort();let n=s.map((a,c)=>` @location(${c}) ${a},`).join(`
118
+ `),o=e.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
119
119
  ${n}
120
- `),o}var Og=p(()=>{"use strict"});function Ng(i,t){let e,r=/@out\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function lT(i){let e=/\b(\w+)\s*:/g.exec(i);return e?e[1]:""}function cT(i){let t=/@.*?\s+/g;return i.replace(t,"")}function zg(i,t){let e=[];Ng(t,e),i.forEach(l=>{l.header&&Ng(l.header,e)});let r=0,s=e.sort().map(l=>l.indexOf("builtin")>-1?l:`@location(${r++}) ${l}`).join(`,
121
- `),n=e.sort().map(l=>` var ${cT(l)};`).join(`
120
+ `),o}var Qm=p(()=>{"use strict"});function Jm(i,e){let t,r=/@out\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function v3(i){let t=/\b(\w+)\s*:/g.exec(i);return t?t[1]:""}function w3(i){let e=/@.*?\s+/g;return i.replace(e,"")}function e1(i,e){let t=[];Jm(e,t),i.forEach(c=>{c.header&&Jm(c.header,t)});let r=0,s=t.sort().map(c=>c.indexOf("builtin")>-1?c:`@location(${r++}) ${c}`).join(`,
121
+ `),n=t.sort().map(c=>` var ${w3(c)};`).join(`
122
122
  `),o=`return VSOutput(
123
- ${e.sort().map(l=>` ${lT(l)}`).join(`,
124
- `)});`,a=t.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
123
+ ${t.sort().map(c=>` ${v3(c)}`).join(`,
124
+ `)});`,a=e.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
125
125
  ${s}
126
126
  `),a=a.replace("{{start}}",`
127
127
  ${n}
128
128
  `),a=a.replace("{{return}}",`
129
129
  ${o}
130
- `),a}var Hg=p(()=>{"use strict"});function Ch(i,t){let e=i;for(let r in t){let s=t[r];s.join(`
131
- `).length?e=e.replace(`{{${r}}}`,`//-----${r} START-----//
130
+ `),a}var t1=p(()=>{"use strict"});function Gd(i,e){let t=i;for(let r in e){let s=e[r];s.join(`
131
+ `).length?t=t.replace(`{{${r}}}`,`//-----${r} START-----//
132
132
  ${s.join(`
133
133
  `)}
134
- //----${r} FINISH----//`):e=e.replace(`{{${r}}}`,"")}return e}var Wg=p(()=>{"use strict"});function Vg({template:i,bits:t}){let e=Xg(i,t);if(_r[e])return _r[e];let{vertex:r,fragment:s}=uT(i,t);return _r[e]=Yg(r,s,t),_r[e]}function jg({template:i,bits:t}){let e=Xg(i,t);return _r[e]||(_r[e]=Yg(i.vertex,i.fragment,t)),_r[e]}function uT(i,t){let e=t.map(o=>o.vertex).filter(o=>!!o),r=t.map(o=>o.fragment).filter(o=>!!o),s=wh(e,i.vertex,!0);s=zg(e,s);let n=wh(r,i.fragment,!0);return{vertex:s,fragment:n}}function Xg(i,t){return t.map(e=>(Eh.has(e)||Eh.set(e,hT++),Eh.get(e))).sort((e,r)=>e-r).join("-")+i.vertex+i.fragment}function Yg(i,t,e){let r=Th(i),s=Th(t);return e.forEach(n=>{Sh(n.vertex,r,n.name),Sh(n.fragment,s,n.name)}),{vertex:Ch(i,r),fragment:Ch(t,s)}}var _r,Eh,hT,$g=p(()=>{Ug();Dg();Og();Hg();Wg();_r=Object.create(null),Eh=new Map,hT=0});var qg,Kg,Zg,Qg,Jg=p(()=>{"use strict";qg=`
134
+ //----${r} FINISH----//`):t=t.replace(`{{${r}}}`,"")}return t}var r1=p(()=>{"use strict"});function i1({template:i,bits:e}){let t=n1(i,e);if(_r[t])return _r[t];let{vertex:r,fragment:s}=T3(i,e);return _r[t]=o1(r,s,e),_r[t]}function s1({template:i,bits:e}){let t=n1(i,e);return _r[t]||(_r[t]=o1(i.vertex,i.fragment,e)),_r[t]}function T3(i,e){let t=e.map(o=>o.vertex).filter(o=>!!o),r=e.map(o=>o.fragment).filter(o=>!!o),s=Id(t,i.vertex,!0);s=e1(t,s);let n=Id(r,i.fragment,!0);return{vertex:s,fragment:n}}function n1(i,e){return e.map(t=>(Fd.has(t)||Fd.set(t,S3++),Fd.get(t))).sort((t,r)=>t-r).join("-")+i.vertex+i.fragment}function o1(i,e,t){let r=Bd(i),s=Bd(e);return t.forEach(n=>{kd(n.vertex,r,n.name),kd(n.fragment,s,n.name)}),{vertex:Gd(i,r),fragment:Gd(e,s)}}var _r,Fd,S3,a1=p(()=>{qm();Km();Qm();t1();r1();_r=Object.create(null),Fd=new Map,S3=0});var c1,l1,d1,h1,u1=p(()=>{"use strict";c1=`
135
135
  @in aPosition: vec2<f32>;
136
136
  @in aUV: vec2<f32>;
137
137
 
@@ -175,7 +175,7 @@ ${s.join(`
175
175
 
176
176
  {{return}}
177
177
  };
178
- `,Kg=`
178
+ `,l1=`
179
179
  @in vUV : vec2<f32>;
180
180
  @in vColor : vec4<f32>;
181
181
 
@@ -198,7 +198,7 @@ ${s.join(`
198
198
 
199
199
  return finalColor;
200
200
  };
201
- `,Zg=`
201
+ `,d1=`
202
202
  in vec2 aPosition;
203
203
  in vec2 aUV;
204
204
 
@@ -234,7 +234,7 @@ ${s.join(`
234
234
 
235
235
  {{end}}
236
236
  }
237
- `,Qg=`
237
+ `,h1=`
238
238
 
239
239
  in vec4 vColor;
240
240
  in vec2 vUV;
@@ -255,7 +255,7 @@ ${s.join(`
255
255
 
256
256
  {{end}}
257
257
  }
258
- `});var tx,ex,rx=p(()=>{"use strict";tx={name:"global-uniforms-bit",vertex:{header:`
258
+ `});var f1,p1,m1=p(()=>{"use strict";f1={name:"global-uniforms-bit",vertex:{header:`
259
259
  struct GlobalUniforms {
260
260
  uProjectionMatrix:mat3x3<f32>,
261
261
  uWorldTransformMatrix:mat3x3<f32>,
@@ -264,22 +264,22 @@ ${s.join(`
264
264
  }
265
265
 
266
266
  @group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
267
- `}},ex={name:"global-uniforms-bit",vertex:{header:`
267
+ `}},p1={name:"global-uniforms-bit",vertex:{header:`
268
268
  uniform mat3 uProjectionMatrix;
269
269
  uniform mat3 uWorldTransformMatrix;
270
270
  uniform vec4 uWorldColorAlpha;
271
271
  uniform vec2 uResolution;
272
- `}}});function Fi({bits:i,name:t}){let e=Vg({template:{fragment:Kg,vertex:qg},bits:[tx,...i]});return ve.from({name:t,vertex:{source:e.vertex,entryPoint:"main"},fragment:{source:e.fragment,entryPoint:"main"}})}function Ui({bits:i,name:t}){return new be({name:t,...jg({template:{vertex:Zg,fragment:Qg},bits:[ex,...i]})})}var Di=p(()=>{Nr();Ri();$g();Jg();rx()});var _a,ya,ba=p(()=>{"use strict";_a={name:"color-bit",vertex:{header:`
272
+ `}}});function Oi({bits:i,name:e}){let t=i1({template:{fragment:l1,vertex:c1},bits:[f1,...i]});return vt.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function Ni({bits:i,name:e}){return new yt({name:e,...s1({template:{vertex:d1,fragment:h1},bits:[p1,...i]})})}var Hi=p(()=>{Hr();Gi();a1();u1();m1()});var Ta,Ea,Ca=p(()=>{"use strict";Ta={name:"color-bit",vertex:{header:`
273
273
  @in aColor: vec4<f32>;
274
274
  `,main:`
275
275
  vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
276
- `}},ya={name:"color-bit",vertex:{header:`
276
+ `}},Ea={name:"color-bit",vertex:{header:`
277
277
  in vec4 aColor;
278
278
  `,main:`
279
279
  vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
280
- `}}});function dT(i){let t=[];if(i===1)t.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),t.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let e=0;for(let r=0;r<i;r++)t.push(`@group(1) @binding(${e++}) var textureSource${r+1}: texture_2d<f32>;`),t.push(`@group(1) @binding(${e++}) var textureSampler${r+1}: sampler;`)}return t.join(`
281
- `)}function fT(i){let t=[];if(i===1)t.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{t.push("switch vTextureId {");for(let e=0;e<i;e++)e===i-1?t.push(" default:{"):t.push(` case ${e}:{`),t.push(` outColor = textureSampleGrad(textureSource${e+1}, textureSampler${e+1}, vUV, uvDx, uvDy);`),t.push(" break;}");t.push("}")}return t.join(`
282
- `)}function va(i){return Ph[i]||(Ph[i]={name:"texture-batch-bit",vertex:{header:`
280
+ `}}});function E3(i){let e=[];if(i===1)e.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),e.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let t=0;for(let r=0;r<i;r++)e.push(`@group(1) @binding(${t++}) var textureSource${r+1}: texture_2d<f32>;`),e.push(`@group(1) @binding(${t++}) var textureSampler${r+1}: sampler;`)}return e.join(`
281
+ `)}function C3(i){let e=[];if(i===1)e.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{e.push("switch vTextureId {");for(let t=0;t<i;t++)t===i-1?e.push(" default:{"):e.push(` case ${t}:{`),e.push(` outColor = textureSampleGrad(textureSource${t+1}, textureSampler${t+1}, vUV, uvDx, uvDy);`),e.push(" break;}");e.push("}")}return e.join(`
282
+ `)}function Pa(i){return Ud[i]||(Ud[i]={name:"texture-batch-bit",vertex:{header:`
283
283
  @in aTextureIdAndRound: vec2<u32>;
284
284
  @out @interpolate(flat) vTextureId : u32;
285
285
  `,main:`
@@ -292,14 +292,14 @@ ${s.join(`
292
292
  `},fragment:{header:`
293
293
  @in @interpolate(flat) vTextureId: u32;
294
294
 
295
- ${dT(i)}
295
+ ${E3(i)}
296
296
  `,main:`
297
297
  var uvDx = dpdx(vUV);
298
298
  var uvDy = dpdy(vUV);
299
299
 
300
- ${fT(i)}
301
- `}}),Ph[i]}function pT(i){let t=[];for(let e=0;e<i;e++)e>0&&t.push("else"),e<i-1&&t.push(`if(vTextureId < ${e}.5)`),t.push("{"),t.push(` outColor = texture(uTextures[${e}], vUV);`),t.push("}");return t.join(`
302
- `)}function Sa(i){return Mh[i]||(Mh[i]={name:"texture-batch-bit",vertex:{header:`
300
+ ${C3(i)}
301
+ `}}),Ud[i]}function P3(i){let e=[];for(let t=0;t<i;t++)t>0&&e.push("else"),t<i-1&&e.push(`if(vTextureId < ${t}.5)`),e.push("{"),e.push(` outColor = texture(uTextures[${t}], vUV);`),e.push("}");return e.join(`
302
+ `)}function Ma(i){return Dd[i]||(Dd[i]={name:"texture-batch-bit",vertex:{header:`
303
303
  in vec2 aTextureIdAndRound;
304
304
  out float vTextureId;
305
305
 
@@ -317,8 +317,8 @@ ${s.join(`
317
317
 
318
318
  `,main:`
319
319
 
320
- ${pT(i)}
321
- `}}),Mh[i]}var Ph,Mh,Ta=p(()=>{"use strict";Ph={};Mh={}});var Ys,ix,wa,$s=p(()=>{"use strict";Ys={name:"local-uniform-bit",vertex:{header:`
320
+ ${P3(i)}
321
+ `}}),Dd[i]}var Ud,Dd,Aa=p(()=>{"use strict";Ud={};Dd={}});var Xs,g1,Ra,Ys=p(()=>{"use strict";Xs={name:"local-uniform-bit",vertex:{header:`
322
322
 
323
323
  struct LocalUniforms {
324
324
  uTransformMatrix:mat3x3<f32>,
@@ -335,7 +335,7 @@ ${s.join(`
335
335
  {
336
336
  vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
337
337
  }
338
- `}},ix={...Ys,vertex:{...Ys.vertex,header:Ys.vertex.header.replace("group(1)","group(2)")}},wa={name:"local-uniform-bit",vertex:{header:`
338
+ `}},g1={...Xs,vertex:{...Xs.vertex,header:Xs.vertex.header.replace("group(1)","group(2)")}},Ra={name:"local-uniform-bit",vertex:{header:`
339
339
 
340
340
  uniform mat3 uTransformMatrix;
341
341
  uniform vec4 uColor;
@@ -348,17 +348,17 @@ ${s.join(`
348
348
  {
349
349
  gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
350
350
  }
351
- `}}});var Li,Oi,Ni=p(()=>{"use strict";Li={name:"round-pixels-bit",vertex:{header:`
351
+ `}}});var zi,Wi,Vi=p(()=>{"use strict";zi={name:"round-pixels-bit",vertex:{header:`
352
352
  fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
353
353
  {
354
354
  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
355
355
  }
356
- `}},Oi={name:"round-pixels-bit",vertex:{header:`
356
+ `}},Wi={name:"round-pixels-bit",vertex:{header:`
357
357
  vec2 roundPixels(vec2 position, vec2 targetSize)
358
358
  {
359
359
  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
360
360
  }
361
- `}}});var qs,sx=p(()=>{P();ot();xa();Di();ba();Ta();$s();Ni();gr();me();qs=class{constructor(){this._maxTextures=0}contextChange(t){let e=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=t.limits.maxBatchableTextures;let r=Fi({name:"graphics",bits:[_a,va(this._maxTextures),ix,Li]});this.shader=new te({gpuProgram:r,resources:{localUniforms:e}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r),c=n.encoder;c.setGeometry(a.geometry,s.gpuProgram);let h=n.globalUniforms.bindGroup;c.setBindGroup(0,h,s.gpuProgram);let u=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);c.setBindGroup(2,u,s.gpuProgram);let d=l.instructions,f=null;for(let m=0;m<l.instructionSize;m++){let g=d[m];if(g.topology!==f&&(f=g.topology,c.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,t.state,g.topology,s._overrides)),s.groups[1]=g.bindGroup,!g.gpuBindGroup){let _=g.textures;g.bindGroup=Gi(_.textures,_.count,this._maxTextures),g.gpuBindGroup=n.bindGroup.getBindGroup(g.bindGroup,s.gpuProgram,1)}c.setBindGroup(1,g.bindGroup,s.gpuProgram),c.renderPassEncoder.drawIndexed(g.size,1,g.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};qs.extension={type:[y.WebGPUPipesAdaptor],name:"graphics"}});var nx,ox,Ah=p(()=>{"use strict";nx={name:"texture-bit",vertex:{header:`
361
+ `}}});var $s,b1=p(()=>{P();ce();Sa();Hi();Ca();Aa();Ys();Vi();br();mt();$s=class{constructor(){this._maxTextures=0}contextChange(e){let t=new Te({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=e.limits.maxBatchableTextures;let r=Oi({name:"graphics",bits:[Ta,Pa(this._maxTextures),g1,zi]});this.shader=new Ke({gpuProgram:r,resources:{localUniforms:t}})}execute(e,t){let r=t.context,s=r.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(r),l=n.encoder;l.setGeometry(a.geometry,s.gpuProgram);let d=n.globalUniforms.bindGroup;l.setBindGroup(0,d,s.gpuProgram);let h=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);l.setBindGroup(2,h,s.gpuProgram);let u=c.instructions,f=null;for(let m=0;m<c.instructionSize;m++){let g=u[m];if(g.topology!==f&&(f=g.topology,l.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,e.state,g.topology,s._overrides)),s.groups[1]=g.bindGroup,!g.gpuBindGroup){let x=g.textures;g.bindGroup=Li(x.textures,x.count,this._maxTextures),g.gpuBindGroup=n.bindGroup.getBindGroup(g.bindGroup,s.gpuProgram,1)}l.setBindGroup(1,g.bindGroup,s.gpuProgram),l.renderPassEncoder.drawIndexed(g.size,1,g.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};$s.extension={type:[_.WebGPUPipesAdaptor],name:"graphics"}});var x1,_1,Ld=p(()=>{"use strict";x1={name:"texture-bit",vertex:{header:`
362
362
 
363
363
  struct TextureUniforms {
364
364
  uTextureMatrix:mat3x3<f32>,
@@ -374,7 +374,7 @@ ${s.join(`
374
374
 
375
375
  `,main:`
376
376
  outColor = textureSample(uTexture, uSampler, vUV);
377
- `}},ox={name:"texture-bit",vertex:{header:`
377
+ `}},_1={name:"texture-bit",vertex:{header:`
378
378
  uniform mat3 uTextureMatrix;
379
379
  `,main:`
380
380
  uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
@@ -384,9 +384,9 @@ ${s.join(`
384
384
 
385
385
  `,main:`
386
386
  outColor = texture(uTexture, vUV);
387
- `}}});var Ks,ax=p(()=>{P();ot();Di();$s();Ni();Ah();gr();gt();ht();Ks=class{init(){let t=Fi({name:"mesh",bits:[Ys,nx,Li]});this._shader=new te({gpuProgram:t,resources:{uTexture:F.EMPTY._source,uSampler:F.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(!s)s=this._shader,s.groups[2]=r.texture.getTextureBindGroup(e.texture);else if(!s.gpuProgram){L("Mesh shader has no gpuProgram",e.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=r.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=t.localUniforms;s.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Ks.extension={type:[y.WebGPUPipesAdaptor],name:"mesh"}});var Ca,Zs,lx=p(()=>{P();Be();xa();Ca=Ot.for2d(),Zs=class{start(t,e,r){let s=t.renderer,n=s.encoder,o=r.gpuProgram;this._shader=r,this._geometry=e,n.setGeometry(e,o),Ca.blendMode="normal",s.pipeline.getPipeline(e,o,Ca,void 0,r._overrides);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(t,e){let r=this._shader.gpuProgram,s=t.renderer,n=s.encoder;if(!e.bindGroup){let l=e.textures;e.bindGroup=Gi(l.textures,l.count,s.limits.maxBatchableTextures)}Ca.blendMode=e.blendMode;let o=s.bindGroup.getBindGroup(e.bindGroup,r,1),a=s.pipeline.getPipeline(this._geometry,r,Ca,e.topology,this._shader._overrides);e.bindGroup._touch(s.gc.now,s.tick),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(e.size,1,e.start)}};Zs.extension={type:[y.WebGPUPipesAdaptor],name:"batch"}});var jr,Rh=p(()=>{P();jr=class{constructor(t){this._renderer=t}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(t,e){this._renderer.renderPipes.batch.break(e),e.add(t)}execute(t){t.isRenderable&&t.render(this._renderer)}destroy(){this._renderer=null}};jr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"customRender"}});var yr,Ea=p(()=>{"use strict";yr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){this.reset()}}});function Qs(i,t){let e=i.instructionSet,r=e.instructions;for(let s=0;s<e.instructionSize;s++){let n=r[s];t[n.renderPipeId].execute(n)}}var kh=p(()=>{"use strict"});var Xr,Bh=p(()=>{P();ot();Ke();Ea();kh();Xr=class{constructor(t){this._renderer=t}addRenderGroup(t,e){t.isCachedAsTexture?this._addRenderableCacheAsTexture(t,e):this._addRenderableDirect(t,e)}execute(t){t.isRenderable&&(t.isCachedAsTexture?this._executeCacheAsTexture(t):this._executeDirect(t))}destroy(){this._renderer=null}_addRenderableDirect(t,e){this._renderer.renderPipes.batch.break(e),t._batchableRenderGroup&&(bt.return(t._batchableRenderGroup),t._batchableRenderGroup=null),e.add(t)}_addRenderableCacheAsTexture(t,e){let r=t._batchableRenderGroup??(t._batchableRenderGroup=bt.get(yr));r.renderable=t.root,r.transform=t.root.relativeGroupTransform,r.texture=t.texture,r.bounds=t._textureBounds,e.add(t),this._renderer.renderPipes.blendMode.pushBlendMode(t,t.root.groupBlendMode,e),this._renderer.renderPipes.batch.addToBatch(r,e),this._renderer.renderPipes.blendMode.popBlendMode(e)}_executeCacheAsTexture(t){if(t.textureNeedsUpdate){t.textureNeedsUpdate=!1;let e=new k().translate(-t._textureBounds.x,-t._textureBounds.y);this._renderer.renderTarget.push({target:t.texture,clear:!0,frame:t.texture.frame}),this._renderer.globalUniforms.push({worldTransformMatrix:e,worldColor:4294967295,offset:{x:0,y:0}}),Qs(t,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}t._batchableRenderGroup._batcher.updateElement(t._batchableRenderGroup),t._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(t){this._renderer.globalUniforms.push({worldTransformMatrix:t.inverseParentTextureTransform,worldColor:t.worldColorAlpha}),Qs(t,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Xr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"renderGroup"}});function Js(i,t){t||(t=0);for(let e=t;e<i.length&&i[e];e++)i[e]=null}var Ih=p(()=>{"use strict"});function Gh(i,t=!1){gT(i);let e=i.childrenToUpdate,r=i.updateTick++;for(let s in e){let n=Number(s),o=e[s],a=o.list,l=o.index;for(let c=0;c<l;c++){let h=a[c];h.parentRenderGroup===i&&h.relativeRenderGroupDepth===n&&ux(h,r,0)}Js(a,l),o.index=0}if(t)for(let s=0;s<i.renderGroupChildren.length;s++)Gh(i.renderGroupChildren[s],t)}function gT(i){let t=i.root,e;if(i.renderGroupParent){let r=i.renderGroupParent;i.worldTransform.appendFrom(t.relativeGroupTransform,r.worldTransform),i.worldColor=_i(t.groupColor,r.worldColor),e=t.groupAlpha*r.worldAlpha}else i.worldTransform.copyFrom(t.localTransform),i.worldColor=t.localColor,e=t.localAlpha;e=e<0?0:e>1?1:e,i.worldAlpha=e,i.worldColorAlpha=i.worldColor+((e*255|0)<<24)}function ux(i,t,e){if(t===i.updateTick)return;i.updateTick=t,i.didChange=!1;let r=i.localTransform;i.updateLocalTransform();let s=i.parent;if(s&&!s.renderGroup?(e|=i._updateFlags,i.relativeGroupTransform.appendFrom(r,s.relativeGroupTransform),e&cx&&hx(i,s,e)):(e=i._updateFlags,i.relativeGroupTransform.copyFrom(r),e&cx&&hx(i,mT,e)),!i.renderGroup){let n=i.children,o=n.length;for(let c=0;c<o;c++)ux(n[c],t,e);let a=i.parentRenderGroup,l=i;l.renderPipeId&&!a.structureDidChange&&a.updateRenderable(l)}}function hx(i,t,e){if(e&vi){i.groupColor=_i(i.localColor,t.groupColor);let r=i.localAlpha*t.groupAlpha;r=r<0?0:r>1?1:r,i.groupAlpha=r,i.groupColorAlpha=i.groupColor+((r*255|0)<<24)}e&Ss&&(i.groupBlendMode=i.localBlendMode==="inherit"?t.groupBlendMode:i.localBlendMode),e&Dr&&(i.globalDisplayStatus=i.localDisplayStatus&t.globalDisplayStatus),i._updateFlags=0}var mT,cx,dx=p(()=>{Pe();Ih();rc();mT=new mt,cx=Dr|vi|Ss});function fx(i,t){let{list:e}=i.childrenRenderablesToUpdate,r=!1;for(let s=0;s<i.childrenRenderablesToUpdate.index;s++){let n=e[s];if(r=t[n.renderPipeId].validateRenderable(n),r)break}return i.structureDidChange=r,r}var px=p(()=>{"use strict"});var xT,tn,mx=p(()=>{P();ot();Fr();Ar();ie();Ih();kh();dx();px();xT=new k,tn=class{constructor(t){this._renderer=t}render({container:t,transform:e}){let r=t.parent,s=t.renderGroup.renderGroupParent;t.parent=null,t.renderGroup.renderGroupParent=null;let n=this._renderer,o=xT;e&&(o.copyFrom(t.renderGroup.localTransform),t.renderGroup.localTransform.copyFrom(e));let a=n.renderPipes;this._updateCachedRenderGroups(t.renderGroup,null),this._updateRenderGroups(t.renderGroup),n.globalUniforms.start({worldTransformMatrix:e?t.renderGroup.localTransform:t.renderGroup.worldTransform,worldColor:t.renderGroup.worldColorAlpha}),Qs(t.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),e&&t.renderGroup.localTransform.copyFrom(o),t.parent=r,t.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(t,e){if(t._parentCacheAsTextureRenderGroup=e,t.isCachedAsTexture){if(!t.textureNeedsUpdate)return;e=t}for(let r=t.renderGroupChildren.length-1;r>=0;r--)this._updateCachedRenderGroups(t.renderGroupChildren[r],e);if(t.invalidateMatrices(),t.isCachedAsTexture){if(t.textureNeedsUpdate){let r=t.root.getLocalBounds(),s=this._renderer,n=t.textureOptions.resolution||s.view.resolution,o=t.textureOptions.antialias??s.view.antialias,a=t.textureOptions.scaleMode??"linear",l=t.texture;r.ceil(),t.texture&&Mt.returnTexture(t.texture,!0);let c=Mt.getOptimalTexture(r.width,r.height,n,o);c._source.style=new ce({scaleMode:a}),t.texture=c,t._textureBounds||(t._textureBounds=new dt),t._textureBounds.copyFrom(r),l!==t.texture&&t.renderGroupParent&&(t.renderGroupParent.structureDidChange=!0)}}else t.texture&&(Mt.returnTexture(t.texture,!0),t.texture=null)}_updateRenderGroups(t){let e=this._renderer,r=e.renderPipes;if(t.runOnRender(e),t.instructionSet.renderPipes=r,t.structureDidChange?Js(t.childrenRenderablesToUpdate.list,0):fx(t,r),Gh(t),t.structureDidChange?(t.structureDidChange=!1,this._buildInstructions(t,e)):this._updateRenderables(t),t.childrenRenderablesToUpdate.index=0,e.renderPipes.batch.upload(t.instructionSet),!(t.isCachedAsTexture&&!t.textureNeedsUpdate))for(let s=0;s<t.renderGroupChildren.length;s++)this._updateRenderGroups(t.renderGroupChildren[s])}_updateRenderables(t){let{list:e,index:r}=t.childrenRenderablesToUpdate;for(let s=0;s<r;s++){let n=e[s];n.didViewUpdate&&t.updateRenderable(n)}Js(e,r)}_buildInstructions(t,e){let r=t.root,s=t.instructionSet;s.reset();let n=e.renderPipes?e:e.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),r.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};tn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderGroup"}});var Yr,Fh=p(()=>{P();Ea();Yr=class{constructor(t){this._renderer=t}addRenderable(t,e){let r=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,r),this._renderer.renderPipes.batch.addToBatch(r,e)}updateRenderable(t){let e=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,e),e._batcher.updateElement(e)}validateRenderable(t){let e=this._getGpuSprite(t);return!e._batcher.checkAndUpdateTexture(e,t._texture)}_updateBatchableSprite(t,e){e.bounds=t.visualBounds,e.texture=t._texture}_getGpuSprite(t){return t._gpuData[this._renderer.uid]||this._initGPUSprite(t)}_initGPUSprite(t){let e=new yr;return e.renderable=t,e.transform=t.groupTransform,e.texture=t._texture,e.bounds=t.visualBounds,e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,e}destroy(){this._renderer=null}};Yr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"sprite"}});var zi,Uh=p(()=>{Ht();zi="8.20.0"});var en,rn,Dh=p(()=>{P();Uh();en=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,zi)}static destroy(){}};en.extension=y.Application;rn=class{constructor(t){this._renderer=t}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,zi)}destroy(){this._renderer=null}};rn.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"initHook",priority:-10}});var ze,Lh=p(()=>{"use strict";ze=class{constructor(t){typeof t=="number"?this.rawBinaryData=new ArrayBuffer(t):t instanceof Uint8Array?this.rawBinaryData=t.buffer:this.rawBinaryData=t,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(t){return this[`${t}View`]}destroy(){this.rawBinaryData=null,this.uint32View=null,this.float32View=null,this.uint16View=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._int32View=null,this._float64Array=null,this._bigUint64Array=null}static sizeOf(t){switch(t){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${t} isn't a valid view type`)}}}});function sn(i,t,e,r){if(e??(e=0),r??(r=Math.min(i.byteLength-e,t.byteLength)),!(e&7)&&!(r&7)){let s=r/8;new Float64Array(t,0,s).set(new Float64Array(i,e,s))}else if(!(e&3)&&!(r&3)){let s=r/4;new Float32Array(t,0,s).set(new Float32Array(i,e,s))}else new Uint8Array(t).set(new Uint8Array(i,e,r))}var Oh=p(()=>{"use strict"});var gx,vt,$r=p(()=>{"use strict";gx={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},vt=(i=>(i[i.DISABLED=0]="DISABLED",i[i.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",i[i.MASK_ACTIVE=2]="MASK_ACTIVE",i[i.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",i[i.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",i[i.NONE=5]="NONE",i))(vt||{})});function nn(i,t){return t.alphaMode==="no-premultiply-alpha"&&gx[i]||i}var Nh=p(()=>{$r()});function yT(i){let t="";for(let e=0;e<i;++e)e>0&&(t+=`
388
- else `),e<i-1&&(t+=`if(test == ${e}.0){}`);return t}function Pa(i,t){if(i===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let e=t.createShader(t.FRAGMENT_SHADER);try{for(;;){let r=_T.replace(/%forloop%/gi,yT(i));if(t.shaderSource(e,r),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))i=i/2|0;else break}}finally{t.deleteShader(e)}return i}var _T,zh=p(()=>{"use strict";_T=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
389
- `)});function xx(){if(Hi)return Hi;let i=sa();return Hi=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Hi=Pa(Hi,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Hi}var Hi,_x=p(()=>{Yc();zh();Hi=null});var Ma,yx=p(()=>{"use strict";Ma=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let t=0;t<this.count;t++){let e=this.textures[t];this.textures[t]=null,this.ids[e.uid]=null}this.count=0}}});function bx(){return Aa>0?an[--Aa]:new Hh}function vx(i){i.elements=null,an[Aa++]=i}var Hh,an,Aa,on,Sx,wx,Cx=p(()=>{Ft();Lh();yt();Pr();Oh();Nh();_x();yx();Hh=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ma,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null,this.elements=null}},an=[],Aa=0;ye.register({clear:()=>{if(an.length>0)for(let i of an)i&&i.destroy();an.length=0,Aa=0}});on=0,Sx=class Tx{constructor(t){this.uid=$("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],t={...Tx.defaultOptions,...t},t.maxTextures||(O("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),t.maxTextures=xx());let{maxTextures:e,attributesInitialSize:r,indicesInitialSize:s}=t;this.attributeBuffer=new ze(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=e}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let t=0;t<this.batchIndex;t++)vx(this.batches[t]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(t){this._elements[this.elementSize++]=t,t._indexStart=this.indexSize,t._attributeStart=this.attributeSize,t._batcher=this,this.indexSize+=t.indexSize,this.attributeSize+=t.attributeSize*this.vertexSize}checkAndUpdateTexture(t,e){let r=t._batch.textures.ids[e._source.uid];return!r&&r!==0?!1:(t._textureId=r,t.texture=e,!0)}updateElement(t){this.dirty=!0;let e=this.attributeBuffer;t.packAsQuad?this.packQuadAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId):this.packAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId)}break(t){let e=this._elements;if(!e[this.elementStart])return;let r=bx(),s=r.textures;s.clear();let n=e[this.elementStart],o=nn(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let l=this.attributeBuffer.float32View,c=this.attributeBuffer.uint32View,h=this.indexBuffer,u=this._batchIndexSize,d=this._batchIndexStart,f="startBatch",m=[],g=this.maxTextures;for(let _=this.elementStart;_<this.elementSize;++_){let x=e[_];e[_]=null;let v=x.texture._source,S=nn(x.blendMode,v),T=o!==S||a!==x.topology;if(v._batchTick===on&&!T){x._textureId=v._textureBindLocation,u+=x.indexSize,x.packAsQuad?(this.packQuadAttributes(x,l,c,x._attributeStart,x._textureId),this.packQuadIndex(h,x._indexStart,x._attributeStart/this.vertexSize)):(this.packAttributes(x,l,c,x._attributeStart,x._textureId),this.packIndex(x,h,x._indexStart,x._attributeStart/this.vertexSize)),x._batch=r,m.push(x);continue}v._batchTick=on,(s.count>=g||T)&&(this._finishBatch(r,d,u-d,s,o,a,t,f,m),f="renderBatch",d=u,o=S,a=x.topology,r=bx(),s=r.textures,s.clear(),m=[],++on),x._textureId=v._textureBindLocation=s.count,s.ids[v.uid]=s.count,s.textures[s.count++]=v,x._batch=r,m.push(x),u+=x.indexSize,x.packAsQuad?(this.packQuadAttributes(x,l,c,x._attributeStart,x._textureId),this.packQuadIndex(h,x._indexStart,x._attributeStart/this.vertexSize)):(this.packAttributes(x,l,c,x._attributeStart,x._textureId),this.packIndex(x,h,x._indexStart,x._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(r,d,u-d,s,o,a,t,f,m),d=u,++on),this.elementStart=this.elementSize,this._batchIndexStart=d,this._batchIndexSize=u}_finishBatch(t,e,r,s,n,o,a,l,c){t.gpuBindGroup=null,t.bindGroup=null,t.action=l,t.batcher=this,t.textures=s,t.blendMode=n,t.topology=o,t.start=e,t.size=r,t.elements=c,++on,this.batches[this.batchIndex++]=t,a.add(t)}finish(t){this.break(t)}ensureAttributeBuffer(t){t*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(t*4)}ensureIndexBuffer(t){t<=this.indexBuffer.length||this._resizeIndexBuffer(t)}_resizeAttributeBuffer(t){let e=Math.max(t,this.attributeBuffer.size*2),r=new ze(e);sn(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(t){let e=this.indexBuffer,r=Math.max(t,e.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==e.BYTES_PER_ELEMENT)for(let n=0;n<e.length;n++)s[n]=e[n];else sn(e.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(t,e,r){t[e]=r+0,t[e+1]=r+1,t[e+2]=r+2,t[e+3]=r+0,t[e+4]=r+2,t[e+5]=r+3}packIndex(t,e,r,s){let n=t.indices,o=t.indexSize,a=t.indexOffset,l=t.attributeOffset;for(let c=0;c<o;c++)e[r++]=s+n[c+a]-l}destroy(t={}){if(this.batches!==null){for(let e=0;e<this.batchIndex;e++)vx(this.batches[e]);this.batches=null,this.geometry.destroy(!0),this.geometry=null,t.shader&&(this.shader?.destroy(),this.shader=null);for(let e=0;e<this._elements.length;e++)this._elements[e]&&(this._elements[e]._batch=null);this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}}};Sx.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};wx=Sx});var bT,vT,Ra,Ex=p(()=>{xr();ir();zr();bT=new Float32Array(1),vT=new Uint32Array(1),Ra=class extends ue{constructor(){let e=new At({data:bT,label:"attribute-batch-buffer",usage:tt.VERTEX|tt.COPY_DST,shrinkToFit:!1}),r=new At({data:vT,label:"index-batch-buffer",usage:tt.INDEX|tt.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:e,format:"float32x2",stride:s,offset:0},aUV:{buffer:e,format:"float32x2",stride:s,offset:8},aColor:{buffer:e,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:e,format:"uint16x2",stride:s,offset:20}},indexBuffer:r})}}});function ka(i){let t=Px[i];if(t)return t;let e=new Int32Array(i);for(let r=0;r<i;r++)e[r]=r;return t=Px[i]=new Ct({uTextures:{value:e,type:"i32",size:i}},{isStatic:!0}),t}var Px,Wh=p(()=>{me();Px={}});var ln,Mx=p(()=>{Di();ba();Ta();Ni();Wh();gr();ln=class extends te{constructor(t){let e=Ui({name:"batch",bits:[ya,Sa(t),Oi]}),r=Fi({name:"batch",bits:[_a,va(t),Li]});super({glProgram:e,gpuProgram:r,resources:{batchSamplers:ka(t)}}),this.maxTextures=t}}});var cn,Ax,hn,Vh=p(()=>{P();Cx();Ex();Mx();cn=null,Ax=class Rx extends wx{constructor(t){super(t),this.geometry=new Ra,this.name=Rx.extension.name,this.vertexSize=6,cn??(cn=new ln(t.maxTextures)),this.shader=cn}packAttributes(t,e,r,s,n){let o=n<<16|t.roundPixels&65535,a=t.transform,l=a.a,c=a.b,h=a.c,u=a.d,d=a.tx,f=a.ty,{positions:m,uvs:g}=t,_=t.color,x=t.attributeOffset,b=x+t.attributeSize;for(let v=x;v<b;v++){let S=v*2,T=m[S],w=m[S+1];e[s++]=l*T+h*w+d,e[s++]=u*w+c*T+f,e[s++]=g[S],e[s++]=g[S+1],r[s++]=_,r[s++]=o}}packQuadAttributes(t,e,r,s,n){let o=t.texture,a=t.transform,l=a.a,c=a.b,h=a.c,u=a.d,d=a.tx,f=a.ty,m=t.bounds,g=m.maxX,_=m.minX,x=m.maxY,b=m.minY,v=o.uvs,S=t.color,T=n<<16|t.roundPixels&65535;e[s+0]=l*_+h*b+d,e[s+1]=u*b+c*_+f,e[s+2]=v.x0,e[s+3]=v.y0,r[s+4]=S,r[s+5]=T,e[s+6]=l*g+h*b+d,e[s+7]=u*b+c*g+f,e[s+8]=v.x1,e[s+9]=v.y1,r[s+10]=S,r[s+11]=T,e[s+12]=l*g+h*x+d,e[s+13]=u*x+c*g+f,e[s+14]=v.x2,e[s+15]=v.y2,r[s+16]=S,r[s+17]=T,e[s+18]=l*_+h*x+d,e[s+19]=u*x+c*_+f,e[s+20]=v.x3,e[s+21]=v.y3,r[s+22]=S,r[s+23]=T}_updateMaxTextures(t){this.shader.maxTextures!==t&&(cn=new ln(t),this.shader=cn)}destroy(){this.shader=null,super.destroy()}};Ax.extension={type:[y.Batcher],name:"default"};hn=Ax});var jh,un,Xh=p(()=>{P();Be();Vh();jh=class kx{constructor(t,e){this.state=Ot.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=t,this._adaptor=e,this._adaptor.init?.(this)}static getBatcher(t,e){return new this._availableBatchers[t]({maxTextures:e})}buildStart(t){let e=this._batchersByInstructionSet[t.uid];e||(e=this._batchersByInstructionSet[t.uid]=Object.create(null),e.default||(e.default=new hn({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=e,this._activeBatch=this._activeBatches.default;for(let r in this._activeBatches)this._activeBatches[r].begin()}addToBatch(t,e){if(this._activeBatch.name!==t.batcherName){this._activeBatch.break(e);let r=this._activeBatches[t.batcherName];r||(r=this._activeBatches[t.batcherName]=kx.getBatcher(t.batcherName,this.renderer.limits.maxBatchableTextures),r.begin()),this._activeBatch=r}this._activeBatch.add(t)}break(t){this._activeBatch.break(t)}buildEnd(t){this._activeBatch.break(t);let e=this._activeBatches;for(let r in e){let s=e[r],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(t){let e=this._batchersByInstructionSet[t.uid];for(let r in e){let s=e[r],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(t){if(t.action==="startBatch"){let e=t.batcher,r=e.geometry,s=e.shader;this._adaptor.start(this,r,s)}this._adaptor.execute(this,t)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let t in this._activeBatches)this._activeBatches[t].destroy();this._activeBatches=null}};jh.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"batch"};jh._availableBatchers=Object.create(null);un=jh;z.handleByMap(y.Batcher,un._availableBatchers);z.add(hn)});var Bx,Ix=p(()=>{Bx=`in vec2 vMaskCoord;
387
+ `}}});var qs,y1=p(()=>{P();ce();Hi();Ys();Vi();Ld();br();ge();he();qs=class{init(){let e=Oi({name:"mesh",bits:[Xs,x1,zi]});this._shader=new Ke({gpuProgram:e,resources:{uTexture:U.EMPTY._source,uSampler:U.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(e,t){let r=e.renderer,s=t._shader;if(!s)s=this._shader,s.groups[2]=r.texture.getTextureBindGroup(t.texture);else if(!s.gpuProgram){O("Mesh shader has no gpuProgram",t.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=r.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=e.localUniforms;s.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}r.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};qs.extension={type:[_.WebGPUPipesAdaptor],name:"mesh"}});var ka,Ks,v1=p(()=>{P();It();Sa();ka=De.for2d(),Ks=class{start(e,t,r){let s=e.renderer,n=s.encoder,o=r.gpuProgram;this._shader=r,this._geometry=t,n.setGeometry(t,o),ka.blendMode="normal",s.pipeline.getPipeline(t,o,ka,void 0,r._overrides);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(e,t){let r=this._shader.gpuProgram,s=e.renderer,n=s.encoder;if(!t.bindGroup){let c=t.textures;t.bindGroup=Li(c.textures,c.count,s.limits.maxBatchableTextures)}ka.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,r,1),a=s.pipeline.getPipeline(this._geometry,r,ka,t.topology,this._shader._overrides);t.bindGroup._touch(s.gc.now,s.tick),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(t.size,1,t.start)}};Ks.extension={type:[_.WebGPUPipesAdaptor],name:"batch"}});var Xr,Od=p(()=>{P();Xr=class{constructor(e){this._renderer=e}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};Xr.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"customRender"}});var yr,Ba=p(()=>{"use strict";yr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){this.reset()}}});function Zs(i,e){let t=i.instructionSet,r=t.instructions;for(let s=0;s<t.instructionSize;s++){let n=r[s];e[n.renderPipeId].execute(n)}}var Nd=p(()=>{"use strict"});var Yr,Hd=p(()=>{P();ce();Zt();Ba();Nd();Yr=class{constructor(e){this._renderer=e}addRenderGroup(e,t){e.isCachedAsTexture?this._addRenderableCacheAsTexture(e,t):this._addRenderableDirect(e,t)}execute(e){e.isRenderable&&(e.isCachedAsTexture?this._executeCacheAsTexture(e):this._executeDirect(e))}destroy(){this._renderer=null}_addRenderableDirect(e,t){this._renderer.renderPipes.batch.break(t),e._batchableRenderGroup&&(ye.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let r=e._batchableRenderGroup??(e._batchableRenderGroup=ye.get(yr));r.renderable=e.root,r.transform=e.root.relativeGroupTransform,r.texture=e.texture,r.bounds=e._textureBounds,t.add(e),this._renderer.renderPipes.blendMode.pushBlendMode(e,e.root.groupBlendMode,t),this._renderer.renderPipes.batch.addToBatch(r,t),this._renderer.renderPipes.blendMode.popBlendMode(t)}_executeCacheAsTexture(e){if(e.textureNeedsUpdate){e.textureNeedsUpdate=!1;let t=new k().translate(-e._textureBounds.x,-e._textureBounds.y);this._renderer.renderTarget.push({target:e.texture,clear:!0,frame:e.texture.frame}),this._renderer.globalUniforms.push({worldTransformMatrix:t,worldColor:4294967295,offset:{x:0,y:0}}),Zs(e,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}e._batchableRenderGroup._batcher.updateElement(e._batchableRenderGroup),e._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(e){this._renderer.globalUniforms.push({worldTransformMatrix:e.inverseParentTextureTransform,worldColor:e.worldColorAlpha}),Zs(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Yr.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"renderGroup"}});function Qs(i,e){e||(e=0);for(let t=e;t<i.length&&i[t];t++)i[t]=null}var zd=p(()=>{"use strict"});function Wd(i,e=!1){A3(i);let t=i.childrenToUpdate,r=i.updateTick++;for(let s in t){let n=Number(s),o=t[s],a=o.list,c=o.index;for(let l=0;l<c;l++){let d=a[l];d.parentRenderGroup===i&&d.relativeRenderGroupDepth===n&&T1(d,r,0)}Qs(a,c),o.index=0}if(e)for(let s=0;s<i.renderGroupChildren.length;s++)Wd(i.renderGroupChildren[s],e)}function A3(i){let e=i.root,t;if(i.renderGroupParent){let r=i.renderGroupParent;i.worldTransform.appendFrom(e.relativeGroupTransform,r.worldTransform),i.worldColor=wi(e.groupColor,r.worldColor),t=e.groupAlpha*r.worldAlpha}else i.worldTransform.copyFrom(e.localTransform),i.worldColor=e.localColor,t=e.localAlpha;t=t<0?0:t>1?1:t,i.worldAlpha=t,i.worldColorAlpha=i.worldColor+((t*255|0)<<24)}function T1(i,e,t){if(e===i.updateTick)return;i.updateTick=e,i.didChange=!1;let r=i.localTransform;i.updateLocalTransform();let s=i.parent;if(s&&!s.renderGroup?(t|=i._updateFlags,i.relativeGroupTransform.appendFrom(r,s.relativeGroupTransform),t&w1&&S1(i,s,t)):(t=i._updateFlags,i.relativeGroupTransform.copyFrom(r),t&w1&&S1(i,M3,t)),!i.renderGroup){let n=i.children,o=n.length;for(let l=0;l<o;l++)T1(n[l],e,t);let a=i.parentRenderGroup,c=i;c.renderPipeId&&!a.structureDidChange&&a.updateRenderable(c)}}function S1(i,e,t){if(t&Ei){i.groupColor=wi(i.localColor,e.groupColor);let r=i.localAlpha*e.groupAlpha;r=r<0?0:r>1?1:r,i.groupAlpha=r,i.groupColorAlpha=i.groupColor+((r*255|0)<<24)}t&vs&&(i.groupBlendMode=i.localBlendMode==="inherit"?e.groupBlendMode:i.localBlendMode),t&Lr&&(i.globalDisplayStatus=i.localDisplayStatus&e.globalDisplayStatus),i._updateFlags=0}var M3,w1,E1=p(()=>{Mt();zd();hl();M3=new me,w1=Lr|Ei|vs});function C1(i,e){let{list:t}=i.childrenRenderablesToUpdate,r=!1;for(let s=0;s<i.childrenRenderablesToUpdate.index;s++){let n=t[s];if(r=e[n.renderPipeId].validateRenderable(n),r)break}return i.structureDidChange=r,r}var P1=p(()=>{"use strict"});var R3,Js,M1=p(()=>{P();ce();Ur();Rr();et();zd();Nd();E1();P1();R3=new k,Js=class{constructor(e){this._renderer=e}render({container:e,transform:t}){let r=e.parent,s=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let n=this._renderer,o=R3;t&&(o.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let a=n.renderPipes;this._updateCachedRenderGroups(e.renderGroup,null),this._updateRenderGroups(e.renderGroup),n.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),Zs(e.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(o),e.parent=r,e.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(e,t){if(e._parentCacheAsTextureRenderGroup=t,e.isCachedAsTexture){if(!e.textureNeedsUpdate)return;t=e}for(let r=e.renderGroupChildren.length-1;r>=0;r--)this._updateCachedRenderGroups(e.renderGroupChildren[r],t);if(e.invalidateMatrices(),e.isCachedAsTexture){if(e.textureNeedsUpdate){let r=e.root.getLocalBounds(),s=this._renderer,n=e.textureOptions.resolution||s.view.resolution,o=e.textureOptions.antialias??s.view.antialias,a=e.textureOptions.scaleMode??"linear",c=e.texture;r.ceil(),e.texture&&Pe.returnTexture(e.texture,!0);let l=Pe.getOptimalTexture(r.width,r.height,n,o);l._source.style=new ot({scaleMode:a}),e.texture=l,e._textureBounds||(e._textureBounds=new pe),e._textureBounds.copyFrom(r),c!==e.texture&&e.renderGroupParent&&(e.renderGroupParent.structureDidChange=!0)}}else e.texture&&(Pe.returnTexture(e.texture,!0),e.texture=null)}_updateRenderGroups(e){let t=this._renderer,r=t.renderPipes;if(e.runOnRender(t),e.instructionSet.renderPipes=r,e.structureDidChange?Qs(e.childrenRenderablesToUpdate.list,0):C1(e,r),Wd(e),e.structureDidChange?(e.structureDidChange=!1,this._buildInstructions(e,t)):this._updateRenderables(e),e.childrenRenderablesToUpdate.index=0,t.renderPipes.batch.upload(e.instructionSet),!(e.isCachedAsTexture&&!e.textureNeedsUpdate))for(let s=0;s<e.renderGroupChildren.length;s++)this._updateRenderGroups(e.renderGroupChildren[s])}_updateRenderables(e){let{list:t,index:r}=e.childrenRenderablesToUpdate;for(let s=0;s<r;s++){let n=t[s];n.didViewUpdate&&e.updateRenderable(n)}Qs(t,r)}_buildInstructions(e,t){let r=e.root,s=e.instructionSet;s.reset();let n=t.renderPipes?t:t.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),r.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};Js.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"renderGroup"}});var $r,Vd=p(()=>{P();Ba();$r=class{constructor(e){this._renderer=e}addRenderable(e,t){let r=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new yr;return t.renderable=e,t.transform=e.groupTransform,t.texture=e._texture,t.bounds=e.visualBounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};$r.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"sprite"}});var ji,jd=p(()=>{Ne();ji="8.20.0"});var en,tn,Xd=p(()=>{P();jd();en=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,ji)}static destroy(){}};en.extension=_.Application;tn=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,ji)}destroy(){this._renderer=null}};tn.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"initHook",priority:-10}});var Wt,Yd=p(()=>{"use strict";Wt=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this.uint32View=null,this.float32View=null,this.uint16View=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._int32View=null,this._float64Array=null,this._bigUint64Array=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function rn(i,e,t,r){if(t??(t=0),r??(r=Math.min(i.byteLength-t,e.byteLength)),!(t&7)&&!(r&7)){let s=r/8;new Float64Array(e,0,s).set(new Float64Array(i,t,s))}else if(!(t&3)&&!(r&3)){let s=r/4;new Float32Array(e,0,s).set(new Float32Array(i,t,s))}else new Uint8Array(e).set(new Uint8Array(i,t,r))}var $d=p(()=>{"use strict"});var A1,ve,qr=p(()=>{"use strict";A1={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},ve=(i=>(i[i.DISABLED=0]="DISABLED",i[i.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",i[i.MASK_ACTIVE=2]="MASK_ACTIVE",i[i.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",i[i.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",i[i.NONE=5]="NONE",i))(ve||{})});function sn(i,e){return e.alphaMode==="no-premultiply-alpha"&&A1[i]||i}var qd=p(()=>{qr()});function B3(i){let e="";for(let t=0;t<i;++t)t>0&&(e+=`
388
+ else `),t<i-1&&(e+=`if(test == ${t}.0){}`);return e}function Ia(i,e){if(i===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let t=e.createShader(e.FRAGMENT_SHADER);try{for(;;){let r=k3.replace(/%forloop%/gi,B3(i));if(e.shaderSource(t,r),e.compileShader(t),!e.getShaderParameter(t,e.COMPILE_STATUS))i=i/2|0;else break}}finally{e.deleteShader(t)}return i}var k3,Kd=p(()=>{"use strict";k3=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
389
+ `)});function R1(){if(Xi)return Xi;let i=da();return Xi=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Xi=Ia(Xi,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Xi}var Xi,k1=p(()=>{rd();Kd();Xi=null});var Ga,B1=p(()=>{"use strict";Ga=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function I1(){return Fa>0?on[--Fa]:new Zd}function G1(i){i.elements=null,on[Fa++]=i}var Zd,on,Fa,nn,F1,D1,L1=p(()=>{Ie();Yd();_e();Mr();$d();qd();k1();B1();Zd=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ga,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null,this.elements=null}},on=[],Fa=0;_t.register({clear:()=>{if(on.length>0)for(let i of on)i&&i.destroy();on.length=0,Fa=0}});nn=0,F1=class U1{constructor(e){this.uid=Y("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...U1.defaultOptions,...e},e.maxTextures||(N("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=R1());let{maxTextures:t,attributesInitialSize:r,indicesInitialSize:s}=e;this.attributeBuffer=new Wt(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)G1(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let r=e._batch.textures.ids[t._source.uid];return!r&&r!==0?!1:(e._textureId=r,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let r=I1(),s=r.textures;s.clear();let n=t[this.elementStart],o=sn(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let c=this.attributeBuffer.float32View,l=this.attributeBuffer.uint32View,d=this.indexBuffer,h=this._batchIndexSize,u=this._batchIndexStart,f="startBatch",m=[],g=this.maxTextures;for(let x=this.elementStart;x<this.elementSize;++x){let b=t[x];t[x]=null;let v=b.texture._source,w=sn(b.blendMode,v),S=o!==w||a!==b.topology;if(v._batchTick===nn&&!S){b._textureId=v._textureBindLocation,h+=b.indexSize,b.packAsQuad?(this.packQuadAttributes(b,c,l,b._attributeStart,b._textureId),this.packQuadIndex(d,b._indexStart,b._attributeStart/this.vertexSize)):(this.packAttributes(b,c,l,b._attributeStart,b._textureId),this.packIndex(b,d,b._indexStart,b._attributeStart/this.vertexSize)),b._batch=r,m.push(b);continue}v._batchTick=nn,(s.count>=g||S)&&(this._finishBatch(r,u,h-u,s,o,a,e,f,m),f="renderBatch",u=h,o=w,a=b.topology,r=I1(),s=r.textures,s.clear(),m=[],++nn),b._textureId=v._textureBindLocation=s.count,s.ids[v.uid]=s.count,s.textures[s.count++]=v,b._batch=r,m.push(b),h+=b.indexSize,b.packAsQuad?(this.packQuadAttributes(b,c,l,b._attributeStart,b._textureId),this.packQuadIndex(d,b._indexStart,b._attributeStart/this.vertexSize)):(this.packAttributes(b,c,l,b._attributeStart,b._textureId),this.packIndex(b,d,b._indexStart,b._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(r,u,h-u,s,o,a,e,f,m),u=h,++nn),this.elementStart=this.elementSize,this._batchIndexStart=u,this._batchIndexSize=h}_finishBatch(e,t,r,s,n,o,a,c,l){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=r,e.elements=l,++nn,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),r=new Wt(t);rn(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(e){let t=this.indexBuffer,r=Math.max(e,t.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else rn(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,r){e[t]=r+0,e[t+1]=r+1,e[t+2]=r+2,e[t+3]=r+0,e[t+4]=r+2,e[t+5]=r+3}packIndex(e,t,r,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let l=0;l<o;l++)t[r++]=s+n[l+a]-c}destroy(e={}){if(this.batches!==null){for(let t=0;t<this.batchIndex;t++)G1(this.batches[t]);this.batches=null,this.geometry.destroy(!0),this.geometry=null,e.shader&&(this.shader?.destroy(),this.shader=null);for(let t=0;t<this._elements.length;t++)this._elements[t]&&(this._elements[t]._batch=null);this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}}};F1.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};D1=F1});var I3,G3,Ua,O1=p(()=>{xr();sr();zr();I3=new Float32Array(1),G3=new Uint32Array(1),Ua=class extends ct{constructor(){let t=new Me({data:I3,label:"attribute-batch-buffer",usage:J.VERTEX|J.COPY_DST,shrinkToFit:!1}),r=new Me({data:G3,label:"index-batch-buffer",usage:J.INDEX|J.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:8},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:20}},indexBuffer:r})}}});function Da(i){let e=N1[i];if(e)return e;let t=new Int32Array(i);for(let r=0;r<i;r++)t[r]=r;return e=N1[i]=new Te({uTextures:{value:t,type:"i32",size:i}},{isStatic:!0}),e}var N1,Qd=p(()=>{mt();N1={}});var an,H1=p(()=>{Hi();Ca();Aa();Vi();Qd();br();an=class extends Ke{constructor(e){let t=Ni({name:"batch",bits:[Ea,Ma(e),Wi]}),r=Oi({name:"batch",bits:[Ta,Pa(e),zi]});super({glProgram:t,gpuProgram:r,resources:{batchSamplers:Da(e)}}),this.maxTextures=e}}});var cn,z1,ln,Jd=p(()=>{P();L1();O1();H1();cn=null,z1=class W1 extends D1{constructor(e){super(e),this.geometry=new Ua,this.name=W1.extension.name,this.vertexSize=6,cn??(cn=new an(e.maxTextures)),this.shader=cn}packAttributes(e,t,r,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,l=a.b,d=a.c,h=a.d,u=a.tx,f=a.ty,{positions:m,uvs:g}=e,x=e.color,b=e.attributeOffset,y=b+e.attributeSize;for(let v=b;v<y;v++){let w=v*2,S=m[w],T=m[w+1];t[s++]=c*S+d*T+u,t[s++]=h*T+l*S+f,t[s++]=g[w],t[s++]=g[w+1],r[s++]=x,r[s++]=o}}packQuadAttributes(e,t,r,s,n){let o=e.texture,a=e.transform,c=a.a,l=a.b,d=a.c,h=a.d,u=a.tx,f=a.ty,m=e.bounds,g=m.maxX,x=m.minX,b=m.maxY,y=m.minY,v=o.uvs,w=e.color,S=n<<16|e.roundPixels&65535;t[s+0]=c*x+d*y+u,t[s+1]=h*y+l*x+f,t[s+2]=v.x0,t[s+3]=v.y0,r[s+4]=w,r[s+5]=S,t[s+6]=c*g+d*y+u,t[s+7]=h*y+l*g+f,t[s+8]=v.x1,t[s+9]=v.y1,r[s+10]=w,r[s+11]=S,t[s+12]=c*g+d*b+u,t[s+13]=h*b+l*g+f,t[s+14]=v.x2,t[s+15]=v.y2,r[s+16]=w,r[s+17]=S,t[s+18]=c*x+d*b+u,t[s+19]=h*b+l*x+f,t[s+20]=v.x3,t[s+21]=v.y3,r[s+22]=w,r[s+23]=S}_updateMaxTextures(e){this.shader.maxTextures!==e&&(cn=new an(e),this.shader=cn)}destroy(){this.shader=null,super.destroy()}};z1.extension={type:[_.Batcher],name:"default"};ln=z1});var eh,dn,th=p(()=>{P();It();Jd();eh=class V1{constructor(e,t){this.state=De.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init?.(this)}static getBatcher(e,t){return new this._availableBatchers[e]({maxTextures:t})}buildStart(e){let t=this._batchersByInstructionSet[e.uid];t||(t=this._batchersByInstructionSet[e.uid]=Object.create(null),t.default||(t.default=new ln({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=t,this._activeBatch=this._activeBatches.default;for(let r in this._activeBatches)this._activeBatches[r].begin()}addToBatch(e,t){if(this._activeBatch.name!==e.batcherName){this._activeBatch.break(t);let r=this._activeBatches[e.batcherName];r||(r=this._activeBatches[e.batcherName]=V1.getBatcher(e.batcherName,this.renderer.limits.maxBatchableTextures),r.begin()),this._activeBatch=r}this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){this._activeBatch.break(e);let t=this._activeBatches;for(let r in t){let s=t[r],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(e){let t=this._batchersByInstructionSet[e.uid];for(let r in t){let s=t[r],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(e){if(e.action==="startBatch"){let t=e.batcher,r=t.geometry,s=t.shader;this._adaptor.start(this,r,s)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let e in this._activeBatches)this._activeBatches[e].destroy();this._activeBatches=null}};eh.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"batch"};eh._availableBatchers=Object.create(null);dn=eh;H.handleByMap(_.Batcher,dn._availableBatchers);H.add(ln)});var j1,X1=p(()=>{j1=`in vec2 vMaskCoord;
390
390
  in vec2 vTextureCoord;
391
391
 
392
392
  uniform sampler2D uTexture;
@@ -426,7 +426,7 @@ void main(void)
426
426
 
427
427
  finalColor = original * a;
428
428
  }
429
- `});var Gx,Fx=p(()=>{Gx=`in vec2 aPosition;
429
+ `});var Y1,$1=p(()=>{Y1=`in vec2 aPosition;
430
430
 
431
431
  out vec2 vTextureCoord;
432
432
  out vec2 vMaskCoord;
@@ -463,7 +463,7 @@ void main(void)
463
463
  vTextureCoord = filterTextureCoord(aPosition);
464
464
  vMaskCoord = getFilterCoord(aPosition);
465
465
  }
466
- `});var Yh,Ux=p(()=>{Yh=`struct GlobalFilterUniforms {
466
+ `});var rh,q1=p(()=>{rh=`struct GlobalFilterUniforms {
467
467
  uInputSize:vec4<f32>,
468
468
  uInputPixel:vec4<f32>,
469
469
  uInputClamp:vec4<f32>,
@@ -567,10 +567,10 @@ fn mainFragment(
567
567
 
568
568
  return source * a;
569
569
  }
570
- `});var Ba,Dx=p(()=>{ot();Nr();Ri();me();gt();cc();ht();ah();Ix();Fx();Ux();Ba=class extends aa{constructor(t){let{sprite:e,...r}=t,s=new bi(e.texture),n=new Ct({uFilterMatrix:{value:new k,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:t.inverse?1:0,type:"f32"},uChannel:{value:t.channel==="alpha"?1:0,type:"f32"}}),o=ve.from({vertex:{source:Yh,entryPoint:"mainVertex"},fragment:{source:Yh,entryPoint:"mainFragment"}}),a=be.from({vertex:Gx,fragment:Bx,name:"mask-filter"});super({...r,gpuProgram:o,glProgram:a,clipToViewport:!1,resources:{filterUniforms:n,uMaskTexture:e.texture.source}}),this.sprite=e,this._textureMatrix=s}setSprite(t){this.sprite=t;let e=this._getSafeTexture();this._textureMatrix.texture=e,this.resources.uMaskTexture=e.source}set inverse(t){this.resources.filterUniforms.uniforms.uInverse=t?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}set channel(t){this.resources.filterUniforms.uniforms.uChannel=t==="alpha"?1:0}get channel(){return this.resources.filterUniforms.uniforms.uChannel===1?"alpha":"red"}apply(t,e,r,s){let n=this._getSafeTexture();this._textureMatrix.texture=n,t.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=n.source,t.applyFilter(this,e,r,s)}_getSafeTexture(){let t=this.sprite.texture;return t.destroyed||!t.source||t.source.destroyed?(L("[MaskFilter] The mask texture was destroyed while the mask is still in use. Remove the mask before destroying its texture."),F.EMPTY):t}destroy(t=!1){this._textureMatrix.destroy(),super.destroy(t)}}});var ST,$h,qr,qh=p(()=>{P();wo();Dx();ie();_s();Ho();Ke();gt();Fr();Ne();ST=new dt,$h=class extends Ze{constructor(){super(),this._placeholderSprite=new he(F.EMPTY),this.filters=[new Ba({sprite:this._placeholderSprite,inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(t){this.filters[0].setSprite(t)}get inverse(){return this.filters[0].inverse}set inverse(t){this.filters[0].inverse=t}get channel(){return this.filters[0].channel}set channel(t){this.filters[0].channel=t}reset(){this._placeholderSprite.texture=F.EMPTY,this.sprite=this._placeholderSprite}},qr=class{constructor(t){this._activeMaskStage=[],this._usedEffects=[],this._renderer=t,t.runners.postrender.add(this)}push(t,e,r){let s=this._renderer;if(s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1,maskedContainer:e}),t.inverse=e._maskOptions.inverse,t.channel=e._maskOptions.channel??"red",t.renderMaskToTexture){let n=t.mask;n.includeInBuild=!0,n.collectRenderables(r,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:t,maskedContainer:e,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){let e=this._renderer,r=t.mask.renderMaskToTexture;if(t.action==="pushMaskBegin"){let s=bt.get($h);if(s.inverse=t.inverse,s.channel=t.mask.channel,r){t.mask.mask.measurable=!0;let n=xi(t.mask.mask,!0,ST);t.mask.mask.measurable=!1,n.ceil();let o=e.renderTarget.renderTarget.colorTexture.source,a=Mt.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);e.renderTarget.push({target:a,clear:!0}),e.globalUniforms.push({offset:n,worldColor:4294967295});let l=s.sprite;l.texture=a,l.worldTransform.tx=n.minX,l.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer,filterTexture:a})}else s.sprite=t.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer})}else if(t.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];r&&(e.type===Lt.WEBGL&&e.renderTarget.finishRenderPass(),e.renderTarget.pop(),e.globalUniforms.pop()),e.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(t.action==="popMaskEnd"){e.filter.pop();let s=this._activeMaskStage.pop();r&&Mt.returnTexture(s.filterTexture),this._usedEffects.push(s.filterEffect)}}postrender(){let t=this._usedEffects;for(let e=0;e<t.length;e++)bt.return(t[e]);t.length=0}destroy(){this.postrender(),this._renderer.runners.postrender.remove(this),this._renderer=null,this._activeMaskStage=null,this._usedEffects=null}};qr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"alphaMask"}});var dn,Lx=p(()=>{P();dn=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&t.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(t){this._renderer.colorMask.setMask(t.colorMask)}destroy(){this._renderer=null,this._colorStack=null}};dn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"colorMask"}});var fn,Ox=p(()=>{P();Bi();$r();fn=class{constructor(t){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=t}push(t,e,r){var s;let n=t,o=this._renderer;o.renderPipes.batch.break(r),o.renderPipes.blendMode.setBlendMode(n.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let l=this._maskHash.get(n);l.instructionsStart=r.instructionSize,a.collectRenderables(r,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let c=r.instructionSize-l.instructionsStart-1;l.instructionsLength=c;let h=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[h]??(s[h]=0)}pop(t,e,r){let s=t,n=this._renderer;n.renderPipes.batch.break(r),n.renderPipes.blendMode.setBlendMode(s.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:e._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(t);for(let a=0;a<o.instructionsLength;a++)r.instructions[r.instructionSize++]=r.instructions[o.instructionsStart++];r.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(t){var e;let r=this._renderer,s=r,n=r.renderTarget.renderTarget.uid,o=(e=this._maskStackHash)[n]??(e[n]=0);t.action==="pushMaskBegin"?(s.renderTarget.ensureDepthStencil(),s.stencil.setStencilMode(vt.RENDERING_MASK_ADD,o),o++,s.colorMask.setMask(0)):t.action==="pushMaskEnd"?(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)):t.action==="popMaskBegin"?(s.colorMask.setMask(0),o!==0?s.stencil.setStencilMode(vt.RENDERING_MASK_REMOVE,o):(s.renderTarget.clear(null,Et.STENCIL),s.stencil.setStencilMode(vt.DISABLED,o)),o--):t.action==="popMaskEnd"&&(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)),this._maskStackHash[n]=o}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};fn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"stencilMask"}});var Kh,zx,Hx=p(()=>{Qt();P();ht();Kh=class Nx{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new Q(0),this.color=this._backgroundColor,this.alpha=1}init(t){t={...Nx.defaultOptions,...t},this.clearBeforeRender=t.clearBeforeRender,this.color=t.background||t.backgroundColor||this._backgroundColor,this.alpha=t.backgroundAlpha,this._backgroundColor.setAlpha(t.backgroundAlpha)}get color(){return this._backgroundColor}set color(t){Q.shared.setValue(t).alpha<1&&this._backgroundColor.alpha===1&&L("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application."),this._backgroundColor.setValue(t)}get alpha(){return this._backgroundColor.alpha}set alpha(t){this._backgroundColor.setAlpha(t)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};Kh.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"background",priority:0};Kh.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};zx=Kh});var pn,Kr,Zh=p(()=>{P();wo();uc();ht();pn={};z.handle(y.BlendMode,i=>{if(!i.name)throw new Error("BlendMode extension must have a name property");pn[i.name]=i.ref},i=>{delete pn[i.name]});Kr=class{constructor(t){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=t,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(t,e,r){this._blendModeStack.push(e),this.setBlendMode(t,e,r)}popBlendMode(t){this._blendModeStack.pop();let e=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,e,t)}setBlendMode(t,e,r){let s=t instanceof Ur;if(this._activeBlendMode===e){this._isAdvanced&&t&&!s&&this._renderableList?.push(t);return}this._isAdvanced&&this._endAdvancedBlendMode(r),this._activeBlendMode=e,t&&(this._isAdvanced=!!pn[e],this._isAdvanced&&this._beginAdvancedBlendMode(t,r))}_beginAdvancedBlendMode(t,e){this._renderer.renderPipes.batch.break(e);let r=this._activeBlendMode;if(!pn[r]){L(`Unable to assign BlendMode: '${r}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let s=this._ensureFilterEffect(r),n=t instanceof Ur,o={renderPipeId:"filter",action:"pushFilter",filterEffect:s,renderables:n?null:[t],container:n?t.root:null,canBundle:!1};this._renderableList=o.renderables,e.add(o)}_ensureFilterEffect(t){let e=this._filterHash[t];return e||(e=this._filterHash[t]=new Ze,e.filters=[new pn[t]]),e}_endAdvancedBlendMode(t){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(t),t.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(t){this._isAdvanced&&this._endAdvancedBlendMode(t)}destroy(){this._renderer=null,this._renderableList=null;for(let t in this._filterHash)this._filterHash[t].destroy();this._filterHash=null}};Kr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"blendMode"}});var Qh,Jh,Vx,jx=p(()=>{xt();P();Pe();gt();Qh={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},Jh=class Wx{constructor(t){this._renderer=t}_normalizeOptions(t,e={}){return t instanceof mt||t instanceof F?{target:t,...e}:{...e,...t}}async image(t){let e=W.get().createImage();return e.src=await this.base64(t),e}async base64(t){t=this._normalizeOptions(t,Wx.defaultImageOptions);let{format:e,quality:r}=t,s=this.canvas(t);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let l=new FileReader;l.onload=()=>n(l.result),l.onerror=o,l.readAsDataURL(a)},Qh[e],r)});if(s.toDataURL!==void 0)return s.toDataURL(Qh[e],r);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:Qh[e],quality:r});return new Promise((o,a)=>{let l=new FileReader;l.onload=()=>o(l.result),l.onerror=a,l.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer;if(e instanceof F)return r.texture.generateCanvas(e);let s=r.textureGenerator.generateTexture(t),n=r.texture.generateCanvas(s);return s.destroy(!0),n}pixels(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer,s=e instanceof F?e:r.textureGenerator.generateTexture(t),n=r.texture.getPixels(s);return e instanceof mt&&s.destroy(!0),n}texture(t){return t=this._normalizeOptions(t),t.target instanceof F?t.target:this._renderer.textureGenerator.generateTexture(t)}download(t){t=this._normalizeOptions(t);let e=this.canvas(t),r=document.createElement("a");r.download=t.filename??"image.png",r.href=e.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(t){let e=t.width??200;t=this._normalizeOptions(t);let r=this.canvas(t),s=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);let n=["font-size: 1px;",`padding: ${e}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};Jh.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"extract"};Jh.defaultImageOptions={format:"png",quality:1};Vx=Jh});var Ia,Xx=p(()=>{$t();gt();Ia=class i extends F{static create(t){let{dynamic:e,textureOptions:r,...s}=t;return new i({...r,source:new st(s),dynamic:e??!1})}resize(t,e,r){return this.source.resize(t,e,r),this}}});var TT,wT,CT,mn,Yx=p(()=>{Qt();P();ot();Yt();ie();Ao();Pe();Xx();TT=new J,wT=new dt,CT=[0,0,0,0],mn=class{constructor(t){this._renderer=t}generateTexture(t){t instanceof mt&&(t={target:t,frame:void 0,textureSourceOptions:{},resolution:void 0});let e=t.resolution||this._renderer.resolution,r=t.antialias||this._renderer.view.antialias,s=t.target,n=t.clearColor;n?n=Array.isArray(n)&&n.length===4?n:Q.shared.setValue(n).toArray():n=CT;let o=t.frame?.copyTo(TT)||yi(s,wT).rectangle,a=t.defaultAnchor&&{defaultAnchor:t.defaultAnchor};o.width=Math.max(o.width,1/e)|0,o.height=Math.max(o.height,1/e)|0;let l=Ia.create({...t.textureSourceOptions,width:o.width,height:o.height,resolution:e,antialias:r,textureOptions:a}),c=k.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:l,clearColor:n}),l.source.updateMipmaps(),l}destroy(){this._renderer=null}};mn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"textureGenerator"}});function $x(i){let t=!1;for(let r in i)if(i[r]==null){t=!0;break}if(!t)return i;let e=Object.create(null);for(let r in i){let s=i[r];s&&(e[r]=s)}return e}function qx(i){let t=0;for(let e=0;e<i.length;e++)i[e]==null?t++:i[e-t]=i[e];return i.length-=t,i}var Kx=p(()=>{"use strict"});var tu,Qx,Jx=p(()=>{P();Kx();tu=class Zx{constructor(t){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=t}init(t){t={...Zx.defaultOptions,...t},this.maxUnusedTime=t.gcMaxUnusedTime,this._frequency=t.gcFrequency,this.enabled=t.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(t){this.enabled!==t&&(t?(this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let e of this._managedCollections){let{context:r,collection:s,type:n}=e;n==="hash"?r[s]=$x(r[s]):r[s]=qx(r[s])}},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0))}prerender({container:t}){this.now=performance.now(),t.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(t.renderGroup,t.renderGroup.gcTick)}postrender(){!this._ready||!this.enabled||(this.run(),this._ready=!1)}_updateInstructionGCTick(t,e){t.instructionSet.gcTick=e,t.gcTick=e;for(let r of t.renderGroupChildren)this._updateInstructionGCTick(r,e)}addCollection(t,e,r){this._managedCollections.push({context:t,collection:e,type:r})}addResource(t,e){if(t._gcLastUsed!==-1){t._gcLastUsed=this.now,t._onTouch?.(this.now);return}let r=this._managedResources.length;t._gcData={index:r,type:e},t._gcLastUsed=this.now,t._onTouch?.(this.now),t.once("unload",this.removeResource,this),this._managedResources.push(t)}removeResource(t){let e=t._gcData;if(!e)return;let r=e.index,s=this._managedResources.length-1;if(r!==s){let n=this._managedResources[s];this._managedResources[r]=n,n._gcData.index=r}this._managedResources.length--,t._gcData=null,t._gcLastUsed=-1}addResourceHash(t,e,r,s=0){this._managedResourceHashes.push({context:t,hash:e,type:r,priority:s}),this._managedResourceHashes.sort((n,o)=>n.priority-o.priority)}run(){let t=performance.now(),e=this._managedResourceHashes;for(let s of e)this.runOnHash(s,t);let r=0;for(let s=0;s<this._managedResources.length;s++){let n=this._managedResources[s];r=this.runOnResource(n,t,r)}this._managedResources.length=r}updateRenderableGCTick(t,e){let r=t.renderGroup??t.parentRenderGroup,s=r?.instructionSet?.gcTick??-1;(r?.gcTick??0)===s&&(t._gcLastUsed=e,t._onTouch?.(e))}runOnResource(t,e,r){let s=t._gcData;return s.type==="renderable"&&this.updateRenderableGCTick(t,e),e-t._gcLastUsed<this.maxUnusedTime||!t.autoGarbageCollect?(this._managedResources[r]=t,s.index=r,r++):(t.unload(),t._gcData=null,t._gcLastUsed=-1,t.off("unload",this.removeResource,this)),r}_createHashClone(t,e){let r=Object.create(null);for(let s in t){if(s===e)break;t[s]!==null&&(r[s]=t[s])}return r}runOnHash(t,e){let{context:r,hash:s,type:n}=t,o=r[s],a=null,l=0;for(let c in o){let h=o[c];if(h===null){l++,l===1e4&&!a&&(a=this._createHashClone(o,c));continue}if(h._gcLastUsed===-1){h._gcLastUsed=e,h._onTouch?.(e),a&&(a[c]=h);continue}if(n==="renderable"&&this.updateRenderableGCTick(h,e),!(e-h._gcLastUsed<this.maxUnusedTime)&&h.autoGarbageCollect){if(n==="renderable"){let d=h,f=d.renderGroup??d.parentRenderGroup;f&&(f.structureDidChange=!0)}h.unload(),h._gcData=null,h._gcLastUsed=-1,a||(l+1!==1e4?(o[c]=null,l++):a=this._createHashClone(o,c))}else a&&(a[c]=h)}a&&(r[s]=a)}destroy(){this.enabled=!1,this._managedResources.forEach(t=>{t.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};tu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"gc",priority:0};tu.defaultOptions={gcActive:!0,gcMaxUnusedTime:6e4,gcFrequency:3e4};Qx=tu});function Wi(i,t,e){let r=(i>>24&255)/255;t[e++]=(i&255)/255*r,t[e++]=(i>>8&255)/255*r,t[e++]=(i>>16&255)/255*r,t[e++]=r}var Ga=p(()=>{"use strict"});var gn,t_=p(()=>{P();ot();Ee();Ga();mr();Ne();me();gn=class{constructor(t){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=t}reset(){this._stackIndex=0;for(let t=0;t<this._activeUniforms.length;t++)this._uniformsPool.push(this._activeUniforms[t]);for(let t=0;t<this._activeBindGroups.length;t++)this._bindGroupPool.push(this._activeBindGroups[t]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(t){this.reset(),this.push(t)}bind({size:t,projectionMatrix:e,worldTransformMatrix:r,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new k,worldColor:4294967295,offset:new nt},l={projectionMatrix:e||this._renderer.renderTarget.projectionMatrix,resolution:t||o.size,worldTransformMatrix:r||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},c=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(c);let h=c.uniforms;h.uProjectionMatrix=l.projectionMatrix,h.uResolution=l.resolution,h.uWorldTransformMatrix.copyFrom(l.worldTransformMatrix),h.uWorldTransformMatrix.tx-=l.offset.x,h.uWorldTransformMatrix.ty-=l.offset.y,Wi(l.worldColor,h.uWorldColorAlpha,0),c.update();let u;this._renderer.renderPipes.uniformBatch?u=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(c,!1):(u=this._bindGroupPool.pop()||new Vt,this._activeBindGroups.push(u),u.setResource(c,0)),l.bindGroup=u,this._currentGlobalUniformData=l}push(t){this.bind(t),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Lt.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new Ct({uProjectionMatrix:{value:new k,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new k,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}};gn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"globalUniforms"}});var ET,xn,e_=p(()=>{P();Ti();ET=1,xn=class{constructor(){this._tasks=[],this._offset=0}init(){qt.system.add(this._update,this)}repeat(t,e,r=!0){let s=ET++,n=0;return r&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:t,duration:e,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(t){for(let e=0;e<this._tasks.length;e++)if(this._tasks[e].id===t){this._tasks.splice(e,1);return}}_update(){let t=performance.now();for(let e=0;e<this._tasks.length;e++){let r=this._tasks[e];if(t-r.offset-r.last>=r.duration){let s=t-r.start;r.func(s),r.last=t}}}destroy(){qt.system.remove(this._update,this),this._tasks.length=0}};xn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"scheduler",priority:0}});function i_(i){if(!r_){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let t=[`%c %c %c %c %c PixiJS %c v${zi} (${i}) http://www.pixijs.com/
570
+ `});var La,K1=p(()=>{ce();Hr();Gi();mt();ge();xl();he();gd();X1();$1();q1();La=class extends fa{constructor(e){let{sprite:t,...r}=e,s=new Ti(t.texture),n=new Te({uFilterMatrix:{value:new k,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:e.inverse?1:0,type:"f32"},uChannel:{value:e.channel==="alpha"?1:0,type:"f32"}}),o=vt.from({vertex:{source:rh,entryPoint:"mainVertex"},fragment:{source:rh,entryPoint:"mainFragment"}}),a=yt.from({vertex:Y1,fragment:j1,name:"mask-filter"});super({...r,gpuProgram:o,glProgram:a,clipToViewport:!1,resources:{filterUniforms:n,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=s}setSprite(e){this.sprite=e;let t=this._getSafeTexture();this._textureMatrix.texture=t,this.resources.uMaskTexture=t.source}set inverse(e){this.resources.filterUniforms.uniforms.uInverse=e?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}set channel(e){this.resources.filterUniforms.uniforms.uChannel=e==="alpha"?1:0}get channel(){return this.resources.filterUniforms.uniforms.uChannel===1?"alpha":"red"}apply(e,t,r,s){let n=this._getSafeTexture();this._textureMatrix.texture=n,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=n.source,e.applyFilter(this,t,r,s)}_getSafeTexture(){let e=this.sprite.texture;return e.destroyed||!e.source||e.source.destroyed?(O("[MaskFilter] The mask texture was destroyed while the mask is still in use. Remove the mask before destroying its texture."),U.EMPTY):e}destroy(e=!1){this._textureMatrix.destroy(),super.destroy(e)}}});var F3,ih,Kr,sh=p(()=>{P();Ro();K1();et();bs();$o();Zt();ge();Ur();zt();F3=new pe,ih=class extends Qt{constructor(){super(),this._placeholderSprite=new at(U.EMPTY),this.filters=[new La({sprite:this._placeholderSprite,inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].setSprite(e)}get inverse(){return this.filters[0].inverse}set inverse(e){this.filters[0].inverse=e}get channel(){return this.filters[0].channel}set channel(e){this.filters[0].channel=e}reset(){this._placeholderSprite.texture=U.EMPTY,this.sprite=this._placeholderSprite}},Kr=class{constructor(e){this._activeMaskStage=[],this._usedEffects=[],this._renderer=e,e.runners.postrender.add(this)}push(e,t,r){let s=this._renderer;if(s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1,maskedContainer:t}),e.inverse=t._maskOptions.inverse,e.channel=t._maskOptions.channel??"red",e.renderMaskToTexture){let n=e.mask;n.includeInBuild=!0,n.collectRenderables(r,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){let t=this._renderer,r=e.mask.renderMaskToTexture;if(e.action==="pushMaskBegin"){let s=ye.get(ih);if(s.inverse=e.inverse,s.channel=e.mask.channel,r){e.mask.mask.measurable=!0;let n=vi(e.mask.mask,!0,F3);e.mask.mask.measurable=!1,n.ceil();let o=t.renderTarget.renderTarget.colorTexture.source,a=Pe.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);t.renderTarget.push({target:a,clear:!0}),t.globalUniforms.push({offset:n,worldColor:4294967295});let c=s.sprite;c.texture=a,c.worldTransform.tx=n.minX,c.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer,filterTexture:a})}else s.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer})}else if(e.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];r&&(t.type===Ue.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(e.action==="popMaskEnd"){t.filter.pop();let s=this._activeMaskStage.pop();r&&Pe.returnTexture(s.filterTexture),this._usedEffects.push(s.filterEffect)}}postrender(){let e=this._usedEffects;for(let t=0;t<e.length;t++)ye.return(e[t]);e.length=0}destroy(){this.postrender(),this._renderer.runners.postrender.remove(this),this._renderer=null,this._activeMaskStage=null,this._usedEffects=null}};Kr.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"alphaMask"}});var hn,Z1=p(()=>{P();hn=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&e.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._renderer=null,this._colorStack=null}};hn.extension={type:[_.WebGLPipes,_.WebGPUPipes],name:"colorMask"}});var un,Q1=p(()=>{P();Ui();qr();un=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,r){var s;let n=e,o=this._renderer;o.renderPipes.batch.break(r),o.renderPipes.blendMode.setBlendMode(n.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let c=this._maskHash.get(n);c.instructionsStart=r.instructionSize,a.collectRenderables(r,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let l=r.instructionSize-c.instructionsStart-1;c.instructionsLength=l;let d=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[d]??(s[d]=0)}pop(e,t,r){let s=e,n=this._renderer;n.renderPipes.batch.break(r),n.renderPipes.blendMode.setBlendMode(s.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:t._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(e);for(let a=0;a<o.instructionsLength;a++)r.instructions[r.instructionSize++]=r.instructions[o.instructionsStart++];r.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(e){var t;let r=this._renderer,s=r,n=r.renderTarget.renderTarget.uid,o=(t=this._maskStackHash)[n]??(t[n]=0);e.action==="pushMaskBegin"?(s.renderTarget.ensureDepthStencil(),s.stencil.setStencilMode(ve.RENDERING_MASK_ADD,o),o++,s.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?s.stencil.setStencilMode(ve.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(ve.MASK_ACTIVE,o),s.colorMask.setMask(15)):e.action==="popMaskBegin"?(s.colorMask.setMask(0),o!==0?s.stencil.setStencilMode(ve.RENDERING_MASK_REMOVE,o):(s.renderTarget.clear(null,Ee.STENCIL),s.stencil.setStencilMode(ve.DISABLED,o)),o--):e.action==="popMaskEnd"&&(e.inverse?s.stencil.setStencilMode(ve.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(ve.MASK_ACTIVE,o),s.colorMask.setMask(15)),this._maskStackHash[n]=o}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};un.extension={type:[_.WebGLPipes,_.WebGPUPipes],name:"stencilMask"}});var nh,eg,tg=p(()=>{$e();P();he();nh=class J1{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new Z(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...J1.defaultOptions,...e},this.clearBeforeRender=e.clearBeforeRender,this.color=e.background||e.backgroundColor||this._backgroundColor,this.alpha=e.backgroundAlpha,this._backgroundColor.setAlpha(e.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){Z.shared.setValue(e).alpha<1&&this._backgroundColor.alpha===1&&O("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application."),this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};nh.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"background",priority:0};nh.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};eg=nh});var fn,Zr,oh=p(()=>{P();Ro();yl();he();fn={};H.handle(_.BlendMode,i=>{if(!i.name)throw new Error("BlendMode extension must have a name property");fn[i.name]=i.ref},i=>{delete fn[i.name]});Zr=class{constructor(e){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(e,t,r){this._blendModeStack.push(t),this.setBlendMode(e,t,r)}popBlendMode(e){this._blendModeStack.pop();let t=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,t,e)}setBlendMode(e,t,r){let s=e instanceof Dr;if(this._activeBlendMode===t){this._isAdvanced&&e&&!s&&this._renderableList?.push(e);return}this._isAdvanced&&this._endAdvancedBlendMode(r),this._activeBlendMode=t,e&&(this._isAdvanced=!!fn[t],this._isAdvanced&&this._beginAdvancedBlendMode(e,r))}_beginAdvancedBlendMode(e,t){this._renderer.renderPipes.batch.break(t);let r=this._activeBlendMode;if(!fn[r]){O(`Unable to assign BlendMode: '${r}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let s=this._ensureFilterEffect(r),n=e instanceof Dr,o={renderPipeId:"filter",action:"pushFilter",filterEffect:s,renderables:n?null:[e],container:n?e.root:null,canBundle:!1};this._renderableList=o.renderables,t.add(o)}_ensureFilterEffect(e){let t=this._filterHash[e];return t||(t=this._filterHash[e]=new Qt,t.filters=[new fn[e]]),t}_endAdvancedBlendMode(e){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};Zr.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"blendMode"}});var ah,ch,ig,sg=p(()=>{be();P();Mt();ge();ah={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},ch=class rg{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof me||e instanceof U?{target:e,...t}:{...t,...e}}async image(e){let t=z.get().createImage();return t.src=await this.base64(e),t}async base64(e){e=this._normalizeOptions(e,rg.defaultImageOptions);let{format:t,quality:r}=e,s=this.canvas(e);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let c=new FileReader;c.onload=()=>n(c.result),c.onerror=o,c.readAsDataURL(a)},ah[t],r)});if(s.toDataURL!==void 0)return s.toDataURL(ah[t],r);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:ah[t],quality:r});return new Promise((o,a)=>{let c=new FileReader;c.onload=()=>o(c.result),c.onerror=a,c.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){e=this._normalizeOptions(e);let t=e.target,r=this._renderer;if(t instanceof U)return r.texture.generateCanvas(t);let s=r.textureGenerator.generateTexture(e),n=r.texture.generateCanvas(s);return s.destroy(!0),n}pixels(e){e=this._normalizeOptions(e);let t=e.target,r=this._renderer,s=t instanceof U?t:r.textureGenerator.generateTexture(e),n=r.texture.getPixels(s);return t instanceof me&&s.destroy(!0),n}texture(e){return e=this._normalizeOptions(e),e.target instanceof U?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),r=document.createElement("a");r.download=e.filename??"image.png",r.href=t.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let r=this.canvas(e),s=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);let n=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};ch.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"extract"};ch.defaultImageOptions={format:"png",quality:1};ig=ch});var Oa,ng=p(()=>{je();ge();Oa=class i extends U{static create(e){let{dynamic:t,textureOptions:r,...s}=e;return new i({...r,source:new oe(s),dynamic:t??!1})}resize(e,t,r){return this.source.resize(e,t,r),this}}});var U3,D3,L3,pn,og=p(()=>{$e();P();ce();Ve();et();Fo();Mt();ng();U3=new Q,D3=new pe,L3=[0,0,0,0],pn=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof me&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,r=e.antialias||this._renderer.view.antialias,s=e.target,n=e.clearColor;n?n=Array.isArray(n)&&n.length===4?n:Z.shared.setValue(n).toArray():n=L3;let o=e.frame?.copyTo(U3)||Si(s,D3).rectangle,a=e.defaultAnchor&&{defaultAnchor:e.defaultAnchor};o.width=Math.max(o.width,1/t)|0,o.height=Math.max(o.height,1/t)|0;let c=Oa.create({...e.textureSourceOptions,width:o.width,height:o.height,resolution:t,antialias:r,textureOptions:a}),l=k.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:l,target:c,clearColor:n}),c.source.updateMipmaps(),c}destroy(){this._renderer=null}};pn.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"textureGenerator"}});function ag(i){let e=!1;for(let r in i)if(i[r]==null){e=!0;break}if(!e)return i;let t=Object.create(null);for(let r in i){let s=i[r];s&&(t[r]=s)}return t}function cg(i){let e=0;for(let t=0;t<i.length;t++)i[t]==null?e++:i[t-e]=i[t];return i.length-=e,i}var lg=p(()=>{"use strict"});var lh,hg,ug=p(()=>{P();lg();lh=class dg{constructor(e){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=e}init(e){e={...dg.defaultOptions,...e},this.maxUnusedTime=e.gcMaxUnusedTime,this._frequency=e.gcFrequency,this.enabled=e.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?(this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedCollections){let{context:r,collection:s,type:n}=t;n==="hash"?r[s]=ag(r[s]):r[s]=cg(r[s])}},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0))}prerender({container:e}){this.now=performance.now(),e.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(e.renderGroup,e.renderGroup.gcTick)}postrender(){!this._ready||!this.enabled||(this.run(),this._ready=!1)}_updateInstructionGCTick(e,t){e.instructionSet.gcTick=t,e.gcTick=t;for(let r of e.renderGroupChildren)this._updateInstructionGCTick(r,t)}addCollection(e,t,r){this._managedCollections.push({context:e,collection:t,type:r})}addResource(e,t){if(e._gcLastUsed!==-1){e._gcLastUsed=this.now,e._onTouch?.(this.now);return}let r=this._managedResources.length;e._gcData={index:r,type:t},e._gcLastUsed=this.now,e._onTouch?.(this.now),e.once("unload",this.removeResource,this),this._managedResources.push(e)}removeResource(e){let t=e._gcData;if(!t)return;let r=t.index,s=this._managedResources.length-1;if(r!==s){let n=this._managedResources[s];this._managedResources[r]=n,n._gcData.index=r}this._managedResources.length--,e._gcData=null,e._gcLastUsed=-1}addResourceHash(e,t,r,s=0){this._managedResourceHashes.push({context:e,hash:t,type:r,priority:s}),this._managedResourceHashes.sort((n,o)=>n.priority-o.priority)}run(){let e=performance.now(),t=this._managedResourceHashes;for(let s of t)this.runOnHash(s,e);let r=0;for(let s=0;s<this._managedResources.length;s++){let n=this._managedResources[s];r=this.runOnResource(n,e,r)}this._managedResources.length=r}updateRenderableGCTick(e,t){let r=e.renderGroup??e.parentRenderGroup,s=r?.instructionSet?.gcTick??-1;(r?.gcTick??0)===s&&(e._gcLastUsed=t,e._onTouch?.(t))}runOnResource(e,t,r){let s=e._gcData;return s.type==="renderable"&&this.updateRenderableGCTick(e,t),t-e._gcLastUsed<this.maxUnusedTime||!e.autoGarbageCollect?(this._managedResources[r]=e,s.index=r,r++):(e.unload(),e._gcData=null,e._gcLastUsed=-1,e.off("unload",this.removeResource,this)),r}_createHashClone(e,t){let r=Object.create(null);for(let s in e){if(s===t)break;e[s]!==null&&(r[s]=e[s])}return r}runOnHash(e,t){let{context:r,hash:s,type:n}=e,o=r[s],a=null,c=0;for(let l in o){let d=o[l];if(d===null){c++,c===1e4&&!a&&(a=this._createHashClone(o,l));continue}if(d._gcLastUsed===-1){d._gcLastUsed=t,d._onTouch?.(t),a&&(a[l]=d);continue}if(n==="renderable"&&this.updateRenderableGCTick(d,t),!(t-d._gcLastUsed<this.maxUnusedTime)&&d.autoGarbageCollect){if(n==="renderable"){let u=d,f=u.renderGroup??u.parentRenderGroup;f&&(f.structureDidChange=!0)}d.unload(),d._gcData=null,d._gcLastUsed=-1,a||(c+1!==1e4?(o[l]=null,c++):a=this._createHashClone(o,l))}else a&&(a[l]=d)}a&&(r[s]=a)}destroy(){this.enabled=!1,this._managedResources.forEach(e=>{e.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};lh.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"gc",priority:0};lh.defaultOptions={gcActive:!0,gcMaxUnusedTime:6e4,gcFrequency:3e4};hg=lh});function Yi(i,e,t){let r=(i>>24&255)/255;e[t++]=(i&255)/255*r,e[t++]=(i>>8&255)/255*r,e[t++]=(i>>16&255)/255*r,e[t++]=r}var Na=p(()=>{"use strict"});var mn,fg=p(()=>{P();ce();Pt();Na();gr();zt();mt();mn=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:r,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new k,worldColor:4294967295,offset:new ae},c={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||o.size,worldTransformMatrix:r||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},l=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(l);let d=l.uniforms;d.uProjectionMatrix=c.projectionMatrix,d.uResolution=c.resolution,d.uWorldTransformMatrix.copyFrom(c.worldTransformMatrix),d.uWorldTransformMatrix.tx-=c.offset.x,d.uWorldTransformMatrix.ty-=c.offset.y,Yi(c.worldColor,d.uWorldColorAlpha,0),l.update();let h;this._renderer.renderPipes.uniformBatch?h=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(l,!1):(h=this._bindGroupPool.pop()||new ze,this._activeBindGroups.push(h),h.setResource(l,0)),c.bindGroup=h,this._currentGlobalUniformData=c}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Ue.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new Te({uProjectionMatrix:{value:new k,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new k,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}};mn.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"globalUniforms"}});var O3,gn,pg=p(()=>{P();Pi();O3=1,gn=class{constructor(){this._tasks=[],this._offset=0}init(){Xe.system.add(this._update,this)}repeat(e,t,r=!0){let s=O3++,n=0;return r&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:e,duration:t,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let r=this._tasks[t];if(e-r.offset-r.last>=r.duration){let s=e-r.start;r.func(s),r.last=e}}}destroy(){Xe.system.remove(this._update,this),this._tasks.length=0}};gn.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"scheduler",priority:0}});function gg(i){if(!mg){if(z.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${ji} (${i}) http://www.pixijs.com/
571
571
 
572
- `,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...t)}else globalThis.console&&globalThis.console.log(`PixiJS ${zi} - ${i} - http://www.pixijs.com/`);r_=!0}}var r_,s_=p(()=>{xt();Uh();r_=!1});var Vi,n_=p(()=>{P();s_();Ne();Vi=class{constructor(t){this._renderer=t}init(t){if(t.hello){let e=this._renderer.name;this._renderer.type===Lt.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`),i_(e)}}};Vi.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"hello",priority:-2};Vi.defaultOptions={hello:!1}});var eu,a_,l_=p(()=>{P();yt();eu=class o_{constructor(t){this._renderer=t}init(t){t={...o_.defaultOptions,...t},this.maxUnusedTime=t.renderableGCMaxUnusedTime}get enabled(){return O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled}set enabled(t){O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled=t}addManagedHash(t,e){O("8.15.0","RenderableGCSystem.addManagedHash is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"hash")}addManagedArray(t,e){O("8.15.0","RenderableGCSystem.addManagedArray is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"array")}addRenderable(t){O("8.15.0","RenderableGCSystem.addRenderable is deprecated, please use the GCSystem instead."),this._renderer.gc.addResource(t,"renderable")}run(){O("8.15.0","RenderableGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};eu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderableGC",priority:0};eu.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};a_=eu});var ru,c_,h_=p(()=>{P();yt();ru=class Fa{get count(){return this._renderer.tick}get checkCount(){return this._checkCount}set checkCount(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._checkCount=t}get maxIdle(){return this._renderer.gc.maxUnusedTime/1e3*60}set maxIdle(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.maxUnusedTime=t/60*1e3}get checkCountMax(){return Math.floor(this._renderer.gc._frequency/1e3)}set checkCountMax(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead.")}get active(){return this._renderer.gc.enabled}set active(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.enabled=t}constructor(t){this._renderer=t,this._checkCount=0}init(t){t.textureGCActive!==Fa.defaultOptions.textureGCActive&&(this.active=t.textureGCActive),t.textureGCMaxIdle!==Fa.defaultOptions.textureGCMaxIdle&&(this.maxIdle=t.textureGCMaxIdle),t.textureGCCheckCountMax!==Fa.defaultOptions.textureGCCheckCountMax&&(this.checkCountMax=t.textureGCCheckCountMax)}run(){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};ru.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"textureGC"};ru.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};c_=ru});var u_,ji,iu=p(()=>{Ft();$t();gt();u_=class d_{constructor(t={}){this.uid=$("renderTarget"),this.colorAttachments=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,this._depth=!1,this._stencil=!1,this._colorTextures=null;let e="colorAttachments"in t?t:this._normalizeOptions(t);if(this.isRoot=e.isRoot??!1,this.label=e.label,this.colorAttachments=e.colorAttachments,this.depthStencilAttachment=e.depthStencilAttachment,this.depthStencilAttachment){let r=this.depthStencilAttachment.texture.format;this._depth||(this._depth=r.includes("depth")),this._stencil||(this._stencil=r.includes("stencil"))}if(this.colorAttachments.length===0&&!this.depthStencilAttachment)throw new Error("[RenderTarget] no color textures or depth textures were provided. Provide a depthStencilTexture or set depth/stencil to true when using colorTextures: 0.");if(this.colorAttachments.length>0){let r=this.colorTexture;this.resize(r.width,r.height,r._resolution)}this.sizeSource&&this.sizeSource.on("resize",this.onSourceResize,this)}_normalizeOptions(t){let e={...d_.defaultOptions,...t},r=[],s;if(typeof e.colorTextures=="number"){if(e.colorTextures>0){this._managedColorTextures=!0;for(let o=0;o<e.colorTextures;o++)r.push({texture:new st({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}),loadOp:"clear",storeOp:"store"})}}else e.colorTextures.forEach(o=>{r.push({texture:o.source,loadOp:"clear",storeOp:"store"})});let n=e.depthStencilTexture===!0;if(this._depth=!!(e.depth||n),this._stencil=!!(e.stencil||n),e.depthStencilTexture instanceof F||e.depthStencilTexture instanceof st){if(e.isRoot)throw new Error("[RenderTarget] cannot attach a depth-stencil texture to the screen \u2014 the canvas owns its own depth/stencil buffers. Render to a texture target instead.");s={texture:e.depthStencilTexture.source}}else(n&&!e.isRoot||(e.stencil||e.depth)&&r.length===0)&&(s=this._createDepthStencilTexture(e.width,e.height,e.resolution));return{colorAttachments:r,depthStencilAttachment:s,isRoot:e.isRoot,label:e.label}}get size(){let t=this._size;return t[0]=this.pixelWidth,t[1]=this.pixelHeight,t}get width(){return this.sizeSource.width}get height(){return this.sizeSource.height}get pixelWidth(){return this.sizeSource.pixelWidth}get pixelHeight(){return this.sizeSource.pixelHeight}get resolution(){return this.sizeSource._resolution}get colorTextures(){return this._colorTextures||(this._colorTextures=this.colorAttachments.map(t=>t.texture)),this._colorTextures}get depthStencilTexture(){return this.depthStencilAttachment?.texture??null}get depth(){return this._depth}get stencil(){return this._stencil}get colorTexture(){return this.colorAttachments[0]?.texture}get sizeSource(){return this.colorAttachments[0]?.texture??this.depthStencilAttachment?.texture}onSourceResize(t){this.resize(t.width,t.height,t._resolution,!0)}ensureDepthStencilTexture(){this._createDepthStencilTexture(this.sizeSource.width,this.sizeSource.height,this.sizeSource._resolution),this._depth=!0,this._stencil=!0}resize(t,e,r=this.resolution,s=!1){if(this.dirtyId++,this.colorAttachments.forEach((n,o)=>{s&&o===0||n.texture.resize(t,e,r)}),this.depthStencilAttachment){if(s&&this.colorAttachments.length===0)return;this.depthStencilAttachment.texture.resize(t,e,r)}}destroy(){!this.colorAttachments&&!this.depthStencilAttachment||(this.sizeSource.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorAttachments.forEach(t=>{t.texture.destroy()}),this.depthStencilAttachment&&(this.depthStencilAttachment.texture.destroy(),delete this.depthStencilAttachment),this.colorAttachments=null,this._colorTextures=null)}_createDepthStencilTexture(t,e,r){return this.depthStencilAttachment??(this.depthStencilAttachment={texture:new st({width:t,height:e,resolution:r,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}),this.depthStencilAttachment}};u_.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};ji=u_});function Ua(i,t){if(!Xi.has(i)){let e=new F({source:new Tt({resource:i,...t})}),r=()=>{Xi.get(i)===e&&Xi.delete(i)};e.once("destroy",r),e.source.once("destroy",r),Xi.set(i,e)}return Xi.get(i)}var Xi,su=p(()=>{Pr();fr();gt();Xi=new Map;ye.register(Xi)});var nu,p_,m_=p(()=>{xt();P();Yt();yt();iu();su();nu=class f_{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(t){this.texture.source.autoDensity=t}get resolution(){return this.texture.source._resolution}set resolution(t){this.texture.source.resize(this.texture.source.width,this.texture.source.height,t)}init(t){t={...f_.defaultOptions,...t},t.view&&(O(rt,"ViewSystem.view has been renamed to ViewSystem.canvas"),t.canvas=t.view),this.screen=new J(0,0,t.width,t.height),this.canvas=t.canvas||W.get().createCanvas(),this.antialias=!!t.antialias,this.texture=Ua(this.canvas,t),this.renderTarget=new ji({colorTextures:[this.texture],depth:!!t.depth,isRoot:!0}),this.texture.source.transparent=t.backgroundAlpha<1,this.resolution=t.resolution}resize(t,e,r){this.texture.source.resize(t,e,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(t=!1){(typeof t=="boolean"?t:!!t?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.texture.destroy()}};nu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"view",priority:0};nu.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};p_=nu});var Yi,Da,La=p(()=>{Rh();Bh();mx();Fh();Dh();Xh();qh();Lx();Ox();Hx();Zh();jx();Yx();Jx();t_();e_();n_();l_();h_();m_();Yi=[zx,gn,Vi,p_,tn,Qx,c_,mn,Vx,rn,a_,xn],Da=[Kr,un,Yr,Xr,qr,fn,dn,jr]});var _n,g_=p(()=>{P();_n=class{constructor(t){this._hash=Object.create(null),this._renderer=t}contextChange(t){this._gpu=t}getBindGroup(t,e,r){let s=`${t._key}:${e._layoutKey<<4|r}`;return this._hash[s]||this._createBindGroup(s,t,e,r)}_createBindGroup(t,e,r,s){let n=this._gpu.device,o=r.layout[s],a=[],l=this._renderer;for(let u in o){let d=e.resources[u]??e.resources[o[u]];if(!d||d.destroyed)throw new Error(`[BindGroup] the resource bound as '${u}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);let f;if(d._resourceType==="uniformGroup"){let m=d;l.ubo.updateUniformGroup(m);let g=m.buffer;f={buffer:l.buffer.getGPUBuffer(g),offset:0,size:g.descriptor.size}}else if(d._resourceType==="buffer"){let m=d;f={buffer:l.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(d._resourceType==="bufferResource"){let m=d;f={buffer:l.buffer.getGPUBuffer(m.buffer),offset:m.offset,size:m.size??m.buffer.descriptor.size}}else if(d._resourceType==="textureSampler"){let m=d;f=l.texture.getGpuSampler(m)}else if(d._resourceType==="textureSource"){let m=d;f=l.texture.getTextureView(m)}else if(d._resourceType==="textureView"){let m=d;f=l.texture.getTextureView(m.source,m.viewDescriptor)}a.push({binding:o[u],resource:f})}let c=l.shader.getProgramData(r).bindGroups[s],h=n.createBindGroup({layout:c,entries:a});return this._hash[t]=h,h}destroy(){this._hash=null,this._renderer=null}};_n.extension={type:[y.WebGPUSystem],name:"bindGroup"}});var kt,Ie=p(()=>{"use strict";kt=class{constructor(t){this.items=Object.create(null);let{renderer:e,type:r,onUnload:s,priority:n,name:o}=t;this._renderer=e,e.gc.addResourceHash(this,"items",r,n??0),this._onUnload=s,this.name=o}add(t){return this.items[t.uid]?!1:(this.items[t.uid]=t,t.once("unload",this.remove,this),t._gcLastUsed=this._renderer.gc.now,!0)}remove(t,...e){if(!this.items[t.uid])return;let r=t._gpuData[this._renderer.uid];r&&(this._onUnload?.(t,...e),r.destroy(),t._gpuData[this._renderer.uid]=null,this.items[t.uid]=null)}removeAll(...t){Object.values(this.items).forEach(e=>e&&this.remove(e,...t))}destroy(...t){this.removeAll(...t),this.items=Object.create(null),this._renderer=null,this._onUnload=null}}});var ou,yn,x_=p(()=>{P();Ie();Oh();ou=class{constructor(t){this.gpuBuffer=t}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}},yn=class{constructor(t){this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(t){this._gpu=t}getGPUBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(t)}updateBuffer(t){let e=this.getGPUBuffer(t),r=t.data;return t._updateID&&r&&(t._updateID=0,this._gpu.device.queue.writeBuffer(e,t._updateOffset,r.buffer,r.byteOffset+t._updateOffset,(t._updateSize||r.byteLength)+3&-4)),e}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(t){t.off("update",this.updateBuffer,this),t.off("change",this.onBufferChange,this)}createGPUBuffer(t){let e=this._gpu.device.createBuffer(t.descriptor);return t._updateID=0,t.data&&(sn(t.data.buffer,e.getMappedRange(),t.data.byteOffset,t.data.byteLength),e.unmap()),t._gpuData[this._renderer.uid]=new ou(e),this._managedBuffers.add(t)&&(t.on("update",this.updateBuffer,this),t.on("change",this.onBufferChange,this)),e}onBufferChange(t){this._managedBuffers.remove(t),t._updateID=0,this.createGPUBuffer(t)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}};yn.extension={type:[y.WebGPUSystem],name:"buffer"}});var bn,__=p(()=>{P();bn=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.pipeline.setColorMask(t))}destroy(){this._renderer=null,this._colorMaskCache=null}};bn.extension={type:[y.WebGPUSystem],name:"colorMask"}});var $i,y_=p(()=>{xt();P();$i=class{constructor(t){this._renderer=t}async init(t){return this._initPromise?this._initPromise:(this._initPromise=(t.gpu?Promise.resolve(t.gpu):this._createDeviceAndAdaptor(t)).then(e=>{this.gpu=e,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(t){this._renderer.gpu=t}async _createDeviceAndAdaptor(t){let e=await W.get().getNavigator().gpu.requestAdapter({powerPreference:t.powerPreference,forceFallbackAdapter:t.forceFallbackAdapter});if(!e)throw new Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");let r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2","indirect-first-instance"].filter(n=>e.features.has(n)),s=await e.requestDevice({requiredFeatures:r,requiredLimits:{maxSampledTexturesPerShaderStage:e.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:e.limits.maxSamplersPerShaderStage}});return{adapter:e,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}};$i.extension={type:[y.WebGPUSystem],name:"device"};$i.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var vn,b_=p(()=>{P();vn=class{constructor(t){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=t;for(let e=0;e<16;e++)this._boundBindGroup[e]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(t=>{this._resolveCommandFinished=t}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(t){this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(t.descriptor),this.renderPassEncoder=this._passEncoder}endRenderPass(){this._passEncoder&&this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null}beginBundle(){if(this._passEncoder!==this.renderPassEncoder)throw new Error("Cannot begin a new render bundle while one is already being recorded.");this._clearCache();let t=this._renderer.pipeline.getBundleDescriptor();this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(t)}endBundle(){let t=this.renderPassEncoder;if(!t||!("finish"in t))throw new Error("endBundle called without an active render bundle.");let e=t.finish();return this.renderPassEncoder=this._passEncoder,this._clearCache(),e}executeBundle(t){this._clearCache(),this._passEncoder.executeBundles([t])}setViewport(t){this._passEncoder.setViewport(t.x,t.y,t.width,t.height,0,1)}setStencilReference(t){this._passEncoder.setStencilReference(t)}setPipelineFromGeometryProgramAndState(t,e,r,s,n){let o=this._renderer.pipeline.getPipeline(t,e,r,s,n);this.setPipeline(o)}setPipeline(t){this._boundPipeline!==t&&(this._boundPipeline=t,this.renderPassEncoder.setPipeline(t))}_setVertexBuffer(t,e){this._boundVertexBuffer[t]!==e&&(this._boundVertexBuffer[t]=e,this.renderPassEncoder.setVertexBuffer(t,this._renderer.buffer.updateBuffer(e)))}_setIndexBuffer(t){if(this._boundIndexBuffer===t)return;this._boundIndexBuffer=t;let e=t.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(t),e)}resetBindGroup(t){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null}setBindGroup(t,e,r){let s=this._boundBindGroup[t];if(s.bindGroup===e&&s.program===r&&s.key===e._key)return;s.bindGroup=e,s.program=r,s.key=e._key,e._touch(this._renderer.gc.now,this._renderer.tick);let n=this._renderer.bindGroup.getBindGroup(e,r,t);this.renderPassEncoder.setBindGroup(t,n)}setGeometry(t,e){let r=this._renderer.pipeline.getBufferNamesToBind(t,e);for(let s in r)this._setVertexBuffer(parseInt(s,10),t.attributes[r[s]].buffer);t.indexBuffer&&this._setIndexBuffer(t.indexBuffer)}_setShaderBindGroups(t,e){let r=t.gpuProgram;for(let s in t.groups){if(!r.layout[s])continue;let n=t.groups[s];e||this._syncBindGroup(n),this.setBindGroup(s,n,r)}}_syncBindGroup(t){for(let e in t.resources){let r=t.resources[e];r&&r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(t){let{geometry:e,shader:r,state:s,topology:n,size:o,start:a,baseVertex:l,instanceCount:c,skipSync:h,firstInstance:u}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,h),e.indexBuffer?this.renderPassEncoder.drawIndexed(o||e.indexBuffer.data.length,c??e.instanceCount,a||0,l||0,u||0):this.renderPassEncoder.draw(o||e.vertexCount,c??e.instanceCount,a||0,u||0)}drawIndirect(t){let{geometry:e,shader:r,state:s,topology:n,skipSync:o,indirectBuffer:a,indirectOffset:l}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,o),e.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(a,l):this.renderPassEncoder.drawIndirect(a,l)}finishRenderPass(){this._passEncoder&&(this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}_clearCache(){for(let t=0;t<16;t++){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null,this._boundVertexBuffer[t]=null}this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null,this.renderPassEncoder=null,this._passEncoder=null}contextChange(t){this._gpu=t}};vn.extension={type:[y.WebGPUSystem],name:"encoder",priority:1}});var Sn,v_=p(()=>{P();Sn=class{constructor(t){this.supportsOverrideConstants=!1,this._renderer=t}contextChange(){let t=this._renderer.device.gpu.device;this.maxTextures=Math.min(t.limits.maxSampledTexturesPerShaderStage,t.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(t)}_detectOverrideConstantsSupport(t){t.pushErrorScope("validation");let e=t.createShaderModule({code:`override TEST_VALUE: f32 = 0.0;
573
- @compute @workgroup_size(1) fn main() {}`});t.createComputePipeline({layout:"auto",compute:{module:e,entryPoint:"main",constants:{TEST_VALUE:1}}}),t.popErrorScope().then(r=>{this.supportsOverrideConstants=!r})}destroy(){}};Sn.extension={type:[y.WebGPUSystem],name:"limits"}});var Tn,S_=p(()=>{P();$r();Tn=class{constructor(t){this._renderTargetStencilState=Object.create(null),this._renderer=t,t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){let e=this._renderTargetStencilState[t.uid];e||(e=this._renderTargetStencilState[t.uid]={stencilMode:vt.DISABLED,stencilReference:0}),this._activeRenderTarget=t,this.setStencilMode(e.stencilMode,e.stencilReference)}setStencilMode(t,e){let r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=t,r.stencilReference=e;let s=this._renderer;s.pipeline.setStencilMode(t),s.encoder.setStencilReference(e)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};Tn.extension={type:[y.WebGPUSystem],name:"stencil"}});var br,Oa=p(()=>{fh();xr();ir();br=class{constructor(t){this._syncFunctionHash=Object.create(null),this._adaptor=t,this._systemCheck()}_systemCheck(){if(!ca())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(t){let e=this.getUniformGroupData(t);t.buffer||(t.buffer=new At({data:new Float32Array(e.layout.size/4),usage:tt.UNIFORM|tt.COPY_DST}))}getUniformGroupData(t){return this._syncFunctionHash[t._signature]||this._initUniformGroup(t)}_initUniformGroup(t){let e=t._signature,r=this._syncFunctionHash[e];if(!r){let s=Object.keys(t.uniformStructures).map(a=>t.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);r=this._syncFunctionHash[e]={layout:n,syncFunction:o}}return this._syncFunctionHash[e]}_generateUboSync(t){return this._adaptor.generateUboSync(t)}syncUniformGroup(t,e,r){let s=this.getUniformGroupData(t);t.buffer||(t.buffer=new At({data:new Float32Array(s.layout.size/4),usage:tt.UNIFORM|tt.COPY_DST}));let n=null;return e||(e=t.buffer.data,n=t.buffer.dataInt32),r||(r=0),s.syncFunction(t.uniforms,e,n,r),!0}updateUniformGroup(t){if(t.isStatic&&!t._dirtyId)return!1;t._dirtyId=0;let e=this.syncUniformGroup(t);return t.buffer.update(),e}destroy(){this._syncFunctionHash=null}}});function T_(i){let t=i.map(r=>({data:r,offset:0,size:0})),e=0;for(let r=0;r<t.length;r++){let s=t[r],n=Zr[s.data.type].size,o=Zr[s.data.type].align;if(!Zr[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(n=Math.max(n,o)*s.data.size),e=Math.ceil(e/o)*o,s.size=n,s.offset=e,e+=n}return e=Math.ceil(e/16)*16,{uboElements:t,size:e}}var Zr,Na=p(()=>{"use strict";Zr={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}}});var de,wn=p(()=>{"use strict";de=[{type:"mat3x3<f32>",test:i=>i.value.a!==void 0,ubo:`
572
+ `,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${ji} - ${i} - http://www.pixijs.com/`);mg=!0}}var mg,bg=p(()=>{be();jd();mg=!1});var $i,xg=p(()=>{P();bg();zt();$i=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===Ue.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),gg(t)}}};$i.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"hello",priority:-2};$i.defaultOptions={hello:!1}});var dh,yg,vg=p(()=>{P();_e();dh=class _g{constructor(e){this._renderer=e}init(e){e={..._g.defaultOptions,...e},this.maxUnusedTime=e.renderableGCMaxUnusedTime}get enabled(){return N("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled}set enabled(e){N("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled=e}addManagedHash(e,t){N("8.15.0","RenderableGCSystem.addManagedHash is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(e,t,"hash")}addManagedArray(e,t){N("8.15.0","RenderableGCSystem.addManagedArray is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(e,t,"array")}addRenderable(e){N("8.15.0","RenderableGCSystem.addRenderable is deprecated, please use the GCSystem instead."),this._renderer.gc.addResource(e,"renderable")}run(){N("8.15.0","RenderableGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};dh.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"renderableGC",priority:0};dh.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};yg=dh});var hh,wg,Sg=p(()=>{P();_e();hh=class Ha{get count(){return this._renderer.tick}get checkCount(){return this._checkCount}set checkCount(e){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._checkCount=e}get maxIdle(){return this._renderer.gc.maxUnusedTime/1e3*60}set maxIdle(e){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.maxUnusedTime=e/60*1e3}get checkCountMax(){return Math.floor(this._renderer.gc._frequency/1e3)}set checkCountMax(e){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead.")}get active(){return this._renderer.gc.enabled}set active(e){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.enabled=e}constructor(e){this._renderer=e,this._checkCount=0}init(e){e.textureGCActive!==Ha.defaultOptions.textureGCActive&&(this.active=e.textureGCActive),e.textureGCMaxIdle!==Ha.defaultOptions.textureGCMaxIdle&&(this.maxIdle=e.textureGCMaxIdle),e.textureGCCheckCountMax!==Ha.defaultOptions.textureGCCheckCountMax&&(this.checkCountMax=e.textureGCCheckCountMax)}run(){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};hh.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"textureGC"};hh.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};wg=hh});var Tg,qi,uh=p(()=>{Ie();je();ge();Tg=class Eg{constructor(e={}){this.uid=Y("renderTarget"),this.colorAttachments=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,this._depth=!1,this._stencil=!1,this._colorTextures=null;let t="colorAttachments"in e?e:this._normalizeOptions(e);if(this.isRoot=t.isRoot??!1,this.label=t.label,this.colorAttachments=t.colorAttachments,this.depthStencilAttachment=t.depthStencilAttachment,this.depthStencilAttachment){let r=this.depthStencilAttachment.texture.format;this._depth||(this._depth=r.includes("depth")),this._stencil||(this._stencil=r.includes("stencil"))}if(this.colorAttachments.length===0&&!this.depthStencilAttachment)throw new Error("[RenderTarget] no color textures or depth textures were provided. Provide a depthStencilTexture or set depth/stencil to true when using colorTextures: 0.");if(this.colorAttachments.length>0){let r=this.colorTexture;this.resize(r.width,r.height,r._resolution)}this.sizeSource&&this.sizeSource.on("resize",this.onSourceResize,this)}_normalizeOptions(e){let t={...Eg.defaultOptions,...e},r=[],s;if(typeof t.colorTextures=="number"){if(t.colorTextures>0){this._managedColorTextures=!0;for(let o=0;o<t.colorTextures;o++)r.push({texture:new oe({width:t.width,height:t.height,resolution:t.resolution,antialias:t.antialias}),loadOp:"clear",storeOp:"store"})}}else t.colorTextures.forEach(o=>{r.push({texture:o.source,loadOp:"clear",storeOp:"store"})});let n=t.depthStencilTexture===!0;if(this._depth=!!(t.depth||n),this._stencil=!!(t.stencil||n),t.depthStencilTexture instanceof U||t.depthStencilTexture instanceof oe){if(t.isRoot)throw new Error("[RenderTarget] cannot attach a depth-stencil texture to the screen \u2014 the canvas owns its own depth/stencil buffers. Render to a texture target instead.");s={texture:t.depthStencilTexture.source}}else(n&&!t.isRoot||(t.stencil||t.depth)&&r.length===0)&&(s=this._createDepthStencilTexture(t.width,t.height,t.resolution));return{colorAttachments:r,depthStencilAttachment:s,isRoot:t.isRoot,label:t.label}}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.sizeSource.width}get height(){return this.sizeSource.height}get pixelWidth(){return this.sizeSource.pixelWidth}get pixelHeight(){return this.sizeSource.pixelHeight}get resolution(){return this.sizeSource._resolution}get colorTextures(){return this._colorTextures||(this._colorTextures=this.colorAttachments.map(e=>e.texture)),this._colorTextures}get depthStencilTexture(){return this.depthStencilAttachment?.texture??null}get depth(){return this._depth}get stencil(){return this._stencil}get colorTexture(){return this.colorAttachments[0]?.texture}get sizeSource(){return this.colorAttachments[0]?.texture??this.depthStencilAttachment?.texture}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this._createDepthStencilTexture(this.sizeSource.width,this.sizeSource.height,this.sizeSource._resolution),this._depth=!0,this._stencil=!0}resize(e,t,r=this.resolution,s=!1){if(this.dirtyId++,this.colorAttachments.forEach((n,o)=>{s&&o===0||n.texture.resize(e,t,r)}),this.depthStencilAttachment){if(s&&this.colorAttachments.length===0)return;this.depthStencilAttachment.texture.resize(e,t,r)}}destroy(){!this.colorAttachments&&!this.depthStencilAttachment||(this.sizeSource.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorAttachments.forEach(e=>{e.texture.destroy()}),this.depthStencilAttachment&&(this.depthStencilAttachment.texture.destroy(),delete this.depthStencilAttachment),this.colorAttachments=null,this._colorTextures=null)}_createDepthStencilTexture(e,t,r){return this.depthStencilAttachment??(this.depthStencilAttachment={texture:new oe({width:e,height:t,resolution:r,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}),this.depthStencilAttachment}};Tg.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};qi=Tg});function za(i,e){if(!Ki.has(i)){let t=new U({source:new Se({resource:i,...e})}),r=()=>{Ki.get(i)===t&&Ki.delete(i)};t.once("destroy",r),t.source.once("destroy",r),Ki.set(i,t)}return Ki.get(i)}var Ki,fh=p(()=>{Mr();pr();ge();Ki=new Map;_t.register(Ki)});var ph,Pg,Mg=p(()=>{be();P();Ve();_e();uh();fh();ph=class Cg{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(e){e={...Cg.defaultOptions,...e},e.view&&(N(re,"ViewSystem.view has been renamed to ViewSystem.canvas"),e.canvas=e.view),this.screen=new Q(0,0,e.width,e.height),this.canvas=e.canvas||z.get().createCanvas(),this.antialias=!!e.antialias,this.texture=za(this.canvas,e),this.renderTarget=new qi({colorTextures:[this.texture],depth:!!e.depth,isRoot:!0}),this.texture.source.transparent=e.backgroundAlpha<1,this.resolution=e.resolution}resize(e,t,r){this.texture.source.resize(e,t,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e=="boolean"?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.texture.destroy()}};ph.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"view",priority:0};ph.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};Pg=ph});var Zi,Wa,Va=p(()=>{Od();Hd();M1();Vd();Xd();th();sh();Z1();Q1();tg();oh();sg();og();ug();fg();pg();xg();vg();Sg();Mg();Zi=[eg,mn,$i,Pg,Js,hg,wg,pn,ig,tn,yg,gn],Wa=[Zr,dn,$r,Yr,Kr,un,hn,Xr]});var bn,Ag=p(()=>{P();bn=class{constructor(e){this._hash=Object.create(null),this._renderer=e}contextChange(e){this._gpu=e}getBindGroup(e,t,r){let s=`${e._key}:${t._layoutKey<<4|r}`;return this._hash[s]||this._createBindGroup(s,e,t,r)}_createBindGroup(e,t,r,s){let n=this._gpu.device,o=r.layout[s],a=[],c=this._renderer;for(let h in o){let u=t.resources[h]??t.resources[o[h]];if(!u||u.destroyed)throw new Error(`[BindGroup] the resource bound as '${h}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);let f;if(u._resourceType==="uniformGroup"){let m=u;c.ubo.updateUniformGroup(m);let g=m.buffer;f={buffer:c.buffer.getGPUBuffer(g),offset:0,size:g.descriptor.size}}else if(u._resourceType==="buffer"){let m=u;f={buffer:c.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(u._resourceType==="bufferResource"){let m=u;f={buffer:c.buffer.getGPUBuffer(m.buffer),offset:m.offset,size:m.size??m.buffer.descriptor.size}}else if(u._resourceType==="textureSampler"){let m=u;f=c.texture.getGpuSampler(m)}else if(u._resourceType==="textureSource"){let m=u;f=c.texture.getTextureView(m)}else if(u._resourceType==="textureView"){let m=u;f=c.texture.getTextureView(m.source,m.viewDescriptor)}a.push({binding:o[h],resource:f})}let l=c.shader.getProgramData(r).bindGroups[s],d=n.createBindGroup({layout:l,entries:a});return this._hash[e]=d,d}destroy(){this._hash=null,this._renderer=null}};bn.extension={type:[_.WebGPUSystem],name:"bindGroup"}});var Re,Gt=p(()=>{"use strict";Re=class{constructor(e){this.items=Object.create(null);let{renderer:t,type:r,onUnload:s,priority:n,name:o}=e;this._renderer=t,t.gc.addResourceHash(this,"items",r,n??0),this._onUnload=s,this.name=o}add(e){return this.items[e.uid]?!1:(this.items[e.uid]=e,e.once("unload",this.remove,this),e._gcLastUsed=this._renderer.gc.now,!0)}remove(e,...t){if(!this.items[e.uid])return;let r=e._gpuData[this._renderer.uid];r&&(this._onUnload?.(e,...t),r.destroy(),e._gpuData[this._renderer.uid]=null,this.items[e.uid]=null)}removeAll(...e){Object.values(this.items).forEach(t=>t&&this.remove(t,...e))}destroy(...e){this.removeAll(...e),this.items=Object.create(null),this._renderer=null,this._onUnload=null}}});var mh,xn,Rg=p(()=>{P();Gt();$d();mh=class{constructor(e){this.gpuBuffer=e}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}},xn=class{constructor(e){this._renderer=e,this._managedBuffers=new Re({renderer:e,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(e){this._gpu=e}getGPUBuffer(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(e)}updateBuffer(e){let t=this.getGPUBuffer(e),r=e.data;return e._updateID&&r&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,e._updateOffset,r.buffer,r.byteOffset+e._updateOffset,(e._updateSize||r.byteLength)+3&-4)),t}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(e){e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this)}createGPUBuffer(e){let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&(rn(e.data.buffer,t.getMappedRange(),e.data.byteOffset,e.data.byteLength),t.unmap()),e._gpuData[this._renderer.uid]=new mh(t),this._managedBuffers.add(e)&&(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this)),t}onBufferChange(e){this._managedBuffers.remove(e),e._updateID=0,this.createGPUBuffer(e)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}};xn.extension={type:[_.WebGPUSystem],name:"buffer"}});var _n,kg=p(()=>{P();_n=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}};_n.extension={type:[_.WebGPUSystem],name:"colorMask"}});var Qi,Bg=p(()=>{be();P();Qi=class{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=(e.gpu?Promise.resolve(e.gpu):this._createDeviceAndAdaptor(e)).then(t=>{this.gpu=t,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await z.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter});if(!t)throw new Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");let r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2","indirect-first-instance"].filter(n=>t.features.has(n)),s=await t.requestDevice({requiredFeatures:r,requiredLimits:{maxSampledTexturesPerShaderStage:t.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:t.limits.maxSamplersPerShaderStage}});return{adapter:t,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}};Qi.extension={type:[_.WebGPUSystem],name:"device"};Qi.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var yn,Ig=p(()=>{P();yn=class{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e;for(let t=0;t<16;t++)this._boundBindGroup[t]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(e.descriptor),this.renderPassEncoder=this._passEncoder}endRenderPass(){this._passEncoder&&this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null}beginBundle(){if(this._passEncoder!==this.renderPassEncoder)throw new Error("Cannot begin a new render bundle while one is already being recorded.");this._clearCache();let e=this._renderer.pipeline.getBundleDescriptor();this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(e)}endBundle(){let e=this.renderPassEncoder;if(!e||!("finish"in e))throw new Error("endBundle called without an active render bundle.");let t=e.finish();return this.renderPassEncoder=this._passEncoder,this._clearCache(),t}executeBundle(e){this._clearCache(),this._passEncoder.executeBundles([e])}setViewport(e){this._passEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setStencilReference(e){this._passEncoder.setStencilReference(e)}setPipelineFromGeometryProgramAndState(e,t,r,s,n){let o=this._renderer.pipeline.getPipeline(e,t,r,s,n);this.setPipeline(o)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){let t=this._boundBindGroup[e];t.bindGroup=null,t.program=null,t.key=null}setBindGroup(e,t,r){let s=this._boundBindGroup[e];if(s.bindGroup===t&&s.program===r&&s.key===t._key)return;s.bindGroup=t,s.program=r,s.key=t._key,t._touch(this._renderer.gc.now,this._renderer.tick);let n=this._renderer.bindGroup.getBindGroup(t,r,e);this.renderPassEncoder.setBindGroup(e,n)}setGeometry(e,t){let r=this._renderer.pipeline.getBufferNamesToBind(e,t);for(let s in r)this._setVertexBuffer(parseInt(s,10),e.attributes[r[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){let r=e.gpuProgram;for(let s in e.groups){if(!r.layout[s])continue;let n=e.groups[s];t||this._syncBindGroup(n),this.setBindGroup(s,n,r)}}_syncBindGroup(e){for(let t in e.resources){let r=e.resources[t];r&&r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(e){let{geometry:t,shader:r,state:s,topology:n,size:o,start:a,baseVertex:c,instanceCount:l,skipSync:d,firstInstance:h}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,s,n,r._overrides),this.setGeometry(t,r.gpuProgram),this._setShaderBindGroups(r,d),t.indexBuffer?this.renderPassEncoder.drawIndexed(o||t.indexBuffer.data.length,l??t.instanceCount,a||0,c||0,h||0):this.renderPassEncoder.draw(o||t.vertexCount,l??t.instanceCount,a||0,h||0)}drawIndirect(e){let{geometry:t,shader:r,state:s,topology:n,skipSync:o,indirectBuffer:a,indirectOffset:c}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,s,n,r._overrides),this.setGeometry(t,r.gpuProgram),this._setShaderBindGroups(r,o),t.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(a,c):this.renderPassEncoder.drawIndirect(a,c)}finishRenderPass(){this._passEncoder&&(this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}_clearCache(){for(let e=0;e<16;e++){let t=this._boundBindGroup[e];t.bindGroup=null,t.program=null,t.key=null,this._boundVertexBuffer[e]=null}this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null,this.renderPassEncoder=null,this._passEncoder=null}contextChange(e){this._gpu=e}};yn.extension={type:[_.WebGPUSystem],name:"encoder",priority:1}});var vn,Gg=p(()=>{P();vn=class{constructor(e){this.supportsOverrideConstants=!1,this._renderer=e}contextChange(){let e=this._renderer.device.gpu.device;this.maxTextures=Math.min(e.limits.maxSampledTexturesPerShaderStage,e.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(e)}_detectOverrideConstantsSupport(e){e.pushErrorScope("validation");let t=e.createShaderModule({code:`override TEST_VALUE: f32 = 0.0;
573
+ @compute @workgroup_size(1) fn main() {}`});e.createComputePipeline({layout:"auto",compute:{module:t,entryPoint:"main",constants:{TEST_VALUE:1}}}),e.popErrorScope().then(r=>{this.supportsOverrideConstants=!r})}destroy(){}};vn.extension={type:[_.WebGPUSystem],name:"limits"}});var wn,Fg=p(()=>{P();qr();wn=class{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:ve.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=e,r.stencilReference=t;let s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};wn.extension={type:[_.WebGPUSystem],name:"stencil"}});var vr,ja=p(()=>{wd();xr();sr();vr=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!ma())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||(e.buffer=new Me({data:new Float32Array(t.layout.size/4),usage:J.UNIFORM|J.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,r=this._syncFunctionHash[t];if(!r){let s=Object.keys(e.uniformStructures).map(a=>e.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);r=this._syncFunctionHash[t]={layout:n,syncFunction:o}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,r){let s=this.getUniformGroupData(e);e.buffer||(e.buffer=new Me({data:new Float32Array(s.layout.size/4),usage:J.UNIFORM|J.COPY_DST}));let n=null;return t||(t=e.buffer.data,n=e.buffer.dataInt32),r||(r=0),s.syncFunction(e.uniforms,t,n,r),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}});function Ug(i){let e=i.map(r=>({data:r,offset:0,size:0})),t=0;for(let r=0;r<e.length;r++){let s=e[r],n=Qr[s.data.type].size,o=Qr[s.data.type].align;if(!Qr[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(n=Math.max(n,o)*s.data.size),t=Math.ceil(t/o)*o,s.size=n,s.offset=t,t+=n}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}var Qr,Xa=p(()=>{"use strict";Qr={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}}});var lt,Sn=p(()=>{"use strict";lt=[{type:"mat3x3<f32>",test:i=>i.value.a!==void 0,ubo:`
574
574
  var matrix = uv[name].toArray(true);
575
575
  data[offset] = matrix[0];
576
576
  data[offset + 1] = matrix[1];
@@ -641,23 +641,23 @@ fn mainFragment(
641
641
  cv[2] = v.blue;
642
642
  gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
643
643
  }
644
- `}]});function za(i,t,e){let r=[`
644
+ `}]});function Ya(i,e,t){let r=[`
645
645
  var v = null;
646
646
  var v2 = null;
647
647
  var t = 0;
648
648
  var index = 0;
649
649
  var name = null;
650
650
  var arrayOffset = null;
651
- `],s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a.data.name,c=!1,h=0;for(let u=0;u<de.length;u++)if(de[u].test(a.data)){h=a.offset/4,r.push(`name = "${l}";`,`offset += ${h-s};`,de[u].ubo),c=!0;break}if(!c)if(a.data.size>1)h=a.offset/4,r.push(e(a,h-s));else{let u=t[a.data.type];h=a.offset/4,r.push(`
652
- v = uv.${l};
653
- offset += ${h-s};
654
- ${u};
655
- `)}s=h}let n=r.join(`
656
- `);return new Function("uv","data","dataInt32","offset",n)}var au=p(()=>{wn()});function qi(i,t){return`
657
- for (let i = 0; i < ${i*t}; i++) {
651
+ `],s=0;for(let o=0;o<i.length;o++){let a=i[o],c=a.data.name,l=!1,d=0;for(let h=0;h<lt.length;h++)if(lt[h].test(a.data)){d=a.offset/4,r.push(`name = "${c}";`,`offset += ${d-s};`,lt[h].ubo),l=!0;break}if(!l)if(a.data.size>1)d=a.offset/4,r.push(t(a,d-s));else{let h=e[a.data.type];d=a.offset/4,r.push(`
652
+ v = uv.${c};
653
+ offset += ${d-s};
654
+ ${h};
655
+ `)}s=d}let n=r.join(`
656
+ `);return new Function("uv","data","dataInt32","offset",n)}var gh=p(()=>{Sn()});function Ji(i,e){return`
657
+ for (let i = 0; i < ${i*e}; i++) {
658
658
  data[offset + (((i / ${i})|0) * 4) + (i % ${i})] = v[i];
659
659
  }
660
- `}var lu,w_,cu=p(()=>{"use strict";lu={f32:`
660
+ `}var bh,Dg,xh=p(()=>{"use strict";bh={f32:`
661
661
  data[offset] = v;`,i32:`
662
662
  dataInt32[offset] = v;`,u32:`
663
663
  dataInt32[offset] = v;`,"vec2<f32>":`
@@ -703,28 +703,28 @@ fn mainFragment(
703
703
  data[offset + 10] = v[8];`,"mat4x4<f32>":`
704
704
  for (let i = 0; i < 16; i++) {
705
705
  data[offset + i] = v[i];
706
- }`,"mat3x2<f32>":qi(3,2),"mat4x2<f32>":qi(4,2),"mat2x3<f32>":qi(2,3),"mat4x3<f32>":qi(4,3),"mat2x4<f32>":qi(2,4),"mat3x4<f32>":qi(3,4)},w_={...lu,"mat2x2<f32>":`
706
+ }`,"mat3x2<f32>":Ji(3,2),"mat4x2<f32>":Ji(4,2),"mat2x3<f32>":Ji(2,3),"mat4x3<f32>":Ji(4,3),"mat2x4<f32>":Ji(2,4),"mat3x4<f32>":Ji(3,4)},Dg={...bh,"mat2x2<f32>":`
707
707
  data[offset] = v[0];
708
708
  data[offset + 1] = v[1];
709
709
  data[offset + 2] = v[2];
710
710
  data[offset + 3] = v[3];
711
- `}});function C_(i,t){let{size:e,align:r}=Zr[i.data.type],s=(r-e)/4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
711
+ `}});function Lg(i,e){let{size:t,align:r}=Qr[i.data.type],s=(r-t)/4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
712
712
  v = uv.${i.data.name};
713
- ${t!==0?`offset += ${t};`:""}
713
+ ${e!==0?`offset += ${e};`:""}
714
714
 
715
715
  arrayOffset = offset;
716
716
 
717
717
  t = 0;
718
718
 
719
- for(var i=0; i < ${i.data.size*(e/4)}; i++)
719
+ for(var i=0; i < ${i.data.size*(t/4)}; i++)
720
720
  {
721
- for(var j = 0; j < ${e/4}; j++)
721
+ for(var j = 0; j < ${t/4}; j++)
722
722
  {
723
723
  ${n}[arrayOffset++] = v[t++];
724
724
  }
725
725
  ${s!==0?`arrayOffset += ${s};`:""}
726
726
  }
727
- `}var E_=p(()=>{Na()});function P_(i){return za(i,w_,C_)}var M_=p(()=>{au();cu();E_()});var Qr,hu=p(()=>{P();Oa();Na();M_();Qr=class extends br{constructor(){super({createUboElements:T_,generateUboSync:P_})}};Qr.extension={type:[y.WebGPUSystem],name:"ubo"}});var He,Cn=p(()=>{Ht();Ft();He=class extends ut{constructor({buffer:t,offset:e,size:r}){super(),this.uid=$("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=$("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=e|0,this.size=r,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(t){this.buffer&&(this.buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}});var Ha,A_=p(()=>{"use strict";Ha=class{constructor({minUniformOffsetAlignment:t}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=t,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(t){if(t>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${t*4}`);let e=this.byteIndex,r=e+t*4;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,e}addGroup(t){let e=this.addEmptyGroup(t.length);for(let r=0;r<t.length;r++)this.data[e/4+r]=t[r];return e}destroy(){this.data=null}}});var vr,En,R_=p(()=>{P();xr();Cn();ir();A_();mr();vr=128,En=class{constructor(t){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=t,this._batchBuffer=new Ha({minUniformOffsetAlignment:vr});let e=256/vr;for(let r=0;r<e;r++){let s=tt.UNIFORM|tt.COPY_DST;r===0&&(s|=tt.COPY_SRC),this._buffers.push(new At({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(t,e){if(!e&&this._bindGroupHash[t.uid])return this._bindGroupHash[t.uid];this._renderer.ubo.ensureUniformGroup(t);let r=t.buffer.data,s=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(t,this._batchBuffer.data,s/4),this._bindGroupHash[t.uid]=this._getBindGroup(s/vr),this._bindGroupHash[t.uid]}getUboResource(t){this._renderer.ubo.updateUniformGroup(t);let e=t.buffer.data,r=this._batchBuffer.addGroup(e);return this._getBufferResource(r/vr)}getArrayBindGroup(t){let e=this._batchBuffer.addGroup(t);return this._getBindGroup(e/vr)}getArrayBufferResource(t){let r=this._batchBuffer.addGroup(t)/vr;return this._getBufferResource(r)}_getBufferResource(t){if(!this._bufferResources[t]){let e=this._buffers[t%2];this._bufferResources[t]=new He({buffer:e,offset:(t/2|0)*256,size:vr})}return this._bufferResources[t]}_getBindGroup(t){if(!this._bindGroups[t]){let e=new Vt({0:this._getBufferResource(t)});this._bindGroups[t]=e}return this._bindGroups[t]}_uploadBindGroups(){let t=this._renderer.buffer,e=this._buffers[0];e.update(this._batchBuffer.byteIndex),t.updateBuffer(e);let r=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];r.copyBufferToBuffer(t.getGPUBuffer(e),vr,t.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let t=0;t<this._bindGroups.length;t++)this._bindGroups[t]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let t=0;t<this._buffers.length;t++)this._buffers[t].destroy();this._buffers=null;for(let t=0;t<this._bufferResources.length;t++)this._bufferResources[t].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}};En.extension={type:[y.WebGPUPipes],name:"uniformBatch"}});function Pn(i,t){for(let e in i.attributes){let r=i.attributes[e],s=t[e];s?(r.format??(r.format=s.format),r.offset??(r.offset=s.offset),r.instance??(r.instance=s.instance)):L(`Attribute ${e} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}PT(i)}function PT(i){let{buffers:t,attributes:e}=i,r={},s={};for(let n in t){let o=t[n];r[o.uid]=0,s[o.uid]=0}for(let n in e){let o=e[n];r[o.buffer.uid]+=Jt(o.format).stride}for(let n in e){let o=e[n];o.stride??(o.stride=r[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=Jt(o.format).stride}}var uu=p(()=>{ht();pr()});var We,du=p(()=>{$r();We=[];We[vt.NONE]=void 0;We[vt.DISABLED]={stencilWriteMask:0,stencilReadMask:0};We[vt.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};We[vt.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};We[vt.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};We[vt.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function I_(i,t){for(let[e,r]of Object.entries(t)){let s=new RegExp(`override\\s+${e}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);i=i.replace(s,(n,o)=>{let a;return o==="u32"?a=`${Math.trunc(r)}u`:o==="i32"?a=`${Math.trunc(r)}`:a=Number.isInteger(r)?`${r}.0`:`${r}`,`const ${e}: ${o} = ${a};`})}return i}function G_(i,t,e,r,s,n){return i*35184372088832+t*536870912+n*16384+(e<<8)+(r<<3)+s}function U_(i){let t=F_[i];return t===void 0&&(t=F_[i]=RT++),t}function kT(i,t,e,r,s,n,o,a){return a<<20|n<<16|s<<13|e<<9|i<<6|o<<5|r<<1|t}var k_,MT,AT,B_,F_,RT,Mn,D_=p(()=>{P();ht();uu();Kc();$r();Ai();du();k_={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},MT=new ki({}),AT={"depth24plus-stencil8":{depth:!0,stencil:!0,index:1},depth24plus:{depth:!0,stencil:!1,index:2},depth32float:{depth:!0,stencil:!1,index:3},"depth32float-stencil8":{depth:!0,stencil:!0,index:4},depth16unorm:{depth:!0,stencil:!1,index:5},stencil8:{depth:!1,stencil:!0,index:6}},B_={depth:!1,stencil:!1,index:0};F_=Object.create(null),RT=0;Mn=class{constructor(t){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=new Map,this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._colorTargetCount=1,this._colorFormat="bgra8unorm",this._colorFormatId=U_("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=B_,this._depthReadOnly=!1,this._invertFrontFace=!1,this._renderer=t}contextChange(t){this._gpu=t,this.setStencilMode(vt.DISABLED),this._updatePipeHash()}setMultisampleCount(t){this._multisampleCount!==t&&(this._multisampleCount=t,this._updatePipeHash())}setRenderTarget(t){let e=t.colorAttachments[0]?.texture;this._multisampleCount=e?.source.antialias?4:1,this._colorTargetCount=t.colorAttachments.length,this._colorFormat=e?.format??"bgra8unorm",this._colorFormatId=U_(this._colorFormat),this._depthStencilFormat=t.depthStencilAttachment?.texture.format,this._depthStencilFormatData=AT[this._depthStencilFormat]||B_,this._depthReadOnly=t.depthStencilAttachment?.depthReadOnly??!1,this._invertFrontFace=!!t.flipY,this._updatePipeHash()}setColorMask(t){this._colorMask!==t&&(this._colorMask=t,this._updatePipeHash())}setStencilMode(t){this._stencilMode!==t&&(this._stencilMode=t,this._stencilState=We[t],this._updatePipeHash())}getBundleDescriptor(){let t=[];for(let r=0;r<this._colorTargetCount;r++)t.push(this._colorFormat);let e={colorFormats:t,sampleCount:this._multisampleCount};return(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil)&&(e.depthStencilFormat=this._depthStencilFormat),e}setPipeline(t,e,r,s){let n=this.getPipeline(t,e,r);s.setPipeline(n)}getPipelineKey(t,e,r,s,n){return t._layoutKey||(Pn(t,e.attributeData),this._generateBufferKey(t)),G_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,k_[s],n.id)}getPipeline(t,e,r,s,n){t._layoutKey||(Pn(t,e.attributeData),this._generateBufferKey(t)),s||(s=t.topology),n||(n=MT);let o=G_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,k_[s],n.id),a=this._pipeCache.get(o);return a||(a=this._createPipeline(t,e,r,s,n),this._pipeCache.set(o,a)),a}_createPipeline(t,e,r,s,n){let o=this._gpu.device,a=this._createVertexBufferLayouts(t,e),l=this._renderer.state.getColorTargets(r,this._colorTargetCount,this._colorFormat),c=this._stencilMode===vt.RENDERING_MASK_ADD?0:this._colorMask;for(let x=0;x<l.length;x++)l[x].writeMask=c;let h=this._renderer.shader.getProgramData(e).pipeline,u=Object.keys(n.data).length>0,d=e.vertex.source,f=e.fragment.source,m;u&&(this._renderer.limits.supportsOverrideConstants?m=n.data:(d=I_(d,n.data),f=I_(f,n.data)));let g={vertex:{module:this._getModule(d),entryPoint:e.vertex.entryPoint,constants:m,buffers:a},fragment:{module:this._getModule(f),entryPoint:e.fragment.entryPoint,targets:l,constants:m},primitive:{topology:s,cullMode:r.culling?"back":"none",frontFace:r.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:h,multisample:{count:this._multisampleCount},label:e.name?`PIXI Pipeline (${e.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let x=this._depthStencilFormatData;g.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:x.depth?r.depthMask&&!this._depthReadOnly:!1,depthCompare:x.depth&&r.depthTest?"less":"always"}}return o.createRenderPipeline(g)}_getModule(t){return this._moduleCache[t]||this._createModule(t)}_createModule(t){let e=this._gpu.device;return this._moduleCache[t]=e.createShaderModule({code:t}),this._moduleCache[t]}_generateBufferKey(t){let e=[],r=0,s=Object.keys(t.attributes).sort();for(let o=0;o<s.length;o++){let a=t.attributes[s[o]];e[r++]=a.offset,e[r++]=a.format,e[r++]=a.stride,e[r++]=a.instance}let n=e.join("|");return t._layoutKey=ke(n,"geometry"),t._layoutKey}_generateAttributeLocationsKey(t){let e=[],r=0,s=Object.keys(t.attributeData).sort();for(let o=0;o<s.length;o++){let a=t.attributeData[s[o]];e[r++]=a.location}let n=e.join("|");return t._attributeLocationsKey=ke(n,"programAttributes"),t._attributeLocationsKey}getBufferNamesToBind(t,e){let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bindingNamesCache[r])return this._bindingNamesCache[r];let s=this._createVertexBufferLayouts(t,e),n=Object.create(null),o=e.attributeData;for(let a=0;a<s.length;a++){let c=Object.values(s[a].attributes)[0].shaderLocation;for(let h in o)if(o[h].location===c){n[a]=h;break}}return this._bindingNamesCache[r]=n,n}_createVertexBufferLayouts(t,e){e._attributeLocationsKey||this._generateAttributeLocationsKey(e);let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bufferLayoutsCache[r])return this._bufferLayoutsCache[r];let s=[];return t.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let l in e.attributeData){let c=t.attributes[l];(c.divisor??1)!==1&&L(`Attribute ${l} has an invalid divisor value of '${c.divisor}'. WebGPU only supports a divisor value of 1`),c.buffer===n&&(o.arrayStride=c.stride,o.stepMode=c.instance?"instance":"vertex",a.push({shaderLocation:e.attributeData[l].location,offset:c.offset,format:c.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[r]=s,s}_updatePipeHash(){var t;let e=kT(this._stencilMode,this._multisampleCount===1?0:1,this._colorMask,this._colorTargetCount,this._depthStencilFormatData.index,this._colorFormatId,this._depthReadOnly?1:0,this._invertFrontFace?1:0);this._pipeCache=(t=this._pipeStateCaches)[e]??(t[e]=new Map)}destroy(){this._bufferLayoutsCache=null,this._pipeCache=null,this._gpu=null,this._renderer=null,this._bindingNamesCache=null,this._pipeStateCaches=null,this._moduleCache=null}};Mn.extension={type:[y.WebGPUSystem],name:"pipeline"}});function L_(i,t,e,r,s,n){let o=n?1:-1;return i.identity(),i.a=1/r*2,i.d=o*(1/s*2),i.tx=-1-t*i.a,i.ty=-o-e*i.d,i}var O_=p(()=>{"use strict"});function N_(i){if(i.colorAttachments.length===0)return!1;let t=i.colorTexture.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}var z_=p(()=>{"use strict"});var Sr,Wa=p(()=>{ot();Yt();yt();ht();Bi();O_();Ne();vh();fr();$t();gt();su();z_();iu();Sr=class{constructor(t){this.rootViewPort=new J,this.viewport=new J,this.onRenderTargetChange=new Ii("onRenderTargetChange"),this.projectionMatrix=new k,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._bindState={target:null,frame:void 0,mipLevel:0,layer:0,flipY:!1},this._bindFrame=new J,this._renderer=t,t.gc.addCollection(this,"_gpuRenderTargetHash","hash")}get renderSurface(){return this._bindState.target}get mipLevel(){return this._bindState.mipLevel}get layer(){return this._bindState.layer}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart(t){this._renderTargetStack.length=0,this.push(t),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=N_(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(t,e=!0,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.bind: positional arguments are deprecated, please use an options object instead: bind({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=l.target;e=l.clear??!0,r=l.clearColor,n=(l.mipLevel??0)|0,o=(l.layer??0)|0,a=l.flipY,s=l.frame;let h=this.getRenderTarget(c),u=this.renderTarget!==h;this.renderTarget=h;let d=this.getGpuRenderTarget(h);(h.pixelWidth!==d.width||h.pixelHeight!==d.height)&&(this.adaptor.resizeGpuRenderTarget(h),d.width=h.pixelWidth,d.height=h.pixelHeight);let f=h.colorAttachments[0]?.texture||h.depthStencilAttachment?.texture,m=this.viewport,g=f.arrayLayerCount||1;if(o<0||o>=g)throw new Error(`[RenderTargetSystem] layer ${o} is out of bounds (arrayLayerCount=${g}).`);let _=this._bindState;_.target=c,_.frame=s?this._bindFrame.copyFrom(s):void 0,_.mipLevel=n,_.layer=o,_.flipY=a;let x=Math.max(f.pixelWidth>>n,1),b=Math.max(f.pixelHeight>>n,1);if(!s&&c instanceof F&&(s=c.frame),s){let v=f._resolution,S=1<<Math.max(n,0),T=s.x*v+.5|0,w=s.y*v+.5|0,E=s.width*v+.5|0,B=s.height*v+.5|0,R=Math.floor(T/S),M=Math.floor(w/S),C=Math.ceil(E/S),A=Math.ceil(B/S);R<0&&(C+=R,R=0),M<0&&(A+=M,M=0),R=Math.min(R,x-1),M=Math.min(M,b-1),C=Math.min(C,x-R),A=Math.min(A,b-M),C=Math.max(C,1),A=Math.max(A,1),m.x=R,m.y=M,m.width=C,m.height=A}else m.x=0,m.y=0,m.width=x,m.height=b;return h.flipY=a,L_(this.projectionMatrix,0,0,m.width/f.resolution,m.height/f.resolution,!h.isRoot!=!!h.flipY),this.adaptor.startRenderPass(h,e,r,m,n,o),u&&this.onRenderTargetChange.emit(h),h}getBindState(t){if(!this.renderTarget)throw new Error("[RenderTargetSystem] getBindState is only valid while a render surface is bound");let e=this._bindState;return t??(t={}),t.target=e.target,t.clear=Et.NONE,t.clearColor=void 0,e.frame?t.frame?t.frame.copyFrom(e.frame):t.frame=e.frame.clone():t.frame=void 0,t.mipLevel=e.mipLevel,t.layer=e.layer,t.flipY=!!e.flipY,t}get frontFaceInverted(){let t=this.renderTarget;if(!t)return!1;let e=this._renderer.type===Lt.WEBGL&&!t.isRoot;return!!t.flipY!==e}clear(t,e=Et.ALL,r,s=this.mipLevel,n=this.layer){e&&(t&&(t=this.getRenderTarget(t)),this.adaptor.clear(t||this.renderTarget,e,r,this.viewport,s,n))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(t,e=Et.ALL,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.push: positional arguments are deprecated, please use an options object instead: push({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=this.bind(l);return this._renderTargetStack.push({target:l.target,clear:!1,clearColor:void 0,frame:l.frame?l.frame.clone():void 0,mipLevel:l.mipLevel,layer:l.layer,flipY:l.flipY}),c}pop(){this._renderTargetStack.pop();let t=this._renderTargetStack[this._renderTargetStack.length-1];if(!t)throw new Error("[RenderTargetSystem] pop: no previous binding to restore (unbalanced pop)");return this.bind(t)}getRenderTarget(t){return t.isTexture&&(t=t.source),this._renderSurfaceToRenderTargetHash.get(t)??this._initRenderTarget(t)}copyToTexture(t,e,r,s,n){let o=this.getRenderTarget(t);r.x<0&&(s.width+=r.x,n.x-=r.x,r.x=0),r.y<0&&(s.height+=r.y,n.y-=r.y,r.y=0);let{pixelWidth:a,pixelHeight:l}=o;return s.width=Math.min(s.width,a-r.x),s.height=Math.min(s.height,l-r.y),this.adaptor.copyToTexture(o,e,r,s,n)}copyDepthTexture(t,e,r,s,n={x:0,y:0}){let o=this.getRenderTarget(t);if(!o.depthStencilAttachment){L("[RenderTargetSystem] copyDepthTexture: the source render target has no depth attachment to copy from");return}let a=e.source;if(!a.format.includes("depth")&&!a.format.includes("stencil")){L(`[RenderTargetSystem] copyDepthTexture: the destination texture must have a depth/stencil format (got '${a.format}')`);return}let l=r.x,c=r.y,h=n.x,u=n.y,d=s.width,f=s.height;l<0&&(d+=l,h-=l,l=0),c<0&&(f+=c,u-=c,c=0),d=Math.min(d,o.pixelWidth-l),f=Math.min(f,o.pixelHeight-c),d=Math.min(d,a.pixelWidth-h),f=Math.min(f,a.pixelHeight-u),!(d<=0||f<=0)&&this.adaptor.copyDepthTexture(o,e,{x:l,y:c},{width:d,height:f},{x:h,y:u})}ensureDepthStencil(){if(!this.renderTarget.stencil){if(this.renderTarget.depthStencilTexture){L(`[RenderTargetSystem] a stencil mask is being used, but the render target's depthStencilTexture format '${this.renderTarget.depthStencilTexture.format}' has no stencil aspect, so masking cannot work here. Use a 'depth24plus-stencil8' texture instead.`);return}this.renderTarget._depth=!0,this.renderTarget._stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport,0,this.layer)}}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((t,e)=>{t!==e&&this._releaseRenderTarget(e,t)}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(t){let e=null;if(Tt.test(t)&&(t=Ua(t).source),t instanceof ji)e=t;else if(t instanceof st){let r=t.format;e=r.includes("depth")||r.includes("stencil")?new ji({colorTextures:0,depthStencilTexture:t}):new ji({colorTextures:[t]}),t.source instanceof Tt&&(e.isRoot=!0),t.once("destroy",this._onRenderSurfaceDestroy,this)}return this._renderSurfaceToRenderTargetHash.set(t,e),e}_onRenderSurfaceDestroy(t){let e=this._renderSurfaceToRenderTargetHash.get(t);e&&this._releaseRenderTarget(t,e)}_releaseRenderTarget(t,e){e.destroy(),this._renderSurfaceToRenderTargetHash.delete(t),t.off("destroy",this._onRenderSurfaceDestroy,this);let r=this._gpuRenderTargetHash[e.uid];r&&(this._gpuRenderTargetHash[e.uid]=null,this.adaptor.destroyGpuRenderTarget(r))}getGpuRenderTarget(t){return this._gpuRenderTargetHash[t.uid]||(this._gpuRenderTargetHash[t.uid]=this.adaptor.initGpuRenderTarget(t))}resetState(){this.renderTarget=null,this._bindState.target=null}}});var Va,H_=p(()=>{"use strict";Va=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});function IT(i){if(BT[i])return i;let t=navigator.gpu.getPreferredCanvasFormat();return L(`[WebGPU] CanvasSource format '${i}' is not a valid GPUCanvasContext format. Falling back to '${t}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),t}var BT,ja,W_=p(()=>{ht();Bi();fr();$t();H_();BT={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};ja=class{constructor(){this._activePass=null}init(t,e){this._renderer=t,this._renderTargetSystem=e}copyToTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=this._getGpuColorTexture(t),l=o.texture.getGpuSource(e.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:r},{texture:l,origin:n},s),e}copyDepthTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=t.depthStencilAttachment.texture,l=o.texture.getGpuSource(a),c=o.texture.getGpuSource(e.source),h=o.encoder.commandEncoder===null,u=h?o.gpu.device.createCommandEncoder():o.encoder.commandEncoder;u.copyTextureToTexture({texture:l,origin:r},{texture:c,origin:n},{width:s.width,height:s.height}),h&&o.gpu.device.queue.submit([u.finish()])}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(n>0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let c=e;typeof c=="boolean"&&(c=c?Et.ALL:Et.NONE),(t.stencil||t.depth)&&!t.depthStencilAttachment&&t.ensureDepthStencilTexture();let h=!!t.depthStencilAttachment,u=this._activePass;if(u!==null&&u.renderTarget===t&&u.mipLevel===n&&u.layer===o&&u.depthStencil===h&&this._renderer.encoder.renderPassEncoder!==null&&c===Et.NONE){this._renderer.encoder.setViewport(s);return}let f=this.getDescriptor(t,e,r,n,o);l.descriptor=f,this._renderer.pipeline.setRenderTarget(t),this._renderer.encoder.beginRenderPass(l),this._renderer.encoder.setViewport(s),this._activePass={renderTarget:t,mipLevel:n,layer:o,depthStencil:h}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_getGpuColorTexture(t){if(t.colorAttachments.length===0)throw new Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let e=t.colorAttachments[0].texture;return e instanceof Tt&&e._gpuContext?e._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(e)}getDescriptor(t,e,r,s=0,n=0){typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE);let o=this._renderTargetSystem,a=o.getGpuRenderTarget(t),l=t.colorAttachments.map((u,d)=>{let f=u.texture,m=f instanceof Tt?f._gpuContext:null,g,_;if(m){if(n!==0)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");g=m.getCurrentTexture().createView(u.viewDescriptor)}else g=this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor);let x=!1;a.msaaTextures[d]&&(_=g,g=this._renderer.texture.getTextureView(a.msaaTextures[d]),x=a.msaaTextures[d].transient);let b=u.loadOp;e!==void 0&&(b=e&Et.COLOR?"clear":"load"),r??(r=o.defaultClearColor);let v=u.storeOp??"store",S={view:g,resolveTarget:_,storeOp:x?"discard":v,loadOp:b};b==="clear"&&(r??(r=u.clearValue??o.defaultClearColor),S.clearValue=r);for(let T in u)T!=="texture"&&T!=="viewDescriptor"&&T!=="clearValue"&&T!=="loadOp"&&T!=="storeOp"&&(S[T]=u[T]);return S}),c;if(t.depthStencilAttachment){a.msaa&&(t.depthStencilAttachment.texture.sampleCount=4),t.depthStencilAttachment.texture.transient=!!a.msaaTextures[0]?.transient;let u=t.depthStencilAttachment,d=u.texture.format.includes("stencil"),f=u.texture.format.includes("depth"),m=u.texture.transient?"discard":"store";c={view:this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor)};let g=u.depthReadOnly??!1,_=u.stencilReadOnly??g;d&&!_?(c.stencilLoadOp=e&Et.STENCIL?"clear":u.stencilLoadOp??"load",c.stencilStoreOp=u.stencilStoreOp??m,c.stencilLoadOp==="clear"&&(c.stencilClearValue=u.stencilClearValue??0)):d&&_&&(c.stencilReadOnly=!0),f&&!g?(c.depthLoadOp=e&Et.DEPTH?"clear":u.depthLoadOp??"load",c.depthStoreOp=u.depthStoreOp??m,c.depthLoadOp==="clear"&&(c.depthClearValue=u.depthClearValue??1)):f&&g&&(c.depthReadOnly=!0);for(let x in u)x!=="texture"&&x!=="viewDescriptor"&&x!=="stencilLoadOp"&&x!=="stencilStoreOp"&&x!=="stencilClearValue"&&x!=="stencilReadOnly"&&x!=="depthLoadOp"&&x!=="depthStoreOp"&&x!=="depthClearValue"&&x!=="depthReadOnly"&&(c[x]=u[x])}return{colorAttachments:l,depthStencilAttachment:c,label:t.label}}clear(t,e=!0,r,s,n=0,o=0){if(!e)return;let{gpu:a,encoder:l}=this._renderer,c=a.device;if(l.commandEncoder===null){let u=c.createCommandEncoder(),d=this.getDescriptor(t,e,r,n,o),f=u.beginRenderPass(d);f.setViewport(s.x,s.y,s.width,s.height,0,1),f.end();let m=u.finish();c.queue.submit([m])}else this.startRenderPass(t,e,r,s,n,o)}initGpuRenderTarget(t){t.isRoot=!0;let e=new Va;return t.colorAttachments.forEach((r,s)=>{let n=r.texture;if(n instanceof Tt){if(!n._gpuContext){let o=n.resource.getContext("webgpu"),a=n.transparent?"premultiplied":"opaque",l=IT(n.format);try{o.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:l,alphaMode:a,...l==="rgba16float"?{toneMapping:{mode:"extended"}}:{}})}catch(c){console.error(c)}n._gpuContext=o}e.contexts[s]=n._gpuContext}if(e.msaa=n.source.antialias,n.antialias){let o=new st({width:0,height:0,sampleCount:4,transient:n.transient,arrayLayerCount:n.arrayLayerCount,format:n.format});e.msaaTextures[s]=o}}),e.msaa&&(e.msaaSamples=4,t.depthStencilAttachment&&(t.depthStencilAttachment.texture.sampleCount=4,t.depthStencilAttachment.texture.transient=!!e.msaaTextures[0]?.transient)),e}destroyGpuRenderTarget(t){t.contexts.forEach(e=>{e.unconfigure()}),t.msaaTextures.forEach(e=>{e.destroy()}),t.msaaTextures.length=0,t.contexts.length=0}ensureDepthStencilTexture(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);t.depthStencilAttachment&&e.msaa&&(t.depthStencilAttachment.texture.sampleCount=4)}resizeGpuRenderTarget(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.width,e.height=t.height,e.msaa&&t.colorAttachments.forEach((r,s)=>{let n=r.texture;e.msaaTextures[s]?.resize(n.width,n.height,n._resolution)})}}});var An,V_=p(()=>{P();Wa();W_();An=class extends Sr{constructor(t){super(t),this.adaptor=new ja,this.adaptor.init(t,this)}};An.extension={type:[y.WebGPUSystem],name:"renderTarget"}});var Rn,j_=p(()=>{P();Rn=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(t){this._gpu=t}getProgramData(t){return this._gpuProgramData[t._layoutKey]||this._createGPUProgramData(t)}_createGPUProgramData(t){let e=this._gpu.device,r=t.gpuLayout.map(n=>e.createBindGroupLayout({entries:n})),s={bindGroupLayouts:r};return this._gpuProgramData[t._layoutKey]={bindGroups:r,pipeline:e.createPipelineLayout(s)},this._gpuProgramData[t._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};Rn.extension={type:[y.WebGPUSystem],name:"shader"}});var ne,X_=p(()=>{"use strict";ne={};ne.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};ne.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};ne["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};ne["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};ne["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};ne.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};ne.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};ne.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var kn,Y_=p(()=>{P();Be();X_();kn=class{constructor(){this.defaultState=new Ot,this.defaultState.blend=!0}contextChange(t){this.gpu=t}getColorTargets(t,e,r){let s=t.blend?ne[t.blendMode]||ne.normal:void 0,n=[];for(let o=0;o<e;o++)n[o]={format:r,writeMask:0,blend:s};return n}destroy(){this.gpu=null}};kn.extension={type:[y.WebGPUSystem],name:"state"}});var $_,q_=p(()=>{"use strict";$_={type:"image",upload(i,t,e,r=0){let s=i.resource,n=(i.pixelWidth|0)*(i.pixelHeight|0),o=s.byteLength/n;e.device.queue.writeTexture({texture:t,origin:{x:0,y:0,z:r}},s,{offset:0,rowsPerImage:i.pixelHeight,bytesPerRow:i.pixelWidth*o},{width:i.pixelWidth,height:i.pixelHeight,depthOrArrayLayers:1})}}});var fu,GT,K_,Z_=p(()=>{"use strict";fu={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},GT={blockBytes:4,blockWidth:1,blockHeight:1},K_={type:"compressed",upload(i,t,e,r=0){let s=i.pixelWidth,n=i.pixelHeight,o=fu[i.format]||GT;for(let a=0;a<i.resource.length;a++){let l=i.resource[a],c=Math.ceil(s/o.blockWidth)*o.blockBytes;e.device.queue.writeTexture({texture:t,mipLevel:a,origin:{x:0,y:0,z:r}},l,{offset:0,bytesPerRow:c},{width:Math.ceil(s/o.blockWidth)*o.blockWidth,height:Math.ceil(n/o.blockHeight)*o.blockHeight,depthOrArrayLayers:1}),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}}}});function J_(i){return{type:"cube",upload(t,e,r){let s=t.faces;for(let n=0;n<Q_.length;n++){let o=Q_[n],a=s[o];(i[a.uploadMethodId]||i.image).upload(a,e,r,n)}}}}var Q_,ty=p(()=>{"use strict";Q_=["right","left","top","bottom","front","back"]});var Xa,pu=p(()=>{xt();ht();Xa={type:"image",upload(i,t,e,r=0){let s=i.resource;if(!s)return;if(globalThis.HTMLImageElement&&s instanceof HTMLImageElement){let l=W.get().createCanvas(s.width,s.height);l.getContext("2d").drawImage(s,0,0,s.width,s.height),i.resource=l,L("ImageSource: Image element passed, converting to canvas and replacing resource.")}let n=Math.min(t.width,i.resourceWidth||i.pixelWidth),o=Math.min(t.height,i.resourceHeight||i.pixelHeight),a=i.alphaMode==="premultiply-alpha-on-upload";e.device.queue.copyExternalImageToTexture({source:s},{texture:t,origin:{x:0,y:0,z:r},premultipliedAlpha:a},{width:n,height:o})}}});var ey,ry=p(()=>{pu();ey={type:"video",upload(i,t,e,r){Xa.upload(i,t,e,r)}}});var Ya,iy=p(()=>{"use strict";Ya=class{constructor(t){this.device=t,this.sampler=t.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(t){let e=this.pipelines[t];return e||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
727
+ `}var Og=p(()=>{Xa()});function Ng(i){return Ya(i,Dg,Lg)}var Hg=p(()=>{gh();xh();Og()});var Jr,_h=p(()=>{P();ja();Xa();Hg();Jr=class extends vr{constructor(){super({createUboElements:Ug,generateUboSync:Ng})}};Jr.extension={type:[_.WebGPUSystem],name:"ubo"}});var Vt,Tn=p(()=>{Ne();Ie();Vt=class extends fe{constructor({buffer:e,offset:t,size:r}){super(),this.uid=Y("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=Y("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=r,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(e){this.buffer&&(this.buffer._gcLastUsed=e)}onBufferChange(){this._resourceId=Y("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}});var $a,zg=p(()=>{"use strict";$a=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);let t=this.byteIndex,r=t+e*4;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let r=0;r<e.length;r++)this.data[t/4+r]=e[r];return t}destroy(){this.data=null}}});var wr,En,Wg=p(()=>{P();xr();Tn();sr();zg();gr();wr=128,En=class{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._batchBuffer=new $a({minUniformOffsetAlignment:wr});let t=256/wr;for(let r=0;r<t;r++){let s=J.UNIFORM|J.COPY_DST;r===0&&(s|=J.COPY_SRC),this._buffers.push(new Me({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let r=e.buffer.data,s=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,s/4),this._bindGroupHash[e.uid]=this._getBindGroup(s/wr),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,r=this._batchBuffer.addGroup(t);return this._getBufferResource(r/wr)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/wr)}getArrayBufferResource(e){let r=this._batchBuffer.addGroup(e)/wr;return this._getBufferResource(r)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new Vt({buffer:t,offset:(e/2|0)*256,size:wr})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new ze({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let r=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];r.copyBufferToBuffer(e.getGPUBuffer(t),wr,e.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}};En.extension={type:[_.WebGPUPipes],name:"uniformBatch"}});function Cn(i,e){for(let t in i.attributes){let r=i.attributes[t],s=e[t];s?(r.format??(r.format=s.format),r.offset??(r.offset=s.offset),r.instance??(r.instance=s.instance)):O(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}N3(i)}function N3(i){let{buffers:e,attributes:t}=i,r={},s={};for(let n in e){let o=e[n];r[o.uid]=0,s[o.uid]=0}for(let n in t){let o=t[n];r[o.buffer.uid]+=qe(o.format).stride}for(let n in t){let o=t[n];o.stride??(o.stride=r[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=qe(o.format).stride}}var yh=p(()=>{he();mr()});var jt,vh=p(()=>{qr();jt=[];jt[ve.NONE]=void 0;jt[ve.DISABLED]={stencilWriteMask:0,stencilReadMask:0};jt[ve.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};jt[ve.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};jt[ve.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};jt[ve.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function Xg(i,e){for(let[t,r]of Object.entries(e)){let s=new RegExp(`override\\s+${t}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);i=i.replace(s,(n,o)=>{let a;return o==="u32"?a=`${Math.trunc(r)}u`:o==="i32"?a=`${Math.trunc(r)}`:a=Number.isInteger(r)?`${r}.0`:`${r}`,`const ${t}: ${o} = ${a};`})}return i}function Yg(i,e,t,r,s,n){return i*35184372088832+e*536870912+n*16384+(t<<8)+(r<<3)+s}function qg(i){let e=$g[i];return e===void 0&&(e=$g[i]=W3++),e}function V3(i,e,t,r,s,n,o,a){return a<<20|n<<16|s<<13|t<<9|i<<6|o<<5|r<<1|e}var Vg,H3,z3,jg,$g,W3,Pn,Kg=p(()=>{P();he();yh();nd();qr();Ii();vh();Vg={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},H3=new Fi({}),z3={"depth24plus-stencil8":{depth:!0,stencil:!0,index:1},depth24plus:{depth:!0,stencil:!1,index:2},depth32float:{depth:!0,stencil:!1,index:3},"depth32float-stencil8":{depth:!0,stencil:!0,index:4},depth16unorm:{depth:!0,stencil:!1,index:5},stencil8:{depth:!1,stencil:!0,index:6}},jg={depth:!1,stencil:!1,index:0};$g=Object.create(null),W3=0;Pn=class{constructor(e){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=new Map,this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._colorTargetCount=1,this._colorFormat="bgra8unorm",this._colorFormatId=qg("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=jg,this._depthReadOnly=!1,this._invertFrontFace=!1,this._renderer=e}contextChange(e){this._gpu=e,this.setStencilMode(ve.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){let t=e.colorAttachments[0]?.texture;this._multisampleCount=t?.source.antialias?4:1,this._colorTargetCount=e.colorAttachments.length,this._colorFormat=t?.format??"bgra8unorm",this._colorFormatId=qg(this._colorFormat),this._depthStencilFormat=e.depthStencilAttachment?.texture.format,this._depthStencilFormatData=z3[this._depthStencilFormat]||jg,this._depthReadOnly=e.depthStencilAttachment?.depthReadOnly??!1,this._invertFrontFace=!!e.flipY,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=jt[e],this._updatePipeHash())}getBundleDescriptor(){let e=[];for(let r=0;r<this._colorTargetCount;r++)e.push(this._colorFormat);let t={colorFormats:e,sampleCount:this._multisampleCount};return(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil)&&(t.depthStencilFormat=this._depthStencilFormat),t}setPipeline(e,t,r,s){let n=this.getPipeline(e,t,r);s.setPipeline(n)}getPipelineKey(e,t,r,s,n){return e._layoutKey||(Cn(e,t.attributeData),this._generateBufferKey(e)),Yg(e._layoutKey,t._layoutKey,r.data,r._blendModeId,Vg[s],n.id)}getPipeline(e,t,r,s,n){e._layoutKey||(Cn(e,t.attributeData),this._generateBufferKey(e)),s||(s=e.topology),n||(n=H3);let o=Yg(e._layoutKey,t._layoutKey,r.data,r._blendModeId,Vg[s],n.id),a=this._pipeCache.get(o);return a||(a=this._createPipeline(e,t,r,s,n),this._pipeCache.set(o,a)),a}_createPipeline(e,t,r,s,n){let o=this._gpu.device,a=this._createVertexBufferLayouts(e,t),c=this._renderer.state.getColorTargets(r,this._colorTargetCount,this._colorFormat),l=this._stencilMode===ve.RENDERING_MASK_ADD?0:this._colorMask;for(let b=0;b<c.length;b++)c[b].writeMask=l;let d=this._renderer.shader.getProgramData(t).pipeline,h=Object.keys(n.data).length>0,u=t.vertex.source,f=t.fragment.source,m;h&&(this._renderer.limits.supportsOverrideConstants?m=n.data:(u=Xg(u,n.data),f=Xg(f,n.data)));let g={vertex:{module:this._getModule(u),entryPoint:t.vertex.entryPoint,constants:m,buffers:a},fragment:{module:this._getModule(f),entryPoint:t.fragment.entryPoint,targets:c,constants:m},primitive:{topology:s,cullMode:r.culling?"back":"none",frontFace:r.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:d,multisample:{count:this._multisampleCount},label:t.name?`PIXI Pipeline (${t.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let b=this._depthStencilFormatData;g.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:b.depth?r.depthMask&&!this._depthReadOnly:!1,depthCompare:b.depth&&r.depthTest?"less":"always"}}return o.createRenderPipeline(g)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],r=0,s=Object.keys(e.attributes).sort();for(let o=0;o<s.length;o++){let a=e.attributes[s[o]];t[r++]=a.offset,t[r++]=a.format,t[r++]=a.stride,t[r++]=a.instance}let n=t.join("|");return e._layoutKey=Bt(n,"geometry"),e._layoutKey}_generateAttributeLocationsKey(e){let t=[],r=0,s=Object.keys(e.attributeData).sort();for(let o=0;o<s.length;o++){let a=e.attributeData[s[o]];t[r++]=a.location}let n=t.join("|");return e._attributeLocationsKey=Bt(n,"programAttributes"),e._attributeLocationsKey}getBufferNamesToBind(e,t){let r=e._layoutKey<<16|t._attributeLocationsKey;if(this._bindingNamesCache[r])return this._bindingNamesCache[r];let s=this._createVertexBufferLayouts(e,t),n=Object.create(null),o=t.attributeData;for(let a=0;a<s.length;a++){let l=Object.values(s[a].attributes)[0].shaderLocation;for(let d in o)if(o[d].location===l){n[a]=d;break}}return this._bindingNamesCache[r]=n,n}_createVertexBufferLayouts(e,t){t._attributeLocationsKey||this._generateAttributeLocationsKey(t);let r=e._layoutKey<<16|t._attributeLocationsKey;if(this._bufferLayoutsCache[r])return this._bufferLayoutsCache[r];let s=[];return e.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let c in t.attributeData){let l=e.attributes[c];(l.divisor??1)!==1&&O(`Attribute ${c} has an invalid divisor value of '${l.divisor}'. WebGPU only supports a divisor value of 1`),l.buffer===n&&(o.arrayStride=l.stride,o.stepMode=l.instance?"instance":"vertex",a.push({shaderLocation:t.attributeData[c].location,offset:l.offset,format:l.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[r]=s,s}_updatePipeHash(){var e;let t=V3(this._stencilMode,this._multisampleCount===1?0:1,this._colorMask,this._colorTargetCount,this._depthStencilFormatData.index,this._colorFormatId,this._depthReadOnly?1:0,this._invertFrontFace?1:0);this._pipeCache=(e=this._pipeStateCaches)[t]??(e[t]=new Map)}destroy(){this._bufferLayoutsCache=null,this._pipeCache=null,this._gpu=null,this._renderer=null,this._bindingNamesCache=null,this._pipeStateCaches=null,this._moduleCache=null}};Pn.extension={type:[_.WebGPUSystem],name:"pipeline"}});function Zg(i,e,t,r,s,n){let o=n?1:-1;return i.identity(),i.a=1/r*2,i.d=o*(1/s*2),i.tx=-1-e*i.a,i.ty=-o-t*i.d,i}var Qg=p(()=>{"use strict"});function Jg(i){if(i.colorAttachments.length===0)return!1;let e=i.colorTexture.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var eb=p(()=>{"use strict"});var Sr,qa=p(()=>{ce();Ve();_e();he();Ui();Qg();zt();Rd();pr();je();ge();fh();eb();uh();Sr=class{constructor(e){this.rootViewPort=new Q,this.viewport=new Q,this.onRenderTargetChange=new Di("onRenderTargetChange"),this.projectionMatrix=new k,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._bindState={target:null,frame:void 0,mipLevel:0,layer:0,flipY:!1},this._bindFrame=new Q,this._renderer=e,e.gc.addCollection(this,"_gpuRenderTargetHash","hash")}get renderSurface(){return this._bindState.target}get mipLevel(){return this._bindState.mipLevel}get layer(){return this._bindState.layer}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart(e){this._renderTargetStack.length=0,this.push(e),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=Jg(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(e,t=!0,r,s,n=0,o=0,a){let c;"target"in e?c=e:(N("8.20.0","RenderTargetSystem.bind: positional arguments are deprecated, please use an options object instead: bind({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),c={target:e,clear:t,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let l=c.target;t=c.clear??!0,r=c.clearColor,n=(c.mipLevel??0)|0,o=(c.layer??0)|0,a=c.flipY,s=c.frame;let d=this.getRenderTarget(l),h=this.renderTarget!==d;this.renderTarget=d;let u=this.getGpuRenderTarget(d);(d.pixelWidth!==u.width||d.pixelHeight!==u.height)&&(this.adaptor.resizeGpuRenderTarget(d),u.width=d.pixelWidth,u.height=d.pixelHeight);let f=d.colorAttachments[0]?.texture||d.depthStencilAttachment?.texture,m=this.viewport,g=f.arrayLayerCount||1;if(o<0||o>=g)throw new Error(`[RenderTargetSystem] layer ${o} is out of bounds (arrayLayerCount=${g}).`);let x=this._bindState;x.target=l,x.frame=s?this._bindFrame.copyFrom(s):void 0,x.mipLevel=n,x.layer=o,x.flipY=a;let b=Math.max(f.pixelWidth>>n,1),y=Math.max(f.pixelHeight>>n,1);if(!s&&l instanceof U&&(s=l.frame),s){let v=f._resolution,w=1<<Math.max(n,0),S=s.x*v+.5|0,T=s.y*v+.5|0,C=s.width*v+.5|0,B=s.height*v+.5|0,R=Math.floor(S/w),M=Math.floor(T/w),E=Math.ceil(C/w),A=Math.ceil(B/w);R<0&&(E+=R,R=0),M<0&&(A+=M,M=0),R=Math.min(R,b-1),M=Math.min(M,y-1),E=Math.min(E,b-R),A=Math.min(A,y-M),E=Math.max(E,1),A=Math.max(A,1),m.x=R,m.y=M,m.width=E,m.height=A}else m.x=0,m.y=0,m.width=b,m.height=y;return d.flipY=a,Zg(this.projectionMatrix,0,0,m.width/f.resolution,m.height/f.resolution,!d.isRoot!=!!d.flipY),this.adaptor.startRenderPass(d,t,r,m,n,o),h&&this.onRenderTargetChange.emit(d),d}getBindState(e){if(!this.renderTarget)throw new Error("[RenderTargetSystem] getBindState is only valid while a render surface is bound");let t=this._bindState;return e??(e={}),e.target=t.target,e.clear=Ee.NONE,e.clearColor=void 0,t.frame?e.frame?e.frame.copyFrom(t.frame):e.frame=t.frame.clone():e.frame=void 0,e.mipLevel=t.mipLevel,e.layer=t.layer,e.flipY=!!t.flipY,e}get frontFaceInverted(){let e=this.renderTarget;if(!e)return!1;let t=this._renderer.type===Ue.WEBGL&&!e.isRoot;return!!e.flipY!==t}clear(e,t=Ee.ALL,r,s=this.mipLevel,n=this.layer){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,r,this.viewport,s,n))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=Ee.ALL,r,s,n=0,o=0,a){let c;"target"in e?c=e:(N("8.20.0","RenderTargetSystem.push: positional arguments are deprecated, please use an options object instead: push({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),c={target:e,clear:t,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let l=this.bind(c);return this._renderTargetStack.push({target:c.target,clear:!1,clearColor:void 0,frame:c.frame?c.frame.clone():void 0,mipLevel:c.mipLevel,layer:c.layer,flipY:c.flipY}),l}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];if(!e)throw new Error("[RenderTargetSystem] pop: no previous binding to restore (unbalanced pop)");return this.bind(e)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,r,s,n){let o=this.getRenderTarget(e);r.x<0&&(s.width+=r.x,n.x-=r.x,r.x=0),r.y<0&&(s.height+=r.y,n.y-=r.y,r.y=0);let{pixelWidth:a,pixelHeight:c}=o;return s.width=Math.min(s.width,a-r.x),s.height=Math.min(s.height,c-r.y),this.adaptor.copyToTexture(o,t,r,s,n)}copyDepthTexture(e,t,r,s,n={x:0,y:0}){let o=this.getRenderTarget(e);if(!o.depthStencilAttachment){O("[RenderTargetSystem] copyDepthTexture: the source render target has no depth attachment to copy from");return}let a=t.source;if(!a.format.includes("depth")&&!a.format.includes("stencil")){O(`[RenderTargetSystem] copyDepthTexture: the destination texture must have a depth/stencil format (got '${a.format}')`);return}let c=r.x,l=r.y,d=n.x,h=n.y,u=s.width,f=s.height;c<0&&(u+=c,d-=c,c=0),l<0&&(f+=l,h-=l,l=0),u=Math.min(u,o.pixelWidth-c),f=Math.min(f,o.pixelHeight-l),u=Math.min(u,a.pixelWidth-d),f=Math.min(f,a.pixelHeight-h),!(u<=0||f<=0)&&this.adaptor.copyDepthTexture(o,t,{x:c,y:l},{width:u,height:f},{x:d,y:h})}ensureDepthStencil(){if(!this.renderTarget.stencil){if(this.renderTarget.depthStencilTexture){O(`[RenderTargetSystem] a stencil mask is being used, but the render target's depthStencilTexture format '${this.renderTarget.depthStencilTexture.format}' has no stencil aspect, so masking cannot work here. Use a 'depth24plus-stencil8' texture instead.`);return}this.renderTarget._depth=!0,this.renderTarget._stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport,0,this.layer)}}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&this._releaseRenderTarget(t,e)}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;if(Se.test(e)&&(e=za(e).source),e instanceof qi)t=e;else if(e instanceof oe){let r=e.format;t=r.includes("depth")||r.includes("stencil")?new qi({colorTextures:0,depthStencilTexture:e}):new qi({colorTextures:[e]}),e.source instanceof Se&&(t.isRoot=!0),e.once("destroy",this._onRenderSurfaceDestroy,this)}return this._renderSurfaceToRenderTargetHash.set(e,t),t}_onRenderSurfaceDestroy(e){let t=this._renderSurfaceToRenderTargetHash.get(e);t&&this._releaseRenderTarget(e,t)}_releaseRenderTarget(e,t){t.destroy(),this._renderSurfaceToRenderTargetHash.delete(e),e.off("destroy",this._onRenderSurfaceDestroy,this);let r=this._gpuRenderTargetHash[t.uid];r&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(r))}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}resetState(){this.renderTarget=null,this._bindState.target=null}}});var Ka,tb=p(()=>{"use strict";Ka=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});function X3(i){if(j3[i])return i;let e=navigator.gpu.getPreferredCanvasFormat();return O(`[WebGPU] CanvasSource format '${i}' is not a valid GPUCanvasContext format. Falling back to '${e}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),e}var j3,Za,rb=p(()=>{he();Ui();pr();je();tb();j3={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};Za=class{constructor(){this._activePass=null}init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,r,s,n){let o=this._renderer;this.finishRenderPass();let a=this._getGpuColorTexture(e),c=o.texture.getGpuSource(t.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:r},{texture:c,origin:n},s),t}copyDepthTexture(e,t,r,s,n){let o=this._renderer;this.finishRenderPass();let a=e.depthStencilAttachment.texture,c=o.texture.getGpuSource(a),l=o.texture.getGpuSource(t.source),d=o.encoder.commandEncoder===null,h=d?o.gpu.device.createCommandEncoder():o.encoder.commandEncoder;h.copyTextureToTexture({texture:c,origin:r},{texture:l,origin:n},{width:s.width,height:s.height}),d&&o.gpu.device.queue.submit([h.finish()])}startRenderPass(e,t=!0,r,s,n=0,o=0){let c=this._renderTargetSystem.getGpuRenderTarget(e);if(o!==0&&c.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(n>0&&c.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let l=t;typeof l=="boolean"&&(l=l?Ee.ALL:Ee.NONE),(e.stencil||e.depth)&&!e.depthStencilAttachment&&e.ensureDepthStencilTexture();let d=!!e.depthStencilAttachment,h=this._activePass;if(h!==null&&h.renderTarget===e&&h.mipLevel===n&&h.layer===o&&h.depthStencil===d&&this._renderer.encoder.renderPassEncoder!==null&&l===Ee.NONE){this._renderer.encoder.setViewport(s);return}let f=this.getDescriptor(e,t,r,n,o);c.descriptor=f,this._renderer.pipeline.setRenderTarget(e),this._renderer.encoder.beginRenderPass(c),this._renderer.encoder.setViewport(s),this._activePass={renderTarget:e,mipLevel:n,layer:o,depthStencil:d}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_getGpuColorTexture(e){if(e.colorAttachments.length===0)throw new Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let t=e.colorAttachments[0].texture;return t instanceof Se&&t._gpuContext?t._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(t)}getDescriptor(e,t,r,s=0,n=0){typeof t=="boolean"&&(t=t?Ee.ALL:Ee.NONE);let o=this._renderTargetSystem,a=o.getGpuRenderTarget(e),c=e.colorAttachments.map((h,u)=>{let f=h.texture,m=f instanceof Se?f._gpuContext:null,g,x;if(m){if(n!==0)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");g=m.getCurrentTexture().createView(h.viewDescriptor)}else g=this._renderer.texture.getTextureRenderTargetView(h.texture,s,n,h.viewDescriptor);let b=!1;a.msaaTextures[u]&&(x=g,g=this._renderer.texture.getTextureView(a.msaaTextures[u]),b=a.msaaTextures[u].transient);let y=h.loadOp;t!==void 0&&(y=t&Ee.COLOR?"clear":"load"),r??(r=o.defaultClearColor);let v=h.storeOp??"store",w={view:g,resolveTarget:x,storeOp:b?"discard":v,loadOp:y};y==="clear"&&(r??(r=h.clearValue??o.defaultClearColor),w.clearValue=r);for(let S in h)S!=="texture"&&S!=="viewDescriptor"&&S!=="clearValue"&&S!=="loadOp"&&S!=="storeOp"&&(w[S]=h[S]);return w}),l;if(e.depthStencilAttachment){a.msaa&&(e.depthStencilAttachment.texture.sampleCount=4),e.depthStencilAttachment.texture.transient=!!a.msaaTextures[0]?.transient;let h=e.depthStencilAttachment,u=h.texture.format.includes("stencil"),f=h.texture.format.includes("depth"),m=h.texture.transient?"discard":"store";l={view:this._renderer.texture.getTextureRenderTargetView(h.texture,s,n,h.viewDescriptor)};let g=h.depthReadOnly??!1,x=h.stencilReadOnly??g;u&&!x?(l.stencilLoadOp=t&Ee.STENCIL?"clear":h.stencilLoadOp??"load",l.stencilStoreOp=h.stencilStoreOp??m,l.stencilLoadOp==="clear"&&(l.stencilClearValue=h.stencilClearValue??0)):u&&x&&(l.stencilReadOnly=!0),f&&!g?(l.depthLoadOp=t&Ee.DEPTH?"clear":h.depthLoadOp??"load",l.depthStoreOp=h.depthStoreOp??m,l.depthLoadOp==="clear"&&(l.depthClearValue=h.depthClearValue??1)):f&&g&&(l.depthReadOnly=!0);for(let b in h)b!=="texture"&&b!=="viewDescriptor"&&b!=="stencilLoadOp"&&b!=="stencilStoreOp"&&b!=="stencilClearValue"&&b!=="stencilReadOnly"&&b!=="depthLoadOp"&&b!=="depthStoreOp"&&b!=="depthClearValue"&&b!=="depthReadOnly"&&(l[b]=h[b])}return{colorAttachments:c,depthStencilAttachment:l,label:e.label}}clear(e,t=!0,r,s,n=0,o=0){if(!t)return;let{gpu:a,encoder:c}=this._renderer,l=a.device;if(c.commandEncoder===null){let h=l.createCommandEncoder(),u=this.getDescriptor(e,t,r,n,o),f=h.beginRenderPass(u);f.setViewport(s.x,s.y,s.width,s.height,0,1),f.end();let m=h.finish();l.queue.submit([m])}else this.startRenderPass(e,t,r,s,n,o)}initGpuRenderTarget(e){e.isRoot=!0;let t=new Ka;return e.colorAttachments.forEach((r,s)=>{let n=r.texture;if(n instanceof Se){if(!n._gpuContext){let o=n.resource.getContext("webgpu"),a=n.transparent?"premultiplied":"opaque",c=X3(n.format);try{o.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:c,alphaMode:a,...c==="rgba16float"?{toneMapping:{mode:"extended"}}:{}})}catch(l){console.error(l)}n._gpuContext=o}t.contexts[s]=n._gpuContext}if(t.msaa=n.source.antialias,n.antialias){let o=new oe({width:0,height:0,sampleCount:4,transient:n.transient,arrayLayerCount:n.arrayLayerCount,format:n.format});t.msaaTextures[s]=o}}),t.msaa&&(t.msaaSamples=4,e.depthStencilAttachment&&(e.depthStencilAttachment.texture.sampleCount=4,e.depthStencilAttachment.texture.transient=!!t.msaaTextures[0]?.transient)),t}destroyGpuRenderTarget(e){e.contexts.forEach(t=>{t.unconfigure()}),e.msaaTextures.forEach(t=>{t.destroy()}),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilAttachment&&t.msaa&&(e.depthStencilAttachment.texture.sampleCount=4)}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorAttachments.forEach((r,s)=>{let n=r.texture;t.msaaTextures[s]?.resize(n.width,n.height,n._resolution)})}}});var Mn,ib=p(()=>{P();qa();rb();Mn=class extends Sr{constructor(e){super(e),this.adaptor=new Za,this.adaptor.init(e,this)}};Mn.extension={type:[_.WebGPUSystem],name:"renderTarget"}});var An,sb=p(()=>{P();An=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,r=e.gpuLayout.map(n=>t.createBindGroupLayout({entries:n})),s={bindGroupLayouts:r};return this._gpuProgramData[e._layoutKey]={bindGroups:r,pipeline:t.createPipelineLayout(s)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};An.extension={type:[_.WebGPUSystem],name:"shader"}});var rt,nb=p(()=>{"use strict";rt={};rt.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};rt.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};rt.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};rt.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};rt.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};rt.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};rt["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};rt["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};rt["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};rt.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};rt.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};rt.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var Rn,ob=p(()=>{P();It();nb();Rn=class{constructor(){this.defaultState=new De,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e,t,r){let s=e.blend?rt[e.blendMode]||rt.normal:void 0,n=[];for(let o=0;o<t;o++)n[o]={format:r,writeMask:0,blend:s};return n}destroy(){this.gpu=null}};Rn.extension={type:[_.WebGPUSystem],name:"state"}});var ab,cb=p(()=>{"use strict";ab={type:"image",upload(i,e,t,r=0){let s=i.resource,n=(i.pixelWidth|0)*(i.pixelHeight|0),o=s.byteLength/n;t.device.queue.writeTexture({texture:e,origin:{x:0,y:0,z:r}},s,{offset:0,rowsPerImage:i.pixelHeight,bytesPerRow:i.pixelWidth*o},{width:i.pixelWidth,height:i.pixelHeight,depthOrArrayLayers:1})}}});var wh,Y3,lb,db=p(()=>{"use strict";wh={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},Y3={blockBytes:4,blockWidth:1,blockHeight:1},lb={type:"compressed",upload(i,e,t,r=0){let s=i.pixelWidth,n=i.pixelHeight,o=wh[i.format]||Y3;for(let a=0;a<i.resource.length;a++){let c=i.resource[a],l=Math.ceil(s/o.blockWidth)*o.blockBytes;t.device.queue.writeTexture({texture:e,mipLevel:a,origin:{x:0,y:0,z:r}},c,{offset:0,bytesPerRow:l},{width:Math.ceil(s/o.blockWidth)*o.blockWidth,height:Math.ceil(n/o.blockHeight)*o.blockHeight,depthOrArrayLayers:1}),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}}}});function ub(i){return{type:"cube",upload(e,t,r){let s=e.faces;for(let n=0;n<hb.length;n++){let o=hb[n],a=s[o];(i[a.uploadMethodId]||i.image).upload(a,t,r,n)}}}}var hb,fb=p(()=>{"use strict";hb=["right","left","top","bottom","front","back"]});var Qa,Sh=p(()=>{be();he();Qa={type:"image",upload(i,e,t,r=0){let s=i.resource;if(!s)return;if(globalThis.HTMLImageElement&&s instanceof HTMLImageElement){let c=z.get().createCanvas(s.width,s.height);c.getContext("2d").drawImage(s,0,0,s.width,s.height),i.resource=c,O("ImageSource: Image element passed, converting to canvas and replacing resource.")}let n=Math.min(e.width,i.resourceWidth||i.pixelWidth),o=Math.min(e.height,i.resourceHeight||i.pixelHeight),a=i.alphaMode==="premultiply-alpha-on-upload";t.device.queue.copyExternalImageToTexture({source:s},{texture:e,origin:{x:0,y:0,z:r},premultipliedAlpha:a},{width:n,height:o})}}});var pb,mb=p(()=>{Sh();pb={type:"video",upload(i,e,t,r){Qa.upload(i,e,t,r)}}});var Ja,gb=p(()=>{"use strict";Ja=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
728
728
  var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
729
729
  vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
730
730
 
@@ -748,7 +748,7 @@ fn mainFragment(
748
748
  fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
749
749
  return textureSample(img, imgSampler, texCoord);
750
750
  }
751
- `})),e=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:t}]}}),this.pipelines[t]=e),e}generateMipmap(t){let e=this._getMipmapPipeline(t.format);if(t.dimension==="3d"||t.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=t,s=t.depthOrArrayLayers||1,n=t.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let l={size:{width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s},format:t.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:t.mipLevelCount-1};r=this.device.createTexture(l)}let o=this.device.createCommandEncoder({}),a=e.getBindGroupLayout(0);for(let l=0;l<s;++l){let c=t.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),h=n?1:0;for(let u=1;u<t.mipLevelCount;++u){let d=r.createView({baseMipLevel:h++,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),f=o.beginRenderPass({colorAttachments:[{view:d,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:c}]});f.setPipeline(e),f.setBindGroup(0,m),f.draw(3,1,0,0),f.end(),c=d}}if(!n){let l={width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s};for(let c=1;c<t.mipLevelCount;++c)o.copyTextureToTexture({texture:r,mipLevel:c-1},{texture:t,mipLevel:c},l),l.width=Math.ceil(l.width/2),l.height=Math.ceil(l.height/2)}return this.device.queue.submit([o.finish()]),n||r.destroy(),t}}});function sy(i){return`${i.format||""}.${i.dimension||""}.${i.aspect||""}.${i.baseMipLevel||0}.${i.mipLevelCount||""}.${i.baseArrayLayer||0}.${i.arrayLayerCount||""}`}var mu,gu,xu,oy=p(()=>{xt();P();Ie();me();qo();mr();q_();Z_();ty();pu();ry();iy();mu=class{constructor(t){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=t}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}};gu=class ny{constructor(t){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=t,t.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let e={image:Xa,buffer:$_,video:ey,compressed:K_,...ny.uploadExtensions};this._uploads={...e,cube:J_(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gpu=t}initSource(t){return t._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(t)}_initSource(t){if(t.autoGenerateMipmaps){let c=Math.max(t.pixelWidth,t.pixelHeight);t.mipLevelCount=Math.floor(Math.log2(c))+1}let e;t.sampleCount>1?(e=GPUTextureUsage.RENDER_ATTACHMENT,t.transient&&this._renderer.device.extensions.transientAttachment&&(e|=GPUTextureUsage.TRANSIENT_ATTACHMENT)):(e=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.uploadMethodId!=="compressed"&&(e|=GPUTextureUsage.RENDER_ATTACHMENT,e|=GPUTextureUsage.COPY_SRC));let r=fu[t.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(t.pixelWidth/r.blockWidth)*r.blockWidth,n=Math.ceil(t.pixelHeight/r.blockHeight)*r.blockHeight,o={label:t.label,size:{width:s,height:n,depthOrArrayLayers:t.arrayLayerCount},format:t.format,sampleCount:t.sampleCount,mipLevelCount:t.mipLevelCount,dimension:t.dimension,usage:e},a=this._gpu.device.createTexture(o);return t._gpuData[this._renderer.uid]=new mu(a),this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceResize,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),a}onSourceUpdate(t){let e=this.getGpuSource(t);e&&(this._uploads[t.uploadMethodId]&&this._uploads[t.uploadMethodId].upload(t,e,this._gpu),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t))}onUpdateMipmaps(t){this._mipmapGenerator||(this._mipmapGenerator=new Ya(this._gpu.device));let e=this.getGpuSource(t);this._mipmapGenerator.generateMipmap(e)}onSourceUnload(t){t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceResize,this),t.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(t){t._gcLastUsed=this._renderer.gc.now;let e=t._gpuData[this._renderer.uid],r=e?.gpuTexture;r?(r.width!==t.pixelWidth||r.height!==t.pixelHeight)&&(e.destroy(),this._bindGroupHash[t.uid]=null,t._gpuData[this._renderer.uid]=null,this.initSource(t)):this.initSource(t)}_initSampler(t){return this._gpuSamplers[t._resourceId]=this._gpu.device.createSampler(t),this._gpuSamplers[t._resourceId]}getGpuSampler(t){return this._gpuSamplers[t._resourceId]||this._initSampler(t)}getGpuSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(t)}getTextureBindGroup(t){return this._bindGroupHash[t.uid]||this._createTextureBindGroup(t)}_createTextureBindGroup(t){let e=t.source;return this._bindGroupHash[t.uid]=new Vt({0:e,1:e.style,2:new Ct({uTextureMatrix:{type:"mat3x3<f32>",value:t.textureMatrix.mapCoord}})}),this._bindGroupHash[t.uid]}getTextureView(t,e){var r;let s=t.source;s._gcLastUsed=this._renderer.gc.now;let n=s._gpuData[this._renderer.uid];n||(this.initSource(s),n=s._gpuData[this._renderer.uid]);let o=e?sy(e):0;return(r=n.textureViews)[o]||(r[o]=n.gpuTexture.createView({dimension:s.viewDimension,...e})),n.textureViews[o]}getTextureRenderTargetView(t,e=0,r=0,s){var n;let o=t.source;o._gcLastUsed=this._renderer.gc.now;let a=o._gpuData[this._renderer.uid];a||(this.initSource(o),a=o._gpuData[this._renderer.uid]);let l=r*(o.mipLevelCount||1)+e+1;return s&&(l=`${l}.${sy(s)}`),(n=a.textureViews)[l]||(n[l]=a.gpuTexture.createView({dimension:"2d",baseMipLevel:e,mipLevelCount:1,baseArrayLayer:r,arrayLayerCount:1,...s})),a.textureViews[l]}generateCanvas(t){let e=this._renderer,r=e.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=t.source.pixelWidth,s.height=t.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:e.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:e.texture.getGpuSource(t.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),e.gpu.device.queue.submit([r.finish()]),s}getPixels(t){let e=this.generateCanvas(t),r=rr.getOptimalCanvasAndContext(e.width,e.height),s=r.context;s.drawImage(e,0,0);let{width:n,height:o}=e,a=s.getImageData(0,0,n,o),l=new Uint8ClampedArray(a.data.buffer);return rr.returnCanvasAndContext(r),{pixels:l,width:n,height:o}}destroy(){this._managedTextures.destroy();for(let t of Object.keys(this._bindGroupHash)){let e=Number(t);this._bindGroupHash[e]?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};gu.extension={type:[y.WebGPUSystem],name:"texture"};gu.uploadExtensions=Object.create(null);xu=gu;z.handleByMap(y.TextureUploaderWebGPU,xu.uploadExtensions)});var hy={};zl(hy,{WebGPURenderer:()=>_u});var FT,UT,DT,ay,ly,cy,_u,uy=p(()=>{P();sx();ax();lx();Vr();La();Ne();g_();x_();__();y_();b_();v_();S_();hu();R_();D_();V_();j_();Y_();oy();FT=[...Yi,Qr,vn,$i,Sn,yn,xu,An,Rn,kn,Mn,bn,Tn,_n],UT=[...Da,En],DT=[Zs,Ks,qs],ay=[],ly=[],cy=[];z.handleByNamedList(y.WebGPUSystem,ay);z.handleByNamedList(y.WebGPUPipes,ly);z.handleByNamedList(y.WebGPUPipesAdaptor,cy);z.add(...FT,...UT,...DT);_u=class extends Te{constructor(){let t={name:"webgpu",type:Lt.WEBGPU,systems:ay,renderPipes:ly,renderPipeAdaptors:cy};super(t)}}});var Bn,dy=p(()=>{P();ot();Di();ba();Ta();$s();Ni();Wh();gr();me();Bn=class{contextChange(t){let e=new Ct({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),r=t.limits.maxBatchableTextures,s=Ui({name:"graphics",bits:[ya,Sa(r),wa,Oi]});this.shader=new te({glProgram:s,resources:{localUniforms:e,batchSamplers:ka(r)}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(t.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let c=l.instructions;for(let h=0;h<l.instructionSize;h++){let u=c[h];if(u.size){for(let d=0;d<u.textures.count;d++)n.texture.bind(u.textures.textures[d],d);n.geometry.draw(u.topology,u.size,u.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};Bn.extension={type:[y.WebGLPipesAdaptor],name:"graphics"}});var In,fy=p(()=>{P();ot();Di();$s();Ni();Ah();gr();gt();ht();In=class{init(){let t=Ui({name:"mesh",bits:[wa,ox,Oi]});this._shader=new te({glProgram:t,resources:{uTexture:F.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(s){if(!s.glProgram){L("Mesh shader has no glProgram",e.shader);return}}else{s=this._shader;let n=e.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=r.globalUniforms.bindGroup,s.groups[101]=t.localUniformsBindGroup,r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};In.extension={type:[y.WebGLPipesAdaptor],name:"mesh"}});var Gn,py=p(()=>{P();Be();Gn=class{constructor(){this._tempState=Ot.for2d(),this._didUploadHash={}}init(t){t.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(t,e,r){let s=t.renderer,n=this._didUploadHash[r.uid];s.shader.bind(r,n),n||(this._didUploadHash[r.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(e,r.glProgram)}execute(t,e){let r=t.renderer;this._tempState.blendMode=e.blendMode,r.state.set(this._tempState);let s=e.textures.textures;for(let n=0;n<e.textures.count;n++)r.texture.bind(s[n],n);r.geometry.draw(e.topology,e.size,e.start)}};Gn.extension={type:[y.WebGLPipesAdaptor],name:"batch"}});var Fn,my=p(()=>{"use strict";Fn=(i=>(i[i.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",i[i.ARRAY_BUFFER=34962]="ARRAY_BUFFER",i[i.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",i))(Fn||{})});var $a,gy=p(()=>{"use strict";$a=class{constructor(t,e){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=t||null,this.updateID=-1,this.byteLength=-1,this.type=e}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}});var Un,xy=p(()=>{P();Ie();ir();my();gy();Un=class{constructor(t){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this.createGLBuffer(t)}bind(t){let{_gl:e}=this,r=this.getGlBuffer(t);e.bindBuffer(r.type,r.buffer)}bindBufferBase(t,e){let{_gl:r}=this;this._boundBufferBases[e]!==t&&(this._boundBufferBases[e]=t,t._lastBindBaseLocation=e,r.bindBufferBase(r.UNIFORM_BUFFER,e,t.buffer))}nextBindBase(t){this._bindCallId++,this._minBaseLocation=0,t&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(t){let e=this.getLastBindBaseLocation(t);if(e>=this._minBaseLocation)return t._lastBindCallId=this._bindCallId,e;let r=0,s=this._nextBindBaseIndex;for(;r<2;){s>=this._maxBindings&&(s=this._minBaseLocation,r++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return e=s,this._nextBindBaseIndex=s+1,r>=2?-1:(t._lastBindCallId=this._bindCallId,this._boundBufferBases[e]=null,e)}getLastBindBaseLocation(t){let e=t._lastBindBaseLocation;return this._boundBufferBases[e]===t?e:-1}bindBufferRange(t,e,r,s){let{_gl:n}=this;r||(r=0),e||(e=0),this._boundBufferBases[e]=null,n.bindBufferRange(n.UNIFORM_BUFFER,e||0,t.buffer,r*256,s||256)}updateBuffer(t){let{_gl:e}=this,r=this.getGlBuffer(t);if(t._updateID===r.updateID)return r;r.updateID=t._updateID,e.bindBuffer(r.type,r.buffer);let s=t.data,n=t.descriptor.usage&tt.STATIC?e.STATIC_DRAW:e.DYNAMIC_DRAW;return s?r.byteLength>=s.byteLength?e.bufferSubData(r.type,t._updateOffset,s,t._updateOffset/s.BYTES_PER_ELEMENT,(t._updateSize||s.byteLength)/s.BYTES_PER_ELEMENT):(r.byteLength=s.byteLength,e.bufferData(r.type,s,n)):(r.byteLength=t.descriptor.size,e.bufferData(r.type,r.byteLength,n)),r}destroyAll(t=!1){this._managedBuffers.removeAll(t)}onBufferUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||this._gl.deleteBuffer(r.buffer))}createGLBuffer(t){let{_gl:e}=this,r=Fn.ARRAY_BUFFER;t.descriptor.usage&tt.INDEX?r=Fn.ELEMENT_ARRAY_BUFFER:t.descriptor.usage&tt.UNIFORM&&(r=Fn.UNIFORM_BUFFER);let s=new $a(e.createBuffer(),r);return t._gpuData[this._renderer.uid]=s,this._managedBuffers.add(t),s}resetState(){this._boundBufferBases=Object.create(null)}};Un.extension={type:[y.WebGLSystem],name:"buffer"}});var yu,yy,by=p(()=>{xt();P();ht();yu=class _y{constructor(t){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=t,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(t){this.gl=t,this._renderer.gl=t}init(t){t={..._y.defaultOptions,...t};let e=this.multiView=t.multiView;if(t.context&&e&&(L("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),e=!1),e?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,t.context)this.initFromContext(t.context);else{let r=this._renderer.background.alpha<1,s=t.premultipliedAlpha??!0,n=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:r,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}ensureCanvasSize(t){if(!this.multiView){t!==this.canvas&&L("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:e}=this;(e.width<t.width||e.height<t.height)&&(e.width=Math.max(t.width,t.width),e.height=Math.max(t.height,t.height))}initFromContext(t){this.gl=t,this.webGLVersion=t instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(t),this._renderer.runners.contextChange.emit(t);let e=this._renderer.view.canvas;e.addEventListener("webglcontextlost",this.handleContextLost,!1),e.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(t,e){let r,s=this.canvas;if(t===2&&(r=s.getContext("webgl2",e)),!r&&(r=s.getContext("webgl",e),!r))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){let{gl:t}=this,e={anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),s3tc:t.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB: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"),bptc:t.getExtension("EXT_texture_compression_bptc"),rgtc:t.getExtension("EXT_texture_compression_rgtc"),loseContext:t.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...e,drawBuffers:t.getExtension("WEBGL_draw_buffers"),depthTexture:t.getExtension("WEBGL_depth_texture"),vertexArrayObject:t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:t.getExtension("OES_element_index_uint"),floatTexture:t.getExtension("OES_texture_float"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),textureHalfFloat:t.getExtension("OES_texture_half_float"),textureHalfFloatLinear:t.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:t.getExtension("ANGLE_instanced_arrays"),srgb:t.getExtension("EXT_sRGB")};else{this.extensions={...e,colorBufferFloat:t.getExtension("EXT_color_buffer_float")};let r=t.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(t){t.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let t=this._renderer.view.canvas;this._renderer=null,t.removeEventListener("webglcontextlost",this.handleContextLost),t.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(t){let e=t.getContextAttributes();e&&!e.stencil&&L("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,s=this.webGLVersion===2,n=this.extensions;r.uint32Indices=s||!!n.uint32ElementIndex,r.uniformBufferObject=s,r.vertexArrayObject=s||!!n.vertexArrayObject,r.srgbTextures=s||!!n.srgb,r.nonPowOf2wrapping=s,r.nonPowOf2mipmaps=s,r.msaa=s,r.uint32Indices||L("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};yu.extension={type:[y.WebGLSystem],name:"context"};yu.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};yy=yu});var qa,Dn,at,Ka=p(()=>{"use strict";qa=(i=>(i[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i))(qa||{}),Dn=(i=>(i[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i))(Dn||{}),at=(i=>(i[i.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",i[i.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",i[i.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",i[i.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",i[i.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",i[i.UNSIGNED_INT=5125]="UNSIGNED_INT",i[i.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",i[i.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",i[i.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",i[i.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",i[i.BYTE=5120]="BYTE",i[i.SHORT=5122]="SHORT",i[i.INT=5124]="INT",i[i.FLOAT=5126]="FLOAT",i[i.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",i[i.HALF_FLOAT=36193]="HALF_FLOAT",i))(at||{})});function Sy(i){return vy[i]??vy.float32}var vy,Ty=p(()=>{Ka();vy={uint8x2:at.UNSIGNED_BYTE,uint8x4:at.UNSIGNED_BYTE,sint8x2:at.BYTE,sint8x4:at.BYTE,unorm8x2:at.UNSIGNED_BYTE,unorm8x4:at.UNSIGNED_BYTE,snorm8x2:at.BYTE,snorm8x4:at.BYTE,uint16x2:at.UNSIGNED_SHORT,uint16x4:at.UNSIGNED_SHORT,sint16x2:at.SHORT,sint16x4:at.SHORT,unorm16x2:at.UNSIGNED_SHORT,unorm16x4:at.UNSIGNED_SHORT,snorm16x2:at.SHORT,snorm16x4:at.SHORT,float16x2:at.HALF_FLOAT,float16x4:at.HALF_FLOAT,float32:at.FLOAT,float32x2:at.FLOAT,float32x3:at.FLOAT,float32x4:at.FLOAT,uint32:at.UNSIGNED_INT,uint32x2:at.UNSIGNED_INT,uint32x3:at.UNSIGNED_INT,uint32x4:at.UNSIGNED_INT,sint32:at.INT,sint32x2:at.INT,sint32x3:at.INT,sint32x4:at.INT}});var LT,bu,Ln,wy=p(()=>{P();Ie();pr();uu();Ty();LT={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},bu=class{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}},Ln=class{constructor(t){this._renderer=t,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new kt({renderer:t,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let t=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");this.destroyAll(!0);let e=this._renderer.context.extensions.vertexArrayObject;e&&(t.createVertexArray=()=>e.createVertexArrayOES(),t.bindVertexArray=s=>e.bindVertexArrayOES(s),t.deleteVertexArray=s=>e.deleteVertexArrayOES(s));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(t.drawArraysInstanced=(s,n,o,a)=>{r.drawArraysInstancedANGLE(s,n,o,a)},t.drawElementsInstanced=(s,n,o,a,l)=>{r.drawElementsInstancedANGLE(s,n,o,a,l)},t.vertexAttribDivisor=(s,n)=>r.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null}bind(t,e){let r=this.gl;this._activeGeometry=t;let s=this.getVao(t,e);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let t=this._activeGeometry,e=this._renderer.buffer;for(let r=0;r<t.buffers.length;r++){let s=t.buffers[r];e.updateBuffer(s)}t._gcLastUsed=this._renderer.gc.now}checkCompatibility(t,e){let r=t.attributes,s=e._attributeData;for(let n in s)if(!r[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(t,e){let r=t.attributes,s=e._attributeData,n=["g",t.uid];for(let o in r)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(t,e){return t._gpuData[this._renderer.uid]?.vaoCache[e._key]||this.initGeometryVao(t,e)}initGeometryVao(t,e,r=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(e),this.checkCompatibility(t,e);let o=this.getSignature(t,e),a=t._gpuData[this._renderer.uid];a||(a=new bu,t._gpuData[this._renderer.uid]=a,this._managedGeometries.add(t));let l=a.vaoCache,c=l[o];if(c)return l[e._key]=c,c;Pn(t,e._attributeData);let h=t.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let u=0;u<h.length;u++){let d=h[u];n.bind(d)}return this.activateVao(t,e),l[e._key]=c,l[o]=c,s.bindVertexArray(null),c}onGeometryUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];if(!r)return;let s=r.vaoCache;if(!e)for(let n in s)this._activeVao!==s[n]&&this.resetState(),this.gl.deleteVertexArray(s[n])}destroyAll(t=!1){this._managedGeometries.removeAll(t)}activateVao(t,e){let r=this._renderer.gl,s=this._renderer.buffer,n=t.attributes;t.indexBuffer&&s.bind(t.indexBuffer);let o=null;for(let a in n){let l=n[a],c=l.buffer,h=s.getGlBuffer(c),u=e._attributeData[a];if(u){o!==h&&(s.bind(c),o=h);let d=u.location;r.enableVertexAttribArray(d);let f=Jt(l.format),m=Sy(l.format);if(u.format?.substring(1,4)==="int"?r.vertexAttribIPointer(d,f.size,m,l.stride,l.offset):r.vertexAttribPointer(d,f.size,m,f.normalised,l.stride,l.offset),l.instance)if(this.hasInstance){let g=l.divisor??1;r.vertexAttribDivisor(d,g)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(t,e,r,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=LT[t||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let l=o.indexBuffer.data.BYTES_PER_ELEMENT,c=l===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s!==1?n.drawElementsInstanced(a,e||o.indexBuffer.data.length,c,(r||0)*l,s):n.drawElements(a,e||o.indexBuffer.data.length,c,(r||0)*l)}else s!==1?n.drawArraysInstanced(a,r||0,e||o.vertexCount,s):n.drawArrays(a,r||0,e||o.vertexCount);return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Ln.extension={type:[y.WebGLSystem],name:"geometry"}});var OT,vu,Ey,Py=p(()=>{P();ht();zr();gr();Be();$t();gt();Nr();OT=new ue({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),vu=class Cy{constructor(t){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=t}init(t={}){let{useBackBuffer:e,antialias:r}={...Cy.defaultOptions,...t};this.useBackBuffer=e,this._antialias=r,this._renderer.context.supports.msaa||(L("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Ot.for2d();let s=new be({vertex:`
751
+ `})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){let t=this._getMipmapPipeline(e.format);if(e.dimension==="3d"||e.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=e,s=e.depthOrArrayLayers||1,n=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let c={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};r=this.device.createTexture(c)}let o=this.device.createCommandEncoder({}),a=t.getBindGroupLayout(0);for(let c=0;c<s;++c){let l=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),d=n?1:0;for(let h=1;h<e.mipLevelCount;++h){let u=r.createView({baseMipLevel:d++,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),f=o.beginRenderPass({colorAttachments:[{view:u,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:l}]});f.setPipeline(t),f.setBindGroup(0,m),f.draw(3,1,0,0),f.end(),l=u}}if(!n){let c={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s};for(let l=1;l<e.mipLevelCount;++l)o.copyTextureToTexture({texture:r,mipLevel:l-1},{texture:e,mipLevel:l},c),c.width=Math.ceil(c.width/2),c.height=Math.ceil(c.height/2)}return this.device.queue.submit([o.finish()]),n||r.destroy(),e}}});function bb(i){return`${i.format||""}.${i.dimension||""}.${i.aspect||""}.${i.baseMipLevel||0}.${i.mipLevelCount||""}.${i.baseArrayLayer||0}.${i.arrayLayerCount||""}`}var Th,Eh,Ch,_b=p(()=>{be();P();Gt();mt();ta();gr();cb();db();fb();Sh();mb();gb();Th=class{constructor(e){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=e}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}};Eh=class xb{constructor(e){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=e,e.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new Re({renderer:e,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let t={image:Qa,buffer:ab,video:pb,compressed:lb,...xb.uploadExtensions};this._uploads={...t,cube:ub(t)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(e){this._gpu=e}initSource(e){return e._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(e)}_initSource(e){if(e.autoGenerateMipmaps){let l=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(l))+1}let t;e.sampleCount>1?(t=GPUTextureUsage.RENDER_ATTACHMENT,e.transient&&this._renderer.device.extensions.transientAttachment&&(t|=GPUTextureUsage.TRANSIENT_ATTACHMENT)):(t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,e.uploadMethodId!=="compressed"&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC));let r=wh[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(e.pixelWidth/r.blockWidth)*r.blockWidth,n=Math.ceil(e.pixelHeight/r.blockHeight)*r.blockHeight,o={label:e.label,size:{width:s,height:n,depthOrArrayLayers:e.arrayLayerCount},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},a=this._gpu.device.createTexture(o);return e._gpuData[this._renderer.uid]=new Th(a),this._managedTextures.add(e)&&(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(e),a}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new Ja(this._gpu.device));let t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceUnload(e){e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(e){e._gcLastUsed=this._renderer.gc.now;let t=e._gpuData[this._renderer.uid],r=t?.gpuTexture;r?(r.width!==e.pixelWidth||r.height!==e.pixelHeight)&&(t.destroy(),this._bindGroupHash[e.uid]=null,e._gpuData[this._renderer.uid]=null,this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]||this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source;return this._bindGroupHash[e.uid]=new ze({0:t,1:t.style,2:new Te({uTextureMatrix:{type:"mat3x3<f32>",value:e.textureMatrix.mapCoord}})}),this._bindGroupHash[e.uid]}getTextureView(e,t){var r;let s=e.source;s._gcLastUsed=this._renderer.gc.now;let n=s._gpuData[this._renderer.uid];n||(this.initSource(s),n=s._gpuData[this._renderer.uid]);let o=t?bb(t):0;return(r=n.textureViews)[o]||(r[o]=n.gpuTexture.createView({dimension:s.viewDimension,...t})),n.textureViews[o]}getTextureRenderTargetView(e,t=0,r=0,s){var n;let o=e.source;o._gcLastUsed=this._renderer.gc.now;let a=o._gpuData[this._renderer.uid];a||(this.initSource(o),a=o._gpuData[this._renderer.uid]);let c=r*(o.mipLevelCount||1)+t+1;return s&&(c=`${c}.${bb(s)}`),(n=a.textureViews)[c]||(n[c]=a.gpuTexture.createView({dimension:"2d",baseMipLevel:t,mipLevelCount:1,baseArrayLayer:r,arrayLayerCount:1,...s})),a.textureViews[c]}generateCanvas(e){let t=this._renderer,r=t.gpu.device.createCommandEncoder(),s=z.get().createCanvas();s.width=e.source.pixelWidth,s.height=e.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:z.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),t.gpu.device.queue.submit([r.finish()]),s}getPixels(e){let t=this.generateCanvas(e),r=ir.getOptimalCanvasAndContext(t.width,t.height),s=r.context;s.drawImage(t,0,0);let{width:n,height:o}=t,a=s.getImageData(0,0,n,o),c=new Uint8ClampedArray(a.data.buffer);return ir.returnCanvasAndContext(r),{pixels:c,width:n,height:o}}destroy(){this._managedTextures.destroy();for(let e of Object.keys(this._bindGroupHash)){let t=Number(e);this._bindGroupHash[t]?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};Eh.extension={type:[_.WebGPUSystem],name:"texture"};Eh.uploadExtensions=Object.create(null);Ch=Eh;H.handleByMap(_.TextureUploaderWebGPU,Ch.uploadExtensions)});var Sb={};Kc(Sb,{WebGPURenderer:()=>Ph});var $3,q3,K3,yb,vb,wb,Ph,Tb=p(()=>{P();b1();y1();v1();jr();Va();zt();Ag();Rg();kg();Bg();Ig();Gg();Fg();_h();Wg();Kg();ib();sb();ob();_b();$3=[...Zi,Jr,yn,Qi,vn,xn,Ch,Mn,An,Rn,Pn,_n,wn,bn],q3=[...Wa,En],K3=[Ks,qs,$s],yb=[],vb=[],wb=[];H.handleByNamedList(_.WebGPUSystem,yb);H.handleByNamedList(_.WebGPUPipes,vb);H.handleByNamedList(_.WebGPUPipesAdaptor,wb);H.add(...$3,...q3,...K3);Ph=class extends St{constructor(){let e={name:"webgpu",type:Ue.WEBGPU,systems:yb,renderPipes:vb,renderPipeAdaptors:wb};super(e)}}});var kn,Eb=p(()=>{P();ce();Hi();Ca();Aa();Ys();Vi();Qd();br();mt();kn=class{contextChange(e){let t=new Te({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),r=e.limits.maxBatchableTextures,s=Ni({name:"graphics",bits:[Ea,Ma(r),Ra,Wi]});this.shader=new Ke({glProgram:s,resources:{localUniforms:t,batchSamplers:Da(r)}})}execute(e,t){let r=t.context,s=r.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(r);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let l=c.instructions;for(let d=0;d<c.instructionSize;d++){let h=l[d];if(h.size){for(let u=0;u<h.textures.count;u++)n.texture.bind(h.textures.textures[u],u);n.geometry.draw(h.topology,h.size,h.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};kn.extension={type:[_.WebGLPipesAdaptor],name:"graphics"}});var Bn,Cb=p(()=>{P();ce();Hi();Ys();Vi();Ld();br();ge();he();Bn=class{init(){let e=Ni({name:"mesh",bits:[Ra,_1,Wi]});this._shader=new Ke({glProgram:e,resources:{uTexture:U.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(e,t){let r=e.renderer,s=t._shader;if(s){if(!s.glProgram){O("Mesh shader has no glProgram",t.shader);return}}else{s=this._shader;let n=t.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=r.globalUniforms.bindGroup,s.groups[101]=e.localUniformsBindGroup,r.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Bn.extension={type:[_.WebGLPipesAdaptor],name:"mesh"}});var In,Pb=p(()=>{P();It();In=class{constructor(){this._tempState=De.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,t,r){let s=e.renderer,n=this._didUploadHash[r.uid];s.shader.bind(r,n),n||(this._didUploadHash[r.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(t,r.glProgram)}execute(e,t){let r=e.renderer;this._tempState.blendMode=t.blendMode,r.state.set(this._tempState);let s=t.textures.textures;for(let n=0;n<t.textures.count;n++)r.texture.bind(s[n],n);r.geometry.draw(t.topology,t.size,t.start)}};In.extension={type:[_.WebGLPipesAdaptor],name:"batch"}});var Gn,Mb=p(()=>{"use strict";Gn=(i=>(i[i.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",i[i.ARRAY_BUFFER=34962]="ARRAY_BUFFER",i[i.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",i))(Gn||{})});var ec,Ab=p(()=>{"use strict";ec=class{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}});var Fn,Rb=p(()=>{P();Gt();sr();Mb();Ab();Fn=class{constructor(e){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._managedBuffers=new Re({renderer:e,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,r=this.getGlBuffer(e);t.bindBuffer(r.type,r.buffer)}bindBufferBase(e,t){let{_gl:r}=this;this._boundBufferBases[t]!==e&&(this._boundBufferBases[t]=e,e._lastBindBaseLocation=t,r.bindBufferBase(r.UNIFORM_BUFFER,t,e.buffer))}nextBindBase(e){this._bindCallId++,this._minBaseLocation=0,e&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(e){let t=this.getLastBindBaseLocation(e);if(t>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,t;let r=0,s=this._nextBindBaseIndex;for(;r<2;){s>=this._maxBindings&&(s=this._minBaseLocation,r++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return t=s,this._nextBindBaseIndex=s+1,r>=2?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[t]=null,t)}getLastBindBaseLocation(e){let t=e._lastBindBaseLocation;return this._boundBufferBases[t]===e?t:-1}bindBufferRange(e,t,r,s){let{_gl:n}=this;r||(r=0),t||(t=0),this._boundBufferBases[t]=null,n.bindBufferRange(n.UNIFORM_BUFFER,t||0,e.buffer,r*256,s||256)}updateBuffer(e){let{_gl:t}=this,r=this.getGlBuffer(e);if(e._updateID===r.updateID)return r;r.updateID=e._updateID,t.bindBuffer(r.type,r.buffer);let s=e.data,n=e.descriptor.usage&J.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;return s?r.byteLength>=s.byteLength?t.bufferSubData(r.type,e._updateOffset,s,e._updateOffset/s.BYTES_PER_ELEMENT,(e._updateSize||s.byteLength)/s.BYTES_PER_ELEMENT):(r.byteLength=s.byteLength,t.bufferData(r.type,s,n)):(r.byteLength=e.descriptor.size,t.bufferData(r.type,r.byteLength,n)),r}destroyAll(e=!1){this._managedBuffers.removeAll(e)}onBufferUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];r&&(t||this._gl.deleteBuffer(r.buffer))}createGLBuffer(e){let{_gl:t}=this,r=Gn.ARRAY_BUFFER;e.descriptor.usage&J.INDEX?r=Gn.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&J.UNIFORM&&(r=Gn.UNIFORM_BUFFER);let s=new ec(t.createBuffer(),r);return e._gpuData[this._renderer.uid]=s,this._managedBuffers.add(e),s}resetState(){this._boundBufferBases=Object.create(null)}};Fn.extension={type:[_.WebGLSystem],name:"buffer"}});var Mh,Bb,Ib=p(()=>{be();P();he();Mh=class kb{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(e){e={...kb.defaultOptions,...e};let t=this.multiView=e.multiView;if(e.context&&t&&(O("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),t=!1),t?this.canvas=z.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,e.context)this.initFromContext(e.context);else{let r=this._renderer.background.alpha<1,s=e.premultipliedAlpha??!0,n=e.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(e.preferWebGLVersion,{alpha:r,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&O("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:t}=this;(t.width<e.width||t.height<e.height)&&(t.width=Math.max(e.width,e.width),t.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof z.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let r,s=this.canvas;if(e===2&&(r=s.getContext("webgl2",t)),!r&&(r=s.getContext("webgl",t),!r))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let r=e.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&O("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,s=this.webGLVersion===2,n=this.extensions;r.uint32Indices=s||!!n.uint32ElementIndex,r.uniformBufferObject=s,r.vertexArrayObject=s||!!n.vertexArrayObject,r.srgbTextures=s||!!n.srgb,r.nonPowOf2wrapping=s,r.nonPowOf2mipmaps=s,r.msaa=s,r.uint32Indices||O("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Mh.extension={type:[_.WebGLSystem],name:"context"};Mh.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};Bb=Mh});var tc,Un,le,rc=p(()=>{"use strict";tc=(i=>(i[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i))(tc||{}),Un=(i=>(i[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i))(Un||{}),le=(i=>(i[i.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",i[i.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",i[i.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",i[i.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",i[i.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",i[i.UNSIGNED_INT=5125]="UNSIGNED_INT",i[i.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",i[i.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",i[i.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",i[i.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",i[i.BYTE=5120]="BYTE",i[i.SHORT=5122]="SHORT",i[i.INT=5124]="INT",i[i.FLOAT=5126]="FLOAT",i[i.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",i[i.HALF_FLOAT=36193]="HALF_FLOAT",i))(le||{})});function Fb(i){return Gb[i]??Gb.float32}var Gb,Ub=p(()=>{rc();Gb={uint8x2:le.UNSIGNED_BYTE,uint8x4:le.UNSIGNED_BYTE,sint8x2:le.BYTE,sint8x4:le.BYTE,unorm8x2:le.UNSIGNED_BYTE,unorm8x4:le.UNSIGNED_BYTE,snorm8x2:le.BYTE,snorm8x4:le.BYTE,uint16x2:le.UNSIGNED_SHORT,uint16x4:le.UNSIGNED_SHORT,sint16x2:le.SHORT,sint16x4:le.SHORT,unorm16x2:le.UNSIGNED_SHORT,unorm16x4:le.UNSIGNED_SHORT,snorm16x2:le.SHORT,snorm16x4:le.SHORT,float16x2:le.HALF_FLOAT,float16x4:le.HALF_FLOAT,float32:le.FLOAT,float32x2:le.FLOAT,float32x3:le.FLOAT,float32x4:le.FLOAT,uint32:le.UNSIGNED_INT,uint32x2:le.UNSIGNED_INT,uint32x3:le.UNSIGNED_INT,uint32x4:le.UNSIGNED_INT,sint32:le.INT,sint32x2:le.INT,sint32x3:le.INT,sint32x4:le.INT}});var Z3,Ah,Dn,Db=p(()=>{P();Gt();mr();yh();Ub();Z3={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},Ah=class{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}},Dn=class{constructor(e){this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new Re({renderer:e,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");this.destroyAll(!0);let t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=s=>t.bindVertexArrayOES(s),e.deleteVertexArray=s=>t.deleteVertexArrayOES(s));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(e.drawArraysInstanced=(s,n,o,a)=>{r.drawArraysInstancedANGLE(s,n,o,a)},e.drawElementsInstanced=(s,n,o,a,c)=>{r.drawElementsInstancedANGLE(s,n,o,a,c)},e.vertexAttribDivisor=(s,n)=>r.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null}bind(e,t){let r=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let r=0;r<e.buffers.length;r++){let s=e.buffers[r];t.updateBuffer(s)}e._gcLastUsed=this._renderer.gc.now}checkCompatibility(e,t){let r=e.attributes,s=t._attributeData;for(let n in s)if(!r[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(e,t){let r=e.attributes,s=t._attributeData,n=["g",e.uid];for(let o in r)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(e,t){return e._gpuData[this._renderer.uid]?.vaoCache[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,r=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let o=this.getSignature(e,t),a=e._gpuData[this._renderer.uid];a||(a=new Ah,e._gpuData[this._renderer.uid]=a,this._managedGeometries.add(e));let c=a.vaoCache,l=c[o];if(l)return c[t._key]=l,l;Cn(e,t._attributeData);let d=e.buffers;l=s.createVertexArray(),s.bindVertexArray(l);for(let h=0;h<d.length;h++){let u=d[h];n.bind(u)}return this.activateVao(e,t),c[t._key]=l,c[o]=l,s.bindVertexArray(null),l}onGeometryUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];if(!r)return;let s=r.vaoCache;if(!t)for(let n in s)this._activeVao!==s[n]&&this.resetState(),this.gl.deleteVertexArray(s[n])}destroyAll(e=!1){this._managedGeometries.removeAll(e)}activateVao(e,t){let r=this._renderer.gl,s=this._renderer.buffer,n=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let o=null;for(let a in n){let c=n[a],l=c.buffer,d=s.getGlBuffer(l),h=t._attributeData[a];if(h){o!==d&&(s.bind(l),o=d);let u=h.location;r.enableVertexAttribArray(u);let f=qe(c.format),m=Fb(c.format);if(h.format?.substring(1,4)==="int"?r.vertexAttribIPointer(u,f.size,m,c.stride,c.offset):r.vertexAttribPointer(u,f.size,m,f.normalised,c.stride,c.offset),c.instance)if(this.hasInstance){let g=c.divisor??1;r.vertexAttribDivisor(u,g)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,r,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=Z3[e||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let c=o.indexBuffer.data.BYTES_PER_ELEMENT,l=c===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s!==1?n.drawElementsInstanced(a,t||o.indexBuffer.data.length,l,(r||0)*c,s):n.drawElements(a,t||o.indexBuffer.data.length,l,(r||0)*c)}else s!==1?n.drawArraysInstanced(a,r||0,t||o.vertexCount,s):n.drawArrays(a,r||0,t||o.vertexCount);return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Dn.extension={type:[_.WebGLSystem],name:"geometry"}});var Q3,Rh,Ob,Nb=p(()=>{P();he();zr();br();It();je();ge();Hr();Q3=new ct({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),Rh=class Lb{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:t,antialias:r}={...Lb.defaultOptions,...e};this.useBackBuffer=t,this._antialias=r,this._renderer.context.supports.msaa||(O("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=De.for2d();let s=new yt({vertex:`
752
752
  attribute vec2 aPosition;
753
753
  out vec2 vUv;
754
754
 
@@ -767,15 +767,15 @@ fn mainFragment(
767
767
 
768
768
  void main() {
769
769
  finalColor = texture(uTexture, vUv);
770
- }`,name:"big-triangle"});this._bigTriangleShader=new te({glProgram:s,resources:{uTexture:F.WHITE.source}})}renderStart(t){let e=this._renderer.renderTarget.getRenderTarget(t.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!e.isRoot,this._useBackBufferThisRender){let r=this._renderer.renderTarget.getRenderTarget(t.target);this._targetTexture=r.colorTexture,t.target=this._getBackBufferTexture(r.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let t=this._renderer;t.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(t.renderTarget.bind({target:this._targetTexture,clear:!1}),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,t.encoder.draw({geometry:OT,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(t){return this._backBufferTexture=this._backBufferTexture||new F({source:new st({width:t.width,height:t.height,resolution:t._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(t.width,t.height,t._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};vu.extension={type:[y.WebGLSystem],name:"backBuffer",priority:1};vu.defaultOptions={useBackBuffer:!1};Ey=vu});var On,My=p(()=>{P();On=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.gl.colorMask(!!(t&8),!!(t&4),!!(t&2),!!(t&1)))}};On.extension={type:[y.WebGLSystem],name:"colorMask"}});var Nn,Ay=p(()=>{P();Nn=class{constructor(t){this.commandFinished=Promise.resolve(),this._renderer=t}setGeometry(t,e){this._renderer.geometry.bind(t,e.glProgram)}finishRenderPass(){}draw(t){let e=this._renderer,{geometry:r,shader:s,state:n,skipSync:o,topology:a,size:l,start:c,instanceCount:h}=t;e.shader.bind(s,o),e.geometry.bind(r,e.shader._activeProgram),n&&e.state.set(n),e.geometry.draw(a,l,c,h??r.instanceCount)}destroy(){this._renderer=null}};Nn.extension={type:[y.WebGLSystem],name:"encoder"}});var zn,Ry=p(()=>{P();zh();zn=class{constructor(t){this._renderer=t}contextChange(){let t=this._renderer.gl;this.maxTextures=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=Pa(this.maxTextures,t);let e=this._renderer.context.webGLVersion===2;this.maxUniformBindings=e?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0}destroy(){}};zn.extension={type:[y.WebGLSystem],name:"limits"}});var Hn,ky=p(()=>{P();du();$r();Hn=class{constructor(t){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:vt.NONE},this._renderTargetStencilState=Object.create(null),t.renderTarget.onRenderTargetChange.add(this)}contextChange(t){this._gl=t,this._comparisonFuncMapping={always:t.ALWAYS,never:t.NEVER,equal:t.EQUAL,"not-equal":t.NOTEQUAL,less:t.LESS,"less-equal":t.LEQUAL,greater:t.GREATER,"greater-equal":t.GEQUAL},this._stencilOpsMapping={keep:t.KEEP,zero:t.ZERO,replace:t.REPLACE,invert:t.INVERT,"increment-clamp":t.INCR,"decrement-clamp":t.DECR,"increment-wrap":t.INCR_WRAP,"decrement-wrap":t.DECR_WRAP},this.resetState()}onRenderTargetChange(t){if(this._activeRenderTarget===t)return;this._activeRenderTarget=t;let e=this._renderTargetStencilState[t.uid];e||(e=this._renderTargetStencilState[t.uid]={stencilMode:vt.DISABLED,stencilReference:0}),this.setStencilMode(e.stencilMode,e.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=vt.NONE,this._stencilCache.stencilReference=0}setStencilMode(t,e){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=We[t],o=this._stencilCache;if(r.stencilMode=t,r.stencilReference=e,t===vt.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(t!==o.stencilMode||o.stencilReference!==e)&&(o.stencilMode=t,o.stencilReference=e,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],e,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};Hn.extension={type:[y.WebGLSystem],name:"stencil"}});function By(i){let t=i.map(n=>({data:n,offset:0,size:0})),e=16,r=0,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(r=Wn[o.data.type],!r)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(r=Math.max(r,e)*o.data.size);let a=r===12?16:r;o.size=r;let l=s%e;l>0&&e-l<a?s+=(e-l)%16:s+=(r-l%r)%r,o.offset=s,s+=r}return s=Math.ceil(s/16)*16,{uboElements:t,size:s}}var Wn,Za=p(()=>{"use strict";Wn={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,u32:4,"vec2<u32>":8,"vec3<u32>":12,"vec4<u32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function Iy(i,t){let e=Math.max(Wn[i.data.type]/16,1),r=i.data.value.length/i.data.size,s=(4-r%4)%4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
770
+ }`,name:"big-triangle"});this._bigTriangleShader=new Ke({glProgram:s,resources:{uTexture:U.WHITE.source}})}renderStart(e){let t=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!t.isRoot,this._useBackBufferThisRender){let r=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=r.colorTexture,e.target=this._getBackBufferTexture(r.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let e=this._renderer;e.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(e.renderTarget.bind({target:this._targetTexture,clear:!1}),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,e.encoder.draw({geometry:Q3,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new U({source:new oe({width:e.width,height:e.height,resolution:e._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(e.width,e.height,e._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};Rh.extension={type:[_.WebGLSystem],name:"backBuffer",priority:1};Rh.defaultOptions={useBackBuffer:!1};Ob=Rh});var Ln,Hb=p(()=>{P();Ln=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(e&8),!!(e&4),!!(e&2),!!(e&1)))}};Ln.extension={type:[_.WebGLSystem],name:"colorMask"}});var On,zb=p(()=>{P();On=class{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,t){this._renderer.geometry.bind(e,t.glProgram)}finishRenderPass(){}draw(e){let t=this._renderer,{geometry:r,shader:s,state:n,skipSync:o,topology:a,size:c,start:l,instanceCount:d}=e;t.shader.bind(s,o),t.geometry.bind(r,t.shader._activeProgram),n&&t.state.set(n),t.geometry.draw(a,c,l,d??r.instanceCount)}destroy(){this._renderer=null}};On.extension={type:[_.WebGLSystem],name:"encoder"}});var Nn,Wb=p(()=>{P();Kd();Nn=class{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=Ia(this.maxTextures,e);let t=this._renderer.context.webGLVersion===2;this.maxUniformBindings=t?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0}destroy(){}};Nn.extension={type:[_.WebGLSystem],name:"limits"}});var Hn,Vb=p(()=>{P();vh();qr();Hn=class{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:ve.NONE},this._renderTargetStencilState=Object.create(null),e.renderTarget.onRenderTargetChange.add(this)}contextChange(e){this._gl=e,this._comparisonFuncMapping={always:e.ALWAYS,never:e.NEVER,equal:e.EQUAL,"not-equal":e.NOTEQUAL,less:e.LESS,"less-equal":e.LEQUAL,greater:e.GREATER,"greater-equal":e.GEQUAL},this._stencilOpsMapping={keep:e.KEEP,zero:e.ZERO,replace:e.REPLACE,invert:e.INVERT,"increment-clamp":e.INCR,"decrement-clamp":e.DECR,"increment-wrap":e.INCR_WRAP,"decrement-wrap":e.DECR_WRAP},this.resetState()}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:ve.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=ve.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,t){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=jt[e],o=this._stencilCache;if(r.stencilMode=e,r.stencilReference=t,e===ve.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(e!==o.stencilMode||o.stencilReference!==t)&&(o.stencilMode=e,o.stencilReference=t,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],t,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};Hn.extension={type:[_.WebGLSystem],name:"stencil"}});function jb(i){let e=i.map(n=>({data:n,offset:0,size:0})),t=16,r=0,s=0;for(let n=0;n<e.length;n++){let o=e[n];if(r=zn[o.data.type],!r)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(r=Math.max(r,t)*o.data.size);let a=r===12?16:r;o.size=r;let c=s%t;c>0&&t-c<a?s+=(t-c)%16:s+=(r-c%r)%r,o.offset=s,s+=r}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}var zn,ic=p(()=>{"use strict";zn={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,u32:4,"vec2<u32>":8,"vec3<u32>":12,"vec4<u32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function Xb(i,e){let t=Math.max(zn[i.data.type]/16,1),r=i.data.value.length/i.data.size,s=(4-r%4)%4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
771
771
  v = uv.${i.data.name};
772
- offset += ${t};
772
+ offset += ${e};
773
773
 
774
774
  arrayOffset = offset;
775
775
 
776
776
  t = 0;
777
777
 
778
- for(var i=0; i < ${i.data.size*e}; i++)
778
+ for(var i=0; i < ${i.data.size*t}; i++)
779
779
  {
780
780
  for(var j = 0; j < ${r}; j++)
781
781
  {
@@ -783,37 +783,37 @@ fn mainFragment(
783
783
  }
784
784
  ${s!==0?`arrayOffset += ${s};`:""}
785
785
  }
786
- `}var Gy=p(()=>{Za()});function Fy(i){return za(i,lu,Iy)}var Uy=p(()=>{au();cu();Gy()});var Jr,Su=p(()=>{P();Oa();Za();Uy();Jr=class extends br{constructor(){super({createUboElements:By,generateUboSync:Fy})}};Jr.extension={type:[y.WebGLSystem],name:"ubo"}});var Qa,Dy=p(()=>{"use strict";Qa=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this._attachedMipLevel=0,this._attachedLayer=0,this.msaaRenderBuffer=[]}}});var Ja,Ly=p(()=>{Yt();ht();fr();Bi();Dy();Ja=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0}init(t,e){this._renderer=t,this._renderTargetSystem=e,t.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0;let t=this._renderer.gl;this._drawBuffersCache=[];for(let e=1;e<=16;e++)this._drawBuffersCache[e]=Array.from({length:e},(r,s)=>t.COLOR_ATTACHMENT0+s)}copyToTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer,l=o.getGpuRenderTarget(t),c=a.gl;return this.finishRenderPass(t),c.bindFramebuffer(c.FRAMEBUFFER,l.resolveTargetFramebuffer),this._boundFramebuffer=l.resolveTargetFramebuffer,a.texture.bind(e,0),c.copyTexSubImage2D(c.TEXTURE_2D,0,n.x,n.y,r.x,r.y,s.width,s.height),e}copyDepthTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer.gl;this.finishRenderPass(t);let l=o.getRenderTarget(e),c=o.getGpuRenderTarget(t),h=o.getGpuRenderTarget(l);a.bindFramebuffer(a.READ_FRAMEBUFFER,c.framebuffer),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,h.framebuffer),this._boundFramebuffer=void 0,a.blitFramebuffer(r.x,r.y,r.x+s.width,r.y+s.height,n.x,n.y,n.x+s.width,n.y+s.height,a.DEPTH_BUFFER_BIT,a.NEAREST)}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to array layers requires WebGL2.");if(n>0){if(l.msaa)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to mip levels requires WebGL2.")}t.colorAttachments.forEach(d=>{this._renderer.texture.unbind(d.texture)});let c=this._renderer.gl;this.bindFramebuffer(l.framebuffer),!t.isRoot&&t.colorAttachments.length>0&&(l._attachedMipLevel!==n||l._attachedLayer!==o)&&(t.colorAttachments.forEach((d,f)=>{let m=d.texture,g=this._renderer.texture.getGlSource(m);if(g.target===c.TEXTURE_2D){if(o!==0)throw new Error("[RenderTargetSystem] layer must be 0 when rendering to 2D textures in WebGL.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_2D,g.texture,n)}else if(g.target===c.TEXTURE_2D_ARRAY){if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to 2D array textures requires WebGL2.");c.framebufferTextureLayer(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,g.texture,n,o)}else if(g.target===c.TEXTURE_CUBE_MAP){if(o<0||o>5)throw new Error("[RenderTargetSystem] Cube map layer must be between 0 and 5.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_CUBE_MAP_POSITIVE_X+o,g.texture,n)}else throw new Error("[RenderTargetSystem] Unsupported texture target for render-to-layer in WebGL.")}),l._attachedMipLevel=n,l._attachedLayer=o),l.framebuffer&&(t.depthStencilAttachment?this._attachDepthStencilTexture(t,n,o):!l.depthStencilRenderBuffer&&(t.stencil||t.depth)&&this._initStencil(l)),t.colorAttachments.length>1&&this._setDrawBuffers(t,c);let h=s.y;t.isRoot&&(h=t.pixelHeight-s.height-s.y);let u=this._viewPortCache;(u.x!==s.x||u.y!==h||u.width!==s.width||u.height!==s.height)&&(u.x=s.x,u.y=h,u.width=s.width,u.height=s.height,c.viewport(s.x,h,s.width,s.height)),this.clear(t,e,r)}finishRenderPass(t){let r=this._renderTargetSystem.getGpuRenderTarget(t);if(!r.msaa||t.colorAttachments.length===0)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,r.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,r.framebuffer),s.blitFramebuffer(0,0,r.width,r.height,0,0,r.width,r.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,r.framebuffer),this._boundFramebuffer=r.framebuffer}initGpuRenderTarget(t){let r=this._renderer.gl,s=new Qa;s._attachedMipLevel=0,s._attachedLayer=0;let n=t.colorTexture;return n instanceof Tt?(this._renderer.context.ensureCanvasSize(n.resource),s.framebuffer=null,s):(s.width=t.pixelWidth,s.height=t.pixelHeight,t.colorAttachments.length===0?this._initDepth(t,s):this._initColor(t,s),t.depthStencilAttachment&&this._attachDepthStencilTexture(t,0,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this._boundFramebuffer=null,s)}destroyGpuRenderTarget(t){let e=this._renderer.gl;t.framebuffer&&(e.deleteFramebuffer(t.framebuffer),t.framebuffer=null),t.resolveTargetFramebuffer&&(e.deleteFramebuffer(t.resolveTargetFramebuffer),t.resolveTargetFramebuffer=null),t.depthStencilRenderBuffer&&(e.deleteRenderbuffer(t.depthStencilRenderBuffer),t.depthStencilRenderBuffer=null),t.msaaRenderBuffer.forEach(r=>{e.deleteRenderbuffer(r)}),t.msaaRenderBuffer=null}clear(t,e,r,s,n=0,o=0){if(!e)return;if(o!==0)throw new Error("[RenderTargetSystem] Clearing array layers is not supported in WebGL renderer.");let a=this._renderTargetSystem;if(typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE),t.colorAttachments.length===0&&(e&=~Et.COLOR,!e))return;let l=this._renderer.gl,c=!!(e&Et.DEPTH)&&!this._renderer.state.depthMaskEnabled;if(e&Et.COLOR){r??(r=a.defaultClearColor);let h=this._clearColorCache,u=r;(h[0]!==u[0]||h[1]!==u[1]||h[2]!==u[2]||h[3]!==u[3])&&(h[0]=u[0],h[1]=u[1],h[2]=u[2],h[3]=u[3],l.clearColor(u[0],u[1],u[2],u[3]))}c&&l.depthMask(!0),l.clear(e),c&&l.depthMask(!1)}resizeGpuRenderTarget(t){if(t.isRoot)return;let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.pixelWidth,e.height=t.pixelHeight,t.colorAttachments.length>0&&this._resizeColor(t,e),e.depthStencilRenderBuffer&&this._resizeStencil(e),this._boundFramebuffer=void 0}_initColor(t,e){let r=this._renderer,s=r.gl,n=s.createFramebuffer();if(e.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.colorAttachments.forEach((a,l)=>{let c=a.texture;c.antialias&&(r.context.supports.msaa?e.msaa=!0:L("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(c,0);let h=r.texture.getGlSource(c),u=h.texture;if(h.target===s.TEXTURE_2D)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_2D,u,0);else if(h.target===s.TEXTURE_2D_ARRAY){if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] TEXTURE_2D_ARRAY requires WebGL2.");s.framebufferTextureLayer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,u,0,0)}else if(h.target===s.TEXTURE_CUBE_MAP)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_CUBE_MAP_POSITIVE_X,u,0);else throw new Error("[RenderTargetSystem] Unsupported texture target for framebuffer attachment.")}),e.msaa){let a=s.createFramebuffer();e.framebuffer=a,s.bindFramebuffer(s.FRAMEBUFFER,a),t.colorAttachments.forEach((l,c)=>{let h=s.createRenderbuffer();e.msaaRenderBuffer[c]=h})}else e.framebuffer=n;this._resizeColor(t,e)}_initDepth(t,e){let r=this._renderer;if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Depth-only render targets require WebGL2.");let s=r.gl,n=s.createFramebuffer();e.resolveTargetFramebuffer=n,e.framebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),s.drawBuffers([s.NONE]),s.readBuffer(s.NONE)}_resizeColor(t,e){let r=t.colorAttachments[0].texture;if(e._attachedMipLevel=0,e._attachedLayer=0,t.colorAttachments.forEach((s,n)=>{n!==0&&s.texture.resize(r.width,r.height,r._resolution)}),e.msaa){let s=this._renderer,n=s.gl,o=e.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),t.colorAttachments.forEach((a,l)=>{let c=a.texture;s.texture.bindSource(c,0);let u=s.texture.getGlSource(c).internalFormat,d=e.msaaRenderBuffer[l];n.bindRenderbuffer(n.RENDERBUFFER,d),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,u,c.pixelWidth,c.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+l,n.RENDERBUFFER,d)})}}_attachDepthStencilTexture(t,e,r){let s=this._renderer,n=s.gl,o=t.depthStencilAttachment.texture,a=s.texture.getGlSource(o),l=a.texture,c=o.format,h;c==="depth24plus-stencil8"||c==="depth32float-stencil8"?h=n.DEPTH_STENCIL_ATTACHMENT:c==="stencil8"?h=n.STENCIL_ATTACHMENT:h=n.DEPTH_ATTACHMENT,a.target===n.TEXTURE_2D?n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_2D,l,e):a.target===n.TEXTURE_2D_ARRAY?n.framebufferTextureLayer(n.FRAMEBUFFER,h,l,e,r):a.target===n.TEXTURE_CUBE_MAP&&n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_CUBE_MAP_POSITIVE_X+r,l,e)}_initStencil(t){if(t.framebuffer===null)return;let e=this._renderer.gl,r=e.createRenderbuffer();t.depthStencilRenderBuffer=r,e.bindRenderbuffer(e.RENDERBUFFER,r),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,r),this._resizeStencil(t)}_resizeStencil(t){let e=this._renderer.gl;e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilRenderBuffer),t.msaa?e.renderbufferStorageMultisample(e.RENDERBUFFER,4,e.DEPTH24_STENCIL8,t.width,t.height):e.renderbufferStorage(e.RENDERBUFFER,this._renderer.context.webGLVersion===2?e.DEPTH24_STENCIL8:e.DEPTH_STENCIL,t.width,t.height)}prerender(t){if(t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture.resource;this._renderer.context.multiView&&Tt.test(e)&&this._renderer.context.ensureCanvasSize(e)}postrender(t){if(!this._renderer.context.multiView||t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture;if(Tt.test(e.resource)){let r=this._renderer.context.canvas,s=e;s.context2D.drawImage(r,0,s.pixelHeight-r.height)}}_setDrawBuffers(t,e){let r=t.colorAttachments.length,s=this._drawBuffersCache[r];if(this._renderer.context.webGLVersion===1){let n=this._renderer.context.extensions.drawBuffers;n?n.drawBuffersWEBGL(s):L("[RenderTexture] This WebGL1 context does not support rendering to multiple targets")}else e.drawBuffers(s)}resetState(){this._boundFramebuffer=void 0,this._viewPortCache=new J,this._clearColorCache=[0,0,0,0]}bindFramebuffer(t){this._boundFramebuffer!==t&&(this._boundFramebuffer=t,this._renderer.gl.bindFramebuffer(this._renderer.gl.FRAMEBUFFER,t))}}});var Vn,Oy=p(()=>{P();Wa();Ly();Vn=class extends Sr{constructor(t){super(t),this.adaptor=new Ja,this.adaptor.init(t,this)}resetState(){this.adaptor.resetState()}};Vn.extension={type:[y.WebGLSystem],name:"renderTarget"}});var Ki,Tu=p(()=>{Ht();Ft();Ki=class extends ut{constructor(t,e){super(),this._resourceType="textureView",this._resourceId=$("resource"),this._touched=0,this.source=t,this.viewDescriptor=e,this._onChange=this._onChange.bind(this),this._onDestroy=this._onDestroy.bind(this),this.source.on("change",this._onChange),this.source.on("destroy",this._onDestroy)}_onChange(){this.emit("change",this)}_onDestroy(){this.destroy()}get destroyed(){return this.source.destroyed}destroy(){this.source&&(this.source.off("change",this._onChange),this.source.off("destroy",this._onDestroy)),this.emit("destroy",this),this.removeAllListeners()}}});function Ny(i,t){let e=[],r=[`
786
+ `}var Yb=p(()=>{ic()});function $b(i){return Ya(i,bh,Xb)}var qb=p(()=>{gh();xh();Yb()});var ei,kh=p(()=>{P();ja();ic();qb();ei=class extends vr{constructor(){super({createUboElements:jb,generateUboSync:$b})}};ei.extension={type:[_.WebGLSystem],name:"ubo"}});var sc,Kb=p(()=>{"use strict";sc=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this._attachedMipLevel=0,this._attachedLayer=0,this.msaaRenderBuffer=[]}}});var nc,Zb=p(()=>{Ve();he();pr();Ui();Kb();nc=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Q,this._boundFramebuffer=void 0}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Q,this._boundFramebuffer=void 0;let e=this._renderer.gl;this._drawBuffersCache=[];for(let t=1;t<=16;t++)this._drawBuffersCache[t]=Array.from({length:t},(r,s)=>e.COLOR_ATTACHMENT0+s)}copyToTexture(e,t,r,s,n){let o=this._renderTargetSystem,a=this._renderer,c=o.getGpuRenderTarget(e),l=a.gl;return this.finishRenderPass(e),l.bindFramebuffer(l.FRAMEBUFFER,c.resolveTargetFramebuffer),this._boundFramebuffer=c.resolveTargetFramebuffer,a.texture.bind(t,0),l.copyTexSubImage2D(l.TEXTURE_2D,0,n.x,n.y,r.x,r.y,s.width,s.height),t}copyDepthTexture(e,t,r,s,n){let o=this._renderTargetSystem,a=this._renderer.gl;this.finishRenderPass(e);let c=o.getRenderTarget(t),l=o.getGpuRenderTarget(e),d=o.getGpuRenderTarget(c);a.bindFramebuffer(a.READ_FRAMEBUFFER,l.framebuffer),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,d.framebuffer),this._boundFramebuffer=void 0,a.blitFramebuffer(r.x,r.y,r.x+s.width,r.y+s.height,n.x,n.y,n.x+s.width,n.y+s.height,a.DEPTH_BUFFER_BIT,a.NEAREST)}startRenderPass(e,t=!0,r,s,n=0,o=0){let c=this._renderTargetSystem.getGpuRenderTarget(e);if(o!==0&&this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to array layers requires WebGL2.");if(n>0){if(c.msaa)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to mip levels requires WebGL2.")}e.colorAttachments.forEach(u=>{this._renderer.texture.unbind(u.texture)});let l=this._renderer.gl;this.bindFramebuffer(c.framebuffer),!e.isRoot&&e.colorAttachments.length>0&&(c._attachedMipLevel!==n||c._attachedLayer!==o)&&(e.colorAttachments.forEach((u,f)=>{let m=u.texture,g=this._renderer.texture.getGlSource(m);if(g.target===l.TEXTURE_2D){if(o!==0)throw new Error("[RenderTargetSystem] layer must be 0 when rendering to 2D textures in WebGL.");l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0+f,l.TEXTURE_2D,g.texture,n)}else if(g.target===l.TEXTURE_2D_ARRAY){if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to 2D array textures requires WebGL2.");l.framebufferTextureLayer(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0+f,g.texture,n,o)}else if(g.target===l.TEXTURE_CUBE_MAP){if(o<0||o>5)throw new Error("[RenderTargetSystem] Cube map layer must be between 0 and 5.");l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0+f,l.TEXTURE_CUBE_MAP_POSITIVE_X+o,g.texture,n)}else throw new Error("[RenderTargetSystem] Unsupported texture target for render-to-layer in WebGL.")}),c._attachedMipLevel=n,c._attachedLayer=o),c.framebuffer&&(e.depthStencilAttachment?this._attachDepthStencilTexture(e,n,o):!c.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(c)),e.colorAttachments.length>1&&this._setDrawBuffers(e,l);let d=s.y;e.isRoot&&(d=e.pixelHeight-s.height-s.y);let h=this._viewPortCache;(h.x!==s.x||h.y!==d||h.width!==s.width||h.height!==s.height)&&(h.x=s.x,h.y=d,h.width=s.width,h.height=s.height,l.viewport(s.x,d,s.width,s.height)),this.clear(e,t,r)}finishRenderPass(e){let r=this._renderTargetSystem.getGpuRenderTarget(e);if(!r.msaa||e.colorAttachments.length===0)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,r.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,r.framebuffer),s.blitFramebuffer(0,0,r.width,r.height,0,0,r.width,r.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,r.framebuffer),this._boundFramebuffer=r.framebuffer}initGpuRenderTarget(e){let r=this._renderer.gl,s=new sc;s._attachedMipLevel=0,s._attachedLayer=0;let n=e.colorTexture;return n instanceof Se?(this._renderer.context.ensureCanvasSize(n.resource),s.framebuffer=null,s):(s.width=e.pixelWidth,s.height=e.pixelHeight,e.colorAttachments.length===0?this._initDepth(e,s):this._initColor(e,s),e.depthStencilAttachment&&this._attachDepthStencilTexture(e,0,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this._boundFramebuffer=null,s)}destroyGpuRenderTarget(e){let t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(r=>{t.deleteRenderbuffer(r)}),e.msaaRenderBuffer=null}clear(e,t,r,s,n=0,o=0){if(!t)return;if(o!==0)throw new Error("[RenderTargetSystem] Clearing array layers is not supported in WebGL renderer.");let a=this._renderTargetSystem;if(typeof t=="boolean"&&(t=t?Ee.ALL:Ee.NONE),e.colorAttachments.length===0&&(t&=~Ee.COLOR,!t))return;let c=this._renderer.gl,l=!!(t&Ee.DEPTH)&&!this._renderer.state.depthMaskEnabled;if(t&Ee.COLOR){r??(r=a.defaultClearColor);let d=this._clearColorCache,h=r;(d[0]!==h[0]||d[1]!==h[1]||d[2]!==h[2]||d[3]!==h[3])&&(d[0]=h[0],d[1]=h[1],d[2]=h[2],d[3]=h[3],c.clearColor(h[0],h[1],h[2],h[3]))}l&&c.depthMask(!0),c.clear(t),l&&c.depthMask(!1)}resizeGpuRenderTarget(e){if(e.isRoot)return;let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.pixelWidth,t.height=e.pixelHeight,e.colorAttachments.length>0&&this._resizeColor(e,t),t.depthStencilRenderBuffer&&this._resizeStencil(t),this._boundFramebuffer=void 0}_initColor(e,t){let r=this._renderer,s=r.gl,n=s.createFramebuffer();if(t.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),e.colorAttachments.forEach((a,c)=>{let l=a.texture;l.antialias&&(r.context.supports.msaa?t.msaa=!0:O("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(l,0);let d=r.texture.getGlSource(l),h=d.texture;if(d.target===s.TEXTURE_2D)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+c,s.TEXTURE_2D,h,0);else if(d.target===s.TEXTURE_2D_ARRAY){if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] TEXTURE_2D_ARRAY requires WebGL2.");s.framebufferTextureLayer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+c,h,0,0)}else if(d.target===s.TEXTURE_CUBE_MAP)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+c,s.TEXTURE_CUBE_MAP_POSITIVE_X,h,0);else throw new Error("[RenderTargetSystem] Unsupported texture target for framebuffer attachment.")}),t.msaa){let a=s.createFramebuffer();t.framebuffer=a,s.bindFramebuffer(s.FRAMEBUFFER,a),e.colorAttachments.forEach((c,l)=>{let d=s.createRenderbuffer();t.msaaRenderBuffer[l]=d})}else t.framebuffer=n;this._resizeColor(e,t)}_initDepth(e,t){let r=this._renderer;if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Depth-only render targets require WebGL2.");let s=r.gl,n=s.createFramebuffer();t.resolveTargetFramebuffer=n,t.framebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),s.drawBuffers([s.NONE]),s.readBuffer(s.NONE)}_resizeColor(e,t){let r=e.colorAttachments[0].texture;if(t._attachedMipLevel=0,t._attachedLayer=0,e.colorAttachments.forEach((s,n)=>{n!==0&&s.texture.resize(r.width,r.height,r._resolution)}),t.msaa){let s=this._renderer,n=s.gl,o=t.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),e.colorAttachments.forEach((a,c)=>{let l=a.texture;s.texture.bindSource(l,0);let h=s.texture.getGlSource(l).internalFormat,u=t.msaaRenderBuffer[c];n.bindRenderbuffer(n.RENDERBUFFER,u),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,h,l.pixelWidth,l.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+c,n.RENDERBUFFER,u)})}}_attachDepthStencilTexture(e,t,r){let s=this._renderer,n=s.gl,o=e.depthStencilAttachment.texture,a=s.texture.getGlSource(o),c=a.texture,l=o.format,d;l==="depth24plus-stencil8"||l==="depth32float-stencil8"?d=n.DEPTH_STENCIL_ATTACHMENT:l==="stencil8"?d=n.STENCIL_ATTACHMENT:d=n.DEPTH_ATTACHMENT,a.target===n.TEXTURE_2D?n.framebufferTexture2D(n.FRAMEBUFFER,d,n.TEXTURE_2D,c,t):a.target===n.TEXTURE_2D_ARRAY?n.framebufferTextureLayer(n.FRAMEBUFFER,d,c,t,r):a.target===n.TEXTURE_CUBE_MAP&&n.framebufferTexture2D(n.FRAMEBUFFER,d,n.TEXTURE_CUBE_MAP_POSITIVE_X+r,c,t)}_initStencil(e){if(e.framebuffer===null)return;let t=this._renderer.gl,r=t.createRenderbuffer();e.depthStencilRenderBuffer=r,t.bindRenderbuffer(t.RENDERBUFFER,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,r),this._resizeStencil(e)}_resizeStencil(e){let t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,this._renderer.context.webGLVersion===2?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}prerender(e){if(e.colorAttachments.length===0)return;let t=e.colorAttachments[0].texture.resource;this._renderer.context.multiView&&Se.test(t)&&this._renderer.context.ensureCanvasSize(t)}postrender(e){if(!this._renderer.context.multiView||e.colorAttachments.length===0)return;let t=e.colorAttachments[0].texture;if(Se.test(t.resource)){let r=this._renderer.context.canvas,s=t;s.context2D.drawImage(r,0,s.pixelHeight-r.height)}}_setDrawBuffers(e,t){let r=e.colorAttachments.length,s=this._drawBuffersCache[r];if(this._renderer.context.webGLVersion===1){let n=this._renderer.context.extensions.drawBuffers;n?n.drawBuffersWEBGL(s):O("[RenderTexture] This WebGL1 context does not support rendering to multiple targets")}else t.drawBuffers(s)}resetState(){this._boundFramebuffer=void 0,this._viewPortCache=new Q,this._clearColorCache=[0,0,0,0]}bindFramebuffer(e){this._boundFramebuffer!==e&&(this._boundFramebuffer=e,this._renderer.gl.bindFramebuffer(this._renderer.gl.FRAMEBUFFER,e))}}});var Wn,Qb=p(()=>{P();qa();Zb();Wn=class extends Sr{constructor(e){super(e),this.adaptor=new nc,this.adaptor.init(e,this)}resetState(){this.adaptor.resetState()}};Wn.extension={type:[_.WebGLSystem],name:"renderTarget"}});var es,Bh=p(()=>{Ne();Ie();es=class extends fe{constructor(e,t){super(),this._resourceType="textureView",this._resourceId=Y("resource"),this._touched=0,this.source=e,this.viewDescriptor=t,this._onChange=this._onChange.bind(this),this._onDestroy=this._onDestroy.bind(this),this.source.on("change",this._onChange),this.source.on("destroy",this._onDestroy)}_onChange(){this.emit("change",this)}_onDestroy(){this.destroy()}get destroyed(){return this.source.destroyed}destroy(){this.source&&(this.source.off("change",this._onChange),this.source.off("destroy",this._onDestroy)),this.emit("destroy",this),this.removeAllListeners()}}});function Jb(i,e){let t=[],r=[`
787
787
  var g = s.groups;
788
788
  var sS = r.shader;
789
789
  var p = s.glProgram;
790
790
  var ugS = r.uniformGroup;
791
791
  var resources;
792
- `],s=!1,n=0,o=t._getProgramData(i.glProgram);for(let l in i.groups){let c=i.groups[l];e.push(`
793
- resources = g[${l}].resources;
794
- `);for(let h in c.resources){let u=c.resources[h];if(u instanceof Ct)if(u.ubo){let d=i._uniformBindMap[l][Number(h)];e.push(`
792
+ `],s=!1,n=0,o=e._getProgramData(i.glProgram);for(let c in i.groups){let l=i.groups[c];t.push(`
793
+ resources = g[${c}].resources;
794
+ `);for(let d in l.resources){let h=l.resources[d];if(h instanceof Te)if(h.ubo){let u=i._uniformBindMap[c][Number(d)];t.push(`
795
795
  sS.bindUniformBlock(
796
- resources[${h}],
797
- '${d}',
798
- ${i.glProgram._uniformBlockData[d].index}
796
+ resources[${d}],
797
+ '${u}',
798
+ ${i.glProgram._uniformBlockData[u].index}
799
799
  );
800
- `)}else e.push(`
801
- ugS.updateUniformGroup(resources[${h}], p, sD);
802
- `);else if(u instanceof He){let d=i._uniformBindMap[l][Number(h)];e.push(`
800
+ `)}else t.push(`
801
+ ugS.updateUniformGroup(resources[${d}], p, sD);
802
+ `);else if(h instanceof Vt){let u=i._uniformBindMap[c][Number(d)];t.push(`
803
803
  sS.bindUniformBlock(
804
- resources[${h}],
805
- '${d}',
806
- ${i.glProgram._uniformBlockData[d].index}
804
+ resources[${d}],
805
+ '${u}',
806
+ ${i.glProgram._uniformBlockData[u].index}
807
807
  );
808
- `)}else if(u instanceof st||u instanceof Ki){let d=i._uniformBindMap[l][h],f=o.uniformData[d];f&&(s||(s=!0,r.push(`
808
+ `)}else if(h instanceof oe||h instanceof es){let u=i._uniformBindMap[c][d],f=o.uniformData[u];f&&(s||(s=!0,r.push(`
809
809
  var tS = r.texture;
810
- `)),t._gl.uniform1i(f.location,n),e.push(`
811
- tS.bind(resources[${h}], ${n});
812
- `),n++)}}}let a=[...r,...e].join(`
813
- `);return new Function("r","s","sD",a)}var zy=p(()=>{Cn();me();$t();Tu()});var tl,Hy=p(()=>{"use strict";tl=class{constructor(t,e){this.program=t,this.uniformData=e,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function wu(i,t,e){let r=i.createShader(t);return i.shaderSource(r,e),i.compileShader(r),r}var Wy=p(()=>{"use strict"});function Cu(i){let t=new Array(i);for(let e=0;e<t.length;e++)t[e]=!1;return t}function el(i,t){switch(i){case"float":return 0;case"vec2":return new Float32Array(2*t);case"vec3":return new Float32Array(3*t);case"vec4":return new Float32Array(4*t);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*t);case"ivec3":return new Int32Array(3*t);case"ivec4":return new Int32Array(4*t);case"uvec2":return new Uint32Array(2*t);case"uvec3":return new Uint32Array(3*t);case"uvec4":return new Uint32Array(4*t);case"bool":return!1;case"bvec2":return Cu(2*t);case"bvec3":return Cu(3*t);case"bvec4":return Cu(4*t);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Eu=p(()=>{"use strict"});function Pu(i,t){if(!rl){let e=Object.keys(Vy);rl={};for(let r=0;r<e.length;++r){let s=e[r];rl[i[s]]=Vy[s]}}return rl[t]}function jy(i,t){let e=Pu(i,t);return NT[e]||"float32"}var rl,Vy,NT,Mu=p(()=>{"use strict";rl=null,Vy={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_2D_SHADOW:"sampler2DShadow",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_CUBE_SHADOW:"samplerCubeShadow",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray",SAMPLER_2D_ARRAY_SHADOW:"sampler2DArrayShadow"},NT={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"}});function Xy(i,t,e=!1){let r={},s=t.getProgramParameter(i,t.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=t.getActiveAttrib(i,o);if(a.name.startsWith("gl_"))continue;let l=jy(t,a.type);r[a.name]={location:0,format:l,stride:Jt(l).stride,offset:0,instance:!1,start:0}}let n=Object.keys(r);if(e){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)r[n[o]].location=o,t.bindAttribLocation(i,o,n[o]);t.linkProgram(i)}else for(let o=0;o<n.length;o++)r[n[o]].location=t.getAttribLocation(i,n[o]);return r}var Yy=p(()=>{pr();Mu()});function $y(i,t){if(!t.ACTIVE_UNIFORM_BLOCKS)return{};let e={},r=t.getProgramParameter(i,t.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<r;s++){let n=t.getActiveUniformBlockName(i,s),o=t.getUniformBlockIndex(i,n),a=t.getActiveUniformBlockParameter(i,s,t.UNIFORM_BLOCK_DATA_SIZE);e[n]={name:n,index:o,size:a}}return e}var qy=p(()=>{"use strict"});function Ky(i,t){let e={},r=t.getProgramParameter(i,t.ACTIVE_UNIFORMS);for(let s=0;s<r;s++){let n=t.getActiveUniform(i,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),l=Pu(t,n.type);e[o]={name:o,index:s,type:l,size:n.size,isArray:a,value:el(l,n.size)}}return e}var Zy=p(()=>{Eu();Mu()});function Qy(i,t){let e=i.getShaderSource(t);if(e===null){console.error("PixiJS Error: Could not retrieve shader source (WebGL context may be lost).");return}let r=e.split(`
814
- `).map((h,u)=>`${u}: ${h}`),s=i.getShaderInfoLog(t)??"",n=s.split(`
815
- `),o={},a=n.map(h=>parseFloat(h.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(h=>h&&!o[h]?(o[h]=!0,!0):!1),l=[""];a.forEach(h=>{r[h-1]=`%c${r[h-1]}%c`,l.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let c=r.join(`
816
- `);l[0]=c,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...l),console.groupEnd()}function Jy(i,t,e,r){i.getProgramParameter(t,i.LINK_STATUS)||(i.getShaderParameter(e,i.COMPILE_STATUS)||Qy(i,e),i.getShaderParameter(r,i.COMPILE_STATUS)||Qy(i,r),console.error("PixiJS Error: Could not initialize shader."),i.getProgramInfoLog(t)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",i.getProgramInfoLog(t)))}var tb=p(()=>{"use strict"});function eb(i,t){let e=wu(i,i.VERTEX_SHADER,t.vertex),r=wu(i,i.FRAGMENT_SHADER,t.fragment),s=i.createProgram();i.attachShader(s,e),i.attachShader(s,r);let n=t.transformFeedbackVaryings;n&&(typeof i.transformFeedbackVaryings!="function"?L("TransformFeedback is not supported but TransformFeedbackVaryings are given."):i.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?i.SEPARATE_ATTRIBS:i.INTERLEAVED_ATTRIBS)),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||Jy(i,s,e,r),t._attributeData=Xy(s,i,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(t.vertex)),t._uniformData=Ky(s,i),t._uniformBlockData=$y(s,i),i.deleteShader(e),i.deleteShader(r);let o={};for(let l in t._uniformData){let c=t._uniformData[l];o[l]={location:i.getUniformLocation(s,l),value:el(c.type,c.size)}}return new tl(s,o)}var rb=p(()=>{ht();Hy();Wy();Eu();Yy();qy();Zy();tb()});var il,ti,Au=p(()=>{P();zy();rb();il={textureCount:0,blockIndex:0},ti=class{constructor(t){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=t}contextChange(t){this._gl=t,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(t,e){if(this._setProgram(t.glProgram),e)return;il.textureCount=0,il.blockIndex=0;let r=this._shaderSyncFunctions[t.glProgram._key];r||(r=this._shaderSyncFunctions[t.glProgram._key]=this._generateShaderSync(t,this)),this._renderer.buffer.nextBindBase(!!t.glProgram.transformFeedbackVaryings),r(this._renderer,t,il)}updateUniformGroup(t){this._renderer.uniformGroup.updateUniformGroup(t,this._activeProgram,il)}bindUniformBlock(t,e,r=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=t._bufferResource;o||this._renderer.ubo.updateUniformGroup(t);let a=t.buffer,l=s.updateBuffer(a),c=s.freeLocationForBufferBase(l);if(o){let{offset:u,size:d}=t;u===0&&d===a.data.byteLength?s.bindBufferBase(l,c):s.bindBufferRange(l,c,u)}else s.getLastBindBaseLocation(l)!==c&&s.bindBufferBase(l,c);let h=this._activeProgram._uniformBlockData[e].index;n.uniformBlockBindings[r]!==c&&(n.uniformBlockBindings[r]=c,this._renderer.gl.uniformBlockBinding(n.program,h,c))}_setProgram(t){if(this._activeProgram===t)return;this._activeProgram=t;let e=this._getProgramData(t);this._gl.useProgram(e.program)}_getProgramData(t){return this._programDataHash[t._key]||this._createProgramData(t)}_createProgramData(t){let e=t._key;return this._programDataHash[e]=eb(this._gl,t),this._programDataHash[e]}destroy(){for(let t of Object.keys(this._programDataHash))this._programDataHash[t].destroy();this._programDataHash=null,this._shaderSyncFunctions=null,this._activeProgram=null,this._renderer=null,this._gl=null}_generateShaderSync(t,e){return Ny(t,e)}resetState(){this._activeProgram=null}};ti.extension={type:[y.WebGLSystem],name:"shader"}});var ib,sb,nb=p(()=>{"use strict";ib={f32:`if (cv !== v) {
810
+ `)),e._gl.uniform1i(f.location,n),t.push(`
811
+ tS.bind(resources[${d}], ${n});
812
+ `),n++)}}}let a=[...r,...t].join(`
813
+ `);return new Function("r","s","sD",a)}var ex=p(()=>{Tn();mt();je();Bh()});var oc,tx=p(()=>{"use strict";oc=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function Ih(i,e,t){let r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),r}var rx=p(()=>{"use strict"});function Gh(i){let e=new Array(i);for(let t=0;t<e.length;t++)e[t]=!1;return e}function ac(i,e){switch(i){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"uvec2":return new Uint32Array(2*e);case"uvec3":return new Uint32Array(3*e);case"uvec4":return new Uint32Array(4*e);case"bool":return!1;case"bvec2":return Gh(2*e);case"bvec3":return Gh(3*e);case"bvec4":return Gh(4*e);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Fh=p(()=>{"use strict"});function Uh(i,e){if(!cc){let t=Object.keys(ix);cc={};for(let r=0;r<t.length;++r){let s=t[r];cc[i[s]]=ix[s]}}return cc[e]}function sx(i,e){let t=Uh(i,e);return J3[t]||"float32"}var cc,ix,J3,Dh=p(()=>{"use strict";cc=null,ix={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_2D_SHADOW:"sampler2DShadow",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_CUBE_SHADOW:"samplerCubeShadow",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray",SAMPLER_2D_ARRAY_SHADOW:"sampler2DArrayShadow"},J3={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"}});function nx(i,e,t=!1){let r={},s=e.getProgramParameter(i,e.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=e.getActiveAttrib(i,o);if(a.name.startsWith("gl_"))continue;let c=sx(e,a.type);r[a.name]={location:0,format:c,stride:qe(c).stride,offset:0,instance:!1,start:0}}let n=Object.keys(r);if(t){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)r[n[o]].location=o,e.bindAttribLocation(i,o,n[o]);e.linkProgram(i)}else for(let o=0;o<n.length;o++)r[n[o]].location=e.getAttribLocation(i,n[o]);return r}var ox=p(()=>{mr();Dh()});function ax(i,e){if(!e.ACTIVE_UNIFORM_BLOCKS)return{};let t={},r=e.getProgramParameter(i,e.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<r;s++){let n=e.getActiveUniformBlockName(i,s),o=e.getUniformBlockIndex(i,n),a=e.getActiveUniformBlockParameter(i,s,e.UNIFORM_BLOCK_DATA_SIZE);t[n]={name:n,index:o,size:a}}return t}var cx=p(()=>{"use strict"});function lx(i,e){let t={},r=e.getProgramParameter(i,e.ACTIVE_UNIFORMS);for(let s=0;s<r;s++){let n=e.getActiveUniform(i,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),c=Uh(e,n.type);t[o]={name:o,index:s,type:c,size:n.size,isArray:a,value:ac(c,n.size)}}return t}var dx=p(()=>{Fh();Dh()});function hx(i,e){let t=i.getShaderSource(e);if(t===null){console.error("PixiJS Error: Could not retrieve shader source (WebGL context may be lost).");return}let r=t.split(`
814
+ `).map((d,h)=>`${h}: ${d}`),s=i.getShaderInfoLog(e)??"",n=s.split(`
815
+ `),o={},a=n.map(d=>parseFloat(d.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(d=>d&&!o[d]?(o[d]=!0,!0):!1),c=[""];a.forEach(d=>{r[d-1]=`%c${r[d-1]}%c`,c.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let l=r.join(`
816
+ `);c[0]=l,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...c),console.groupEnd()}function ux(i,e,t,r){i.getProgramParameter(e,i.LINK_STATUS)||(i.getShaderParameter(t,i.COMPILE_STATUS)||hx(i,t),i.getShaderParameter(r,i.COMPILE_STATUS)||hx(i,r),console.error("PixiJS Error: Could not initialize shader."),i.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",i.getProgramInfoLog(e)))}var fx=p(()=>{"use strict"});function px(i,e){let t=Ih(i,i.VERTEX_SHADER,e.vertex),r=Ih(i,i.FRAGMENT_SHADER,e.fragment),s=i.createProgram();i.attachShader(s,t),i.attachShader(s,r);let n=e.transformFeedbackVaryings;n&&(typeof i.transformFeedbackVaryings!="function"?O("TransformFeedback is not supported but TransformFeedbackVaryings are given."):i.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?i.SEPARATE_ATTRIBS:i.INTERLEAVED_ATTRIBS)),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||ux(i,s,t,r),e._attributeData=nx(s,i,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertex)),e._uniformData=lx(s,i),e._uniformBlockData=ax(s,i),i.deleteShader(t),i.deleteShader(r);let o={};for(let c in e._uniformData){let l=e._uniformData[c];o[c]={location:i.getUniformLocation(s,c),value:ac(l.type,l.size)}}return new oc(s,o)}var mx=p(()=>{he();tx();rx();Fh();ox();cx();dx();fx()});var lc,ti,Lh=p(()=>{P();ex();mx();lc={textureCount:0,blockIndex:0},ti=class{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e}contextChange(e){this._gl=e,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;lc.textureCount=0,lc.blockIndex=0;let r=this._shaderSyncFunctions[e.glProgram._key];r||(r=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),this._renderer.buffer.nextBindBase(!!e.glProgram.transformFeedbackVaryings),r(this._renderer,e,lc)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,lc)}bindUniformBlock(e,t,r=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=e._bufferResource;o||this._renderer.ubo.updateUniformGroup(e);let a=e.buffer,c=s.updateBuffer(a),l=s.freeLocationForBufferBase(c);if(o){let{offset:h,size:u}=e;h===0&&u===a.data.byteLength?s.bindBufferBase(c,l):s.bindBufferRange(c,l,h)}else s.getLastBindBaseLocation(c)!==l&&s.bindBufferBase(c,l);let d=this._activeProgram._uniformBlockData[t].index;n.uniformBlockBindings[r]!==l&&(n.uniformBlockBindings[r]=l,this._renderer.gl.uniformBlockBinding(n.program,d,l))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;let t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){let t=e._key;return this._programDataHash[t]=px(this._gl,e),this._programDataHash[t]}destroy(){for(let e of Object.keys(this._programDataHash))this._programDataHash[e].destroy();this._programDataHash=null,this._shaderSyncFunctions=null,this._activeProgram=null,this._renderer=null,this._gl=null}_generateShaderSync(e,t){return Jb(e,t)}resetState(){this._activeProgram=null}};ti.extension={type:[_.WebGLSystem],name:"shader"}});var gx,bx,xx=p(()=>{"use strict";gx={f32:`if (cv !== v) {
817
817
  cu.value = v;
818
818
  gl.uniform1f(location, v);
819
819
  }`,"vec2<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
@@ -885,30 +885,30 @@ fn mainFragment(
885
885
  cv[2] = v[2];
886
886
  cv[3] = v[3];
887
887
  gl.uniform4i(location, v[0], v[1], v[2], v[3]);
888
- }`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},sb={f32:"gl.uniform1fv(location, v);","vec2<f32>":"gl.uniform2fv(location, v);","vec3<f32>":"gl.uniform3fv(location, v);","vec4<f32>":"gl.uniform4fv(location, v);","mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2<i32>":"gl.uniform2iv(location, v);","vec3<i32>":"gl.uniform3iv(location, v);","vec4<i32>":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2<u32>":"gl.uniform2iv(location, v);","vec3<u32>":"gl.uniform3iv(location, v);","vec4<u32>":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2<bool>":"gl.uniform2iv(location, v);","vec3<bool>":"gl.uniform3iv(location, v);","vec4<bool>":"gl.uniform4iv(location, v);"}});function ob(i,t){let e=[`
888
+ }`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},bx={f32:"gl.uniform1fv(location, v);","vec2<f32>":"gl.uniform2fv(location, v);","vec3<f32>":"gl.uniform3fv(location, v);","vec4<f32>":"gl.uniform4fv(location, v);","mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2<i32>":"gl.uniform2iv(location, v);","vec3<i32>":"gl.uniform3iv(location, v);","vec4<i32>":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2<u32>":"gl.uniform2iv(location, v);","vec3<u32>":"gl.uniform3iv(location, v);","vec4<u32>":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2<bool>":"gl.uniform2iv(location, v);","vec3<bool>":"gl.uniform3iv(location, v);","vec4<bool>":"gl.uniform4iv(location, v);"}});function _x(i,e){let t=[`
889
889
  var v = null;
890
890
  var cv = null;
891
891
  var cu = null;
892
892
  var t = 0;
893
893
  var gl = renderer.gl;
894
894
  var name = null;
895
- `];for(let r in i.uniforms){if(!t[r]){i.uniforms[r]instanceof Ct?i.uniforms[r].ubo?e.push(`
895
+ `];for(let r in i.uniforms){if(!e[r]){i.uniforms[r]instanceof Te?i.uniforms[r].ubo?t.push(`
896
896
  renderer.shader.bindUniformBlock(uv.${r}, "${r}");
897
- `):e.push(`
897
+ `):t.push(`
898
898
  renderer.shader.updateUniformGroup(uv.${r});
899
- `):i.uniforms[r]instanceof He&&e.push(`
899
+ `):i.uniforms[r]instanceof Vt&&t.push(`
900
900
  renderer.shader.bindBufferResource(uv.${r}, "${r}");
901
- `);continue}let s=i.uniformStructures[r],n=!1;for(let o=0;o<de.length;o++){let a=de[o];if(s.type===a.type&&a.test(s)){e.push(`name = "${r}";`,de[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?ib:sb)[s.type].replace("location",`ud["${r}"].location`);e.push(`
901
+ `);continue}let s=i.uniformStructures[r],n=!1;for(let o=0;o<lt.length;o++){let a=lt[o];if(s.type===a.type&&a.test(s)){t.push(`name = "${r}";`,lt[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?gx:bx)[s.type].replace("location",`ud["${r}"].location`);t.push(`
902
902
  cu = ud["${r}"];
903
903
  cv = cu.value;
904
904
  v = uv["${r}"];
905
- ${a};`)}}return new Function("ud","uv","renderer","syncData",e.join(`
906
- `))}var ab=p(()=>{Cn();me();wn();nb()});var ei,Ru=p(()=>{P();ab();ei=class{constructor(t){this._cache={},this._uniformGroupSyncHash={},this._renderer=t,this.gl=null,this._cache={}}contextChange(t){this.gl=t}updateUniformGroup(t,e,r){let s=this._renderer.shader._getProgramData(e);(!t.isStatic||t._dirtyId!==s.uniformDirtyGroups[t.uid])&&(s.uniformDirtyGroups[t.uid]=t._dirtyId,this._getUniformSyncFunction(t,e)(s.uniformData,t.uniforms,this._renderer,r))}_getUniformSyncFunction(t,e){return this._uniformGroupSyncHash[t._signature]?.[e._key]||this._createUniformSyncFunction(t,e)}_createUniformSyncFunction(t,e){let r=this._uniformGroupSyncHash[t._signature]||(this._uniformGroupSyncHash[t._signature]={}),s=this._getSignature(t,e._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(t,e._uniformData)),r[e._key]=this._cache[s],r[e._key]}_generateUniformsSync(t,e){return ob(t,e)}_getSignature(t,e,r){let s=t.uniforms,n=[`${r}-`];for(let o in s)n.push(o),e[o]&&n.push(e[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};ei.extension={type:[y.WebGLSystem],name:"uniformGroup"}});function lb(i){let t={};if(t.normal=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t.add=[i.ONE,i.ONE],t.multiply=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.screen=[i.ONE,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.none=[0,0],t["normal-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t["add-npm"]=[i.SRC_ALPHA,i.ONE,i.ONE,i.ONE],t["screen-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.erase=[i.ZERO,i.ONE_MINUS_SRC_ALPHA],!(i instanceof W.get().getWebGLRenderingContext()))t.min=[i.ONE,i.ONE,i.ONE,i.ONE,i.MIN,i.MIN],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,i.MAX,i.MAX];else{let r=i.getExtension("EXT_blend_minmax");r&&(t.min=[i.ONE,i.ONE,i.ONE,i.ONE,r.MIN_EXT,r.MIN_EXT],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,r.MAX_EXT,r.MAX_EXT])}return t}var cb=p(()=>{xt()});var zT,HT,WT,VT,jT,hb,ub,db,fb=p(()=>{P();Be();cb();({BLEND:zT,OFFSET:HT,CULLING:WT,DEPTH_TEST:VT,WINDING:jT,DEPTH_MASK:hb}=nh),ub=class ku{constructor(t){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[zT]=this.setBlend,this.map[HT]=this.setOffset,this.map[WT]=this.setCullFace,this.map[VT]=this.setDepthTest,this.map[jT]=this.setFrontFace,this.map[hb]=this.setDepthMask,this.checks=[],this.defaultState=Ot.for2d(),t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){this._invertFrontFace=!t.isRoot!=!!t.flipY,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(t){this.gl=t,this.blendModesMap=lb(t),this.resetState()}set(t){if(t||(t=this.defaultState),this.stateId!==t.data){let e=this.stateId^t.data,r=0;for(;e;)e&1&&this.map[r].call(this,!!(t.data&1<<r)),e>>=1,r++;this.stateId=t.data}for(let e=0;e<this.checks.length;e++)this.checks[e](this,t)}forceState(t){t||(t=this.defaultState);for(let e=0;e<this.map.length;e++)this.map[e].call(this,!!(t.data&1<<e));for(let e=0;e<this.checks.length;e++)this.checks[e](this,t);this.stateId=t.data}setBlend(t){this._updateCheck(ku._checkBlendMode,t),this.gl[t?"enable":"disable"](this.gl.BLEND)}setOffset(t){this._updateCheck(ku._checkPolygonOffset,t),this.gl[t?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(t){this.gl[t?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(t){this.gl.depthMask(t)}get depthMaskEnabled(){return!!(this.stateId&1<<hb)}setCullFace(t){this._cullFace=t,this.gl[t?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(t){this._frontFace=t,this._frontFaceDirty=!1;let e=this._invertFrontFace?!t:t;this._glFrontFace!==e&&(this._glFrontFace=e,this.gl.frontFace(this.gl[e?"CW":"CCW"]))}setBlendMode(t){if(this.blendModesMap[t]||(t="normal"),t===this.blendMode)return;this.blendMode=t;let e=this.blendModesMap[t],r=this.gl;e.length===2?r.blendFunc(e[0],e[1]):r.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,r.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(t,e){this.gl.polygonOffset(t,e)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(t,e){let r=this.checks.indexOf(t);e&&r===-1?this.checks.push(t):!e&&r!==-1&&this.checks.splice(r,1)}static _checkBlendMode(t,e){t.setBlendMode(e.blendMode)}static _checkPolygonOffset(t,e){t.setPolygonOffset(1,e.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};ub.extension={type:[y.WebGLSystem],name:"state"};db=ub});var sl,pb=p(()=>{Ka();sl=class{constructor(t){this.target=Dn.TEXTURE_2D,this._layerInitMask=0,this.texture=t,this.width=-1,this.height=-1,this.type=at.UNSIGNED_BYTE,this.internalFormat=qa.RGBA,this.format=qa.RGBA,this.samplerType=0}destroy(){}}});var mb,gb=p(()=>{"use strict";mb={id:"buffer",upload(i,t,e,r,s,n=!1){let o=s||t.target;!n&&t.width===i.width&&t.height===i.height?e.texSubImage2D(o,0,0,0,i.width,i.height,t.format,t.type,i.resource):e.texImage2D(o,0,t.internalFormat,i.width,i.height,0,t.format,t.type,i.resource),t.width=i.width,t.height=i.height}}});var XT,xb,_b=p(()=>{"use strict";XT={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},xb={id:"compressed",upload(i,t,e,r,s,n){let o=s??t.target;e.pixelStorei(e.UNPACK_ALIGNMENT,4);let a=i.pixelWidth,l=i.pixelHeight,c=!!XT[i.format];for(let h=0;h<i.resource.length;h++){let u=i.resource[h];c?e.compressedTexImage2D(o,h,t.internalFormat,a,l,0,u):e.texImage2D(o,h,t.internalFormat,a,l,0,t.format,t.type,u),a=Math.max(a>>1,1),l=Math.max(l>>1,1)}}}});function bb(i){return{id:"cube",upload(t,e,r,s){let n=t.faces;for(let o=0;o<yb.length;o++){let a=yb[o],l=n[a];if(!l.resource)continue;(i[l.uploadMethodId]||i.image).upload(l,e,r,s,Dn.TEXTURE_CUBE_MAP_POSITIVE_X+o,(e._layerInitMask&1<<o)===0),e._layerInitMask|=1<<o}e.width=t.pixelWidth,e.height=t.pixelHeight}}}var yb,vb=p(()=>{Ka();yb=["right","left","top","bottom","front","back"]});function YT(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,n,o,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,a)}function $T(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,e.format,e.type,a)}var nl,Bu=p(()=>{"use strict";nl={id:"image",upload(i,t,e,r,s,n=!1){let o=s||t.target,a=i.pixelWidth,l=i.pixelHeight,c=i.resourceWidth,h=i.resourceHeight,u=r===2,d=n||t.width!==a||t.height!==l,f=c>=a&&h>=l,m=i.resource;(u?YT:$T)(e,o,t,a,l,c,h,m,d,f),t.width=a,t.height=l}}});function Sb(){let{userAgent:i}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var Tb=p(()=>{xt()});var qT,wb,Cb=p(()=>{Tb();Bu();qT=Sb(),wb={id:"video",upload(i,t,e,r,s,n=qT){if(!i.isValid){let o=s??t.target;e.texImage2D(o,0,t.internalFormat,1,1,0,t.format,t.type,null);return}nl.upload(i,t,e,r,s,n)}}});var Iu,Eb,ol,Pb,Mb=p(()=>{"use strict";Iu={linear:9729,nearest:9728},Eb={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},ol={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},Pb={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Gu(i,t,e,r,s,n,o,a){let l=n;if(!a||i.addressModeU!=="repeat"||i.addressModeV!=="repeat"||i.addressModeW!=="repeat"){let c=ol[o?"clamp-to-edge":i.addressModeU],h=ol[o?"clamp-to-edge":i.addressModeV],u=ol[o?"clamp-to-edge":i.addressModeW];t[s](l,t.TEXTURE_WRAP_S,c),t[s](l,t.TEXTURE_WRAP_T,h),t.TEXTURE_WRAP_R&&t[s](l,t.TEXTURE_WRAP_R,u)}if((!a||i.magFilter!=="linear")&&t[s](l,t.TEXTURE_MAG_FILTER,Iu[i.magFilter]),e){if(!a||i.mipmapFilter!=="linear"){let c=Eb[i.minFilter][i.mipmapFilter];t[s](l,t.TEXTURE_MIN_FILTER,c)}}else t[s](l,t.TEXTURE_MIN_FILTER,Iu[i.minFilter]);if(r&&i.maxAnisotropy>1){let c=Math.min(i.maxAnisotropy,t.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[s](l,r.TEXTURE_MAX_ANISOTROPY_EXT,c)}i.compare?(t[s](l,t.TEXTURE_COMPARE_FUNC,Pb[i.compare]),t[s](l,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE)):a||t[s](l,t.TEXTURE_COMPARE_MODE,t.NONE)}var Ab=p(()=>{Mb()});function Rb(i){return{r8unorm:i.RED,r8snorm:i.RED,r8uint:i.RED,r8sint:i.RED,r16uint:i.RED,r16sint:i.RED,r16float:i.RED,rg8unorm:i.RG,rg8snorm:i.RG,rg8uint:i.RG,rg8sint:i.RG,r32uint:i.RED,r32sint:i.RED,r32float:i.RED,rg16uint:i.RG,rg16sint:i.RG,rg16float:i.RG,rgba8unorm:i.RGBA,"rgba8unorm-srgb":i.RGBA,rgba8snorm:i.RGBA,rgba8uint:i.RGBA,rgba8sint:i.RGBA,bgra8unorm:i.RGBA,"bgra8unorm-srgb":i.RGBA,rgb9e5ufloat:i.RGB,rgb10a2unorm:i.RGBA,rg11b10ufloat:i.RGB,rg32uint:i.RG,rg32sint:i.RG,rg32float:i.RG,rgba16uint:i.RGBA,rgba16sint:i.RGBA,rgba16float:i.RGBA,rgba32uint:i.RGBA,rgba32sint:i.RGBA,rgba32float:i.RGBA,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT,depth24plus:i.DEPTH_COMPONENT,"depth24plus-stencil8":i.DEPTH_STENCIL,depth32float:i.DEPTH_COMPONENT,"depth32float-stencil8":i.DEPTH_STENCIL}}var kb=p(()=>{"use strict"});function Bb(i,t){let e={},r=i.RGBA;return i instanceof W.get().getWebGLRenderingContext()?t.srgb&&(e={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}):(e={"rgba8unorm-srgb":i.SRGB8_ALPHA8,"bgra8unorm-srgb":i.SRGB8_ALPHA8},r=i.RGBA8),{r8unorm:i.R8,r8snorm:i.R8_SNORM,r8uint:i.R8UI,r8sint:i.R8I,r16uint:i.R16UI,r16sint:i.R16I,r16float:i.R16F,rg8unorm:i.RG8,rg8snorm:i.RG8_SNORM,rg8uint:i.RG8UI,rg8sint:i.RG8I,r32uint:i.R32UI,r32sint:i.R32I,r32float:i.R32F,rg16uint:i.RG16UI,rg16sint:i.RG16I,rg16float:i.RG16F,rgba8unorm:i.RGBA,...e,rgba8snorm:i.RGBA8_SNORM,rgba8uint:i.RGBA8UI,rgba8sint:i.RGBA8I,bgra8unorm:r,rgb9e5ufloat:i.RGB9_E5,rgb10a2unorm:i.RGB10_A2,rg11b10ufloat:i.R11F_G11F_B10F,rg32uint:i.RG32UI,rg32sint:i.RG32I,rg32float:i.RG32F,rgba16uint:i.RGBA16UI,rgba16sint:i.RGBA16I,rgba16float:i.RGBA16F,rgba32uint:i.RGBA32UI,rgba32sint:i.RGBA32I,rgba32float:i.RGBA32F,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT16,depth24plus:i.DEPTH_COMPONENT24,"depth24plus-stencil8":i.DEPTH24_STENCIL8,depth32float:i.DEPTH_COMPONENT32F,"depth32float-stencil8":i.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var Ib=p(()=>{xt()});function Gb(i){return{r8unorm:i.UNSIGNED_BYTE,r8snorm:i.BYTE,r8uint:i.UNSIGNED_BYTE,r8sint:i.BYTE,r16uint:i.UNSIGNED_SHORT,r16sint:i.SHORT,r16float:i.HALF_FLOAT,rg8unorm:i.UNSIGNED_BYTE,rg8snorm:i.BYTE,rg8uint:i.UNSIGNED_BYTE,rg8sint:i.BYTE,r32uint:i.UNSIGNED_INT,r32sint:i.INT,r32float:i.FLOAT,rg16uint:i.UNSIGNED_SHORT,rg16sint:i.SHORT,rg16float:i.HALF_FLOAT,rgba8unorm:i.UNSIGNED_BYTE,"rgba8unorm-srgb":i.UNSIGNED_BYTE,rgba8snorm:i.BYTE,rgba8uint:i.UNSIGNED_BYTE,rgba8sint:i.BYTE,bgra8unorm:i.UNSIGNED_BYTE,"bgra8unorm-srgb":i.UNSIGNED_BYTE,rgb9e5ufloat:i.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:i.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:i.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:i.UNSIGNED_INT,rg32sint:i.INT,rg32float:i.FLOAT,rgba16uint:i.UNSIGNED_SHORT,rgba16sint:i.SHORT,rgba16float:i.HALF_FLOAT,rgba32uint:i.UNSIGNED_INT,rgba32sint:i.INT,rgba32float:i.FLOAT,stencil8:i.UNSIGNED_BYTE,depth16unorm:i.UNSIGNED_SHORT,depth24plus:i.UNSIGNED_INT,"depth24plus-stencil8":i.UNSIGNED_INT_24_8,depth32float:i.FLOAT,"depth32float-stencil8":i.FLOAT_32_UNSIGNED_INT_24_8_REV}}var Fb=p(()=>{"use strict"});function Ub(i){return{"2d":i.TEXTURE_2D,cube:i.TEXTURE_CUBE_MAP,"1d":null,"3d":i?.TEXTURE_3D||null,"2d-array":i?.TEXTURE_2D_ARRAY||null,"cube-array":i?.TEXTURE_CUBE_MAP_ARRAY||null}}var Db=p(()=>{"use strict"});var KT,Fu,Uu,Ob=p(()=>{xt();P();Ie();gt();pb();gb();_b();vb();Bu();Cb();Ab();kb();Ib();Fb();Db();KT=4,Fu=class Lb{constructor(t){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=t,this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let e={image:nl,buffer:mb,video:wb,compressed:xb,...Lb.uploadExtensions};this._uploads={...e,cube:bb(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gl=t,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=Bb(t,this._renderer.context.extensions),this._mapFormatToType=Gb(t),this._mapFormatToFormat=Rb(t),this._mapViewDimensionToGlTarget=Ub(t)),this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let e=0;e<16;e++)this.bind(F.EMPTY,e)}initSource(t){this.bind(t)}bind(t,e=0){let r=t.source;t?(this.bindSource(r,e),this._useSeparateSamplers&&this._bindSampler(r.style,e)):(this.bindSource(null,e),this._useSeparateSamplers&&this._bindSampler(null,e))}bindSource(t,e=0){let r=this._gl;if(t._gcLastUsed=this._renderer.gc.now,this._boundTextures[e]!==t){this._boundTextures[e]=t,this._activateLocation(e),t||(t=F.EMPTY.source);let s=this.getGlSource(t);r.bindTexture(s.target,s.texture)}}_bindSampler(t,e=0){let r=this._gl;if(!t){this._boundSamplers[e]=null,r.bindSampler(e,null);return}let s=this._getGlSampler(t);this._boundSamplers[e]!==s&&(this._boundSamplers[e]=s,r.bindSampler(e,s))}unbind(t){let e=t.source,r=this._boundTextures,s=this._gl;for(let n=0;n<r.length;n++)if(r[n]===e){this._activateLocation(n);let o=this.getGlSource(e);s.bindTexture(o.target,null),r[n]=null}}_activateLocation(t){this._activeTextureLocation!==t&&(this._activeTextureLocation=t,this._gl.activeTexture(this._gl.TEXTURE0+t))}_initSource(t){let e=this._gl,r=new sl(e.createTexture());if(r.type=this._mapFormatToType[t.format],r.internalFormat=this._mapFormatToInternalFormat[t.format],r.format=this._mapFormatToFormat[t.format],r.target=this._mapViewDimensionToGlTarget[t.viewDimension],r.target===null)throw new Error(`Unsupported view dimension: ${t.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(t.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||t.isPowerOfTwo)){let n=Math.max(t.width,t.height);t.mipLevelCount=Math.floor(Math.log2(n))+1}return t._gpuData[this._renderer.uid]=r,this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceUpdate,this),t.on("styleChange",this.onStyleChange,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),this.updateStyle(t,!1),r}onStyleChange(t){this.updateStyle(t,!1)}updateStyle(t,e){let r=this._gl,s=this.getGlSource(t);r.bindTexture(s.target,s.texture),this._boundTextures[this._activeTextureLocation]=t,Gu(t.style,r,t.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",s.target,!this._renderer.context.supports.nonPowOf2wrapping&&!t.isPowerOfTwo,e)}onSourceUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||(this.unbind(t),this._gl.deleteTexture(r.texture)),t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceUpdate,this),t.off("styleChange",this.onStyleChange,this),t.off("updateMipmaps",this.onUpdateMipmaps,this))}onSourceUpdate(t){let e=this._gl,r=this.getGlSource(t);e.bindTexture(r.target,r.texture),this._boundTextures[this._activeTextureLocation]=t;let s=t.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[t.uploadMethodId])this._uploads[t.uploadMethodId].upload(t,r,e,this._renderer.context.webGLVersion);else if(r.target===e.TEXTURE_2D)this._initEmptyTexture2D(r,t);else if(r.target===e.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(r,t);else if(r.target===e.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(r,t);else throw new Error("[GlTextureSystem] Unsupported texture target for empty allocation.");this._applyMipRange(r,t),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t,!1)}onUpdateMipmaps(t,e=!0){e&&this.bindSource(t,0);let r=this.getGlSource(t);this._gl.generateMipmap(r.target)}_initEmptyTexture2D(t,e){let r=this._gl;r.texImage2D(r.TEXTURE_2D,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let s=Math.max(e.pixelWidth>>1,1),n=Math.max(e.pixelHeight>>1,1);for(let o=1;o<e.mipLevelCount;o++)r.texImage2D(r.TEXTURE_2D,o,t.internalFormat,s,n,0,t.format,t.type,null),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}_initEmptyTexture2DArray(t,e){if(this._renderer.context.webGLVersion!==2)throw new Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let r=this._gl,s=Math.max(e.arrayLayerCount|0,1);r.texImage3D(r.TEXTURE_2D_ARRAY,0,t.internalFormat,e.pixelWidth,e.pixelHeight,s,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++)r.texImage3D(r.TEXTURE_2D_ARRAY,a,t.internalFormat,n,o,s,0,t.format,t.type,null),n=Math.max(n>>1,1),o=Math.max(o>>1,1)}_initEmptyTextureCube(t,e){let r=this._gl,s=6;for(let a=0;a<s;a++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++){for(let l=0;l<s;l++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+l,a,t.internalFormat,n,o,0,t.format,t.type,null);n=Math.max(n>>1,1),o=Math.max(o>>1,1)}}_applyMipRange(t,e){if(this._renderer.context.webGLVersion!==2||e.mipLevelCount<=1)return;let r=this._gl,s=Math.max((e.mipLevelCount|0)-1,0);r.texParameteri(t.target,r.TEXTURE_BASE_LEVEL,0),r.texParameteri(t.target,r.TEXTURE_MAX_LEVEL,s)}_initSampler(t){let e=this._gl,r=this._gl.createSampler();return this._glSamplers[t._resourceId]=r,Gu(t,e,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[t._resourceId]}_getGlSampler(t){return this._glSamplers[t._resourceId]||this._initSampler(t)}getGlSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this._initSource(t)}generateCanvas(t){let{pixels:e,width:r,height:s}=this.getPixels(t),n=W.get().createCanvas();n.width=r,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(r,s);a.data.set(e),o.putImageData(a,0,0)}return n}getPixels(t){let e=t.source.resolution,r=t.frame,s=Math.max(Math.round(r.width*e),1),n=Math.max(Math.round(r.height*e),1),o=new Uint8Array(KT*s*n),a=this._renderer,l=a.renderTarget.getRenderTarget(t),c=a.renderTarget.getGpuRenderTarget(l),h=a.gl;return a.renderTarget.adaptor.bindFramebuffer(c.resolveTargetFramebuffer),h.readPixels(Math.round(r.x*e),Math.round(r.y*e),s,n,h.RGBA,h.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(F.EMPTY.source),this._boundSamplers=Object.create(null);let t=this._gl;this._premultiplyAlpha=!1,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Fu.extension={type:[y.WebGLSystem],name:"texture"};Fu.uploadExtensions=Object.create(null);Uu=Fu;z.handleByMap(y.TextureUploaderWebGL,Uu.uploadExtensions)});var Wb={};zl(Wb,{WebGLRenderer:()=>Du});var ZT,QT,JT,Nb,zb,Hb,Du,Vb=p(()=>{P();dy();fy();py();Vr();La();Ne();xy();by();wy();Py();My();Ay();Ry();ky();Su();Oy();Au();Ru();fb();Ob();ZT=[...Yi,Jr,Ey,yy,zn,Un,Uu,Vn,Ln,ei,ti,Nn,db,Hn,On],QT=[...Da],JT=[Gn,In,Bn],Nb=[],zb=[],Hb=[];z.handleByNamedList(y.WebGLSystem,Nb);z.handleByNamedList(y.WebGLPipes,zb);z.handleByNamedList(y.WebGLPipesAdaptor,Hb);z.add(...ZT,...QT,...JT);Du=class extends Te{constructor(){let t={name:"webgl",type:Lt.WEBGL,systems:Nb,renderPipes:zb,renderPipeAdaptors:Hb};super(t)}}});function jb(i,t,e,r,s,n,o,a){let l=i-e*s,c=t-r*s,h=i+e*n,u=t+r*n,d,f;o?(d=r,f=-e):(d=-r,f=e);let m=l+d,g=c+f,_=h+d,x=u+f;return a.push(m,g),a.push(_,x),2}function ri(i,t,e,r,s,n,o,a){let l=e-i,c=r-t,h=Math.atan2(l,c),u=Math.atan2(s-i,n-t);a&&h<u?h+=Math.PI*2:!a&&h>u&&(u+=Math.PI*2);let d=h,f=u-h,m=Math.abs(f),g=Math.sqrt(l*l+c*c),_=(15*m*Math.sqrt(g)/Math.PI>>0)+1,x=f/_;if(d+=x,a){o.push(i,t),o.push(e,r);for(let b=1,v=d;b<_;b++,v+=x)o.push(i,t),o.push(i+Math.sin(v)*g,t+Math.cos(v)*g);o.push(i,t),o.push(s,n)}else{o.push(e,r),o.push(i,t);for(let b=1,v=d;b<_;b++,v+=x)o.push(i+Math.sin(v)*g,t+Math.cos(v)*g),o.push(i,t);o.push(s,n),o.push(i,t)}return _*2}function Zi(i,t,e,r,s,n){let o=1e-4;if(i.length===0)return;let a=t,l=a.alignment;if(t.alignment!==.5){let G=Ko(i);e&&(G*=-1),l=(l-.5)*G+.5}let c=new nt(i[0],i[1]),h=new nt(i[i.length-2],i[i.length-1]),u=r,d=Math.abs(c.x-h.x)<o&&Math.abs(c.y-h.y)<o;if(u){i=i.slice(),d&&(i.pop(),i.pop(),h.set(i[i.length-2],i[i.length-1]));let G=(c.x+h.x)*.5,Y=(h.y+c.y)*.5;i.unshift(G,Y),i.push(G,Y)}let f=s,m=i.length/2,g=i.length,_=f.length/2,x=a.width/2,b=x*x,v=a.miterLimit*a.miterLimit,S=i[0],T=i[1],w=i[2],E=i[3],B=0,R=0,M=-(T-E),C=S-w,A=0,D=0,H=Math.sqrt(M*M+C*C);M/=H,C/=H,M*=x,C*=x;let K=l,I=(1-K)*2,U=K*2;u||(a.cap==="round"?g+=ri(S-M*(I-U)*.5,T-C*(I-U)*.5,S-M*I,T-C*I,S+M*U,T+C*U,f,!0)+2:a.cap==="square"&&(g+=jb(S,T,M,C,I,U,!0,f))),f.push(S-M*I,T-C*I),f.push(S+M*U,T+C*U);for(let G=1;G<m-1;++G){S=i[(G-1)*2],T=i[(G-1)*2+1],w=i[G*2],E=i[G*2+1],B=i[(G+1)*2],R=i[(G+1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,A=-(E-R),D=w-B,H=Math.sqrt(A*A+D*D),A/=H,D/=H,A*=x,D*=x;let Y=w-S,pt=T-E,wt=w-B,lt=R-E,ft=Y*wt+pt*lt,q=pt*wt-lt*Y,jt=q<0;if(Math.abs(q)<.001*Math.abs(ft)){f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),ft>=0&&(a.join==="round"?g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4:g+=2,f.push(w-A*U,E-D*U),f.push(w+A*I,E+D*I));continue}let ui=(-M+S)*(-C+E)-(-M+w)*(-C+T),Cr=(-A+B)*(-D+E)-(-A+w)*(-D+R),N=(Y*Cr-wt*ui)/q,et=(lt*ui-pt*Cr)/q,ct=(N-w)*(N-w)+(et-E)*(et-E),It=w+(N-w)*I,St=E+(et-E)*I,Kt=w-(N-w)*U,Bt=E-(et-E)*U,xe=Math.min(Y*Y+pt*pt,wt*wt+lt*lt),Xt=jt?I:U,$e=xe+Xt*Xt*b;ct<=$e?a.join==="bevel"||ct/b>v?(jt?(f.push(It,St),f.push(w+M*U,E+C*U),f.push(It,St),f.push(w+A*U,E+D*U)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),f.push(w-A*I,E-D*I),f.push(Kt,Bt)),g+=2):a.join==="round"?jt?(f.push(It,St),f.push(w+M*U,E+C*U),g+=ri(w,E,w+M*U,E+C*U,w+A*U,E+D*U,f,!0)+4,f.push(It,St),f.push(w+A*U,E+D*U)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4,f.push(w-A*I,E-D*I),f.push(Kt,Bt)):(f.push(It,St),f.push(Kt,Bt)):(f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),a.join==="round"?jt?g+=ri(w,E,w+M*U,E+C*U,w+A*U,E+D*U,f,!0)+2:g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+2:a.join==="miter"&&ct/b<=v&&(jt?(f.push(Kt,Bt),f.push(Kt,Bt)):(f.push(It,St),f.push(It,St)),g+=2),f.push(w-A*I,E-D*I),f.push(w+A*U,E+D*U),g+=2)}S=i[(m-2)*2],T=i[(m-2)*2+1],w=i[(m-1)*2],E=i[(m-1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),u||(a.cap==="round"?g+=ri(w-M*(I-U)*.5,E-C*(I-U)*.5,w-M*I,E-C*I,w+M*U,E+C*U,f,!1)+2:a.cap==="square"&&(g+=jb(w,E,M,C,I,U,!1,f)));let j=1e-4*1e-4;for(let G=_;G<g+_-2;++G)S=f[G*2],T=f[G*2+1],w=f[(G+1)*2],E=f[(G+1)*2+1],B=f[(G+2)*2],R=f[(G+2)*2+1],!(Math.abs(S*(E-R)+w*(R-T)+B*(T-E))<j)&&n.push(G,G+1,G+2)}var al=p(()=>{zc();Ee()});function Yb(i,t){for(let e=0;e<t.length;e++){let r=t[e];i.addColorStop(r.offset,r.color)}}function $b(i,t){let e=W.get().createCanvas(i,t),r=e.getContext("2d");return{canvas:e,context:r}}function rw(i){let t=i[0]??{};return(typeof t=="number"||i[1])&&(O("8.5.2","use options object instead"),t={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??ee.defaultLinearOptions.textureSize}),t}var Xb,Ou,ee,ii=p(()=>{Qt();xt();ot();jo();gt();Ft();yt();nc();Xb=[{offset:0,color:"white"},{offset:1,color:"black"}],Ou=class Lu{constructor(...t){this.uid=$("fillGradient"),this._tick=0,this.type="linear",this.colorStops=[];let e=rw(t);e={...e.type==="radial"?Lu.defaultRadialOptions:Lu.defaultLinearOptions,...ko(e)},this._textureSize=e.textureSize,this._wrapMode=e.wrapMode,e.type==="radial"?(this.center=e.center,this.outerCenter=e.outerCenter??this.center,this.innerRadius=e.innerRadius,this.outerRadius=e.outerRadius,this.scale=e.scale,this.rotation=e.rotation):(this.start=e.start,this.end=e.end),this.textureSpace=e.textureSpace,this.type=e.type,e.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(t,e){return this.colorStops.push({offset:t,color:Q.shared.setValue(e).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:t,y:e}=this.start,{x:r,y:s}=this.end,n=r-t,o=s-e,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let _=t;t=r,r=_,n*=-1}if(o<0){let _=e;e=s,s=_,o*=-1}}let l=this.colorStops.length?this.colorStops:Xb,c=this._textureSize,{canvas:h,context:u}=$b(c,1),d=a?u.createLinearGradient(this._textureSize,0,0,0):u.createLinearGradient(0,0,this._textureSize,0);Yb(d,l),u.fillStyle=d,u.fillRect(0,0,c,1),this.texture=new F({source:new Re({resource:h,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),g=new k;g.scale(f/c,1),g.rotate(m),g.translate(t,e),this.textureSpace==="local"&&g.scale(c,c),this.transform=g}buildGradient(){this.texture||this._tick++,this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let t=this.colorStops.length?this.colorStops:Xb,e=this._textureSize,{canvas:r,context:s}=$b(e,e),{x:n,y:o}=this.center,{x:a,y:l}=this.outerCenter,c=this.innerRadius,h=this.outerRadius,u=a-h,d=l-h,f=e/(h*2),m=(n-u)*f,g=(o-d)*f,_=s.createRadialGradient(m,g,c*f,(a-u)*f,(l-d)*f,h*f);Yb(_,t),s.fillStyle=t[t.length-1].color,s.fillRect(0,0,e,e),s.fillStyle=_,s.translate(m,g),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-g),s.fillRect(0,0,e,e),this.texture=new F({source:new Re({resource:r,addressMode:this._wrapMode})});let x=new k;this.textureSpace==="local"?x.scale(2*h,2*h):x.scale(1/f,1/f),x.translate(u,d),this.transform=x}destroy(){this.texture?.destroy(!0),this.texture=null,this.transform=null,this.colorStops=[],this.start=null,this.end=null,this.center=null,this.outerCenter=null}get styleKey(){return`fill-gradient-${this.uid}-${this._tick}`}};Ou.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Ou.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,rotation:0,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};ee=Ou});function iw(i){return i.texture!==void 0}var qb,Ge,jn=p(()=>{ot();Ft();qb={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},Ge=class{constructor(t,e){this.uid=$("fillPattern"),this._tick=0,this.transform=new k;let r=iw(t)?t:{texture:t,repetition:e};this.texture=r.texture,this.textureSpace=r.textureSpace??"global";let s=r.repetition;s&&(this.texture.source.style.addressModeU=qb[s].addressModeU,this.texture.source.style.addressModeV=qb[s].addressModeV)}setTransform(t){if(t){if(this.transform.equals(t))return;this.transform.copyFrom(t)}else{if(this.transform.isIdentity())return;this.transform.identity()}this._tick++}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture=t,this._tick++)}get styleKey(){return`fill-pattern-${this.uid}-${this._tick}`}destroy(){this.texture.destroy(!0),this.texture=null}}});function Kb(i,t,e,r,s,n,o,a=null){let l=0;e*=t,s*=n;let c=a.a,h=a.b,u=a.c,d=a.d,f=a.tx,m=a.ty;for(;l<o;){let g=i[e],_=i[e+1];r[s]=c*g+u*_+f,r[s+1]=h*g+d*_+m,s+=n,e+=t,l++}}function Zb(i,t,e,r){let s=0;for(t*=e;s<r;)i[t]=0,i[t+1]=0,t+=e,s++}var Qb=p(()=>{"use strict"});function Nu(i,t,e,r,s){let n=t.a,o=t.b,a=t.c,l=t.d,c=t.tx,h=t.ty;e||(e=0),r||(r=2),s||(s=i.length/r-e);let u=e*r;for(let d=0;d<s;d++){let f=i[u],m=i[u+1];i[u]=n*f+a*m+c,i[u+1]=o*f+l*m+h,u+=r}}var Jb=p(()=>{"use strict"});var sw,si,zu=p(()=>{ot();ys();sw=new k,si=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let t=this.baseColor,e=t>>16|t&65280|(t&255)<<16,r=this.renderable;return r?Ue(e,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):e+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||sw}copyTo(t){t.indexOffset=this.indexOffset,t.indexSize=this.indexSize,t.attributeOffset=this.attributeOffset,t.attributeSize=this.attributeSize,t.baseColor=this.baseColor,t.alpha=this.alpha,t.texture=this.texture,t.geometryData=this.geometryData,t.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}destroy(){this.renderable=null,this.texture=null,this.geometryData=null,this._batcher=null,this._batch=null}}});var Qi,t0,e0,r0=p(()=>{P();Qi={extension:{type:y.ShapeBuilder,name:"circle"},build(i,t){let e,r,s,n,o,a;if(i.type==="circle"){let S=i;if(o=a=S.radius,o<=0)return!1;e=S.x,r=S.y,s=n=0}else if(i.type==="ellipse"){let S=i;if(o=S.halfWidth,a=S.halfHeight,o<=0||a<=0)return!1;e=S.x,r=S.y,s=n=0}else{let S=i,T=S.width/2,w=S.height/2;e=S.x+T,r=S.y+w,o=a=Math.max(0,Math.min(S.radius,Math.min(T,w))),s=T-o,n=w-a}if(s<0||n<0)return!1;let l=Math.ceil(2.3*Math.sqrt(o+a)),c=l*8+(s?4:0)+(n?4:0);if(c===0)return!1;if(l===0)return t[0]=t[6]=e+s,t[1]=t[3]=r+n,t[2]=t[4]=e-s,t[5]=t[7]=r-n,!0;let h=0,u=l*4+(s?2:0)+2,d=u,f=c,m=s+o,g=n,_=e+m,x=e-m,b=r+g;if(t[h++]=_,t[h++]=b,t[--u]=b,t[--u]=x,n){let S=r-g;t[d++]=x,t[d++]=S,t[--f]=S,t[--f]=_}for(let S=1;S<l;S++){let T=Math.PI/2*(S/l),w=s+Math.cos(T)*o,E=n+Math.sin(T)*a,B=e+w,R=e-w,M=r+E,C=r-E;t[h++]=B,t[h++]=M,t[--u]=M,t[--u]=R,t[d++]=R,t[d++]=C,t[--f]=C,t[--f]=B}m=s,g=n+a,_=e+m,x=e-m,b=r+g;let v=r-g;return t[h++]=_,t[h++]=b,t[--f]=v,t[--f]=_,s&&(t[h++]=x,t[h++]=b,t[--f]=v,t[--f]=x),!0},triangulate(i,t,e,r,s,n){if(i.length===0)return;let o=0,a=0;for(let h=0;h<i.length;h+=2)o+=i[h],a+=i[h+1];o/=i.length/2,a/=i.length/2;let l=r;t[l*e]=o,t[l*e+1]=a;let c=l++;for(let h=0;h<i.length;h+=2)t[l*e]=i[h],t[l*e+1]=i[h+1],h>0&&(s[n++]=l,s[n++]=c,s[n++]=l-1),l++;s[n++]=c+1,s[n++]=c,s[n++]=l-1}},t0={...Qi,extension:{...Qi.extension,name:"ellipse"}},e0={...Qi,extension:{...Qi.extension,name:"roundedRectangle"}}});function i0(i,t,e,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],l=i[i.length-1],c=t||Math.abs(n-a)<s&&Math.abs(o-l)<s,h=e,u=i.length/2,d=h.length/2;for(let f=0;f<u;f++)h.push(i[f*2]),h.push(i[f*2+1]);for(let f=0;f<u-1;f++)r.push(d+f,d+f+1);c&&r.push(d+u-1,d)}var s0=p(()=>{});function ll(i,t,e,r,s,n,o){let a=Ag(i,t,2);if(!a)return;for(let c=0;c<a.length;c+=3)n[o++]=a[c]+s,n[o++]=a[c+1]+s,n[o++]=a[c+2]+s;let l=s*r;for(let c=0;c<i.length;c+=2)e[l]=i[c],e[l+1]=i[c+1],l+=r}var Hu=p(()=>{Rg()});var nw,n0,o0=p(()=>{P();Hu();nw=[],n0={extension:{type:y.ShapeBuilder,name:"polygon"},build(i,t){for(let e=0;e<i.points.length;e++)t[e]=i.points[e];return!0},triangulate(i,t,e,r,s,n){ll(i,nw,t,e,r,s,n)}}});var a0,l0=p(()=>{P();a0={extension:{type:y.ShapeBuilder,name:"rectangle"},build(i,t){let e=i,r=e.x,s=e.y,n=e.width,o=e.height;return n>0&&o>0?(t[0]=r,t[1]=s,t[2]=r+n,t[3]=s,t[4]=r+n,t[5]=s+o,t[6]=r,t[7]=s+o,!0):!1},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[6],t[r+o+1]=i[7],o+=e,t[r+o]=i[4],t[r+o+1]=i[5],o+=e;let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var c0,h0=p(()=>{P();c0={extension:{type:y.ShapeBuilder,name:"triangle"},build(i,t){return t[0]=i.x,t[1]=i.y,t[2]=i.x2,t[3]=i.y2,t[4]=i.x3,t[5]=i.y3,!0},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[4],t[r+o+1]=i[5];let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function cl(i,t,e,r){let s=t.matrix?i.copyFrom(t.matrix).invert():i.identity();if(t.textureSpace==="local"){let o=e.getBounds(aw);t.width&&o.pad(t.width);let{x:a,y:l}=o,c=1/o.width,h=1/o.height,u=-a*c,d=-l*h,f=s.a,m=s.b,g=s.c,_=s.d;s.a*=c,s.b*=c,s.c*=h,s.d*=h,s.tx=u*f+d*g+s.tx,s.ty=u*m+d*_+s.ty}else if(t.texture.rotate){let{uvs:o,orig:a}=t.texture;s.scale(1/a.width,1/a.height),s.prepend(lw.set(o.x1-o.x0,o.y1-o.y0,o.x3-o.x0,o.y3-o.y0,o.x0,o.y0))}else s.translate(t.texture.frame.x,t.texture.frame.y),s.scale(1/t.texture.source.width,1/t.texture.source.height);let n=t.texture.source.style;return!(t.fill instanceof ee)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(ow.copyFrom(r).invert()),s}var ow,aw,lw,Wu=p(()=>{ot();Yt();ii();ow=new k,aw=new J,lw=new k});function d0(i,t){let{geometryData:e,batches:r}=t;r.length=0,e.indices.length=0,e.vertices.length=0,e.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let n=i.instructions[s];if(n.action==="texture")uw(n.data,r,e);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,l=n.data.style,c=n.data.hole;o&&c&&u0(c.shapePath,l,!0,r,e),c&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=c.shapePath.shapePrimitives),u0(a,l,o,r,e)}}}function uw(i,t,e){let r=[],s=Tr.rectangle,n=cw;n.x=i.dx,n.y=i.dy,n.width=i.dw,n.height=i.dh;let o=i.transform;if(!s.build(n,r))return;let{vertices:a,uvs:l,indices:c}=e,h=c.length,u=a.length/2;o&&Nu(r,o),s.triangulate(r,a,2,u,c,h);let d=i.image,f=d.uvs;l.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=bt.get(si);m.indexOffset=h,m.indexSize=c.length-h,m.attributeOffset=u,m.attributeSize=a.length/2-u,m.baseColor=i.style,m.alpha=i.alpha,m.texture=d,m.geometryData=e,t.push(m)}function u0(i,t,e,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:l,transform:c,holes:h})=>{let u=[],d=Tr[l.type];if(!d.build(l,u))return;let f=a.length,m=n.length/2,g="triangle-list";if(c&&Nu(u,c),e){let v=l.closePath??!0,S=t;S.pixelLine?(i0(u,v,n,a),g="line-list"):Zi(u,S,!1,v,n,a)}else if(h){let v=[],S=u.slice();dw(h).forEach(w=>{v.push(S.length/2),S.push(...w)}),ll(S,v,n,2,m,a,f)}else d.triangulate(u,n,2,m,a,f);let _=o.length/2,x=t.texture;if(x!==F.WHITE){let v=cl(hw,t,l,c);Kb(n,2,m,o,_,2,n.length/2-m,v)}else Zb(o,_,2,n.length/2-m);let b=bt.get(si);b.indexOffset=f,b.indexSize=a.length-f,b.attributeOffset=m,b.attributeSize=n.length/2-m,b.baseColor=t.color,b.alpha=t.alpha,b.texture=x,b.geometryData=s,b.topology=g,r.push(b)})}function dw(i){let t=[];for(let e=0;e<i.length;e++){let r=i[e].shape,s=[];Tr[r.type].build(r,s)&&t.push(s)}return t}var Tr,cw,hw,hl=p(()=>{P();ot();Yt();Qb();Jb();gt();Ke();zu();r0();al();s0();o0();l0();h0();Wu();Hu();Tr={};z.handleByMap(y.ShapeBuilder,Tr);z.add(a0,n0,c0,Qi,t0,e0);cw=new J,hw=new k});function xw(i,t,e){i.beginPath();for(let r=0;r<e.length;r+=3){let s=e[r]*2,n=e[r+1]*2,o=e[r+2]*2;i.moveTo(t[s],t[s+1]),i.lineTo(t[n],t[n+1]),i.lineTo(t[o],t[o+1]),i.closePath()}i.fill()}function _w(i){return`#${(i&16777215).toString(16).padStart(6,"0")}`}function yw(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function dl(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;yw(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function bw(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),dl(i,r.shape),n&&i.restore()}return!0}function vw(i,t,e,r){let s=i.fill;if(s instanceof ee){s.buildGradient();let o=s.texture;if(o){let a=Z.getTintedPattern(o,t),l=e?Vu.copyFrom(e).scale(o.source.pixelWidth,o.source.pixelHeight):Vu.copyFrom(s.transform);return r&&!i.textureSpace&&l.append(r),Z.applyPatternTransform(a,l),a}}if(s instanceof Ge){let o=Z.getTintedPattern(s.texture,t);return Z.applyPatternTransform(o,s.transform,!1),o}let n=i.texture;if(n&&n!==F.WHITE){if(!n.source.resource)return fw;let o=Z.getTintedPattern(n,t),a=i.matrix;if(e){let{resolution:l}=n.source;if(a=Vu.copyFrom(e),n.rotate){let{uvs:c,orig:h}=n;a.prepend(gw.set(c.x1-c.x0,c.y1-c.y0,c.x3-c.x0,c.y3-c.y0,c.x0,c.y0).invert()).scale(h.width*l,h.height*l)}else a.scale(n.source.pixelWidth,n.source.pixelHeight).translate(-n.frame.x*l,-n.frame.y*l)}return Z.applyPatternTransform(o,a),o}return _w(t)}var fw,ul,pw,mw,Vu,gw,Xn,f0=p(()=>{P();vs();ot();Pi();gt();Mo();ys();al();ii();jn();hl();Wu();fw="#808080",ul=new k,pw=new k,mw=new k,Vu=new k,gw=new k;Xn=class{constructor(){this.shader=null}contextChange(t){}execute(t,e){let r=t.renderer,s=r.canvasContext,n=s.activeContext,o=e.groupTransform,a=r.globalUniforms.globalUniformData?.worldColor??4294967295,l=e.groupColorAlpha,c=(a>>>24&255)/255,h=(l>>>24&255)/255,u=r.filter?.alphaMultiplier??1,d=c*h*u;if(d<=0)return;let f=a&16777215,m=l&16777215,g=Qe(Ue(m,f)),_=r._roundPixels|e._roundPixels;n.save(),s.setContextTransform(o,_===1),s.setBlendMode(e.groupBlendMode);let x=e.context.instructions;for(let b=0;b<x.length;b++){let v=x[b];if(v.action==="texture"){let C=v.data,A=C.image,D=A?Z.getCanvasSource(A):null;if(!D)continue;let H=C.alpha*d;if(H<=0)continue;let K=Ue(C.style,g);n.globalAlpha=H;let I=D;K!==16777215&&(I=Z.getTintedCanvas({texture:A},K));let U=A.frame,j=A.source._resolution??A.source.resolution??1,G=U.x*j,Y=U.y*j,pt=U.width*j,wt=U.height*j;I!==D&&(G=0,Y=0);let lt=C.transform,ft=lt&&!lt.isIdentity(),q=A.rotate;ft||q?(ul.copyFrom(o),ft&&ul.append(lt),q&&it.matrixAppendRotationInv(ul,q,C.dx,C.dy,C.dw,C.dh),s.setContextTransform(ul,_===1)):s.setContextTransform(o,_===1),n.drawImage(I,G,Y,I===D?pt:I.width,I===D?wt:I.height,q?0:C.dx,q?0:C.dy,C.dw,C.dh),(ft||q)&&s.setContextTransform(o,_===1);continue}let S=v.data,T=S?.path?.shapePath;if(!T?.shapePrimitives?.length)continue;let w=S.style,E=Ue(w.color,g),B=w.alpha*d;if(B<=0)continue;let R=v.action==="stroke";if(n.globalAlpha=B,R){let C=w;n.lineWidth=C.width,n.lineCap=C.cap,n.lineJoin=C.join,n.miterLimit=C.miterLimit}let M=T.shapePrimitives;if(!R&&S.hole?.shapePath?.shapePrimitives?.length){let C=M[M.length-1];C.holes=S.hole.shapePath.shapePrimitives}for(let C=0;C<M.length;C++){let A=M[C];if(!A?.shape)continue;let D=A.transform,H=D&&!D.isIdentity(),K=w.texture&&w.texture!==F.WHITE,I=w.textureSpace==="global"?D:null,U=K?cl(pw,w,A.shape,I):null,j=H?mw.copyFrom(o).append(D):o,G=vw(w,E,U,j);if(H&&(n.save(),n.transform(D.a,D.b,D.c,D.d,D.tx,D.ty)),R){let Y=w;if(Y.alignment!==.5&&!Y.pixelLine){let wt=[],lt=[],ft=[];if(Tr[A.shape.type]?.build(A.shape,wt)){let jt=A.shape.closePath??!0;Zi(wt,Y,!1,jt,lt,ft),n.fillStyle=G,xw(n,lt,ft)}else n.strokeStyle=G,n.beginPath(),dl(n,A.shape),n.stroke()}else n.strokeStyle=G,n.beginPath(),dl(n,A.shape),n.stroke()}else n.fillStyle=G,n.beginPath(),dl(n,A.shape),bw(n,A.holes)?n.fill("evenodd"):n.fill();H&&n.restore()}}n.restore()}destroy(){this.shader=null}};Xn.extension={type:[y.CanvasPipesAdaptor],name:"graphics"}});var ju,p0,m0=p(()=>{P();vs();ot();Mo();ys();Pi();ju=class ni{static _getPatternRepeat(t,e){let r=t&&t!=="clamp-to-edge",s=e&&e!=="clamp-to-edge";return r&&s?"repeat":r?"repeat-x":s?"repeat-y":"no-repeat"}start(t,e,r){}execute(t,e){let r=e.elements;if(!r||!r.length)return;let s=t.renderer,n=s.canvasContext,o=n.activeContext;for(let a=0;a<r.length;a++){let l=r[a];if(!l.packAsQuad)continue;let c=l,h=c.texture,u=h?Z.getCanvasSource(h):null;if(!u)continue;let d=h.source.style,f=n.smoothProperty,m=d.scaleMode!=="nearest";o[f]!==m&&(o[f]=m),n.setBlendMode(e.blendMode);let g=s.globalUniforms.globalUniformData?.worldColor??4294967295,_=c.color,x=(g>>>24&255)/255,b=(_>>>24&255)/255,v=s.filter?.alphaMultiplier??1,S=x*b*v;if(S<=0)continue;o.globalAlpha=S;let T=g&16777215,w=_&16777215,E=Qe(Ue(w,T)),B=h.frame,R=d.addressModeU??d.addressMode,M=d.addressModeV??d.addressMode,C=ni._getPatternRepeat(R,M),A=h.source._resolution??h.source.resolution??1,D=c.renderable?.renderGroup?.isCachedAsTexture,H=B.x*A,K=B.y*A,I=B.width*A,U=B.height*A,j=c.bounds,G=s.renderTarget.renderTarget.isRoot,Y=j.minX,pt=j.minY,wt=j.maxX-j.minX,lt=j.maxY-j.minY,ft=h.rotate,q=h.uvs,jt=Math.min(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),ui=Math.max(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),Cr=C!=="no-repeat"&&(jt<0||ui>1),et=ft&&!(!Cr&&(E!==16777215||ft));et?(ni._tempPatternMatrix.copyFrom(c.transform),it.matrixAppendRotationInv(ni._tempPatternMatrix,ft,Y,pt,wt,lt),n.setContextTransform(ni._tempPatternMatrix,c.roundPixels===1,void 0,D&&G)):n.setContextTransform(c.transform,c.roundPixels===1,void 0,D&&G);let ct=wt,It=lt,St=et?0:Y,Kt=et?0:pt;if(!et&&c.roundPixels===1&&(St|=0,Kt|=0),Cr){let Bt=u,xe=E!==16777215&&!ft,Xt=B.width<=h.source.width&&B.height<=h.source.height;xe&&Xt&&(Bt=Z.getTintedCanvas({texture:h},E));let $e=o.createPattern(Bt,C);if(!$e)continue;let ls=ct,cs=It;if(ls===0||cs===0)continue;let cr=1/ls,Er=1/cs,hs=(q.x1-q.x0)*cr,us=(q.y1-q.y0)*cr,ds=(q.x3-q.x0)*Er,fs=(q.y3-q.y0)*Er,di=q.x0-hs*St-ds*Kt,xo=q.y0-us*St-fs*Kt,fi=h.source.pixelWidth,pi=h.source.pixelHeight;ni._tempPatternMatrix.set(hs*fi,us*pi,ds*fi,fs*pi,di*fi,xo*pi),Z.applyPatternTransform($e,ni._tempPatternMatrix),o.fillStyle=$e,o.fillRect(St,Kt,ct,It)}else{let xe=E!==16777215||ft?Z.getTintedCanvas({texture:h},E):u,Xt=xe!==u;o.drawImage(xe,Xt?0:H,Xt?0:K,Xt?xe.width:I,Xt?xe.height:U,St,Kt,ct,It)}}}};ju._tempPatternMatrix=new k;ju.extension={type:[y.CanvasPipesAdaptor],name:"batch"};p0=ju});var Yn,g0=p(()=>{P();Yn=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&t.mask;let n=this._colorStack[this._colorStackIndex];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;this._colorStackIndex--;let n=s[this._colorStackIndex-1];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1}))}execute(t){}destroy(){this._renderer=null,this._colorStack=null}};Yn.extension={type:[y.CanvasPipes],name:"colorMask"}});function x0(i){let t=[];return i.replace(Sw,(e,r,s)=>{let n=r.toLowerCase(),o=r,a=ww(s);for(n==="m"&&a.length>2&&(t.push([o,...a.splice(0,2)]),n="l",o=o==="m"?"l":"L");;){if(a.length===Xu[n])return t.push([o,...a]),"";if(a.length<Xu[n])throw new Error("malformed path data");t.push([o,...a.splice(0,Xu[n])])}}),t}function ww(i){let t=i.match(Tw);return t?t.map(Number):[]}var Xu,Sw,Tw,_0=p(()=>{Xu={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},Sw=/([astvzqmhlc])([^astvzqmhlc]*)/gi,Tw=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi});function y0(i,t){let e=x0(i),r=[],s=null,n=0,o=0;for(let a=0;a<e.length;a++){let l=e[a],c=l[0],h=l;switch(c){case"M":n=h[1],o=h[2],t.moveTo(n,o);break;case"m":n+=h[1],o+=h[2],t.moveTo(n,o);break;case"H":n=h[1],t.lineTo(n,o);break;case"h":n+=h[1],t.lineTo(n,o);break;case"V":o=h[1],t.lineTo(n,o);break;case"v":o+=h[1],t.lineTo(n,o);break;case"L":n=h[1],o=h[2],t.lineTo(n,o);break;case"l":n+=h[1],o+=h[2],t.lineTo(n,o);break;case"C":n=h[5],o=h[6],t.bezierCurveTo(h[1],h[2],h[3],h[4],n,o);break;case"c":t.bezierCurveTo(n+h[1],o+h[2],n+h[3],o+h[4],n+h[5],o+h[6]),n+=h[5],o+=h[6];break;case"S":n=h[3],o=h[4],t.bezierCurveToShort(h[1],h[2],n,o);break;case"s":t.bezierCurveToShort(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"Q":n=h[3],o=h[4],t.quadraticCurveTo(h[1],h[2],n,o);break;case"q":t.quadraticCurveTo(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"T":n=h[1],o=h[2],t.quadraticCurveToShort(n,o);break;case"t":n+=h[1],o+=h[2],t.quadraticCurveToShort(n,o);break;case"A":n=h[6],o=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"a":n+=h[6],o+=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"Z":case"z":t.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:L(`Unknown SVG path command: ${c}`)}c!=="Z"&&c!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return t}var b0=p(()=>{_0();ht()});var Yu,$u,Ku,Ji,fl=p(()=>{P();xa();Vh();Ro();Ie();yt();Ke();hl();Yu=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}reset(){this.batches&&this.batches.forEach(t=>{bt.return(t)}),this.graphicsData&&bt.return(this.graphicsData),this.isBatchable=!1,this.context=null,this.batches.length=0,this.geometryData.indices.length=0,this.geometryData.vertices.length=0,this.geometryData.uvs.length=0,this.graphicsData=null}destroy(){this.reset(),this.batches=null,this.geometryData=null}},$u=class{constructor(){this.instructions=new hr}init(t){let e=t.maxTextures;this.batcher?this.batcher._updateMaxTextures(e):this.batcher=new hn({maxTextures:e}),this.instructions.reset()}get geometry(){return O(bf,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}destroy(){this.batcher.destroy(),this.instructions.destroy(),this.batcher=null,this.instructions=null}},Ku=class qu{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){qu.defaultOptions.bezierSmoothness=t?.bezierSmoothness??qu.defaultOptions.bezierSmoothness}getContextRenderData(t){return t._gpuData[this._renderer.uid].graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=!!t._gpuData[this._renderer.uid],r=t._gpuData[this._renderer.uid]||this._initContext(t);if(t.dirty||!e){e&&r.reset(),d0(t,r);let s=t.batchMode;t.customShader||s==="no-batch"?r.isBatchable=!1:s==="auto"?r.isBatchable=r.geometryData.vertices.length<400:r.isBatchable=!0,t.dirty=!1}return r}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=bt.get($u,{maxTextures:this._renderer.limits.maxBatchableTextures}),r=t._gpuData[this._renderer.uid],{batches:s,geometryData:n}=r;r.graphicsData=e;let o=n.vertices.length,a=n.indices.length;for(let u=0;u<s.length;u++)s[u].applyTransform=!1;let l=e.batcher;l.ensureAttributeBuffer(o),l.ensureIndexBuffer(a),l.begin();for(let u=0;u<s.length;u++){let d=s[u];l.add(d)}l.finish(e.instructions);let c=l.geometry;c.indexBuffer.setDataWithSize(l.indexBuffer,l.indexSize,!0),c.buffers[0].setDataWithSize(l.attributeBuffer.float32View,l.attributeSize,!0);let h=l.batches;for(let u=0;u<h.length;u++){let d=h[u];d.bindGroup=Gi(d.textures.textures,d.textures.count,this._renderer.limits.maxBatchableTextures)}return e}_initContext(t){let e=new Yu;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};Ku.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"graphicsContext"};Ku.defaultOptions={bezierSmoothness:.5};Ji=Ku});function ml(i,t,e,r,s,n,o,a,l,c){let u=Math.min(.99,Math.max(0,c??Ji.defaultOptions.bezierSmoothness)),d=(Ew-u)/1;return d*=d,Pw(t,e,r,s,n,o,a,l,i,d),i}function Pw(i,t,e,r,s,n,o,a,l,c){Qu(i,t,e,r,s,n,o,a,l,c,0),l.push(o,a)}function Qu(i,t,e,r,s,n,o,a,l,c,h){if(h>Cw)return;let u=Math.PI,d=(i+e)/2,f=(t+r)/2,m=(e+s)/2,g=(r+n)/2,_=(s+o)/2,x=(n+a)/2,b=(d+m)/2,v=(f+g)/2,S=(m+_)/2,T=(g+x)/2,w=(b+S)/2,E=(v+T)/2;if(h>0){let B=o-i,R=a-t,M=Math.abs((e-o)*R-(r-a)*B),C=Math.abs((s-o)*R-(n-a)*B),A,D;if(M>pl&&C>pl){if((M+C)*(M+C)<=c*(B*B+R*R)){if(ts<Zu){l.push(w,E);return}let H=Math.atan2(n-r,s-e);if(A=Math.abs(H-Math.atan2(r-t,e-i)),D=Math.abs(Math.atan2(a-n,o-s)-H),A>=u&&(A=2*u-A),D>=u&&(D=2*u-D),A+D<ts){l.push(w,E);return}if(oi!==0){if(A>oi){l.push(e,r);return}if(D>oi){l.push(s,n);return}}}}else if(M>pl){if(M*M<=c*(B*B+R*R)){if(ts<Zu){l.push(w,E);return}if(A=Math.abs(Math.atan2(n-r,s-e)-Math.atan2(r-t,e-i)),A>=u&&(A=2*u-A),A<ts){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(e,r);return}}}else if(C>pl){if(C*C<=c*(B*B+R*R)){if(ts<Zu){l.push(w,E);return}if(A=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-e)),A>=u&&(A=2*u-A),A<ts){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(s,n);return}}}else if(B=w-(i+o)/2,R=E-(t+a)/2,B*B+R*R<=c){l.push(w,E);return}}Qu(i,t,d,f,b,v,w,E,l,c,h+1),Qu(w,E,S,T,_,x,o,a,l,c,h+1)}var Cw,pl,Ew,Zu,ts,oi,Ju=p(()=>{fl();Cw=8,pl=11920929e-14,Ew=1,Zu=.01,ts=0,oi=0});function S0(i,t,e,r,s,n,o,a){let c=Math.min(.99,Math.max(0,a??Ji.defaultOptions.bezierSmoothness)),h=(Rw-c)/1;return h*=h,Bw(t,e,r,s,n,o,i,h),i}function Bw(i,t,e,r,s,n,o,a){td(o,i,t,e,r,s,n,a,0),o.push(s,n)}function td(i,t,e,r,s,n,o,a,l){if(l>Mw)return;let c=Math.PI,h=(t+r)/2,u=(e+s)/2,d=(r+n)/2,f=(s+o)/2,m=(h+d)/2,g=(u+f)/2,_=n-t,x=o-e,b=Math.abs((r-n)*x-(s-o)*_);if(b>Aw){if(b*b<=a*(_*_+x*x)){if(v0<kw){i.push(m,g);return}let v=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-e,r-t));if(v>=c&&(v=2*c-v),v<v0){i.push(m,g);return}}}else if(_=m-(t+n)/2,x=g-(e+o)/2,_*_+x*x<=a){i.push(m,g);return}td(i,t,e,h,u,m,g,a,l+1),td(i,m,g,d,f,n,o,a,l+1)}var Mw,Aw,Rw,kw,v0,T0=p(()=>{fl();Mw=8,Aw=11920929e-14,Rw=1,kw=.01,v0=0});function gl(i,t,e,r,s,n,o,a){let l=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(l=2*Math.PI-l),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(l/Math.PI)))),a=Math.max(a,3);let c=l/a,h=s;c*=o?-1:1;for(let u=0;u<a+1;u++){let d=Math.cos(h),f=Math.sin(h),m=t+d*r,g=e+f*r;i.push(m,g),h+=c}}var ed=p(()=>{"use strict"});function w0(i,t,e,r,s,n){let o=i[i.length-2],l=i[i.length-1]-e,c=o-t,h=s-e,u=r-t,d=Math.abs(l*u-c*h);if(d<1e-8||n===0){(i[i.length-2]!==t||i[i.length-1]!==e)&&i.push(t,e);return}let f=l*l+c*c,m=h*h+u*u,g=l*h+c*u,_=n*Math.sqrt(f)/d,x=n*Math.sqrt(m)/d,b=_*g/f,v=x*g/m,S=_*u+x*c,T=_*h+x*l,w=c*(x+b),E=l*(x+b),B=u*(_+v),R=h*(_+v),M=Math.atan2(E-T,w-S),C=Math.atan2(R-T,B-S);gl(i,S+t,T+e,n,M,C,c*h>u*l)}var C0=p(()=>{ed()});function Iw(i,t){let e=t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=t===1.5707963267948966?.551915024494:e,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+t),a=Math.sin(i+t);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function P0(i,t,e,r,s,n,o,a=0,l=0,c=0){if(n===0||o===0)return;let h=Math.sin(a*$n/360),u=Math.cos(a*$n/360),d=u*(t-r)/2+h*(e-s)/2,f=-h*(t-r)/2+u*(e-s)/2;if(d===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(d,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),Gw(t,e,r,s,n,o,l,c,h,u,d,f,rd);let{ang1:g,ang2:_}=rd,{centerX:x,centerY:b}=rd,v=Math.abs(_)/($n/4);Math.abs(1-v)<1e-7&&(v=1);let S=Math.max(Math.ceil(v),1);_/=S;let T=i[i.length-2],w=i[i.length-1],E={x:0,y:0};for(let B=0;B<S;B++){let R=Iw(g,_),{x:M,y:C}=id(R[0],n,o,u,h,x,b,E),{x:A,y:D}=id(R[1],n,o,u,h,x,b,E),{x:H,y:K}=id(R[2],n,o,u,h,x,b,E);ml(i,T,w,M,C,A,D,H,K),T=H,w=K,g+=_}}var $n,rd,id,E0,Gw,M0=p(()=>{Ju();$n=Math.PI*2,rd={centerX:0,centerY:0,ang1:0,ang2:0},id=({x:i,y:t},e,r,s,n,o,a,l)=>{i*=e,t*=r;let c=s*i-n*t,h=n*i+s*t;return l.x=c+o,l.y=h+a,l};E0=(i,t,e,r)=>{let s=i*r-t*e<0?-1:1,n=i*e+t*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},Gw=(i,t,e,r,s,n,o,a,l,c,h,u,d)=>{let f=Math.pow(s,2),m=Math.pow(n,2),g=Math.pow(h,2),_=Math.pow(u,2),x=f*m-f*_-m*g;x<0&&(x=0),x/=f*_+m*g,x=Math.sqrt(x)*(o===a?-1:1);let b=x*s/n*u,v=x*-n/s*h,S=c*b-l*v+(i+e)/2,T=l*b+c*v+(t+r)/2,w=(h-b)/s,E=(u-v)/n,B=(-h-b)/s,R=(-u-v)/n,M=E0(1,0,w,E),C=E0(w,E,B,R);a===0&&C>0&&(C-=$n),a===1&&C<0&&(C+=$n),d.centerX=S,d.centerY=T,d.ang1=M,d.ang2=C}});function A0(i,t,e){let r=(o,a)=>{let l=a.x-o.x,c=a.y-o.y,h=Math.sqrt(l*l+c*c),u=l/h,d=c/h;return{len:h,nx:u,ny:d}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=t[t.length-1];for(let o=0;o<t.length;o++){let a=t[o%t.length],l=a.radius??e;if(l<=0){s(o,a),n=a;continue}let c=t[(o+1)%t.length],h=r(a,n),u=r(a,c);if(h.len<1e-4||u.len<1e-4){s(o,a),n=a;continue}let d=Math.asin(h.nx*u.ny-h.ny*u.nx),f=1,m=!1;h.nx*u.nx-h.ny*-u.ny<0?d<0?d=Math.PI+d:(d=Math.PI-d,f=-1,m=!0):d>0&&(f=-1,m=!0);let g=d/2,_,x=Math.abs(Math.cos(g)*l/Math.sin(g));x>Math.min(h.len/2,u.len/2)?(x=Math.min(h.len/2,u.len/2),_=Math.abs(x*Math.sin(g)/Math.cos(g))):_=l;let b=a.x+u.nx*x+-u.ny*_*f,v=a.y+u.ny*x+u.nx*_*f,S=Math.atan2(h.ny,h.nx)+Math.PI/2*f,T=Math.atan2(u.ny,u.nx)-Math.PI/2*f;o===0&&i.moveTo(b+Math.cos(S)*_,v+Math.sin(S)*_),i.arc(b,v,_,S,T,m),n=a}}function R0(i,t,e,r){let s=(a,l)=>Math.sqrt((a.x-l.x)**2+(a.y-l.y)**2),n=(a,l,c)=>({x:a.x+(l.x-a.x)*c,y:a.y+(l.y-a.y)*c}),o=t.length;for(let a=0;a<o;a++){let l=t[(a+1)%o],c=l.radius??e;if(c<=0){a===0?i.moveTo(l.x,l.y):i.lineTo(l.x,l.y);continue}let h=t[a],u=t[(a+2)%o],d=s(h,l),f;if(d<1e-4)f=l;else{let _=Math.min(d/2,c);f=n(l,h,_/d)}let m=s(u,l),g;if(m<1e-4)g=l;else{let _=Math.min(m/2,c);g=n(l,u,_/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(l.x,l.y,g.x,g.y,r)}}var k0=p(()=>{"use strict"});var Fw,xl,B0=p(()=>{mm();gm();xm();Yt();_m();ie();Ju();T0();ed();C0();M0();k0();Fw=new J,xl=class{constructor(t){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new dt,this._graphicsPath2D=t,this.signed=t.checkForHoles}moveTo(t,e){return this.startPoly(t,e),this}lineTo(t,e){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==t||n!==e)&&r.push(t,e),this}arc(t,e,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return gl(a,t,e,r,s,n,o),this}arcTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return w0(o,t,e,r,s,n),this}arcToSvg(t,e,r,s,n,o,a){let l=this._currentPoly.points;return P0(l,this._currentPoly.lastX,this._currentPoly.lastY,o,a,t,e,r,s,n),this}bezierCurveTo(t,e,r,s,n,o,a){this._ensurePoly();let l=this._currentPoly;return ml(this._currentPoly.points,l.lastX,l.lastY,t,e,r,s,n,o,a),this}quadraticCurveTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly;return S0(this._currentPoly.points,o.lastX,o.lastY,t,e,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(t,e){this.endPoly(),e&&!e.isIdentity()&&(t=t.clone(!0),t.transform(e));let r=this.shapePrimitives,s=r.length;for(let n=0;n<t.instructions.length;n++){let o=t.instructions[n];this[o.action](...o.data)}if(t.checkForHoles&&r.length-s>1){let n=null;for(let o=s;o<r.length;o++){let a=r[o];if(a.shape.type==="polygon"){let l=a.shape,c=n?.shape;c&&c.containsPolygon(l)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(t=!1){this.endPoly(t)}rect(t,e,r,s,n){return this.drawShape(new J(t,e,r,s),n),this}circle(t,e,r,s){return this.drawShape(new Zo(t,e,r),s),this}poly(t,e,r){let s=new Mi(t);return s.closePath=e,this.drawShape(s,r),this}regularPoly(t,e,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,l=Math.PI*2/s,c=[];for(let h=0;h<s;h++){let u=a-h*l;c.push(t+r*Math.cos(u),e+r*Math.sin(u))}return this.poly(c,!0,o),this}roundPoly(t,e,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(t,e,r,s,o);let l=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,l);let c=-1*Math.PI/2+o,h=Math.PI*2/s,u=(s-2)*Math.PI/s/2;for(let d=0;d<s;d++){let f=d*h+c,m=t+r*Math.cos(f),g=e+r*Math.sin(f),_=f+Math.PI+u,x=f-Math.PI-u,b=m+n*Math.cos(_),v=g+n*Math.sin(_),S=m+n*Math.cos(x),T=g+n*Math.sin(x);d===0?this.moveTo(b,v):this.lineTo(b,v),this.quadraticCurveTo(m,g,S,T,a)}return this.closePath()}roundShape(t,e,r=!1,s){return t.length<3?this:(r?R0(this,t,e,s):A0(this,t,e),this.closePath())}filletRect(t,e,r,s,n){if(n===0)return this.rect(t,e,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),l=t+r,c=e+s,h=a<0?-a:0,u=Math.abs(a);return this.moveTo(t,e+u).arcTo(t+h,e+h,t+u,e,u).lineTo(l-u,e).arcTo(l-h,e+h,l,e+u,u).lineTo(l,c-u).arcTo(l-h,c-h,t+r-u,c,u).lineTo(t+u,c).arcTo(t+h,c-h,t,c-u,u).closePath()}chamferRect(t,e,r,s,n,o){if(n<=0)return this.rect(t,e,r,s);let a=Math.min(n,Math.min(r,s)/2),l=t+r,c=e+s,h=[t+a,e,l-a,e,l,e+a,l,c-a,l-a,c,t+a,c,t,c-a,t,e+a];for(let u=h.length-1;u>=2;u-=2)h[u]===h[u-2]&&h[u-1]===h[u-3]&&h.splice(u-1,2);return this.poly(h,!0,o)}ellipse(t,e,r,s,n){return this.drawShape(new Qo(t,e,r,s),n),this}roundRect(t,e,r,s,n,o){return this.drawShape(new ta(t,e,r,s,n),o),this}drawShape(t,e){return this.endPoly(),this.shapePrimitives.push({shape:t,transform:e}),this}startPoly(t,e){let r=this._currentPoly;return r&&this.endPoly(),r=new Mi,r.points.push(t,e),this._currentPoly=r,this}endPoly(t=!1){let e=this._currentPoly;return e&&e.points.length>2&&(e.closePath=t,this.shapePrimitives.push({shape:e})),this._currentPoly=null,this}_ensurePoly(t=!0){if(!this._currentPoly&&(this._currentPoly=new Mi,t)){let e=this.shapePrimitives[this.shapePrimitives.length-1];if(e){let r=e.shape.x,s=e.shape.y;if(e.transform&&!e.transform.isIdentity()){let n=e.transform,o=r;r=n.a*r+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(r,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let t=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let e=0;e<t.instructions.length;e++){let r=t.instructions[e];this[r.action](...r.data)}this.finish()}get bounds(){let t=this._bounds;t.clear();let e=this.shapePrimitives;for(let r=0;r<e.length;r++){let s=e[r],n=s.shape.getBounds(Fw);s.transform?t.addRect(n,s.transform):t.addRect(n)}return t}}});function es(i,t){return i?i.prepend(t):t.clone()}var we,_l=p(()=>{Ee();Ft();ht();b0();B0();we=class i{constructor(t,e=!1){this.instructions=[],this.uid=$("graphicsPath"),this._dirty=!0,this.checkForHoles=e,typeof t=="string"?y0(t,this):this.instructions=t?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new xl(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(t,e){return t=t.clone(),this.instructions.push({action:"addPath",data:[t,e]}),this._dirty=!0,this}arc(...t){return this.instructions.push({action:"arc",data:t}),this._dirty=!0,this}arcTo(...t){return this.instructions.push({action:"arcTo",data:t}),this._dirty=!0,this}arcToSvg(...t){return this.instructions.push({action:"arcToSvg",data:t}),this._dirty=!0,this}bezierCurveTo(...t){return this.instructions.push({action:"bezierCurveTo",data:t}),this._dirty=!0,this}bezierCurveToShort(t,e,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(nt.shared),l=0,c=0;if(!o||o.action!=="bezierCurveTo")l=a.x,c=a.y;else{l=o.data[2],c=o.data[3];let h=a.x,u=a.y;l=h+(h-l),c=u+(u-c)}return this.instructions.push({action:"bezierCurveTo",data:[l,c,t,e,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...t){return this.instructions.push({action:"ellipse",data:t}),this._dirty=!0,this}lineTo(...t){return this.instructions.push({action:"lineTo",data:t}),this._dirty=!0,this}moveTo(...t){return this.instructions.push({action:"moveTo",data:t}),this}quadraticCurveTo(...t){return this.instructions.push({action:"quadraticCurveTo",data:t}),this._dirty=!0,this}quadraticCurveToShort(t,e,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(nt.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let l=n.x,c=n.y;o=l+(l-o),a=c+(c-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,t,e,r]}),this._dirty=!0,this}rect(t,e,r,s,n){return this.instructions.push({action:"rect",data:[t,e,r,s,n]}),this._dirty=!0,this}circle(t,e,r,s){return this.instructions.push({action:"circle",data:[t,e,r,s]}),this._dirty=!0,this}roundRect(...t){return this.instructions.push({action:"roundRect",data:t}),this._dirty=!0,this}poly(...t){return this.instructions.push({action:"poly",data:t}),this._dirty=!0,this}regularPoly(...t){return this.instructions.push({action:"regularPoly",data:t}),this._dirty=!0,this}roundPoly(...t){return this.instructions.push({action:"roundPoly",data:t}),this._dirty=!0,this}roundShape(...t){return this.instructions.push({action:"roundShape",data:t}),this._dirty=!0,this}filletRect(...t){return this.instructions.push({action:"filletRect",data:t}),this._dirty=!0,this}chamferRect(...t){return this.instructions.push({action:"chamferRect",data:t}),this._dirty=!0,this}star(t,e,r,s,n,o,a){n||(n=s/2);let l=-1*Math.PI/2+o,c=r*2,h=Math.PI*2/c,u=[];for(let d=0;d<c;d++){let f=d%2?n:s,m=d*h+l;u.push(t+f*Math.cos(m),e+f*Math.sin(m))}return this.poly(u,!0,a),this}clone(t=!1){let e=new i;if(e.checkForHoles=this.checkForHoles,!t)e.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];e.instructions.push({action:s.action,data:s.data.slice()})}return e}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(t){if(t.isIdentity())return this;let e=t.a,r=t.b,s=t.c,n=t.d,o=t.tx,a=t.ty,l=0,c=0,h=0,u=0,d=0,f=0,m=0,g=0;for(let _=0;_<this.instructions.length;_++){let x=this.instructions[_],b=x.data;switch(x.action){case"moveTo":case"lineTo":l=b[0],c=b[1],b[0]=e*l+s*c+o,b[1]=r*l+n*c+a;break;case"bezierCurveTo":h=b[0],u=b[1],d=b[2],f=b[3],l=b[4],c=b[5],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*d+s*f+o,b[3]=r*d+n*f+a,b[4]=e*l+s*c+o,b[5]=r*l+n*c+a;break;case"quadraticCurveTo":h=b[0],u=b[1],l=b[2],c=b[3],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*l+s*c+o,b[3]=r*l+n*c+a;break;case"arcToSvg":l=b[5],c=b[6],m=b[0],g=b[1],b[0]=e*m+s*g,b[1]=r*m+n*g,b[5]=e*l+s*c+o,b[6]=r*l+n*c+a;break;case"circle":b[4]=es(b[3],t);break;case"rect":b[4]=es(b[4],t);break;case"ellipse":b[8]=es(b[8],t);break;case"roundRect":b[5]=es(b[5],t);break;case"addPath":b[0].transform(t);break;case"poly":b[2]=es(b[2],t);break;case"regularPoly":case"chamferRect":b[5]=es(b[5],t);break;case"closePath":break;default:L("unknown transform action",x.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(t){let e=this.instructions.length-1,r=this.instructions[e];if(!r)return t.x=0,t.y=0,t;for(;r.action==="closePath";){if(e--,e<0)return t.x=0,t.y=0,t;r=this.instructions[e]}switch(r.action){case"moveTo":case"lineTo":t.x=r.data[0],t.y=r.data[1];break;case"quadraticCurveTo":t.x=r.data[2],t.y=r.data[3];break;case"bezierCurveTo":t.x=r.data[4],t.y=r.data[5];break;case"arc":case"arcToSvg":t.x=r.data[5],t.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(t);break}return t}}});function Pt(i,t,e){let r=i.getAttribute(t);return r?Number(r):e}var sd=p(()=>{"use strict"});function I0(i,t){let e=i.querySelectorAll("defs");for(let r=0;r<e.length;r++){let s=e[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":t.defs[o.id]=Uw(o);break;case"radialgradient":t.defs[o.id]=Dw(o);break;default:break}}}}function Uw(i){let t=Pt(i,"x1",0),e=Pt(i,"y1",0),r=Pt(i,"x2",1),s=Pt(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new ee(t,e,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let l=i.children[a],c=Pt(l,"offset",0),h=Q.shared.setValue(l.getAttribute("stop-color")).toNumber();o.addColorStop(c,h)}return o}function Dw(i){return L("[SVG Parser] Radial gradients are not yet supported"),new ee(0,0,1,0)}var G0=p(()=>{Qt();ht();ii();sd()});function nd(i){let t=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return t?t[1]:""}var F0=p(()=>{"use strict"});function od(i,t){let e=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in U0){let a=i.getAttribute(o);a&&D0(t,n,o,a.trim())}if(e){let o=e.split(";");for(let a=0;a<o.length;a++){let l=o[a].trim(),[c,h]=l.split(":");U0[c]&&D0(t,n,c,h.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function D0(i,t,e,r){switch(e){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=nd(r);t.strokeStyle.fill=i.defs[s]}else t.strokeStyle.color=Q.shared.setValue(r).toNumber();t.useStroke=!0}break;case"stroke-width":t.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=nd(r);t.fillStyle.fill=i.defs[s]}else t.fillStyle.color=Q.shared.setValue(r).toNumber();t.useFill=!0}break;case"fill-opacity":t.fillStyle.alpha=Number(r);break;case"stroke-opacity":t.strokeStyle.alpha=Number(r);break;case"opacity":t.fillStyle.alpha=Number(r),t.strokeStyle.alpha=Number(r);break}}var U0,L0=p(()=>{Qt();F0();U0={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function O0(i){if(i.length<=2)return!0;let t=i.map(a=>a.area).sort((a,l)=>l-a),[e,r]=t,s=t[t.length-1],n=e/r,o=r/s;return!(n>3&&o<2)}var N0=p(()=>{"use strict"});function z0(i){return i.split(/(?=[Mm])/).filter(r=>r.trim().length>0)}function H0(i){let t=i.match(/[-+]?[0-9]*\.?[0-9]+/g);if(!t||t.length<4)return 0;let e=t.map(Number),r=[],s=[];for(let h=0;h<e.length;h+=2)h+1<e.length&&(r.push(e[h]),s.push(e[h+1]));if(r.length===0||s.length===0)return 0;let n=Math.min(...r),o=Math.max(...r),a=Math.min(...s),l=Math.max(...s);return(o-n)*(l-a)}function ad(i,t){let e=new we(i,!1);for(let r of e.instructions)t.instructions.push(r)}var W0=p(()=>{_l()});function V0(i,t){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let e={context:t,defs:{},path:new we};I0(i,e);let r=i.children,{fillStyle:s,strokeStyle:n}=od(i,e);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&j0(a,e,s,n)}return t}function j0(i,t,e,r){let s=i.children,{fillStyle:n,strokeStyle:o}=od(i,t);n&&e?e={...e,...n}:n&&(e=n),o&&r?r={...r,...o}:o&&(r=o);let a=!e&&!r;a&&(e={color:0});let l,c,h,u,d,f,m,g,_,x,b,v,S,T,w,E,B;switch(i.nodeName.toLowerCase()){case"path":{T=i.getAttribute("d");let R=i.getAttribute("fill-rule"),M=z0(T),C=R==="evenodd",A=M.length>1;if(C&&A){let H=M.map(I=>({path:I,area:H0(I)}));if(H.sort((I,U)=>U.area-I.area),M.length>3||!O0(H))for(let I=0;I<H.length;I++){let U=H[I],j=I===0;t.context.beginPath();let G=new we(void 0,!0);ad(U.path,G),t.context.path(G),j?(e&&t.context.fill(e),r&&t.context.stroke(r)):t.context.cut()}else for(let I=0;I<H.length;I++){let U=H[I],j=I%2===1;t.context.beginPath();let G=new we(void 0,!0);ad(U.path,G),t.context.path(G),j?t.context.cut():(e&&t.context.fill(e),r&&t.context.stroke(r))}}else{let H=R?R==="evenodd":!0;w=new we(T,H),t.context.path(w),e&&t.context.fill(e),r&&t.context.stroke(r)}break}case"circle":m=Pt(i,"cx",0),g=Pt(i,"cy",0),_=Pt(i,"r",0),t.context.ellipse(m,g,_,_),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"rect":l=Pt(i,"x",0),c=Pt(i,"y",0),E=Pt(i,"width",0),B=Pt(i,"height",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),x||b?t.context.roundRect(l,c,E,B,x||b):t.context.rect(l,c,E,B),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"ellipse":m=Pt(i,"cx",0),g=Pt(i,"cy",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),t.context.beginPath(),t.context.ellipse(m,g,x,b),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"line":h=Pt(i,"x1",0),u=Pt(i,"y1",0),d=Pt(i,"x2",0),f=Pt(i,"y2",0),t.context.beginPath(),t.context.moveTo(h,u),t.context.lineTo(d,f),r&&t.context.stroke(r);break;case"polygon":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!0),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"polyline":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!1),r&&t.context.stroke(r);break;case"g":case"svg":break;default:{L(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(e=null);for(let R=0;R<s.length;R++)j0(s[R],t,e,r)}var X0=p(()=>{ht();_l();G0();sd();L0();N0();W0()});function Lw(i){return Q.isColorLike(i)}function Y0(i){return i instanceof Ge}function $0(i){return i instanceof ee}function Ow(i){return i instanceof F}function Nw(i,t,e){let r=Q.shared.setValue(t??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?e.alpha:r.alpha,i.texture=F.WHITE,{...e,...i}}function zw(i,t,e){return i.texture=t,{...e,...i}}function q0(i,t,e){return i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function K0(i,t,e){return t.buildGradient(),i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function Hw(i,t){let e={...t,...i},r=Q.shared.setValue(e.color);return e.alpha*=r.alpha,e.color=r.toNumber(),e}function sr(i,t){if(i==null)return null;let e={},r=i;return Lw(i)?Nw(e,i,t):Ow(i)?zw(e,i,t):Y0(i)?q0(e,i,t):$0(i)?K0(e,i,t):r.fill&&Y0(r.fill)?q0(r,r.fill,t):r.fill&&$0(r.fill)?K0(r,r.fill,t):Hw(r,t)}function rs(i,t){let{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}=t,c=sr(i,l);return c?{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}:null}var ld=p(()=>{Qt();gt();ii();jn()});function Z0(i,t){let e=1,r=i.shapePath.shapePrimitives;for(let s=0;s<r.length;s++){let n=r[s].shape;if(n.type!=="polygon")continue;let o=n.points,a=o.length;if(a<6)continue;let l=n.closePath;for(let c=0;c<a;c+=2){if(!l&&(c===0||c===a-2))continue;let h=(c-2+a)%a,u=(c+2)%a,d=o[h],f=o[h+1],m=o[c],g=o[c+1],_=o[u],x=o[u+1],b=d-m,v=f-g,S=_-m,T=x-g,w=b*b+v*v,E=S*S+T*T;if(w<1e-12||E<1e-12)continue;let M=(b*S+v*T)/Math.sqrt(w*E);M<-1?M=-1:M>1&&(M=1);let C=Math.sqrt((1-M)*.5);if(C<1e-6)continue;let A=Math.min(1/C,t);A>e&&(e=A)}}return e}var Q0=p(()=>{"use strict"});var Ww,J0,cd,ge,hd=p(()=>{Ht();Qt();ot();Ee();gt();Ft();yt();ie();_l();X0();ld();Q0();Ww=new nt,J0=new k,cd=class Ve extends ut{constructor(){super(...arguments),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this.destroyed=!1,this._activePath=new we,this._transform=new k,this._fillStyle={...Ve.defaultFillStyle},this._strokeStyle={...Ve.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new dt,this._boundsDirty=!0}clone(){let t=new Ve;return t.batchMode=this.batchMode,t.instructions=this.instructions.slice(),t._activePath=this._activePath.clone(),t._transform=this._transform.clone(),t._fillStyle={...this._fillStyle},t._strokeStyle={...this._strokeStyle},t._stateStack=this._stateStack.slice(),t._bounds=this._bounds.clone(),t._boundsDirty=!0,t}get fillStyle(){return this._fillStyle}set fillStyle(t){this._fillStyle=sr(t,Ve.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(t){this._strokeStyle=rs(t,Ve.defaultStrokeStyle)}setFillStyle(t){return this._fillStyle=sr(t,Ve.defaultFillStyle),this}setStrokeStyle(t){return this._strokeStyle=sr(t,Ve.defaultStrokeStyle),this}texture(t,e,r,s,n,o){return this.instructions.push({action:"texture",data:{image:t,dx:r||0,dy:s||0,dw:n||t.frame.width,dh:o||t.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:e||e===0?Q.shared.setValue(e).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new we,this}fill(t,e){let r,s=this.instructions[this.instructions.length-1];return this._tick===0&&s?.action==="stroke"?r=s.data.path:r=this._activePath.clone(),r?(t!=null&&(e!==void 0&&typeof t=="number"&&(O(rt,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),t={color:t,alpha:e}),this._fillStyle=sr(t,Ve.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:t,y:e}=this._activePath.getLastPoint(nt.shared);this._activePath.clear(),this._activePath.moveTo(t,e)}stroke(t){let e,r=this.instructions[this.instructions.length-1];return this._tick===0&&r?.action==="fill"?e=r.data.path:e=this._activePath.clone(),e?(t!=null&&(this._strokeStyle=rs(t,Ve.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:e}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let t=0;t<2;t++){let e=this.instructions[this.instructions.length-1-t],r=this._activePath.clone();if(e&&(e.action==="stroke"||e.action==="fill"))if(e.data.hole)e.data.hole.addPath(r);else{e.data.hole=r;break}}return this._initNextPathLocation(),this}arc(t,e,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*t+a.c*e+a.tx,a.b*t+a.d*e+a.ty,r,s,n,o),this}arcTo(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.arcToSvg(t,e,r,s,n,l.a*o+l.c*a+l.tx,l.b*o+l.d*a+l.ty),this}bezierCurveTo(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.bezierCurveTo(l.a*t+l.c*e+l.tx,l.b*t+l.d*e+l.ty,l.a*r+l.c*s+l.tx,l.b*r+l.d*s+l.ty,l.a*n+l.c*o+l.tx,l.b*n+l.d*o+l.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(t,e,r,s){return this._tick++,this._activePath.ellipse(t,e,r,s,this._transform.clone()),this}circle(t,e,r){return this._tick++,this._activePath.circle(t,e,r,this._transform.clone()),this}path(t){return this._tick++,this._activePath.addPath(t,this._transform.clone()),this}lineTo(t,e){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*t+r.c*e+r.tx,r.b*t+r.d*e+r.ty),this}moveTo(t,e){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*t+r.c*e+r.tx,o=r.b*t+r.d*e+r.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(t,e,r,s){return this._tick++,this._activePath.rect(t,e,r,s,this._transform.clone()),this}roundRect(t,e,r,s,n){return this._tick++,this._activePath.roundRect(t,e,r,s,n,this._transform.clone()),this}poly(t,e){return this._tick++,this._activePath.poly(t,e,this._transform.clone()),this}regularPoly(t,e,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(t,e,r,s,n,o),this}roundPoly(t,e,r,s,n,o){return this._tick++,this._activePath.roundPoly(t,e,r,s,n,o),this}roundShape(t,e,r,s){return this._tick++,this._activePath.roundShape(t,e,r,s),this}filletRect(t,e,r,s,n){return this._tick++,this._activePath.filletRect(t,e,r,s,n),this}chamferRect(t,e,r,s,n,o){return this._tick++,this._activePath.chamferRect(t,e,r,s,n,o),this}star(t,e,r,s,n=0,o=0){return this._tick++,this._activePath.star(t,e,r,s,n,o,this._transform.clone()),this}svg(t){return this._tick++,V0(t,this),this}restore(){let t=this._stateStack.pop();return t&&(this._transform=t.transform,this._fillStyle=t.fillStyle,this._strokeStyle=t.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(t){return this._transform.rotate(t),this}scale(t,e=t){return this._transform.scale(t,e),this}setTransform(t,e,r,s,n,o){return t instanceof k?(this._transform.set(t.a,t.b,t.c,t.d,t.tx,t.ty),this):(this._transform.set(t,e,r,s,n,o),this)}transform(t,e,r,s,n,o){return t instanceof k?(this._transform.append(t),this):(J0.set(t,e,r,s,n,o),this._transform.append(J0),this)}translate(t,e=t){return this._transform.translate(t,e),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this._boundsDirty=!0,this.dirty=!0,this.emit("update",this,16)}get bounds(){if(!this._boundsDirty)return this._bounds;this._boundsDirty=!1;let t=this._bounds;t.clear();for(let e=0;e<this.instructions.length;e++){let r=this.instructions[e],s=r.action;if(s==="fill"){let n=r.data;t.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;t.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=r.data,o=n.style.alignment,a=n.style.width*(1-o);n.style.join==="miter"&&(a*=Z0(n.path,n.style.miterLimit));let l=n.path.bounds;t.addFrame(l.minX-a,l.minY-a,l.maxX+a,l.maxY+a)}}return t.isValid||t.set(0,0,0,0),t}containsPoint(t){if(!this.bounds.containsPoint(t.x,t.y))return!1;let e=this.instructions,r=!1;for(let s=0;s<e.length;s++){let n=e[s],o=n.data,a=o.path;if(!n.action||!a)continue;let l=o.style,c=a.shapePath.shapePrimitives;for(let h=0;h<c.length;h++){let u=c[h].shape;if(!l||!u)continue;let d=c[h].transform,f=d?d.applyInverse(t,Ww):t;if(n.action==="fill")r=u.contains(f.x,f.y);else{let g=l;r=u.strokeContains(f.x,f.y,g.width,g.alignment)}let m=o.hole;if(m){let g=m.shapePath?.shapePrimitives;if(g)for(let _=0;_<g.length;_++)g[_].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){if(this.destroyed)return;if(this.destroyed=!0,this._stateStack.length=0,this._transform=null,this.unload(),this.emit("destroy",this),this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fillStyle.texture&&(this._fillStyle.fill&&"uid"in this._fillStyle.fill?this._fillStyle.fill.destroy():this._fillStyle.texture.destroy(r)),this._strokeStyle.texture&&(this._strokeStyle.fill&&"uid"in this._strokeStyle.fill?this._strokeStyle.fill.destroy():this._strokeStyle.texture.destroy(r))}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};cd.defaultFillStyle={color:16777215,alpha:1,texture:F.WHITE,matrix:null,fill:null,textureSpace:"local"};cd.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:F.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};ge=cd});var ud,dd,pd,tv,ev=p(()=>{P();Ro();Ie();ud=class{constructor(){this.isBatchable=!1}reset(){this.isBatchable=!1,this.context=null,this.graphicsData&&(this.graphicsData.destroy(),this.graphicsData=null)}destroy(){this.reset()}},dd=class{constructor(){this.instructions=new hr}init(){this.instructions.reset()}destroy(){this.instructions.destroy(),this.instructions=null}},pd=class fd{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){fd.defaultOptions.bezierSmoothness=t?.bezierSmoothness??fd.defaultOptions.bezierSmoothness}getContextRenderData(t){return this.getGpuContext(t).graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=t._gpuData,r=!!e[this._renderer.uid],s=e[this._renderer.uid]||this._initContext(t);return(t.dirty||!r)&&(r&&s.reset(),s.isBatchable=!1,t.dirty=!1),s}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=new dd,r=this.getGpuContext(t);return r.graphicsData=e,e.init(),e}_initContext(t){let e=new ud;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};pd.extension={type:[y.CanvasSystem],name:"graphicsContext"};pd.defaultOptions={bezierSmoothness:.5};tv=pd});var qn,rv=p(()=>{P();Be();Ie();qn=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){return!1}addRenderable(t,e){this._managedGraphics.add(t),this.renderer.renderPipes.batch.break(e),e.add(t)}updateRenderable(t){}execute(t){t.isRenderable&&this._adaptor.execute(this,t)}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null}};qn.extension={type:[y.CanvasPipes],name:"graphics"}});var md,Kn,iv=p(()=>{P();Be();Ie();Ke();Ga();zu();md=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(t=>{bt.return(t)}),this.batches.length=0}},Kn=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){let e=t.context,r=!!t._gpuData,n=this.renderer.graphicsContext.updateGpuContext(e);return!!(n.isBatchable||r!==n.isBatchable)}addRenderable(t,e){let s=this.renderer.graphicsContext.updateGpuContext(t.context);t.didViewUpdate&&this._rebuild(t),s.isBatchable?this._addToBatcher(t,e):(this.renderer.renderPipes.batch.break(e),e.add(t))}updateRenderable(t){let r=this._getGpuDataForRenderable(t).batches;for(let s=0;s<r.length;s++){let n=r[s];n._batcher.updateElement(n)}}execute(t){if(!t.isRenderable)return;let e=this.renderer,r=t.context;if(!e.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=t.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=t.groupTransform,o.uRound=e._roundPixels|t._roundPixels,Wi(t.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,t)}_rebuild(t){let e=this._getGpuDataForRenderable(t),s=this.renderer.graphicsContext.updateGpuContext(t.context);e.destroy(),s.isBatchable&&this._updateBatchesForRenderable(t,e)}_addToBatcher(t,e){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(t).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,e)}}_getGpuDataForRenderable(t){return t._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(t)}_initGpuDataForRenderable(t){let e=new md;return t._gpuData[this.renderer.uid]=e,this._managedGraphics.add(t),e}_updateBatchesForRenderable(t,e){let r=t.context,n=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|t._roundPixels;e.batches=n.batches.map(a=>{let l=bt.get(si);return a.copyTo(l),l.renderable=t,l.roundPixels=o,l})}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};Kn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"graphics"}});var sv=p(()=>{P();ev();rv();fl();iv();z.add(qn);z.add(Kn);z.add(tv);z.add(Ji)});var oe,gd=p(()=>{yt();Es();hd();sv();oe=class i extends Le{constructor(t){t instanceof ge&&(t={context:t});let{context:e,roundPixels:r,...s}=t||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",e?this.context=e:(this.context=this._ownedContext=new ge,this.context.autoGarbageCollect=this.autoGarbageCollect),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(t){t!==this._context&&(this._context&&(this._context.off("update",this.onViewUpdate,this),this._context.off("unload",this.unload,this)),this._context=t,this._context.on("update",this.onViewUpdate,this),this._context.on("unload",this.unload,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(t){return this._context.containsPoint(t)}destroy(t){this._ownedContext&&!t?this._ownedContext.destroy(t):(t===!0||t?.context===!0)&&this._context.destroy(t),this._context?.off("update",this.onViewUpdate,this),this._context?.off("unload",this.unload,this),this._ownedContext=null,this._context=null,super.destroy(t)}_onTouch(t){this._gcLastUsed=t,this._context._gcLastUsed=t}_callContextMethod(t,e){return this.context[t](...e),this}setFillStyle(...t){return this._callContextMethod("setFillStyle",t)}setStrokeStyle(...t){return this._callContextMethod("setStrokeStyle",t)}fill(...t){return this._callContextMethod("fill",t)}stroke(...t){return this._callContextMethod("stroke",t)}texture(...t){return this._callContextMethod("texture",t)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...t){return this._callContextMethod("arc",t)}arcTo(...t){return this._callContextMethod("arcTo",t)}arcToSvg(...t){return this._callContextMethod("arcToSvg",t)}bezierCurveTo(...t){return this._callContextMethod("bezierCurveTo",t)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...t){return this._callContextMethod("ellipse",t)}circle(...t){return this._callContextMethod("circle",t)}path(...t){return this._callContextMethod("path",t)}lineTo(...t){return this._callContextMethod("lineTo",t)}moveTo(...t){return this._callContextMethod("moveTo",t)}quadraticCurveTo(...t){return this._callContextMethod("quadraticCurveTo",t)}rect(...t){return this._callContextMethod("rect",t)}roundRect(...t){return this._callContextMethod("roundRect",t)}poly(...t){return this._callContextMethod("poly",t)}regularPoly(...t){return this._callContextMethod("regularPoly",t)}roundPoly(...t){return this._callContextMethod("roundPoly",t)}roundShape(...t){return this._callContextMethod("roundShape",t)}filletRect(...t){return this._callContextMethod("filletRect",t)}chamferRect(...t){return this._callContextMethod("chamferRect",t)}star(...t){return this._callContextMethod("star",t)}svg(...t){return this._callContextMethod("svg",t)}restore(...t){return this._callContextMethod("restore",t)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...t){return this._callContextMethod("rotate",t)}scaleTransform(...t){return this._callContextMethod("scale",t)}setTransform(...t){return this._callContextMethod("setTransform",t)}transform(...t){return this._callContextMethod("transform",t)}translateTransform(...t){return this._callContextMethod("translate",t)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(t){this._context.fillStyle=t}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(t){this._context.strokeStyle=t}clone(t=!1){return t?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(t,e,r){O(rt,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return t&&(s.width=t),e&&(s.color=e),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(t,e){O(rt,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return t!==void 0&&(r.color=t),e!==void 0&&(r.alpha=e),this.context.fillStyle=r,this}endFill(){O(rt,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let t=this.context.strokeStyle;return(t.width!==ge.defaultStrokeStyle.width||t.color!==ge.defaultStrokeStyle.color||t.alpha!==ge.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...t){return O(rt,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",t)}drawEllipse(...t){return O(rt,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",t)}drawPolygon(...t){return O(rt,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",t)}drawRect(...t){return O(rt,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",t)}drawRoundedRect(...t){return O(rt,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",t)}drawStar(...t){return O(rt,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",t)}}});function Vw(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function nv(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;Vw(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.moveTo(e.x+e.radius,e.y),i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?(i.moveTo(e.x+e.halfWidth,e.y),i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2)):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.moveTo(1,0),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function jw(i,t,e){let r=[],s=[],n=[];if(!Tr[t.type]?.build(t,r))return!1;let a=t.closePath??!0;Zi(r,e,!1,a,s,n);for(let l=0;l<n.length;l+=3){let c=n[l]*2,h=n[l+1]*2,u=n[l+2]*2;i.moveTo(s[c],s[c+1]),i.lineTo(s[h],s[h+1]),i.lineTo(s[u],s[u+1]),i.closePath()}return!0}function Xw(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),nv(i,r.shape),n&&i.restore()}return!0}var Zn,ov=p(()=>{P();al();gd();hl();ht();Zn=class{constructor(t){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){if(t.action!=="pushMaskBegin"&&t.action!=="popMaskEnd")return;let e=this._renderer,r=e.canvasContext,s=r?.activeContext;if(!s)return;if(t.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}t.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");let n=t.mask.mask;if(!(n instanceof oe)){this._warnOnce("nonGraphics","CanvasRenderer: only Graphics masks are supported in Canvas2D; skipping mask."),this._canvasMaskStack.push(!1);return}let o=n,a=o.context?.instructions;if(!a?.length){this._canvasMaskStack.push(!1);return}s.save(),r.setContextTransform(o.groupTransform,(e._roundPixels|o._roundPixels)===1),s.beginPath();let l=!1,c=!1;for(let h=0;h<a.length;h++){let u=a[h],d=u.action;if(d!=="fill"&&d!=="stroke")continue;let f=u.data,m=f?.path?.shapePath;if(!m?.shapePrimitives?.length)continue;let g=d==="stroke",_=m.shapePrimitives;for(let x=0;x<_.length;x++){let b=_[x];if(!b?.shape)continue;let v=b.transform,S=v&&!v.isIdentity();S&&(s.save(),s.transform(v.a,v.b,v.c,v.d,v.tx,v.ty)),g&&f.style?l=jw(s,b.shape,f.style)||l:(nv(s,b.shape),c=Xw(s,b.holes)||c,l=!0),S&&s.restore()}}if(!l){s.restore(),this._canvasMaskStack.push(!1);return}c?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(t,e){this._warnedMaskTypes.has(t)||(this._warnedMaskTypes.add(t),L(e))}};Zn.extension={type:[y.CanvasPipes],name:"stencilMask"}});function av(){let i=$o(),t=Object.create(null);return t.inherit=_t,t.none=_t,t.normal="source-over",t.add="lighter",t.multiply=i?"multiply":_t,t.screen=i?"screen":_t,t.overlay=i?"overlay":_t,t.darken=i?"darken":_t,t.lighten=i?"lighten":_t,t["color-dodge"]=i?"color-dodge":_t,t["color-burn"]=i?"color-burn":_t,t["hard-light"]=i?"hard-light":_t,t["soft-light"]=i?"soft-light":_t,t.difference=i?"difference":_t,t.exclusion=i?"exclusion":_t,t.saturation=i?"saturation":_t,t.color=i?"color":_t,t.luminosity=i?"luminosity":_t,t["linear-burn"]=i?"color-burn":_t,t["linear-dodge"]=i?"color-dodge":_t,t["linear-light"]=i?"hard-light":_t,t["pin-light"]=i?"hard-light":_t,t["vivid-light"]=i?"hard-light":_t,t["hard-mix"]=_t,t.negation=i?"difference":_t,t["normal-npm"]=t.normal,t["add-npm"]=t.add,t["screen-npm"]=t.screen,t.erase="destination-out",t.subtract=_t,t.divide=_t,t.min=_t,t.max=_t,t}var _t,lv=p(()=>{Oc();_t="source-over"});var Yw,Qn,cv=p(()=>{Qt();P();ot();lv();Yw=new k,Qn=class{constructor(t){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=av(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=t}resolutionChange(t){this.activeResolution=t}init(){let t=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:t}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){let e=this.rootContext;e.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":e.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":e.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":e.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(t,e,r,s){let n=s?k.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||k.IDENTITY,o=Yw;o.copyFrom(n),o.append(t);let a=this._projTransform,l=this.activeResolution;if(r=r||l,a){let c=k.shared;c.copyFrom(o),c.prepend(a),o=c}e?this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l|0,o.ty*l|0):this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l,o.ty*l)}clear(t,e){let r=this.activeContext,s=this._renderer;if(r.clearRect(0,0,s.width,s.height),t){let n=Q.shared.setValue(t);r.globalAlpha=e??n.alpha,r.fillStyle=n.toHex(),r.fillRect(0,0,s.width,s.height),r.globalAlpha=1}}setBlendMode(t){if(this._activeBlendMode===t)return;this._activeBlendMode=t,this._outerBlend=!1;let e=this.blendModes[t];if(!e){this._warnedBlendModes.has(t)||(console.warn(`CanvasRenderer: blend mode "${t}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(t)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=e}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}};Qn.extension={type:[y.CanvasSystem],name:"canvasContext"}});var Jn,hv=p(()=>{P();Jn=class{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}};Jn.extension={type:[y.CanvasSystem],name:"limits"}});var yl,uv=p(()=>{Qt();xt();ht();fr();yl=class{init(t,e){this._renderer=t,this._renderTargetSystem=e}initGpuRenderTarget(t){let e=t.colorTexture,{canvas:r,context:s}=this._ensureCanvas(e);return{canvas:r,context:s,width:r.width,height:r.height}}resizeGpuRenderTarget(t){let e=t.colorTexture,{canvas:r}=this._ensureCanvas(e);r.width=t.pixelWidth,r.height=t.pixelHeight}startRenderPass(t,e,r,s){let n=this._renderTargetSystem.getGpuRenderTarget(t);this._renderer.canvasContext.activeContext=n.context,this._renderer.canvasContext.activeResolution=t.resolution,e&&this.clear(t,e,r,s)}clear(t,e,r,s){let o=this._renderTargetSystem.getGpuRenderTarget(t).context,a=s||{x:0,y:0,width:t.pixelWidth,height:t.pixelHeight};if(o.setTransform(1,0,0,1,0,0),o.clearRect(a.x,a.y,a.width,a.height),r){let l=Q.shared.setValue(r);l.alpha>0&&(o.globalAlpha=l.alpha,o.fillStyle=l.toHex(),o.fillRect(a.x,a.y,a.width,a.height),o.globalAlpha=1)}}finishRenderPass(){}copyToTexture(t,e,r,s,n){let a=this._renderTargetSystem.getGpuRenderTarget(t).canvas,l=e.source,{context:c}=this._ensureCanvas(l),h=n?.x??0,u=n?.y??0;return c.drawImage(a,r.x,r.y,s.width,s.height,h,u,s.width,s.height),l.update(),e}copyDepthTexture(t,e,r,s,n){L("[CanvasRenderTargetAdaptor] copyDepthTexture is not supported in the canvas renderer")}destroyGpuRenderTarget(t){}_ensureCanvas(t){let e=t.resource;(!e||!Tt.test(e))&&(e=W.get().createCanvas(t.pixelWidth,t.pixelHeight),t.resource=e),(e.width!==t.pixelWidth||e.height!==t.pixelHeight)&&(e.width=t.pixelWidth,e.height=t.pixelHeight);let r=e.getContext("2d");return{canvas:e,context:r}}}});var to,dv=p(()=>{P();Wa();uv();to=class extends Sr{constructor(t){super(t),this.adaptor=new yl,this.adaptor.init(t,this)}};to.extension={type:[y.CanvasSystem],name:"renderTarget"}});var eo,fv=p(()=>{xt();P();Pi();eo=class{constructor(t){}init(){}initSource(t){}generateCanvas(t){let e=W.get().createCanvas(),r=e.getContext("2d"),s=Z.getCanvasSource(t);if(!s)return e;let n=t.frame,o=t.source._resolution??t.source.resolution??1,a=n.x*o,l=n.y*o,c=n.width*o,h=n.height*o;return e.width=Math.ceil(c),e.height=Math.ceil(h),r.drawImage(s,a,l,c,h,0,0,c,h),e}getPixels(t){let e=this.generateCanvas(t);return{pixels:e.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,e.width,e.height).data,width:e.width,height:e.height}}destroy(){}};eo.extension={type:[y.CanvasSystem],name:"texture"}});var xv={};zl(xv,{CanvasRenderer:()=>xd});var $w,qw,Kw,pv,mv,gv,xd,_v=p(()=>{P();Rh();Bh();f0();Fh();m0();Xh();qh();g0();ov();Zh();Vr();La();Ne();cv();hv();dv();fv();$w=[...Yi,Qn,Jn,eo,to],qw=[Kr,un,Yr,Xr,qr,Zn,Yn,jr],Kw=[p0,Xn],pv=[],mv=[],gv=[];z.handleByNamedList(y.CanvasSystem,pv);z.handleByNamedList(y.CanvasPipes,mv);z.handleByNamedList(y.CanvasPipesAdaptor,gv);z.add(...$w,...qw,...Kw);xd=class extends Te{constructor(){let t={name:"canvas",type:Lt.CANVAS,systems:pv,renderPipes:mv,renderPipeAdaptors:gv};super(t)}}});function Mv(i=1e3,t=0,e=!1){if(isNaN(i)||i<0)throw new TypeError("Invalid max value");if(isNaN(t)||t<0)throw new TypeError("Invalid ttl value");if(typeof e!="boolean")throw new TypeError("Invalid resetTtl value");return new yd(i,t,e)}var yd,Av=p(()=>{yd=class{constructor(t=0,e=0,r=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.resetTtl=r,this.size=0,this.ttl=e}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.has(t)){let e=this.items[t];delete this.items[t],this.size--,e.prev!==null&&(e.prev.next=e.next),e.next!==null&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev)}return this}entries(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++){let s=t[r];e[r]=[s,this.get(s)]}return e}evict(t=!1){if(t||this.size>0){let e=this.first;delete this.items[e.key],--this.size===0?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.has(t)&&(e=this.items[t].expiry),e}get(t){let e=this.items[t];if(e!==void 0){if(this.ttl>0&&e.expiry<=Date.now()){this.delete(t);return}return this.moveToEnd(e),e.value}}has(t){return t in this.items}moveToEnd(t){this.last!==t&&(t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),t.prev=this.last,t.next=null,this.last!==null&&(this.last.next=t),this.last=t,this.first===null&&(this.first=t))}keys(){let t=new Array(this.size),e=this.first,r=0;for(;e!==null;)t[r++]=e.key,e=e.next;return t}setWithEvicted(t,e,r=this.resetTtl){let s=null;if(this.has(t))this.set(t,e,!0,r);else{this.max>0&&this.size===this.max&&(s={...this.first},this.evict(!0));let n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e};++this.size===1?this.first=n:this.last.next=n,this.last=n}return s}set(t,e,r=!1,s=this.resetTtl){let n=this.items[t];return r||n!==void 0?(n.value=e,r===!1&&s&&(n.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.moveToEnd(n)):(this.max>0&&this.size===this.max&&this.evict(!0),n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},++this.size===1?this.first=n:this.last.next=n,this.last=n),this}values(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=this.get(t[r]);return e}}});function bd(i){return!!i.tagStyles&&Object.keys(i.tagStyles).length>0}function vd(i){return i.includes("<")}function Qw(i,t){return i.clone().assign(t)}function Rv(i,t){let e=[],r=t.tagStyles;if(!bd(t)||!vd(i))return e.push({text:i,style:t}),e;let s=[t],n=[],o="",a=0;for(;a<i.length;){let l=i[a];if(l==="<"){let c=i.indexOf(">",a);if(c===-1){o+=l,a++;continue}let h=i.indexOf("<",a+1);if(h!==-1&&h<c){o+=l,a++;continue}let u=i.slice(a+1,c);if(u.startsWith("/")){let d=u.slice(1).trim();if(n.length>0&&n[n.length-1]===d){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o=""),s.pop(),n.pop(),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}else{let d=u.trim();if(r[d]){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o="");let f=s[s.length-1],m=Qw(f,r[d]);s.push(m),n.push(d),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}}else o+=l,a++}return o.length>0&&e.push({text:o,style:s[s.length-1]}),e}var Sd=p(()=>{"use strict"});function is(i){return typeof i!="string"?!1:tC.has(i.charCodeAt(0))}function ae(i,t){return typeof i!="string"?!1:rC.has(i.charCodeAt(0))}function oC(i){return typeof i!="string"?!1:nC.has(i.charCodeAt(0))}function wl(i){return i==="normal"||i==="pre-line"}function Cl(i){return i==="normal"}function Fe(i){if(typeof i!="string")return"";let t=i.length-1;for(;t>=0&&ae(i[t]);)t--;return t<i.length-1?i.slice(0,t+1):i}function El(i){let t=[],e=[];if(typeof i!="string")return t;for(let r=0;r<i.length;r++){let s=i[r],n=i[r+1];if(ae(s,n)||is(s)){e.length>0&&(t.push(e.join("")),e.length=0),s==="\r"&&n===`
907
- `?(t.push(`\r
908
- `),r++):t.push(s);continue}e.push(s),oC(s)&&n&&!ae(n)&&!is(n)&&(t.push(e.join("")),e.length=0)}return e.length>0&&t.push(e.join("")),t}function Pl(i,t,e,r){let s=e(i),n=[];for(let o=0;o<s.length;o++){let a=s[o],l=a,c=1;for(;s[o+c];){let h=s[o+c];if(!r(l,h,i,o,t))a+=h,l=h,c++;else break}o+=c-1,n.push(a)}return n}var Jw,tC,eC,rC,iC,ij,sC,nC,kv,Bv,Ml=p(()=>{"use strict";Jw=[10,13],tC=new Set(Jw),eC=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],rC=new Set(eC),iC=[9,32],ij=new Set(iC),sC=[45,8208,8211,8212,173],nC=new Set(sC),kv=/(\r\n|\r|\n)/,Bv=/(?:\r\n|\r|\n)/});function Iv(i,t,e,r,s,n,o,a,l){let c=Rv(i,t);if(Cl(t.whiteSpace))for(let H=0;H<c.length;H++){let K=c[H];c[H]={text:K.text.replace(aC," "),style:K.style}}let u=[],d=[];for(let H of c){let K=H.text.split(kv);for(let I=0;I<K.length;I++){let U=K[I];U===`\r
909
- `||U==="\r"||U===`
910
- `?(u.push(d),d=[]):U.length>0&&d.push({text:U,style:H.style})}}(d.length>0||u.length===0)&&u.push(d);let f=e?lC(u,t,r,n,a,l):u,m=[],g=[],_=[],x=[],b=[],v=0,S=t._fontString,T=o(S);T.fontSize===0&&(T.fontSize=t.fontSize,T.ascent=t.fontSize);let w="",E=!!t.dropShadow,B=t._stroke?.width||0;for(let H of f){let K=0,I=T.ascent,U=T.descent,j="";for(let Y of H){let pt=Y.style._fontString,wt=o(pt);pt!==w&&(r.font=pt,w=pt);let lt=s(Y.text,Y.style.letterSpacing,r);K+=lt,I=Math.max(I,wt.ascent),U=Math.max(U,wt.descent),j+=Y.text;let ft=Y.style._stroke?.width||0;ft>B&&(B=ft),!E&&Y.style.dropShadow&&(E=!0)}H.length===0&&(I=T.ascent,U=T.descent),m.push(K),g.push(I),_.push(U),b.push(j);let G=t.lineHeight||I+U;x.push(G+t.leading),v=Math.max(v,K)}let R=B,M=v+R+(t.dropShadow?t.dropShadow.distance:0),C=0;for(let H=0;H<x.length;H++)C+=x[H];C=Math.max(C,x[0]+R);let A=C+(t.dropShadow?t.dropShadow.distance:0),D=t.lineHeight||T.fontSize;return{width:M,height:A,lines:b,lineWidths:m,lineHeight:D+t.leading,maxLineWidth:v,fontProperties:T,runsByLine:f,lineAscents:g,lineDescents:_,lineHeights:x,hasDropShadow:E}}function lC(i,t,e,r,s,n){let{letterSpacing:o,whiteSpace:a,wordWrapWidth:l,breakWords:c}=t,h=wl(a),u=l+o,d={},f="",m=(_,x)=>{let b=`${_}|${x.styleKey}`,v=d[b];if(v===void 0){let S=x._fontString;S!==f&&(e.font=S,f=S),v=r(_,x.letterSpacing,e)+x.letterSpacing,d[b]=v}return v},g=[];for(let _ of i){let x=cC(_),b=g.length,v=C=>{let A=0,D=C;do{let{token:H,style:K}=x[D];A+=m(H,K),D++}while(D<x.length&&x[D].continuesFromPrevious);return A},S=C=>{let A=[],D=C;do A.push({token:x[D].token,style:x[D].style}),D++;while(D<x.length&&x[D].continuesFromPrevious);return A},T=[],w=0,E=!h,B=null,R=()=>{B&&B.text.length>0&&T.push(B),B=null},M=()=>{if(R(),T.length>0){let C=T[T.length-1];C.text=Fe(C.text),C.text.length===0&&T.pop()}g.push(T),T=[],w=0,E=!1};for(let C=0;C<x.length;C++){let{token:A,style:D,continuesFromPrevious:H}=x[C],K=m(A,D);if(h){let j=ae(A),G=B?.text[B.text.length-1]??T[T.length-1]?.text.slice(-1)??"",Y=G?ae(G):!1;if(j&&Y)continue}let I=!H,U=I?v(C):K;if(U>u&&I)if(w>0&&M(),c){let j=S(C);for(let G=0;G<j.length;G++){let Y=j[G].token,pt=j[G].style,wt=Pl(Y,c,n,s);for(let lt of wt){let ft=m(lt,pt);ft+w>u&&M(),!B||B.style!==pt?(R(),B={text:lt,style:pt}):B.text+=lt,w+=ft}}C+=j.length-1}else{let j=S(C);R(),g.push(j.map(G=>({text:G.token,style:G.style}))),E=!1,C+=j.length-1}else if(U+w>u&&I){if(ae(A)){E=!1;continue}M(),B={text:A,style:D},w=K}else if(H&&!c)!B||B.style!==D?(R(),B={text:A,style:D}):B.text+=A,w+=K;else{let j=ae(A);if(w===0&&j&&!E)continue;!B||B.style!==D?(R(),B={text:A,style:D}):B.text+=A,w+=K}}if(R(),T.length>0){let C=T[T.length-1];C.text=Fe(C.text),C.text.length===0&&T.pop()}(T.length>0||g.length===b)&&g.push(T)}return g}function cC(i){let t=[],e=!1;for(let r of i){let s=El(r.text),n=!0;for(let o of s){let a=ae(o)||is(o),l=n&&e&&!a;t.push({token:o,style:r.style,continuesFromPrevious:l}),e=!a,n=!1}}return t}var aC,Gv=p(()=>{Sd();Ml();aC=/\r\n|\r|\n/g});function Fv(i,t,e,r,s){let n=e[i];return typeof n!="number"&&(n=s(i,t,r)+t,e[i]=n),n}function Uv(i,t,e,r,s,n,o){let a=e.getContext("2d",hC);a.font=t._fontString;let l=0,c="",h=[],u=Object.create(null),{letterSpacing:d,whiteSpace:f}=t,m=wl(f),g=Cl(f),_=!m,x=t.wordWrapWidth+d,b=El(i);for(let S=0;S<b.length;S++){let T=b[S];if(is(T)){if(!g){h.push(Fe(c)),_=!m,c="",l=0;continue}T=" "}if(m){let E=ae(T),B=ae(c[c.length-1]);if(E&&B)continue}let w=Fv(T,d,u,a,r);if(w>x)if(c!==""&&(h.push(Fe(c)),c="",l=0),s(T,t.breakWords)){let E=Pl(T,t.breakWords,o,n);for(let B of E){let R=Fv(B,d,u,a,r);R+l>x&&(h.push(Fe(c)),_=!1,c="",l=0),c+=B,l+=R}}else c.length>0&&(h.push(Fe(c)),c="",l=0),h.push(Fe(T)),_=!1,c="",l=0;else w+l>x&&(_=!1,h.push(Fe(c)),c="",l=0),(c.length>0||!ae(T)||_)&&(c+=T,l+=w)}let v=Fe(c);return v.length>0&&h.push(v),h.join(`
911
- `)}var hC,Dv=p(()=>{Ml();hC={willReadFrequently:!0}});var Lv,or,je,Td=p(()=>{Av();xt();Gv();Sd();Ml();Dv();Lv={willReadFrequently:!0},or=class X{static get experimentalLetterSpacingSupported(){let t=X._experimentalLetterSpacingSupported;if(t===void 0){let e=W.get().getCanvasRenderingContext2D().prototype;t=X._experimentalLetterSpacingSupported="letterSpacing"in e||"textLetterSpacing"in e}return t}constructor(t,e,r,s,n,o,a,l,c,h){this.text=t,this.style=e,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=l,this.fontProperties=c,h&&(this.runsByLine=h.runsByLine,this.lineAscents=h.lineAscents,this.lineDescents=h.lineDescents,this.lineHeights=h.lineHeights,this.hasDropShadow=h.hasDropShadow)}static measureText(t=" ",e,r=X._canvas,s=e.wordWrap){let n=`${t}-${e.styleKey}-wordWrap-${s}`;if(X._measurementCache.has(n))return X._measurementCache.get(n);if(bd(e)&&vd(t)){let S=Iv(t,e,s,X._context,X._measureText,X._measureTextAdvance,X.measureFont,X.canBreakChars,X.wordWrapSplit),T=new X(t,e,S.width,S.height,S.lines,S.lineWidths,S.lineHeight,S.maxLineWidth,S.fontProperties,{runsByLine:S.runsByLine,lineAscents:S.lineAscents,lineDescents:S.lineDescents,lineHeights:S.lineHeights,hasDropShadow:S.hasDropShadow});return X._measurementCache.set(n,T),T}let a=e._fontString,l=X.measureFont(a);l.fontSize===0&&(l.fontSize=e.fontSize,l.ascent=e.fontSize,l.descent=0);let c=X._context;c.font=a;let u=(s?X._wordWrap(t,e,r):t).split(Bv),d=new Array(u.length),f=0;for(let S=0;S<u.length;S++){let T=X._measureText(u[S],e.letterSpacing,c);d[S]=T,f=Math.max(f,T)}let m=e._stroke?.width??0,g=e.lineHeight||l.fontSize,_=X._adjustWidthForStyle(f,e),x=Math.max(g,l.fontSize+m)+(u.length-1)*(g+e.leading),b=X._adjustHeightForStyle(x,e),v=new X(t,e,_,b,u,d,g+e.leading,f,l);return X._measurementCache.set(n,v),v}static _adjustWidthForStyle(t,e){let r=e._stroke?.width||0,s=t+r;return e.dropShadow&&(s+=e.dropShadow.distance),s}static _adjustHeightForStyle(t,e){let r=t;return e.dropShadow&&(r+=e.dropShadow.distance),r}static _measureText(t,e,r){let{metricWidth:s,metrics:n,letterSpacingVal:o}=X._measureTextCore(t,e,r),a=-(n.actualBoundingBoxLeft??0),c=(n.actualBoundingBoxRight??0)-a;return n.width>0&&(c+=o),Math.max(s,c)}static _measureTextAdvance(t,e,r){return X._measureTextCore(t,e,r).metricWidth}static _measureTextCore(t,e,r){let s=!1;X.experimentalLetterSpacingSupported&&(X.experimentalLetterSpacing?(r.letterSpacing=`${e}px`,r.textLetterSpacing=`${e}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(t),o=n.width,a=0;return o>0&&(s?a=-e:a=(X.graphemeSegmenter(t).length-1)*e,o+=a),{metricWidth:o,metrics:n,letterSpacingVal:a}}static _wordWrap(t,e,r=X._canvas){return Uv(t,e,r,X._measureTextAdvance,X.canBreakWords,X.canBreakChars,X.wordWrapSplit)}static isBreakingSpace(t,e){return ae(t,e)}static canBreakWords(t,e){return e}static canBreakChars(t,e,r,s,n){return!0}static wordWrapSplit(t){return X.graphemeSegmenter(t)}static measureFont(t){if(X._fonts[t])return X._fonts[t];let e=X._context;e.font=t;let r=e.measureText(X.METRICS_STRING+X.BASELINE_SYMBOL),s=r.actualBoundingBoxAscent??0,n=r.actualBoundingBoxDescent??0,o={ascent:s,descent:n,fontSize:s+n};return X._fonts[t]=o,o}static clearMetrics(t=""){t?delete X._fonts[t]:X._fonts={}}static get _canvas(){if(!X.__canvas){let t;try{let e=new OffscreenCanvas(0,0);if(e.getContext("2d",Lv)?.measureText)return X.__canvas=e,e;t=W.get().createCanvas()}catch{t=W.get().createCanvas()}t.width=t.height=10,X.__canvas=t}return X.__canvas}static get _context(){return X.__context||(X.__context=X._canvas.getContext("2d",Lv)),X.__context}};or.METRICS_STRING="|\xC9q\xC5";or.BASELINE_SYMBOL="M";or.BASELINE_MULTIPLIER=1.4;or.HEIGHT_MULTIPLIER=2;or.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return t=>{let e=i.segment(t),r=[],s=0;for(let n of e)r[s++]=n.segment;return r}}return i=>[...i]})();or.experimentalLetterSpacing=!1;or._fonts={};or._measurementCache=Mv(1e3);je=or});function ao(i){let t=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,e=i.fontFamily;Array.isArray(i.fontFamily)||(e=i.fontFamily.split(","));for(let r=e.length-1;r>=0;r--){let s=e[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!uC.includes(s)&&(s=`"${s}"`),e[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${t} ${e.join(",")}`}var uC,wd=p(()=>{"use strict";uC=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});function lo(i,t,e,r=0,s=0,n=0){if(i.texture===F.WHITE&&!i.fill)return Q.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Ge){let o=i.fill,a=t.createPattern(o.texture.source.resource,"repeat");return Z.applyPatternTransform(a,o.transform,!1),a}else if(i.fill instanceof ee){let o=i.fill,a=o.type==="linear",l=o.textureSpace==="local",c=1,h=1;l&&e&&(c=e.width+r,h=e.height+r);let u,d=!1;if(a){let{start:f,end:m}=o;u=t.createLinearGradient(f.x*c+s,f.y*h+n,m.x*c+s,m.y*h+n),d=Math.abs(m.x-f.x)<Math.abs((m.y-f.y)*.1)}else{let{center:f,innerRadius:m,outerCenter:g,outerRadius:_}=o;u=t.createRadialGradient(f.x*c+s,f.y*h+n,m*c,g.x*c+s,g.y*h+n,_*c)}if(d&&l&&e){let f=e.lineHeight/h;for(let m=0;m<e.lines.length;m++){let g=(m*e.lineHeight+r/2)/h;o.colorStops.forEach(_=>{let x=g+_.offset*f;x=Math.max(0,Math.min(1,x)),u.addColorStop(Math.floor(x*Ov)/Ov,Q.shared.setValue(_.color).toHex())})}}else o.colorStops.forEach(f=>{u.addColorStop(f.offset,Q.shared.setValue(f.color).toHex())});return u}}else{let o=t.createPattern(i.texture.source.resource,"repeat"),a=i.matrix.copyTo(k.shared);return a.scale(i.texture.source.pixelWidth,i.texture.source.pixelHeight),o.setTransform(a),o}return L("FillStyle not recognised",i),"red"}var Ov,Nv=p(()=>{Qt();ot();Pi();gt();ht();ii();jn();Ov=1e5});function dC(i){let t=i;if(typeof t.dropShadow=="boolean"&&t.dropShadow){let e=Xe.defaultDropShadow;i.dropShadow={alpha:t.dropShadowAlpha??e.alpha,angle:t.dropShadowAngle??e.angle,blur:t.dropShadowBlur??e.blur,color:t.dropShadowColor??e.color,distance:t.dropShadowDistance??e.distance}}if(t.strokeThickness!==void 0){O(rt,"strokeThickness is now a part of stroke");let e=t.stroke,r={};if(Q.isColorLike(e))r.color=e;else if(e instanceof ee||e instanceof Ge)r.fill=e;else if(Object.hasOwnProperty.call(e,"color")||Object.hasOwnProperty.call(e,"fill"))r=e;else throw new Error("Invalid stroke value.");i.stroke={...r,width:t.strokeThickness}}if(Array.isArray(t.fillGradientStops)){if(O(rt,"gradient fill is now a fill pattern: `new FillGradient(...)`"),!Array.isArray(t.fill)||t.fill.length===0)throw new Error("Invalid fill value. Expected an array of colors for gradient fill.");t.fill.length!==t.fillGradientStops.length&&L("The number of fill colors must match the number of fill gradient stops.");let e=new ee({start:{x:0,y:0},end:{x:0,y:1},textureSpace:"local"}),r=t.fillGradientStops.slice(),s=t.fill.map(n=>Q.shared.setValue(n).toNumber());r.forEach((n,o)=>{e.addColorStop(n,s[o])}),i.fill={fill:e}}}var Ed,Xe,Al=p(()=>{Ht();Qt();Ft();yt();ht();ii();jn();hd();ld();wd();Ed=class li extends ut{constructor(t={}){super(),this.uid=$("textStyle"),this._tick=0,this._cachedFontString=null,dC(t),t instanceof li&&(t=t._toObject());let s={...li.defaultTextStyle,...t};for(let n in s){let o=n;this[o]=s[n]}this._tagStyles=t.tagStyles??void 0,this.update(),this._tick=0}get align(){return this._align}set align(t){this._align!==t&&(this._align=t,this.update())}get breakWords(){return this._breakWords}set breakWords(t){this._breakWords!==t&&(this._breakWords=t,this.update())}get dropShadow(){return this._dropShadow}set dropShadow(t){this._dropShadow!==t&&(t!==null&&typeof t=="object"?this._dropShadow=this._createProxy({...li.defaultDropShadow,...t}):this._dropShadow=t?this._createProxy({...li.defaultDropShadow}):null,this.update())}get fontFamily(){return this._fontFamily}set fontFamily(t){this._fontFamily!==t&&(this._fontFamily=t,this.update())}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize!==t&&(typeof t=="string"?this._fontSize=parseInt(t,10):this._fontSize=t,this.update())}get fontStyle(){return this._fontStyle}set fontStyle(t){this._fontStyle!==t&&(this._fontStyle=t.toLowerCase(),this.update())}get fontVariant(){return this._fontVariant}set fontVariant(t){this._fontVariant!==t&&(this._fontVariant=t,this.update())}get fontWeight(){return this._fontWeight}set fontWeight(t){this._fontWeight!==t&&(this._fontWeight=t,this.update())}get leading(){return this._leading}set leading(t){this._leading!==t&&(this._leading=t,this.update())}get letterSpacing(){return this._letterSpacing}set letterSpacing(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.update())}get lineHeight(){return this._lineHeight}set lineHeight(t){this._lineHeight!==t&&(this._lineHeight=t,this.update())}get padding(){return this._padding}set padding(t){this._padding!==t&&(this._padding=t,this.update())}get filters(){return this._filters}set filters(t){this._filters!==t&&(this._filters=Object.freeze(t),this.update())}get trim(){return this._trim}set trim(t){this._trim!==t&&(this._trim=t,this.update())}get textBaseline(){return this._textBaseline}set textBaseline(t){this._textBaseline!==t&&(this._textBaseline=t,this.update())}get whiteSpace(){return this._whiteSpace}set whiteSpace(t){this._whiteSpace!==t&&(this._whiteSpace=t,this.update())}get wordWrap(){return this._wordWrap}set wordWrap(t){this._wordWrap!==t&&(this._wordWrap=t,this.update())}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(t){this._wordWrapWidth!==t&&(this._wordWrapWidth=t,this.update())}get fill(){return this._originalFill}set fill(t){t!==this._originalFill&&(this._originalFill=t,this._isFillStyle(t)&&(this._originalFill=this._createProxy({...ge.defaultFillStyle,...t},()=>{this._fill=sr({...this._originalFill},ge.defaultFillStyle)})),this._fill=sr(t===0?"black":t,ge.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(t){t!==this._originalStroke&&(this._originalStroke=t,this._isFillStyle(t)&&(this._originalStroke=this._createProxy({...ge.defaultStrokeStyle,...t},()=>{this._stroke=rs({...this._originalStroke},ge.defaultStrokeStyle)})),this._stroke=rs(t,ge.defaultStrokeStyle),this.update())}get tagStyles(){return this._tagStyles}set tagStyles(t){this._tagStyles!==t&&(this._tagStyles=t??void 0,this.update())}update(){this._tick++,this._cachedFontString=null,this.emit("update",this)}reset(){let t=li.defaultTextStyle;for(let e in t)this[e]=t[e]}assign(t){for(let e in t){let r=e;this[r]=t[e]}return this}get styleKey(){return`${this.uid}-${this._tick}`}get _fontString(){return this._cachedFontString===null&&(this._cachedFontString=ao(this)),this._cachedFontString}_toObject(){return{align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill?{...this._fill}:void 0,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke?{...this._stroke}:void 0,textBaseline:this.textBaseline,trim:this.trim,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0,tagStyles:this._tagStyles?{...this._tagStyles}:void 0}}clone(){return new li(this._toObject())}_getFinalPadding(){let t=0;if(this._filters)for(let e=0;e<this._filters.length;e++)t+=this._filters[e].padding;return Math.max(this._padding,t)}destroy(t=!1){if(this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fill?.texture&&this._fill.texture.destroy(r),this._originalFill?.texture&&this._originalFill.texture.destroy(r),this._stroke?.texture&&this._stroke.texture.destroy(r),this._originalStroke?.texture&&this._originalStroke.texture.destroy(r)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(t,e){return new Proxy(t,{set:(r,s,n)=>(r[s]===n||(r[s]=n,e?.(s,n),this.update()),!0)})}_isFillStyle(t){return(t??null)!==null&&!(Q.isColorLike(t)||t instanceof ee||t instanceof Ge)}};Ed.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Ed.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};Xe=Ed});P();var mg={extension:{type:y.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(pg(),OS))}};P();var xg={extension:{type:y.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(gg(),NS))}};P();Yo();No();P();xt();Vr();var ma;function Ig(i){return ma!==void 0||(ma=(()=>{let t={stencil:!0,failIfMajorPerformanceCaveat:i??Te.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let r=W.get().createCanvas().getContext("webgl",t),s=!!r?.getContextAttributes()?.stencil;if(r){let n=r.getExtension("WEBGL_lose_context");n&&n.loseContext()}return r=null,s}catch{return!1}})()),ma}xt();var ga;async function Gg(i={}){return ga!==void 0||(ga=await(async()=>{let t=W.get().getNavigator().gpu;if(!t)return!1;try{return await(await t.requestAdapter(i)).requestDevice(),!0}catch{return!1}})()),ga}Vr();var yv=["webgl","webgpu","canvas"];async function bv(i){let t=[];i.preference?Array.isArray(i.preference)?t=i.preference.slice():(t.push(i.preference),yv.forEach(n=>{n!==i.preference&&t.push(n)})):t=yv.slice();let e,r={};for(let n=0;n<t.length;n++){let o=t[n];if(o==="webgpu"&&await Gg()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(uy(),hy));e=a,r={...i,...i.webgpu};break}else if(o==="webgl"&&Ig(i.failIfMajorPerformanceCaveat??Te.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(Vb(),Wb));e=a,r={...i,...i.webgl};break}else if(o==="canvas"){let{CanvasRenderer:a}=await Promise.resolve().then(()=>(_v(),xv));e=a,r={...i,...i.canvasOptions};break}}if(delete r.webgpu,delete r.webgl,delete r.canvasOptions,!e)throw new Error("No available renderer for the current environment");let s=new e;return await s.init(r),s}Pe();Dh();yt();P();P();var ro=class{static init(t){Object.defineProperty(this,"resizeTo",{configurable:!0,set(e){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=e,e&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let e,r;if(this._resizeTo===globalThis.window)e=globalThis.innerWidth,r=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;e=s,r=n}this.renderer.resize(e,r),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=t.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};ro.extension=y.Application;P();Ts();Ti();var io=class{static init(t){t=Object.assign({autoStart:!0,sharedTicker:!1},t),Object.defineProperty(this,"ticker",{configurable:!0,set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,De.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=t.sharedTicker?qt.shared:new qt,t.autoStart&&this.start()}static destroy(){if(this._ticker){let t=this._ticker;this.ticker=null,t.destroy()}}};io.extension=y.Application;z.add(ro);z.add(io);var vv=class _d{constructor(...t){this.stage=new mt,t[0]!==void 0&&O(rt,"Application constructor options are deprecated, please use Application.init() instead.")}async init(t){t={...t},this.stage||(this.stage=new mt),this.renderer=await bv(t),_d._plugins.forEach(e=>{e.init.call(this,t)})}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return O(rt,"Application.view is deprecated, please use Application.canvas instead."),this.renderer.canvas}get screen(){return this.renderer.screen}get domContainerRoot(){return this.renderer.renderPipes.dom?._domElement}destroy(t=!1,e=!1){let r=_d._plugins.slice(0);r.reverse(),r.forEach(s=>{s.destroy.call(this)}),this.stage.destroy(e),this.stage=null,this.renderer.destroy(t),this.renderer=null}};vv._plugins=[];var bl=vv;z.handleByList(y.Application,bl._plugins);z.add(en);pm();zr();Be();gt();yt();Es();xr();ir();zr();yt();var Sv=class Tv extends ue{constructor(...t){let e=t[0]??{};e instanceof Float32Array&&(O(rt,"use new MeshGeometry({ positions, uvs, indices }) instead"),e={positions:e,uvs:t[1],indices:t[2]}),e={...Tv.defaultOptions,...e};let r=e.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=e.uvs;s||(e.positions?s=new Float32Array(r.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=e.indices||new Uint32Array([0,1,2,0,2,3]),o=e.shrinkBuffersToFit,a=new At({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),l=new At({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),c=new At({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:tt.INDEX|tt.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:l,format:"float32x2",stride:8,offset:0}},indexBuffer:c,topology:e.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(t){this.attributes.aPosition.buffer.data=t}get uvs(){return this.attributes.aUV.buffer.data}set uvs(t){this.attributes.aUV.buffer.data=t}get indices(){return this.indexBuffer.data}set indices(t){this.indexBuffer.data=t}};Sv.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};var so=Sv;P();P();ot();mr();me();Nh();Ga();var vl=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(t){this._topology=t}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(t){this.texture!==t&&(this.texture=t,this._textureMatrixUpdateId=-1)}get uvs(){let e=this.geometry.getBuffer("aUV"),r=e.data,s=r,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==e._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=e._updateID,n.multiplyUvs(r,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}};var Sl=class{destroy(){}},no=class{constructor(t,e){this.localUniforms=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Vt({0:this.localUniforms}),this.renderer=t,this._adaptor=e,this._adaptor.init()}validateRenderable(t){let e=this._getMeshData(t),r=e.batched,s=t.batched;if(e.batched=s,r!==s)return!0;if(s){let n=t._geometry;if(n.indices.length!==e.indexSize||n.positions.length!==e.vertexSize)return e.indexSize=n.indices.length,e.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(t);return o.texture.uid!==t._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,t._texture)}return!1}addRenderable(t,e){let r=this.renderer.renderPipes.batch,s=this._getMeshData(t);if(t.didViewUpdate&&(s.indexSize=t._geometry.indices?.length,s.vertexSize=t._geometry.positions?.length),s.batched){let n=this._getBatchableMesh(t);n.setTexture(t._texture),n.geometry=t._geometry,r.addToBatch(n,e)}else r.break(e),e.add(t)}updateRenderable(t){if(t.batched){let e=this._getBatchableMesh(t);e.setTexture(t._texture),e.geometry=t._geometry,e._batcher.updateElement(e)}}execute(t){if(!t.isRenderable)return;t.state.blend&&(t.state.blendMode=nn(t.groupBlendMode,t.texture._source));let e=this.localUniforms;e.uniforms.uTransformMatrix=t.groupTransform,e.uniforms.uRound=this.renderer._roundPixels|t._roundPixels,e.update(),Wi(t.groupColorAlpha,e.uniforms.uColor,0),this._adaptor.execute(this,t)}_getMeshData(t){var e,r;return(e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Sl),t._gpuData[this.renderer.uid].meshData||this._initMeshData(t)}_initMeshData(t){return t._gpuData[this.renderer.uid].meshData={batched:t.batched,indexSize:0,vertexSize:0},t._gpuData[this.renderer.uid].meshData}_getBatchableMesh(t){var e,r;return(e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Sl),t._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(t)}_initBatchableMesh(t){let e=new vl;return e.renderable=t,e.setTexture(t._texture),e.transform=t.groupTransform,e.roundPixels=this.renderer._roundPixels|t._roundPixels,t._gpuData[this.renderer.uid].batchableMesh=e,e}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};no.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"mesh"};z.add(no);var oo=class extends Le{constructor(...t){let e=t[0];e instanceof ue&&(O(rt,"Mesh: use new Mesh({ geometry, shader }) instead"),e={geometry:e,shader:t[1]},t[3]&&(O(rt,"Mesh: drawMode argument has been removed, use geometry.topology instead"),e.geometry.topology=t[3]));let{geometry:r,shader:s,texture:n,roundPixels:o,state:a,...l}=e;super({label:"Mesh",...l}),this.renderPipeId="mesh",this._shader=null,this.allowChildren=!1,this.shader=s??null,this.texture=n??s?.texture??F.WHITE,this.state=a??Ot.for2d(),this._geometry=r,this._geometry.on("update",this.onViewUpdate,this),this.roundPixels=o??!1}get material(){return O(rt,"mesh.material property has been removed, use mesh.shader instead"),this._shader}set shader(t){this._shader!==t&&(this._shader=t,this.onViewUpdate())}get shader(){return this._shader}set geometry(t){this._geometry!==t&&(this._geometry?.off("update",this.onViewUpdate,this),t.on("update",this.onViewUpdate,this),this._geometry=t,this.onViewUpdate())}get geometry(){return this._geometry}set texture(t){t||(t=F.EMPTY);let e=this._texture;e!==t&&(e&&e.dynamic&&e.off("update",this.onViewUpdate,this),t.dynamic&&t.on("update",this.onViewUpdate,this),this.shader&&(this.shader.texture=t),this._texture=t,this.onViewUpdate())}get texture(){return this._texture}get batched(){return this._shader||(this.state.data&12)!==0?!1:this._geometry instanceof so?this._geometry.batchMode==="auto"?this._geometry.positions.length/2<=100:this._geometry.batchMode==="batch":!1}get bounds(){return this._geometry.bounds}updateBounds(){this._bounds=this._geometry.bounds}containsPoint(t){let{x:e,y:r}=t;if(!this.bounds.containsPoint(e,r))return!1;let s=this.geometry.getBuffer("aPosition").data,n=this.geometry.topology==="triangle-strip"?3:1;if(this.geometry.getIndex()){let o=this.geometry.getIndex().data,a=o.length;for(let l=0;l+2<a;l+=n){let c=o[l]*2,h=o[l+1]*2,u=o[l+2]*2;if(Hc(e,r,s[c],s[c+1],s[h],s[h+1],s[u],s[u+1]))return!0}}else{let o=s.length/2;for(let a=0;a+2<o;a+=n){let l=a*2,c=(a+1)*2,h=(a+2)*2;if(Hc(e,r,s[l],s[l+1],s[c],s[c+1],s[h],s[h+1]))return!0}}return!1}destroy(t){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r)}this._geometry?.off("update",this.onViewUpdate,this),this._texture=null,this._geometry=null,this._shader=null}};$t();Ar();vo();yt();Es();var Tl=class extends Le{constructor(t,e){let{text:r,resolution:s,style:n,anchor:o,width:a,height:l,roundPixels:c,...h}=t;super({...h}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=e,this.text=r??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=c??!1,a!==void 0&&(this.width=a),l!==void 0&&(this.height=l)}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}set text(t){t=t.toString(),this._text!==t&&(this._text=t,this.onViewUpdate())}get text(){return this._text}set resolution(t){this._autoResolution=t===null,this._resolution=t,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(t){t||(t={}),this._style?.off("update",this.onViewUpdate,this),t instanceof this._styleClass?this._style=t:this._style=new this._styleClass(t),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(t){this._setWidth(t,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(t){this._setHeight(t,this.bounds.height)}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this.bounds.width,t.height=Math.abs(this.scale.y)*this.bounds.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this.bounds.width),e!==void 0&&this._setHeight(e,this.bounds.height)}containsPoint(t){let e=this.bounds.width,r=this.bounds.height,s=-e*this.anchor.x,n=0;return t.x>=s&&t.x<=s+e&&(n=-r*this.anchor.y,t.y>=n&&t.y<=n+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(t=!1){super.destroy(t),this.owner=null,this._bounds=null,this._anchor=null,(typeof t=="boolean"?t:t?.style)&&this._style.destroy(t),this._style=null,this._text=null}get styleKey(){return`${this._text}:${this._style.styleKey}:${this._resolution}`}};function wv(i,t){let e=i[0]??{};return(typeof e=="string"||i[1])&&(O(rt,`use new ${t}({ text: "hi!", style }) instead`),e={text:e,style:i[1]}),e}Qt();Yt();qo();xt();bs();Yt();var ai=null,nr=null;function Zw(i,t){ai||(ai=W.get().createCanvas(256,128),nr=ai.getContext("2d",{willReadFrequently:!0}),nr.globalCompositeOperation="copy",nr.globalAlpha=1),(ai.width<i||ai.height<t)&&(ai.width=Je(i),ai.height=Je(t))}function Cv(i,t,e){for(let r=0,s=4*e*t;r<t;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function Ev(i,t,e,r,s){let n=4*t;for(let o=r,a=r*n+4*e;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function Pv(...i){let t=i[0];t.canvas||(t={canvas:i[0],resolution:i[1]});let{canvas:e}=t,r=Math.min(t.resolution??1,1),s=t.width??e.width,n=t.height??e.height,o=t.output;if(Zw(s,n),!nr)throw new TypeError("Failed to get canvas 2D context");nr.drawImage(e,0,0,s,n,0,0,s*r,n*r);let l=nr.getImageData(0,0,s,n).data,c=0,h=0,u=s-1,d=n-1;for(;h<n&&Cv(l,s,h);)++h;if(h===n)return J.EMPTY;for(;Cv(l,s,d);)--d;for(;Ev(l,s,c,h,d);)++c;for(;Ev(l,s,u,h,d);)--u;return++u,++d,nr.globalCompositeOperation="source-over",nr.strokeRect(c,h,u-c,d-h),nr.globalCompositeOperation="copy",o??(o=new J),o.set(c/r,h/r,(u-c)/r,(d-h)/r),o}Td();wd();Nv();var zv=new J;function ss(i){let t=0;for(let e=0;e<i.length;e++)i.charCodeAt(e)===32&&t++;return t}var Cd=class{getCanvasAndContext(t){let{text:e,style:r,resolution:s=1}=t,n=r._getFinalPadding(),o=je.measureText(e||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),l=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),c=rr.getOptimalCanvasAndContext(a,l);this._renderTextToCanvas(r,n,s,c,o);let h=r.trim?Pv({canvas:c.canvas,width:a,height:l,resolution:1,output:zv}):zv.set(0,0,a,l);return{canvasAndContext:c,frame:h}}returnCanvasAndContext(t){rr.returnCanvasAndContext(t)}_renderTextToCanvas(t,e,r,s,n){if(n.runsByLine&&n.runsByLine.length>0){this._renderTaggedTextToCanvas(n,t,e,r,s);return}let{canvas:o,context:a}=s,l=ao(t),c=n.lines,h=n.lineHeight,u=n.lineWidths,d=n.maxLineWidth,f=n.fontProperties,m=o.height;if(a.resetTransform(),a.scale(r,r),a.textBaseline=t.textBaseline,t._stroke?.width){let T=t._stroke;a.lineWidth=T.width,a.miterLimit=T.miterLimit,a.lineJoin=T.join,a.lineCap=T.cap}a.font=l;let g,_,x=t.dropShadow?2:1,v=(t._stroke?.width??0)/2,S=(h-f.fontSize)/2;h-f.fontSize<0&&(S=0);for(let T=0;T<x;++T){let w=t.dropShadow&&T===0,E=w?Math.ceil(Math.max(1,m)+e*2):0,B=E*r;if(w)this._setupDropShadow(a,t,r,B);else{let R=t._gradientBounds,M=t._gradientOffset;if(R){let C={width:R.width,height:R.height,lineHeight:R.height,lines:n.lines};this._setFillAndStrokeStyles(a,t,C,e,v,M?.x??0,M?.y??0)}else M?this._setFillAndStrokeStyles(a,t,n,e,v,M.x,M.y):this._setFillAndStrokeStyles(a,t,n,e,v);a.shadowColor="rgba(0,0,0,0)"}for(let R=0;R<c.length;R++){g=v,_=v+R*h+f.ascent+S,g+=this._getAlignmentOffset(u[R],d,t.align);let M=0;if(t.align==="justify"&&t.wordWrap&&R<c.length-1){let C=ss(c[R]);C>0&&(M=(d-u[R])/C)}t._stroke?.width&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!0,M),t._fill!==void 0&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!1,M)}}}_renderTaggedTextToCanvas(t,e,r,s,n){let{canvas:o,context:a}=n,{runsByLine:l,lineWidths:c,maxLineWidth:h,lineAscents:u,lineHeights:d,hasDropShadow:f}=t,m=o.height;a.resetTransform(),a.scale(s,s),a.textBaseline=e.textBaseline;let g=f?2:1,_=e._stroke?.width??0;for(let v of l)for(let S of v){let T=S.style._stroke?.width??0;T>_&&(_=T)}let x=_/2,b=[];for(let v=0;v<l.length;v++){let S=l[v],T=[];for(let w of S){let E=ao(w.style);a.font=E,T.push({width:je._measureText(w.text,w.style.letterSpacing,a),font:E})}b.push(T)}for(let v=0;v<g;++v){let S=f&&v===0,T=S?Math.ceil(Math.max(1,m)+r*2):0,w=T*s;S||(a.shadowColor="rgba(0,0,0,0)");let E=x;for(let B=0;B<l.length;B++){let R=l[B],M=c[B],C=u[B],A=d[B],D=b[B],H=x;H+=this._getAlignmentOffset(M,h,e.align);let K=0;if(e.align==="justify"&&e.wordWrap&&B<l.length-1){let j=0;for(let G of R)j+=ss(G.text);j>0&&(K=(h-M)/j)}let I=E+C,U=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._stroke?.width){let lt=G.style._stroke;if(a.lineWidth=lt.width,a.miterLimit=lt.miterLimit,a.lineJoin=lt.join,a.lineCap=lt.cap,S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let ft=ss(G.text);U+=Y+ft*K;continue}else{let ft=je.measureFont(pt),q=G.style.lineHeight||ft.fontSize,jt={width:Y,height:q,lineHeight:q,lines:[G.text]};a.strokeStyle=lo(lt,a,jt,r*2,U-r,E)}this._drawLetterSpacing(G.text,G.style,n,U,I+r-T,!0,K)}let wt=ss(G.text);U+=Y+wt*K}U=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._fill!==void 0){if(S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let lt=ss(G.text);U+=Y+lt*K;continue}else{let lt=je.measureFont(pt),ft=G.style.lineHeight||lt.fontSize,q={width:Y,height:ft,lineHeight:ft,lines:[G.text]};a.fillStyle=lo(G.style._fill,a,q,r*2,U-r,E)}this._drawLetterSpacing(G.text,G.style,n,U,I+r-T,!1,K)}let wt=ss(G.text);U+=Y+wt*K}E+=A}}}_setFillAndStrokeStyles(t,e,r,s,n,o=0,a=0){if(t.fillStyle=e._fill?lo(e._fill,t,r,s*2,o,a):null,e._stroke?.width){let l=n+s*2;t.strokeStyle=lo(e._stroke,t,r,l,o,a)}}_setupDropShadow(t,e,r,s){t.fillStyle="black",t.strokeStyle="black";let n=e.dropShadow,o=n.color,a=n.alpha;t.shadowColor=Q.shared.setValue(o).setAlpha(a).toRgbaString();let l=n.blur*r,c=n.distance*r;t.shadowBlur=l,t.shadowOffsetX=Math.cos(n.angle)*c,t.shadowOffsetY=Math.sin(n.angle)*c+s}_getAlignmentOffset(t,e,r){return r==="right"?e-t:r==="center"?(e-t)/2:0}_drawLetterSpacing(t,e,r,s,n,o=!1,a=0){let{context:l}=r,c=e.letterSpacing,h=!1;if(je.experimentalLetterSpacingSupported&&(je.experimentalLetterSpacing?(l.letterSpacing=`${c}px`,l.textLetterSpacing=`${c}px`,h=!0):(l.letterSpacing="0px",l.textLetterSpacing="0px")),(c===0||h)&&a===0){o?l.strokeText(t,s,n):l.fillText(t,s,n);return}if(a!==0&&(c===0||h)){let g=t.split(" "),_=s,x=l.measureText(" ").width;for(let b=0;b<g.length;b++)o?l.strokeText(g[b],_,n):l.fillText(g[b],_,n),_+=l.measureText(g[b]).width+x+a;return}let u=s,d=je.graphemeSegmenter(t),f=l.measureText(t).width,m=0;for(let g=0;g<d.length;++g){let _=d[g];o?l.strokeText(_,u,n):l.fillText(_,u,n);let x="";for(let b=g+1;b<d.length;++b)x+=d[b];m=l.measureText(x).width,u+=f-m+c,_===" "&&(u+=a),f=m}}},wr=new Cd;Td();Al();P();P();Ie();Bc();function Hv(i,t){let{texture:e,bounds:r}=i,s=t._style._getFinalPadding();zo(r,t._anchor,e);let n=t._anchor._x*s*2,o=t._anchor._y*s*2;r.minX-=s-n,r.minY-=s-o,r.maxX-=s-n,r.maxY-=s-o}Ea();var Rl=class extends yr{};var co=class{constructor(t){this._renderer=t,t.runners.resolutionChange.add(this),this._managedTexts=new kt({renderer:t,type:"renderable",onUnload:this.onTextUnload.bind(this),name:"canvasText"})}resolutionChange(){for(let t in this._managedTexts.items){let e=this._managedTexts.items[t];e?._autoResolution&&e.onViewUpdate()}}validateRenderable(t){let e=this._getGpuText(t),r=t.styleKey;return e.currentKey!==r?!0:t._didTextUpdate}addRenderable(t,e){let r=this._getGpuText(t);if(t._didTextUpdate){let s=t._autoResolution?this._renderer.resolution:t.resolution;(r.currentKey!==t.styleKey||t._resolution!==s)&&this._updateGpuText(t),t._didTextUpdate=!1,Hv(r,t)}this._renderer.renderPipes.batch.addToBatch(r,e)}updateRenderable(t){let e=this._getGpuText(t);e._batcher.updateElement(e)}_updateGpuText(t){let e=this._getGpuText(t);e.texture&&this._renderer.canvasText.decreaseReferenceCount(e.currentKey),t._resolution=t._autoResolution?this._renderer.resolution:t.resolution,e.texture=this._renderer.canvasText.getManagedTexture(t),e.currentKey=t.styleKey}_getGpuText(t){return t._gpuData[this._renderer.uid]||this.initGpuText(t)}initGpuText(t){let e=new Rl;return e.currentKey="--",e.renderable=t,e.transform=t.groupTransform,e.bounds={minX:0,maxX:1,minY:0,maxY:0},e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,this._managedTexts.add(t),e}onTextUnload(t){let e=t._gpuData[this._renderer.uid];if(!e)return;let{canvasText:r}=this._renderer;r.getReferenceCount(e.currentKey)>0?r.decreaseReferenceCount(e.currentKey):e.texture&&r.returnTexture(e.texture)}destroy(){this._managedTexts.destroy(),this._renderer=null}};co.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"text"};P();Fr();Ar();yt();Al();Vc();var ns=class{constructor(t,e){this._activeTextures={},this._renderer=t,this._retainCanvasContext=e}getTexture(t,e,r,s){typeof t=="string"&&(O("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),t={text:t,style:r,resolution:e}),t.style instanceof Xe||(t.style=new Xe(t.style)),t.textureStyle instanceof ce||(t.textureStyle=new ce(t.textureStyle)),typeof t.text!="string"&&(t.text=t.text.toString());let{text:n,style:o,textureStyle:a,autoGenerateMipmaps:l}=t,c=t.resolution??this._renderer.resolution,{frame:h,canvasAndContext:u}=wr.getCanvasAndContext({text:n,style:o,resolution:c}),d=ra(u.canvas,h.width,h.height,c,l);if(a&&(d.source.style=a),o.trim&&(h.pad(o.padding),d.frame.copyFrom(h),d.frame.scale(1/c),d.updateUvs()),o.filters){let f=this._applyFilters(d,o.filters);return this.returnTexture(d),wr.returnCanvasAndContext(u),f}return this._renderer.texture.initSource(d._source),this._retainCanvasContext||wr.returnCanvasAndContext(u),d}returnTexture(t){let e=t.source,r=e.resource;if(this._retainCanvasContext&&r?.getContext){let s=r.getContext("2d");s&&wr.returnCanvasAndContext({canvas:r,context:s})}e.resource=null,e.uploadMethodId="unknown",e.alphaMode="no-premultiply-alpha",Mt.returnTexture(t,!0)}renderTextToCanvas(){O("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}getManagedTexture(t){t._resolution=t._autoResolution?this._renderer.resolution:t.resolution;let e=t.styleKey;if(this._activeTextures[e])return this._increaseReferenceCount(e),this._activeTextures[e].texture;let r=this.getTexture({text:t.text,style:t.style,resolution:t._resolution,textureStyle:t.textureStyle,autoGenerateMipmaps:t.autoGenerateMipmaps});return this._activeTextures[e]={texture:r,usageCount:1},r}decreaseReferenceCount(t){let e=this._activeTextures[t];e&&(e.usageCount--,e.usageCount===0&&(this.returnTexture(e.texture),this._activeTextures[t]=null))}getReferenceCount(t){return this._activeTextures[t]?.usageCount??0}_increaseReferenceCount(t){this._activeTextures[t].usageCount++}_applyFilters(t,e){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:t,filters:e});return this._renderer.renderTarget.bind({target:r,clear:!1}),s}destroy(){this._renderer=null;for(let t in this._activeTextures)this._activeTextures[t]&&this.returnTexture(this._activeTextures[t].texture);this._activeTextures=null}};var ho=class extends ns{constructor(t){super(t,!0)}};ho.extension={type:[y.CanvasSystem],name:"canvasText"};P();var uo=class extends ns{constructor(t){super(t,!1)}};uo.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"canvasText"};z.add(ho);z.add(uo);z.add(co);var fo=class extends Tl{constructor(...t){let e=wv(t,"Text");super(e,Xe),this.renderPipeId="text",e.textureStyle&&(this.textureStyle=e.textureStyle instanceof ce?e.textureStyle:new ce(e.textureStyle)),this.autoGenerateMipmaps=e.autoGenerateMipmaps??st.defaultOptions.autoGenerateMipmaps}updateBounds(){let t=this._bounds,e=this._anchor,r=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=wr.getCanvasAndContext({text:this.text,style:this._style,resolution:1});wr.returnCanvasAndContext(o),r=n.width,s=n.height}else{let n=je.measureText(this._text,this._style);r=n.width,s=n.height}t.minX=-e._x*r,t.maxX=t.minX+r,t.minY=-e._y*s,t.maxY=t.minY+s}};xr();ir();zr();pr();Lh();function Pd(i,t=null){let e=i*6;if(e>65535?t||(t=new Uint32Array(e)):t||(t=new Uint16Array(e)),t.length!==e)throw new Error(`Out buffer length is incorrect, got ${t.length} and expected ${e}`);for(let r=0,s=0;r<e;r+=6,s+=4)t[r+0]=s+0,t[r+1]=s+1,t[r+2]=s+2,t[r+3]=s+0,t[r+4]=s+2,t[r+5]=s+3;return t}pr();function Vv(i){return{dynamicUpdate:Wv(i,!0),staticUpdate:Wv(i,!1)}}function Wv(i,t){let e=[];e.push(`
905
+ ${a};`)}}return new Function("ud","uv","renderer","syncData",t.join(`
906
+ `))}var yx=p(()=>{Tn();mt();Sn();xx()});var ri,Oh=p(()=>{P();yx();ri=class{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,r){let s=this._renderer.shader._getProgramData(t);(!e.isStatic||e._dirtyId!==s.uniformDirtyGroups[e.uid])&&(s.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,t)(s.uniformData,e.uniforms,this._renderer,r))}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){let r=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),s=this._getSignature(e,t._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(e,t._uniformData)),r[t._key]=this._cache[s],r[t._key]}_generateUniformsSync(e,t){return _x(e,t)}_getSignature(e,t,r){let s=e.uniforms,n=[`${r}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};ri.extension={type:[_.WebGLSystem],name:"uniformGroup"}});function vx(i){let e={};if(e.normal=[i.ONE,i.ONE_MINUS_SRC_ALPHA],e.add=[i.ONE,i.ONE],e.multiply=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],e.screen=[i.ONE,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],e.none=[0,0],e["normal-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],e["add-npm"]=[i.SRC_ALPHA,i.ONE,i.ONE,i.ONE],e["screen-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],e.erase=[i.ZERO,i.ONE_MINUS_SRC_ALPHA],!(i instanceof z.get().getWebGLRenderingContext()))e.min=[i.ONE,i.ONE,i.ONE,i.ONE,i.MIN,i.MIN],e.max=[i.ONE,i.ONE,i.ONE,i.ONE,i.MAX,i.MAX];else{let r=i.getExtension("EXT_blend_minmax");r&&(e.min=[i.ONE,i.ONE,i.ONE,i.ONE,r.MIN_EXT,r.MIN_EXT],e.max=[i.ONE,i.ONE,i.ONE,i.ONE,r.MAX_EXT,r.MAX_EXT])}return e}var wx=p(()=>{be()});var e5,t5,r5,i5,s5,Sx,Tx,Ex,Cx=p(()=>{P();It();wx();({BLEND:e5,OFFSET:t5,CULLING:r5,DEPTH_TEST:i5,WINDING:s5,DEPTH_MASK:Sx}=pd),Tx=class Nh{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[e5]=this.setBlend,this.map[t5]=this.setOffset,this.map[r5]=this.setCullFace,this.map[i5]=this.setDepthTest,this.map[s5]=this.setFrontFace,this.map[Sx]=this.setDepthMask,this.checks=[],this.defaultState=De.for2d(),e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){this._invertFrontFace=!e.isRoot!=!!e.flipY,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(e){this.gl=e,this.blendModesMap=vx(e),this.resetState()}set(e){if(e||(e=this.defaultState),this.stateId!==e.data){let t=this.stateId^e.data,r=0;for(;t;)t&1&&this.map[r].call(this,!!(e.data&1<<r)),t>>=1,r++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e||(e=this.defaultState);for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this._updateCheck(Nh._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(Nh._checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}get depthMaskEnabled(){return!!(this.stateId&1<<Sx)}setCullFace(e){this._cullFace=e,this.gl[e?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(e){this._frontFace=e,this._frontFaceDirty=!1;let t=this._invertFrontFace?!e:e;this._glFrontFace!==t&&(this._glFrontFace=t,this.gl.frontFace(this.gl[t?"CW":"CCW"]))}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],r=this.gl;t.length===2?r.blendFunc(t[0],t[1]):r.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,r.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(e,t){let r=this.checks.indexOf(e);t&&r===-1?this.checks.push(e):!t&&r!==-1&&this.checks.splice(r,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};Tx.extension={type:[_.WebGLSystem],name:"state"};Ex=Tx});var dc,Px=p(()=>{rc();dc=class{constructor(e){this.target=Un.TEXTURE_2D,this._layerInitMask=0,this.texture=e,this.width=-1,this.height=-1,this.type=le.UNSIGNED_BYTE,this.internalFormat=tc.RGBA,this.format=tc.RGBA,this.samplerType=0}destroy(){}}});var Mx,Ax=p(()=>{"use strict";Mx={id:"buffer",upload(i,e,t,r,s,n=!1){let o=s||e.target;!n&&e.width===i.width&&e.height===i.height?t.texSubImage2D(o,0,0,0,i.width,i.height,e.format,e.type,i.resource):t.texImage2D(o,0,e.internalFormat,i.width,i.height,0,e.format,e.type,i.resource),e.width=i.width,e.height=i.height}}});var n5,Rx,kx=p(()=>{"use strict";n5={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},Rx={id:"compressed",upload(i,e,t,r,s,n){let o=s??e.target;t.pixelStorei(t.UNPACK_ALIGNMENT,4);let a=i.pixelWidth,c=i.pixelHeight,l=!!n5[i.format];for(let d=0;d<i.resource.length;d++){let h=i.resource[d];l?t.compressedTexImage2D(o,d,e.internalFormat,a,c,0,h):t.texImage2D(o,d,e.internalFormat,a,c,0,e.format,e.type,h),a=Math.max(a>>1,1),c=Math.max(c>>1,1)}}}});function Ix(i){return{id:"cube",upload(e,t,r,s){let n=e.faces;for(let o=0;o<Bx.length;o++){let a=Bx[o],c=n[a];if(!c.resource)continue;(i[c.uploadMethodId]||i.image).upload(c,t,r,s,Un.TEXTURE_CUBE_MAP_POSITIVE_X+o,(t._layerInitMask&1<<o)===0),t._layerInitMask|=1<<o}t.width=e.pixelWidth,t.height=e.pixelHeight}}}var Bx,Gx=p(()=>{rc();Bx=["right","left","top","bottom","front","back"]});function o5(i,e,t,r,s,n,o,a,c,l){if(!l){c&&i.texImage2D(e,0,t.internalFormat,r,s,0,t.format,t.type,null),i.texSubImage2D(e,0,0,0,n,o,t.format,t.type,a);return}if(!c){i.texSubImage2D(e,0,0,0,t.format,t.type,a);return}i.texImage2D(e,0,t.internalFormat,r,s,0,t.format,t.type,a)}function a5(i,e,t,r,s,n,o,a,c,l){if(!l){c&&i.texImage2D(e,0,t.internalFormat,r,s,0,t.format,t.type,null),i.texSubImage2D(e,0,0,0,t.format,t.type,a);return}if(!c){i.texSubImage2D(e,0,0,0,t.format,t.type,a);return}i.texImage2D(e,0,t.internalFormat,t.format,t.type,a)}var hc,Hh=p(()=>{"use strict";hc={id:"image",upload(i,e,t,r,s,n=!1){let o=s||e.target,a=i.pixelWidth,c=i.pixelHeight,l=i.resourceWidth,d=i.resourceHeight,h=r===2,u=n||e.width!==a||e.height!==c,f=l>=a&&d>=c,m=i.resource;(h?o5:a5)(t,o,e,a,c,l,d,m,u,f),e.width=a,e.height=c}}});function Fx(){let{userAgent:i}=z.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var Ux=p(()=>{be()});var c5,Dx,Lx=p(()=>{Ux();Hh();c5=Fx(),Dx={id:"video",upload(i,e,t,r,s,n=c5){if(!i.isValid){let o=s??e.target;t.texImage2D(o,0,e.internalFormat,1,1,0,e.format,e.type,null);return}hc.upload(i,e,t,r,s,n)}}});var zh,Ox,uc,Nx,Hx=p(()=>{"use strict";zh={linear:9729,nearest:9728},Ox={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},uc={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},Nx={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Wh(i,e,t,r,s,n,o,a){let c=n;if(!a||i.addressModeU!=="repeat"||i.addressModeV!=="repeat"||i.addressModeW!=="repeat"){let l=uc[o?"clamp-to-edge":i.addressModeU],d=uc[o?"clamp-to-edge":i.addressModeV],h=uc[o?"clamp-to-edge":i.addressModeW];e[s](c,e.TEXTURE_WRAP_S,l),e[s](c,e.TEXTURE_WRAP_T,d),e.TEXTURE_WRAP_R&&e[s](c,e.TEXTURE_WRAP_R,h)}if((!a||i.magFilter!=="linear")&&e[s](c,e.TEXTURE_MAG_FILTER,zh[i.magFilter]),t){if(!a||i.mipmapFilter!=="linear"){let l=Ox[i.minFilter][i.mipmapFilter];e[s](c,e.TEXTURE_MIN_FILTER,l)}}else e[s](c,e.TEXTURE_MIN_FILTER,zh[i.minFilter]);if(r&&i.maxAnisotropy>1){let l=Math.min(i.maxAnisotropy,e.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));e[s](c,r.TEXTURE_MAX_ANISOTROPY_EXT,l)}i.compare?(e[s](c,e.TEXTURE_COMPARE_FUNC,Nx[i.compare]),e[s](c,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE)):a||e[s](c,e.TEXTURE_COMPARE_MODE,e.NONE)}var zx=p(()=>{Hx()});function Wx(i){return{r8unorm:i.RED,r8snorm:i.RED,r8uint:i.RED,r8sint:i.RED,r16uint:i.RED,r16sint:i.RED,r16float:i.RED,rg8unorm:i.RG,rg8snorm:i.RG,rg8uint:i.RG,rg8sint:i.RG,r32uint:i.RED,r32sint:i.RED,r32float:i.RED,rg16uint:i.RG,rg16sint:i.RG,rg16float:i.RG,rgba8unorm:i.RGBA,"rgba8unorm-srgb":i.RGBA,rgba8snorm:i.RGBA,rgba8uint:i.RGBA,rgba8sint:i.RGBA,bgra8unorm:i.RGBA,"bgra8unorm-srgb":i.RGBA,rgb9e5ufloat:i.RGB,rgb10a2unorm:i.RGBA,rg11b10ufloat:i.RGB,rg32uint:i.RG,rg32sint:i.RG,rg32float:i.RG,rgba16uint:i.RGBA,rgba16sint:i.RGBA,rgba16float:i.RGBA,rgba32uint:i.RGBA,rgba32sint:i.RGBA,rgba32float:i.RGBA,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT,depth24plus:i.DEPTH_COMPONENT,"depth24plus-stencil8":i.DEPTH_STENCIL,depth32float:i.DEPTH_COMPONENT,"depth32float-stencil8":i.DEPTH_STENCIL}}var Vx=p(()=>{"use strict"});function jx(i,e){let t={},r=i.RGBA;return i instanceof z.get().getWebGLRenderingContext()?e.srgb&&(t={"rgba8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT}):(t={"rgba8unorm-srgb":i.SRGB8_ALPHA8,"bgra8unorm-srgb":i.SRGB8_ALPHA8},r=i.RGBA8),{r8unorm:i.R8,r8snorm:i.R8_SNORM,r8uint:i.R8UI,r8sint:i.R8I,r16uint:i.R16UI,r16sint:i.R16I,r16float:i.R16F,rg8unorm:i.RG8,rg8snorm:i.RG8_SNORM,rg8uint:i.RG8UI,rg8sint:i.RG8I,r32uint:i.R32UI,r32sint:i.R32I,r32float:i.R32F,rg16uint:i.RG16UI,rg16sint:i.RG16I,rg16float:i.RG16F,rgba8unorm:i.RGBA,...t,rgba8snorm:i.RGBA8_SNORM,rgba8uint:i.RGBA8UI,rgba8sint:i.RGBA8I,bgra8unorm:r,rgb9e5ufloat:i.RGB9_E5,rgb10a2unorm:i.RGB10_A2,rg11b10ufloat:i.R11F_G11F_B10F,rg32uint:i.RG32UI,rg32sint:i.RG32I,rg32float:i.RG32F,rgba16uint:i.RGBA16UI,rgba16sint:i.RGBA16I,rgba16float:i.RGBA16F,rgba32uint:i.RGBA32UI,rgba32sint:i.RGBA32I,rgba32float:i.RGBA32F,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT16,depth24plus:i.DEPTH_COMPONENT24,"depth24plus-stencil8":i.DEPTH24_STENCIL8,depth32float:i.DEPTH_COMPONENT32F,"depth32float-stencil8":i.DEPTH32F_STENCIL8,...e.s3tc?{"bc1-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...e.s3tc_sRGB?{"bc1-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...e.rgtc?{"bc4-r-unorm":e.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":e.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":e.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":e.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...e.bptc?{"bc6h-rgb-float":e.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":e.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":e.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":e.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...e.etc?{"etc2-rgb8unorm":e.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":e.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":e.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":e.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":e.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":e.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":e.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":e.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...e.astc?{"astc-4x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var Xx=p(()=>{be()});function Yx(i){return{r8unorm:i.UNSIGNED_BYTE,r8snorm:i.BYTE,r8uint:i.UNSIGNED_BYTE,r8sint:i.BYTE,r16uint:i.UNSIGNED_SHORT,r16sint:i.SHORT,r16float:i.HALF_FLOAT,rg8unorm:i.UNSIGNED_BYTE,rg8snorm:i.BYTE,rg8uint:i.UNSIGNED_BYTE,rg8sint:i.BYTE,r32uint:i.UNSIGNED_INT,r32sint:i.INT,r32float:i.FLOAT,rg16uint:i.UNSIGNED_SHORT,rg16sint:i.SHORT,rg16float:i.HALF_FLOAT,rgba8unorm:i.UNSIGNED_BYTE,"rgba8unorm-srgb":i.UNSIGNED_BYTE,rgba8snorm:i.BYTE,rgba8uint:i.UNSIGNED_BYTE,rgba8sint:i.BYTE,bgra8unorm:i.UNSIGNED_BYTE,"bgra8unorm-srgb":i.UNSIGNED_BYTE,rgb9e5ufloat:i.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:i.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:i.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:i.UNSIGNED_INT,rg32sint:i.INT,rg32float:i.FLOAT,rgba16uint:i.UNSIGNED_SHORT,rgba16sint:i.SHORT,rgba16float:i.HALF_FLOAT,rgba32uint:i.UNSIGNED_INT,rgba32sint:i.INT,rgba32float:i.FLOAT,stencil8:i.UNSIGNED_BYTE,depth16unorm:i.UNSIGNED_SHORT,depth24plus:i.UNSIGNED_INT,"depth24plus-stencil8":i.UNSIGNED_INT_24_8,depth32float:i.FLOAT,"depth32float-stencil8":i.FLOAT_32_UNSIGNED_INT_24_8_REV}}var $x=p(()=>{"use strict"});function qx(i){return{"2d":i.TEXTURE_2D,cube:i.TEXTURE_CUBE_MAP,"1d":null,"3d":i?.TEXTURE_3D||null,"2d-array":i?.TEXTURE_2D_ARRAY||null,"cube-array":i?.TEXTURE_CUBE_MAP_ARRAY||null}}var Kx=p(()=>{"use strict"});var l5,Vh,jh,Qx=p(()=>{be();P();Gt();ge();Px();Ax();kx();Gx();Hh();Lx();zx();Vx();Xx();$x();Kx();l5=4,Vh=class Zx{constructor(e){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._managedTextures=new Re({renderer:e,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let t={image:hc,buffer:Mx,video:Dx,compressed:Rx,...Zx.uploadExtensions};this._uploads={...t,cube:Ix(t)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(e){this._gl=e,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=jx(e,this._renderer.context.extensions),this._mapFormatToType=Yx(e),this._mapFormatToFormat=Wx(e),this._mapViewDimensionToGlTarget=qx(e)),this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let t=0;t<16;t++)this.bind(U.EMPTY,t)}initSource(e){this.bind(e)}bind(e,t=0){let r=e.source;e?(this.bindSource(r,t),this._useSeparateSamplers&&this._bindSampler(r.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let r=this._gl;if(e._gcLastUsed=this._renderer.gc.now,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e||(e=U.EMPTY.source);let s=this.getGlSource(e);r.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let r=this._gl;if(!e){this._boundSamplers[t]=null,r.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,r.bindSampler(t,s))}unbind(e){let t=e.source,r=this._boundTextures,s=this._gl;for(let n=0;n<r.length;n++)if(r[n]===t){this._activateLocation(n);let o=this.getGlSource(t);s.bindTexture(o.target,null),r[n]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=this._gl,r=new dc(t.createTexture());if(r.type=this._mapFormatToType[e.format],r.internalFormat=this._mapFormatToInternalFormat[e.format],r.format=this._mapFormatToFormat[e.format],r.target=this._mapViewDimensionToGlTarget[e.viewDimension],r.target===null)throw new Error(`Unsupported view dimension: ${e.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let n=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(n))+1}return e._gpuData[this._renderer.uid]=r,this._managedTextures.add(e)&&(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(e),this.updateStyle(e,!1),r}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let r=this._gl,s=this.getGlSource(e);r.bindTexture(s.target,s.texture),this._boundTextures[this._activeTextureLocation]=e,Wh(e.style,r,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",s.target,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];r&&(t||(this.unbind(e),this._gl.deleteTexture(r.texture)),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this))}onSourceUpdate(e){let t=this._gl,r=this.getGlSource(e);t.bindTexture(r.target,r.texture),this._boundTextures[this._activeTextureLocation]=e;let s=e.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[e.uploadMethodId])this._uploads[e.uploadMethodId].upload(e,r,t,this._renderer.context.webGLVersion);else if(r.target===t.TEXTURE_2D)this._initEmptyTexture2D(r,e);else if(r.target===t.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(r,e);else if(r.target===t.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(r,e);else throw new Error("[GlTextureSystem] Unsupported texture target for empty allocation.");this._applyMipRange(r,e),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let r=this.getGlSource(e);this._gl.generateMipmap(r.target)}_initEmptyTexture2D(e,t){let r=this._gl;r.texImage2D(r.TEXTURE_2D,0,e.internalFormat,t.pixelWidth,t.pixelHeight,0,e.format,e.type,null);let s=Math.max(t.pixelWidth>>1,1),n=Math.max(t.pixelHeight>>1,1);for(let o=1;o<t.mipLevelCount;o++)r.texImage2D(r.TEXTURE_2D,o,e.internalFormat,s,n,0,e.format,e.type,null),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}_initEmptyTexture2DArray(e,t){if(this._renderer.context.webGLVersion!==2)throw new Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let r=this._gl,s=Math.max(t.arrayLayerCount|0,1);r.texImage3D(r.TEXTURE_2D_ARRAY,0,e.internalFormat,t.pixelWidth,t.pixelHeight,s,0,e.format,e.type,null);let n=Math.max(t.pixelWidth>>1,1),o=Math.max(t.pixelHeight>>1,1);for(let a=1;a<t.mipLevelCount;a++)r.texImage3D(r.TEXTURE_2D_ARRAY,a,e.internalFormat,n,o,s,0,e.format,e.type,null),n=Math.max(n>>1,1),o=Math.max(o>>1,1)}_initEmptyTextureCube(e,t){let r=this._gl,s=6;for(let a=0;a<s;a++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,e.internalFormat,t.pixelWidth,t.pixelHeight,0,e.format,e.type,null);let n=Math.max(t.pixelWidth>>1,1),o=Math.max(t.pixelHeight>>1,1);for(let a=1;a<t.mipLevelCount;a++){for(let c=0;c<s;c++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+c,a,e.internalFormat,n,o,0,e.format,e.type,null);n=Math.max(n>>1,1),o=Math.max(o>>1,1)}}_applyMipRange(e,t){if(this._renderer.context.webGLVersion!==2||t.mipLevelCount<=1)return;let r=this._gl,s=Math.max((t.mipLevelCount|0)-1,0);r.texParameteri(e.target,r.TEXTURE_BASE_LEVEL,0),r.texParameteri(e.target,r.TEXTURE_MAX_LEVEL,s)}_initSampler(e){let t=this._gl,r=this._gl.createSampler();return this._glSamplers[e._resourceId]=r,Wh(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:r,height:s}=this.getPixels(e),n=z.get().createCanvas();n.width=r,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(r,s);a.data.set(t),o.putImageData(a,0,0)}return n}getPixels(e){let t=e.source.resolution,r=e.frame,s=Math.max(Math.round(r.width*t),1),n=Math.max(Math.round(r.height*t),1),o=new Uint8Array(l5*s*n),a=this._renderer,c=a.renderTarget.getRenderTarget(e),l=a.renderTarget.getGpuRenderTarget(c),d=a.gl;return a.renderTarget.adaptor.bindFramebuffer(l.resolveTargetFramebuffer),d.readPixels(Math.round(r.x*t),Math.round(r.y*t),s,n,d.RGBA,d.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(U.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Vh.extension={type:[_.WebGLSystem],name:"texture"};Vh.uploadExtensions=Object.create(null);jh=Vh;H.handleByMap(_.TextureUploaderWebGL,jh.uploadExtensions)});var r_={};Kc(r_,{WebGLRenderer:()=>Xh});var d5,h5,u5,Jx,e_,t_,Xh,i_=p(()=>{P();Eb();Cb();Pb();jr();Va();zt();Rb();Ib();Db();Nb();Hb();zb();Wb();Vb();kh();Qb();Lh();Oh();Cx();Qx();d5=[...Zi,ei,Ob,Bb,Nn,Fn,jh,Wn,Dn,ri,ti,On,Ex,Hn,Ln],h5=[...Wa],u5=[In,Bn,kn],Jx=[],e_=[],t_=[];H.handleByNamedList(_.WebGLSystem,Jx);H.handleByNamedList(_.WebGLPipes,e_);H.handleByNamedList(_.WebGLPipesAdaptor,t_);H.add(...d5,...h5,...u5);Xh=class extends St{constructor(){let e={name:"webgl",type:Ue.WEBGL,systems:Jx,renderPipes:e_,renderPipeAdaptors:t_};super(e)}}});function s_(i,e,t,r,s,n,o,a){let c=i-t*s,l=e-r*s,d=i+t*n,h=e+r*n,u,f;o?(u=r,f=-t):(u=-r,f=t);let m=c+u,g=l+f,x=d+u,b=h+f;return a.push(m,g),a.push(x,b),2}function ii(i,e,t,r,s,n,o,a){let c=t-i,l=r-e,d=Math.atan2(c,l),h=Math.atan2(s-i,n-e);a&&d<h?d+=Math.PI*2:!a&&d>h&&(h+=Math.PI*2);let u=d,f=h-d,m=Math.abs(f),g=Math.sqrt(c*c+l*l),x=(15*m*Math.sqrt(g)/Math.PI>>0)+1,b=f/x;if(u+=b,a){o.push(i,e),o.push(t,r);for(let y=1,v=u;y<x;y++,v+=b)o.push(i,e),o.push(i+Math.sin(v)*g,e+Math.cos(v)*g);o.push(i,e),o.push(s,n)}else{o.push(t,r),o.push(i,e);for(let y=1,v=u;y<x;y++,v+=b)o.push(i+Math.sin(v)*g,e+Math.cos(v)*g),o.push(i,e);o.push(s,n),o.push(i,e)}return x*2}function ts(i,e,t,r,s,n){let o=1e-4;if(i.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let F=ra(i);t&&(F*=-1),c=(c-.5)*F+.5}let l=new ae(i[0],i[1]),d=new ae(i[i.length-2],i[i.length-1]),h=r,u=Math.abs(l.x-d.x)<o&&Math.abs(l.y-d.y)<o;if(h){i=i.slice(),u&&(i.pop(),i.pop(),d.set(i[i.length-2],i[i.length-1]));let F=(l.x+d.x)*.5,te=(d.y+l.y)*.5;i.unshift(F,te),i.push(F,te)}let f=s,m=i.length/2,g=i.length,x=f.length/2,b=a.width/2,y=b*b,v=a.miterLimit*a.miterLimit,w=i[0],S=i[1],T=i[2],C=i[3],B=0,R=0,M=-(S-C),E=w-T,A=0,L=0,W=Math.sqrt(M*M+E*E);M/=W,E/=W,M*=b,E*=b;let ee=c,G=(1-ee)*2,D=ee*2;h||(a.cap==="round"?g+=ii(w-M*(G-D)*.5,S-E*(G-D)*.5,w-M*G,S-E*G,w+M*D,S+E*D,f,!0)+2:a.cap==="square"&&(g+=s_(w,S,M,E,G,D,!0,f))),f.push(w-M*G,S-E*G),f.push(w+M*D,S+E*D);for(let F=1;F<m-1;++F){w=i[(F-1)*2],S=i[(F-1)*2+1],T=i[F*2],C=i[F*2+1],B=i[(F+1)*2],R=i[(F+1)*2+1],M=-(S-C),E=w-T,W=Math.sqrt(M*M+E*E),M/=W,E/=W,M*=b,E*=b,A=-(C-R),L=T-B,W=Math.sqrt(A*A+L*L),A/=W,L/=W,A*=b,L*=b;let te=T-w,de=S-C,we=T-B,se=R-C,ue=te*we+de*se,$=de*we-se*te,dt=$<0;if(Math.abs($)<.001*Math.abs(ue)){f.push(T-M*G,C-E*G),f.push(T+M*D,C+E*D),ue>=0&&(a.join==="round"?g+=ii(T,C,T-M*G,C-E*G,T-A*G,C-L*G,f,!1)+4:g+=2,f.push(T-A*D,C-L*D),f.push(T+A*G,C+L*G));continue}let ui=(-M+w)*(-E+C)-(-M+T)*(-E+S),Cr=(-A+B)*(-L+C)-(-A+T)*(-L+R),Pr=(te*Cr-we*ui)/$,Et=(se*ui-de*Cr)/$,ht=(Pr-T)*(Pr-T)+(Et-C)*(Et-C),ut=T+(Pr-T)*G,Qe=C+(Et-C)*G,I=T-(Pr-T)*D,K=C-(Et-C)*D,ne=Math.min(te*te+de*de,we*we+se*se),ke=dt?G:D,We=ne+ke*ke*y;ht<=We?a.join==="bevel"||ht/y>v?(dt?(f.push(ut,Qe),f.push(T+M*D,C+E*D),f.push(ut,Qe),f.push(T+A*D,C+L*D)):(f.push(T-M*G,C-E*G),f.push(I,K),f.push(T-A*G,C-L*G),f.push(I,K)),g+=2):a.join==="round"?dt?(f.push(ut,Qe),f.push(T+M*D,C+E*D),g+=ii(T,C,T+M*D,C+E*D,T+A*D,C+L*D,f,!0)+4,f.push(ut,Qe),f.push(T+A*D,C+L*D)):(f.push(T-M*G,C-E*G),f.push(I,K),g+=ii(T,C,T-M*G,C-E*G,T-A*G,C-L*G,f,!1)+4,f.push(T-A*G,C-L*G),f.push(I,K)):(f.push(ut,Qe),f.push(I,K)):(f.push(T-M*G,C-E*G),f.push(T+M*D,C+E*D),a.join==="round"?dt?g+=ii(T,C,T+M*D,C+E*D,T+A*D,C+L*D,f,!0)+2:g+=ii(T,C,T-M*G,C-E*G,T-A*G,C-L*G,f,!1)+2:a.join==="miter"&&ht/y<=v&&(dt?(f.push(I,K),f.push(I,K)):(f.push(ut,Qe),f.push(ut,Qe)),g+=2),f.push(T-A*G,C-L*G),f.push(T+A*D,C+L*D),g+=2)}w=i[(m-2)*2],S=i[(m-2)*2+1],T=i[(m-1)*2],C=i[(m-1)*2+1],M=-(S-C),E=w-T,W=Math.sqrt(M*M+E*E),M/=W,E/=W,M*=b,E*=b,f.push(T-M*G,C-E*G),f.push(T+M*D,C+E*D),h||(a.cap==="round"?g+=ii(T-M*(G-D)*.5,C-E*(G-D)*.5,T-M*G,C-E*G,T+M*D,C+E*D,f,!1)+2:a.cap==="square"&&(g+=s_(T,C,M,E,G,D,!1,f)));let j=1e-4*1e-4;for(let F=x;F<g+x-2;++F)w=f[F*2],S=f[F*2+1],T=f[(F+1)*2],C=f[(F+1)*2+1],B=f[(F+2)*2],R=f[(F+2)*2+1],!(Math.abs(w*(C-R)+T*(R-S)+B*(S-C))<j)&&n.push(F,F+1,F+2)}var fc=p(()=>{Kl();Pt()});function o_(i,e){for(let t=0;t<e.length;t++){let r=e[t];i.addColorStop(r.offset,r.color)}}function a_(i,e){let t=z.get().createCanvas(i,e),r=t.getContext("2d");return{canvas:t,context:r}}function m5(i){let e=i[0]??{};return(typeof e=="number"||i[1])&&(N("8.5.2","use options object instead"),e={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??Ze.defaultLinearOptions.textureSize}),e}var n_,$h,Ze,si=p(()=>{$e();be();ce();Zo();ge();Ie();_e();pl();n_=[{offset:0,color:"white"},{offset:1,color:"black"}],$h=class Yh{constructor(...e){this.uid=Y("fillGradient"),this._tick=0,this.type="linear",this.colorStops=[];let t=m5(e);t={...t.type==="radial"?Yh.defaultRadialOptions:Yh.defaultLinearOptions,...Do(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:Z.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:r,y:s}=this.end,n=r-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let x=e;e=r,r=x,n*=-1}if(o<0){let x=t;t=s,s=x,o*=-1}}let c=this.colorStops.length?this.colorStops:n_,l=this._textureSize,{canvas:d,context:h}=a_(l,1),u=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);o_(u,c),h.fillStyle=u,h.fillRect(0,0,l,1),this.texture=new U({source:new kt({resource:d,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),g=new k;g.scale(f/l,1),g.rotate(m),g.translate(e,t),this.textureSpace==="local"&&g.scale(l,l),this.transform=g}buildGradient(){this.texture||this._tick++,this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:n_,t=this._textureSize,{canvas:r,context:s}=a_(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,l=this.innerRadius,d=this.outerRadius,h=a-d,u=c-d,f=t/(d*2),m=(n-h)*f,g=(o-u)*f,x=s.createRadialGradient(m,g,l*f,(a-h)*f,(c-u)*f,d*f);o_(x,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=x,s.translate(m,g),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-g),s.fillRect(0,0,t,t),this.texture=new U({source:new kt({resource:r,addressMode:this._wrapMode})});let b=new k;this.textureSpace==="local"?b.scale(2*d,2*d):b.scale(1/f,1/f),b.translate(h,u),this.transform=b}destroy(){this.texture?.destroy(!0),this.texture=null,this.transform=null,this.colorStops=[],this.start=null,this.end=null,this.center=null,this.outerCenter=null}get styleKey(){return`fill-gradient-${this.uid}-${this._tick}`}};$h.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};$h.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,rotation:0,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};Ze=$h});function g5(i){return i.texture!==void 0}var c_,Ft,Vn=p(()=>{ce();Ie();c_={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},Ft=class{constructor(e,t){this.uid=Y("fillPattern"),this._tick=0,this.transform=new k;let r=g5(e)?e:{texture:e,repetition:t};this.texture=r.texture,this.textureSpace=r.textureSpace??"global";let s=r.repetition;s&&(this.texture.source.style.addressModeU=c_[s].addressModeU,this.texture.source.style.addressModeV=c_[s].addressModeV)}setTransform(e){if(e){if(this.transform.equals(e))return;this.transform.copyFrom(e)}else{if(this.transform.isIdentity())return;this.transform.identity()}this._tick++}get texture(){return this._texture}set texture(e){this._texture!==e&&(this._texture=e,this._tick++)}get styleKey(){return`fill-pattern-${this.uid}-${this._tick}`}destroy(){this.texture.destroy(!0),this.texture=null}}});function l_(i,e,t,r,s,n,o,a=null){let c=0;t*=e,s*=n;let l=a.a,d=a.b,h=a.c,u=a.d,f=a.tx,m=a.ty;for(;c<o;){let g=i[t],x=i[t+1];r[s]=l*g+h*x+f,r[s+1]=d*g+u*x+m,s+=n,t+=e,c++}}function d_(i,e,t,r){let s=0;for(e*=t;s<r;)i[e]=0,i[e+1]=0,e+=t,s++}var h_=p(()=>{"use strict"});function qh(i,e,t,r,s){let n=e.a,o=e.b,a=e.c,c=e.d,l=e.tx,d=e.ty;t||(t=0),r||(r=2),s||(s=i.length/r-t);let h=t*r;for(let u=0;u<s;u++){let f=i[h],m=i[h+1];i[h]=n*f+a*m+l,i[h+1]=o*f+c*m+d,h+=r}}var u_=p(()=>{"use strict"});var b5,ni,Kh=p(()=>{ce();xs();b5=new k,ni=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,r=this.renderable;return r?Lt(t,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||b5}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}destroy(){this.renderable=null,this.texture=null,this.geometryData=null,this._batcher=null,this._batch=null}}});var rs,f_,p_,m_=p(()=>{P();rs={extension:{type:_.ShapeBuilder,name:"circle"},build(i,e){let t,r,s,n,o,a;if(i.type==="circle"){let w=i;if(o=a=w.radius,o<=0)return!1;t=w.x,r=w.y,s=n=0}else if(i.type==="ellipse"){let w=i;if(o=w.halfWidth,a=w.halfHeight,o<=0||a<=0)return!1;t=w.x,r=w.y,s=n=0}else{let w=i,S=w.width/2,T=w.height/2;t=w.x+S,r=w.y+T,o=a=Math.max(0,Math.min(w.radius,Math.min(S,T))),s=S-o,n=T-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),l=c*8+(s?4:0)+(n?4:0);if(l===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=r+n,e[2]=e[4]=t-s,e[5]=e[7]=r-n,!0;let d=0,h=c*4+(s?2:0)+2,u=h,f=l,m=s+o,g=n,x=t+m,b=t-m,y=r+g;if(e[d++]=x,e[d++]=y,e[--h]=y,e[--h]=b,n){let w=r-g;e[u++]=b,e[u++]=w,e[--f]=w,e[--f]=x}for(let w=1;w<c;w++){let S=Math.PI/2*(w/c),T=s+Math.cos(S)*o,C=n+Math.sin(S)*a,B=t+T,R=t-T,M=r+C,E=r-C;e[d++]=B,e[d++]=M,e[--h]=M,e[--h]=R,e[u++]=R,e[u++]=E,e[--f]=E,e[--f]=B}m=s,g=n+a,x=t+m,b=t-m,y=r+g;let v=r-g;return e[d++]=x,e[d++]=y,e[--f]=v,e[--f]=x,s&&(e[d++]=b,e[d++]=y,e[--f]=v,e[--f]=b),!0},triangulate(i,e,t,r,s,n){if(i.length===0)return;let o=0,a=0;for(let d=0;d<i.length;d+=2)o+=i[d],a+=i[d+1];o/=i.length/2,a/=i.length/2;let c=r;e[c*t]=o,e[c*t+1]=a;let l=c++;for(let d=0;d<i.length;d+=2)e[c*t]=i[d],e[c*t+1]=i[d+1],d>0&&(s[n++]=c,s[n++]=l,s[n++]=c-1),c++;s[n++]=l+1,s[n++]=l,s[n++]=c-1}},f_={...rs,extension:{...rs.extension,name:"ellipse"}},p_={...rs,extension:{...rs.extension,name:"roundedRectangle"}}});function g_(i,e,t,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],c=i[i.length-1],l=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,d=t,h=i.length/2,u=d.length/2;for(let f=0;f<h;f++)d.push(i[f*2]),d.push(i[f*2+1]);for(let f=0;f<h-1;f++)r.push(u+f,u+f+1);l&&r.push(u+h-1,u)}var b_=p(()=>{});function pc(i,e,t,r,s,n,o){let a=zm(i,e,2);if(!a)return;for(let l=0;l<a.length;l+=3)n[o++]=a[l]+s,n[o++]=a[l+1]+s,n[o++]=a[l+2]+s;let c=s*r;for(let l=0;l<i.length;l+=2)t[c]=i[l],t[c+1]=i[l+1],c+=r}var Zh=p(()=>{Wm()});var x5,x_,__=p(()=>{P();Zh();x5=[],x_={extension:{type:_.ShapeBuilder,name:"polygon"},build(i,e){for(let t=0;t<i.points.length;t++)e[t]=i.points[t];return!0},triangulate(i,e,t,r,s,n){pc(i,x5,e,t,r,s,n)}}});var y_,v_=p(()=>{P();y_={extension:{type:_.ShapeBuilder,name:"rectangle"},build(i,e){let t=i,r=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=r,e[1]=s,e[2]=r+n,e[3]=s,e[4]=r+n,e[5]=s+o,e[6]=r,e[7]=s+o,!0):!1},triangulate(i,e,t,r,s,n){let o=0;r*=t,e[r+o]=i[0],e[r+o+1]=i[1],o+=t,e[r+o]=i[2],e[r+o+1]=i[3],o+=t,e[r+o]=i[6],e[r+o+1]=i[7],o+=t,e[r+o]=i[4],e[r+o+1]=i[5],o+=t;let a=r/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var w_,S_=p(()=>{P();w_={extension:{type:_.ShapeBuilder,name:"triangle"},build(i,e){return e[0]=i.x,e[1]=i.y,e[2]=i.x2,e[3]=i.y2,e[4]=i.x3,e[5]=i.y3,!0},triangulate(i,e,t,r,s,n){let o=0;r*=t,e[r+o]=i[0],e[r+o+1]=i[1],o+=t,e[r+o]=i[2],e[r+o+1]=i[3],o+=t,e[r+o]=i[4],e[r+o+1]=i[5];let a=r/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function mc(i,e,t,r){let s=e.matrix?i.copyFrom(e.matrix).invert():i.identity();if(e.textureSpace==="local"){let o=t.getBounds(y5);e.width&&o.pad(e.width);let{x:a,y:c}=o,l=1/o.width,d=1/o.height,h=-a*l,u=-c*d,f=s.a,m=s.b,g=s.c,x=s.d;s.a*=l,s.b*=l,s.c*=d,s.d*=d,s.tx=h*f+u*g+s.tx,s.ty=h*m+u*x+s.ty}else if(e.texture.rotate){let{uvs:o,orig:a}=e.texture;s.scale(1/a.width,1/a.height),s.prepend(v5.set(o.x1-o.x0,o.y1-o.y0,o.x3-o.x0,o.y3-o.y0,o.x0,o.y0))}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof Ze)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(_5.copyFrom(r).invert()),s}var _5,y5,v5,Qh=p(()=>{ce();Ve();si();_5=new k,y5=new Q,v5=new k});function E_(i,e){let{geometryData:t,batches:r}=e;r.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let n=i.instructions[s];if(n.action==="texture")T5(n.data,r,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,l=n.data.hole;o&&l&&T_(l.shapePath,c,!0,r,t),l&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=l.shapePath.shapePrimitives),T_(a,c,o,r,t)}}}function T5(i,e,t){let r=[],s=Tr.rectangle,n=w5;n.x=i.dx,n.y=i.dy,n.width=i.dw,n.height=i.dh;let o=i.transform;if(!s.build(n,r))return;let{vertices:a,uvs:c,indices:l}=t,d=l.length,h=a.length/2;o&&qh(r,o),s.triangulate(r,a,2,h,l,d);let u=i.image,f=u.uvs;c.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=ye.get(ni);m.indexOffset=d,m.indexSize=l.length-d,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=i.style,m.alpha=i.alpha,m.texture=u,m.geometryData=t,e.push(m)}function T_(i,e,t,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:c,transform:l,holes:d})=>{let h=[],u=Tr[c.type];if(!u.build(c,h))return;let f=a.length,m=n.length/2,g="triangle-list";if(l&&qh(h,l),t){let v=c.closePath??!0,w=e;w.pixelLine?(g_(h,v,n,a),g="line-list"):ts(h,w,!1,v,n,a)}else if(d){let v=[],w=h.slice();E5(d).forEach(T=>{v.push(w.length/2),w.push(...T)}),pc(w,v,n,2,m,a,f)}else u.triangulate(h,n,2,m,a,f);let x=o.length/2,b=e.texture;if(b!==U.WHITE){let v=mc(S5,e,c,l);l_(n,2,m,o,x,2,n.length/2-m,v)}else d_(o,x,2,n.length/2-m);let y=ye.get(ni);y.indexOffset=f,y.indexSize=a.length-f,y.attributeOffset=m,y.attributeSize=n.length/2-m,y.baseColor=e.color,y.alpha=e.alpha,y.texture=b,y.geometryData=s,y.topology=g,r.push(y)})}function E5(i){let e=[];for(let t=0;t<i.length;t++){let r=i[t].shape,s=[];Tr[r.type].build(r,s)&&e.push(s)}return e}var Tr,w5,S5,gc=p(()=>{P();ce();Ve();h_();u_();ge();Zt();Kh();m_();fc();b_();__();v_();S_();Qh();Zh();Tr={};H.handleByMap(_.ShapeBuilder,Tr);H.add(y_,x_,w_,rs,f_,p_);w5=new Q,S5=new k});function R5(i,e,t){i.beginPath();for(let r=0;r<t.length;r+=3){let s=t[r]*2,n=t[r+1]*2,o=t[r+2]*2;i.moveTo(e[s],e[s+1]),i.lineTo(e[n],e[n+1]),i.lineTo(e[o],e[o+1]),i.closePath()}i.fill()}function k5(i){return`#${(i&16777215).toString(16).padStart(6,"0")}`}function B5(i,e,t,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(e+n,t),i.lineTo(e+r-n,t),i.quadraticCurveTo(e+r,t,e+r,t+n),i.lineTo(e+r,t+s-n),i.quadraticCurveTo(e+r,t+s,e+r-n,t+s),i.lineTo(e+n,t+s),i.quadraticCurveTo(e,t+s,e,t+s-n),i.lineTo(e,t+n),i.quadraticCurveTo(e,t,e+n,t)}function xc(i,e){switch(e.type){case"rectangle":{let t=e;i.rect(t.x,t.y,t.width,t.height);break}case"roundedRectangle":{let t=e;B5(i,t.x,t.y,t.width,t.height,t.radius);break}case"circle":{let t=e;i.arc(t.x,t.y,t.radius,0,Math.PI*2);break}case"ellipse":{let t=e;i.ellipse?i.ellipse(t.x,t.y,t.halfWidth,t.halfHeight,0,0,Math.PI*2):(i.save(),i.translate(t.x,t.y),i.scale(t.halfWidth,t.halfHeight),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let t=e;i.moveTo(t.x,t.y),i.lineTo(t.x2,t.y2),i.lineTo(t.x3,t.y3),i.closePath();break}case"polygon":default:{let t=e,r=t.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);t.closePath&&i.closePath();break}}}function I5(i,e){if(!e?.length)return!1;for(let t=0;t<e.length;t++){let r=e[t];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),xc(i,r.shape),n&&i.restore()}return!0}function G5(i,e,t,r){let s=i.fill;if(s instanceof Ze){s.buildGradient();let o=s.texture;if(o){let a=q.getTintedPattern(o,e),c=t?Jh.copyFrom(t).scale(o.source.pixelWidth,o.source.pixelHeight):Jh.copyFrom(s.transform);return r&&!i.textureSpace&&c.append(r),q.applyPatternTransform(a,c),a}}if(s instanceof Ft){let o=q.getTintedPattern(s.texture,e);return q.applyPatternTransform(o,s.transform,!1),o}let n=i.texture;if(n&&n!==U.WHITE){if(!n.source.resource)return C5;let o=q.getTintedPattern(n,e),a=i.matrix;if(t){let{resolution:c}=n.source;if(a=Jh.copyFrom(t),n.rotate){let{uvs:l,orig:d}=n;a.prepend(A5.set(l.x1-l.x0,l.y1-l.y0,l.x3-l.x0,l.y3-l.y0,l.x0,l.y0).invert()).scale(d.width*c,d.height*c)}else a.scale(n.source.pixelWidth,n.source.pixelHeight).translate(-n.frame.x*c,-n.frame.y*c)}return q.applyPatternTransform(o,a),o}return k5(e)}var C5,bc,P5,M5,Jh,A5,jn,C_=p(()=>{P();ys();ce();ki();ge();Go();xs();fc();si();Vn();gc();Qh();C5="#808080",bc=new k,P5=new k,M5=new k,Jh=new k,A5=new k;jn=class{constructor(){this.shader=null}contextChange(e){}execute(e,t){let r=e.renderer,s=r.canvasContext,n=s.activeContext,o=t.groupTransform,a=r.globalUniforms.globalUniformData?.worldColor??4294967295,c=t.groupColorAlpha,l=(a>>>24&255)/255,d=(c>>>24&255)/255,h=r.filter?.alphaMultiplier??1,u=l*d*h;if(u<=0)return;let f=a&16777215,m=c&16777215,g=Jt(Lt(m,f)),x=r._roundPixels|t._roundPixels;n.save(),s.setContextTransform(o,x===1),s.setBlendMode(t.groupBlendMode);let b=t.context.instructions;for(let y=0;y<b.length;y++){let v=b[y];if(v.action==="texture"){let E=v.data,A=E.image,L=A?q.getCanvasSource(A):null;if(!L)continue;let W=E.alpha*u;if(W<=0)continue;let ee=Lt(E.style,g);n.globalAlpha=W;let G=L;ee!==16777215&&(G=q.getTintedCanvas({texture:A},ee));let D=A.frame,j=A.source._resolution??A.source.resolution??1,F=D.x*j,te=D.y*j,de=D.width*j,we=D.height*j;G!==L&&(F=0,te=0);let se=E.transform,ue=se&&!se.isIdentity(),$=A.rotate;ue||$?(bc.copyFrom(o),ue&&bc.append(se),$&&ie.matrixAppendRotationInv(bc,$,E.dx,E.dy,E.dw,E.dh),s.setContextTransform(bc,x===1)):s.setContextTransform(o,x===1),n.drawImage(G,F,te,G===L?de:G.width,G===L?we:G.height,$?0:E.dx,$?0:E.dy,E.dw,E.dh),(ue||$)&&s.setContextTransform(o,x===1);continue}let w=v.data,S=w?.path?.shapePath;if(!S?.shapePrimitives?.length)continue;let T=w.style,C=Lt(T.color,g),B=T.alpha*u;if(B<=0)continue;let R=v.action==="stroke";if(n.globalAlpha=B,R){let E=T;n.lineWidth=E.width,n.lineCap=E.cap,n.lineJoin=E.join,n.miterLimit=E.miterLimit}let M=S.shapePrimitives;if(!R&&w.hole?.shapePath?.shapePrimitives?.length){let E=M[M.length-1];E.holes=w.hole.shapePath.shapePrimitives}for(let E=0;E<M.length;E++){let A=M[E];if(!A?.shape)continue;let L=A.transform,W=L&&!L.isIdentity(),ee=T.texture&&T.texture!==U.WHITE,G=T.textureSpace==="global"?L:null,D=ee?mc(P5,T,A.shape,G):null,j=W?M5.copyFrom(o).append(L):o,F=G5(T,C,D,j);if(W&&(n.save(),n.transform(L.a,L.b,L.c,L.d,L.tx,L.ty)),R){let te=T;if(te.alignment!==.5&&!te.pixelLine){let we=[],se=[],ue=[];if(Tr[A.shape.type]?.build(A.shape,we)){let dt=A.shape.closePath??!0;ts(we,te,!1,dt,se,ue),n.fillStyle=F,R5(n,se,ue)}else n.strokeStyle=F,n.beginPath(),xc(n,A.shape),n.stroke()}else n.strokeStyle=F,n.beginPath(),xc(n,A.shape),n.stroke()}else n.fillStyle=F,n.beginPath(),xc(n,A.shape),I5(n,A.holes)?n.fill("evenodd"):n.fill();W&&n.restore()}}n.restore()}destroy(){this.shader=null}};jn.extension={type:[_.CanvasPipesAdaptor],name:"graphics"}});var eu,P_,M_=p(()=>{P();ys();ce();Go();xs();ki();eu=class oi{static _getPatternRepeat(e,t){let r=e&&e!=="clamp-to-edge",s=t&&t!=="clamp-to-edge";return r&&s?"repeat":r?"repeat-x":s?"repeat-y":"no-repeat"}start(e,t,r){}execute(e,t){let r=t.elements;if(!r||!r.length)return;let s=e.renderer,n=s.canvasContext,o=n.activeContext;for(let a=0;a<r.length;a++){let c=r[a];if(!c.packAsQuad)continue;let l=c,d=l.texture,h=d?q.getCanvasSource(d):null;if(!h)continue;let u=d.source.style,f=n.smoothProperty,m=u.scaleMode!=="nearest";o[f]!==m&&(o[f]=m),n.setBlendMode(t.blendMode);let g=s.globalUniforms.globalUniformData?.worldColor??4294967295,x=l.color,b=(g>>>24&255)/255,y=(x>>>24&255)/255,v=s.filter?.alphaMultiplier??1,w=b*y*v;if(w<=0)continue;o.globalAlpha=w;let S=g&16777215,T=x&16777215,C=Jt(Lt(T,S)),B=d.frame,R=u.addressModeU??u.addressMode,M=u.addressModeV??u.addressMode,E=oi._getPatternRepeat(R,M),A=d.source._resolution??d.source.resolution??1,L=l.renderable?.renderGroup?.isCachedAsTexture,W=B.x*A,ee=B.y*A,G=B.width*A,D=B.height*A,j=l.bounds,F=s.renderTarget.renderTarget.isRoot,te=j.minX,de=j.minY,we=j.maxX-j.minX,se=j.maxY-j.minY,ue=d.rotate,$=d.uvs,dt=Math.min($.x0,$.x1,$.x2,$.x3,$.y0,$.y1,$.y2,$.y3),ui=Math.max($.x0,$.x1,$.x2,$.x3,$.y0,$.y1,$.y2,$.y3),Cr=E!=="no-repeat"&&(dt<0||ui>1),Et=ue&&!(!Cr&&(C!==16777215||ue));Et?(oi._tempPatternMatrix.copyFrom(l.transform),ie.matrixAppendRotationInv(oi._tempPatternMatrix,ue,te,de,we,se),n.setContextTransform(oi._tempPatternMatrix,l.roundPixels===1,void 0,L&&F)):n.setContextTransform(l.transform,l.roundPixels===1,void 0,L&&F);let ht=we,ut=se,Qe=Et?0:te,I=Et?0:de;if(!Et&&l.roundPixels===1&&(Qe|=0,I|=0),Cr){let K=h,ne=C!==16777215&&!ue,ke=B.width<=d.source.width&&B.height<=d.source.height;ne&&ke&&(K=q.getTintedCanvas({texture:d},C));let We=o.createPattern(K,E);if(!We)continue;let fi=ht,bt=ut;if(fi===0||bt===0)continue;let pi=1/fi,Dt=1/bt,mi=($.x1-$.x0)*pi,vo=($.y1-$.y0)*pi,us=($.x3-$.x0)*Dt,dr=($.y3-$.y0)*Dt,gi=$.x0-mi*Qe-us*I,wo=$.y0-vo*Qe-dr*I,bi=d.source.pixelWidth,xi=d.source.pixelHeight;oi._tempPatternMatrix.set(mi*bi,vo*xi,us*bi,dr*xi,gi*bi,wo*xi),q.applyPatternTransform(We,oi._tempPatternMatrix),o.fillStyle=We,o.fillRect(Qe,I,ht,ut)}else{let ne=C!==16777215||ue?q.getTintedCanvas({texture:d},C):h,ke=ne!==h;o.drawImage(ne,ke?0:W,ke?0:ee,ke?ne.width:G,ke?ne.height:D,Qe,I,ht,ut)}}}};eu._tempPatternMatrix=new k;eu.extension={type:[_.CanvasPipesAdaptor],name:"batch"};P_=eu});var Xn,A_=p(()=>{P();Xn=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&e.mask;let n=this._colorStack[this._colorStackIndex];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1})),this._colorStackIndex++}pop(e,t,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;this._colorStackIndex--;let n=s[this._colorStackIndex-1];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1}))}execute(e){}destroy(){this._renderer=null,this._colorStack=null}};Xn.extension={type:[_.CanvasPipes],name:"colorMask"}});function R_(i){let e=[];return i.replace(F5,(t,r,s)=>{let n=r.toLowerCase(),o=r,a=D5(s);for(n==="m"&&a.length>2&&(e.push([o,...a.splice(0,2)]),n="l",o=o==="m"?"l":"L");;){if(a.length===tu[n])return e.push([o,...a]),"";if(a.length<tu[n])throw new Error("malformed path data");e.push([o,...a.splice(0,tu[n])])}}),e}function D5(i){let e=i.match(U5);return e?e.map(Number):[]}var tu,F5,U5,k_=p(()=>{tu={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},F5=/([astvzqmhlc])([^astvzqmhlc]*)/gi,U5=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi});function B_(i,e){let t=R_(i),r=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],l=c[0],d=c;switch(l){case"M":n=d[1],o=d[2],e.moveTo(n,o);break;case"m":n+=d[1],o+=d[2],e.moveTo(n,o);break;case"H":n=d[1],e.lineTo(n,o);break;case"h":n+=d[1],e.lineTo(n,o);break;case"V":o=d[1],e.lineTo(n,o);break;case"v":o+=d[1],e.lineTo(n,o);break;case"L":n=d[1],o=d[2],e.lineTo(n,o);break;case"l":n+=d[1],o+=d[2],e.lineTo(n,o);break;case"C":n=d[5],o=d[6],e.bezierCurveTo(d[1],d[2],d[3],d[4],n,o);break;case"c":e.bezierCurveTo(n+d[1],o+d[2],n+d[3],o+d[4],n+d[5],o+d[6]),n+=d[5],o+=d[6];break;case"S":n=d[3],o=d[4],e.bezierCurveToShort(d[1],d[2],n,o);break;case"s":e.bezierCurveToShort(n+d[1],o+d[2],n+d[3],o+d[4]),n+=d[3],o+=d[4];break;case"Q":n=d[3],o=d[4],e.quadraticCurveTo(d[1],d[2],n,o);break;case"q":e.quadraticCurveTo(n+d[1],o+d[2],n+d[3],o+d[4]),n+=d[3],o+=d[4];break;case"T":n=d[1],o=d[2],e.quadraticCurveToShort(n,o);break;case"t":n+=d[1],o+=d[2],e.quadraticCurveToShort(n,o);break;case"A":n=d[6],o=d[7],e.arcToSvg(d[1],d[2],d[3],d[4],d[5],n,o);break;case"a":n+=d[6],o+=d[7],e.arcToSvg(d[1],d[2],d[3],d[4],d[5],n,o);break;case"Z":case"z":e.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:O(`Unknown SVG path command: ${l}`)}l!=="Z"&&l!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return e}var I_=p(()=>{k_();he()});var ru,iu,nu,is,_c=p(()=>{P();Sa();Jd();Uo();Gt();_e();Zt();gc();ru=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}reset(){this.batches&&this.batches.forEach(e=>{ye.return(e)}),this.graphicsData&&ye.return(this.graphicsData),this.isBatchable=!1,this.context=null,this.batches.length=0,this.geometryData.indices.length=0,this.geometryData.vertices.length=0,this.geometryData.uvs.length=0,this.graphicsData=null}destroy(){this.reset(),this.batches=null,this.geometryData=null}},iu=class{constructor(){this.instructions=new hr}init(e){let t=e.maxTextures;this.batcher?this.batcher._updateMaxTextures(t):this.batcher=new ln({maxTextures:t}),this.instructions.reset()}get geometry(){return N(If,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}destroy(){this.batcher.destroy(),this.instructions.destroy(),this.batcher=null,this.instructions=null}},nu=class su{constructor(e){this._renderer=e,this._managedContexts=new Re({renderer:e,type:"resource",name:"graphicsContext"})}init(e){su.defaultOptions.bezierSmoothness=e?.bezierSmoothness??su.defaultOptions.bezierSmoothness}getContextRenderData(e){return e._gpuData[this._renderer.uid].graphicsData||this._initContextRenderData(e)}updateGpuContext(e){let t=!!e._gpuData[this._renderer.uid],r=e._gpuData[this._renderer.uid]||this._initContext(e);if(e.dirty||!t){t&&r.reset(),E_(e,r);let s=e.batchMode;e.customShader||s==="no-batch"?r.isBatchable=!1:s==="auto"?r.isBatchable=r.geometryData.vertices.length<400:r.isBatchable=!0,e.dirty=!1}return r}getGpuContext(e){return e._gpuData[this._renderer.uid]||this._initContext(e)}_initContextRenderData(e){let t=ye.get(iu,{maxTextures:this._renderer.limits.maxBatchableTextures}),r=e._gpuData[this._renderer.uid],{batches:s,geometryData:n}=r;r.graphicsData=t;let o=n.vertices.length,a=n.indices.length;for(let h=0;h<s.length;h++)s[h].applyTransform=!1;let c=t.batcher;c.ensureAttributeBuffer(o),c.ensureIndexBuffer(a),c.begin();for(let h=0;h<s.length;h++){let u=s[h];c.add(u)}c.finish(t.instructions);let l=c.geometry;l.indexBuffer.setDataWithSize(c.indexBuffer,c.indexSize,!0),l.buffers[0].setDataWithSize(c.attributeBuffer.float32View,c.attributeSize,!0);let d=c.batches;for(let h=0;h<d.length;h++){let u=d[h];u.bindGroup=Li(u.textures.textures,u.textures.count,this._renderer.limits.maxBatchableTextures)}return t}_initContext(e){let t=new ru;return t.context=e,e._gpuData[this._renderer.uid]=t,this._managedContexts.add(e),t}destroy(){this._managedContexts.destroy(),this._renderer=null}};nu.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"graphicsContext"};nu.defaultOptions={bezierSmoothness:.5};is=nu});function vc(i,e,t,r,s,n,o,a,c,l){let h=Math.min(.99,Math.max(0,l??is.defaultOptions.bezierSmoothness)),u=(O5-h)/1;return u*=u,N5(e,t,r,s,n,o,a,c,i,u),i}function N5(i,e,t,r,s,n,o,a,c,l){au(i,e,t,r,s,n,o,a,c,l,0),c.push(o,a)}function au(i,e,t,r,s,n,o,a,c,l,d){if(d>L5)return;let h=Math.PI,u=(i+t)/2,f=(e+r)/2,m=(t+s)/2,g=(r+n)/2,x=(s+o)/2,b=(n+a)/2,y=(u+m)/2,v=(f+g)/2,w=(m+x)/2,S=(g+b)/2,T=(y+w)/2,C=(v+S)/2;if(d>0){let B=o-i,R=a-e,M=Math.abs((t-o)*R-(r-a)*B),E=Math.abs((s-o)*R-(n-a)*B),A,L;if(M>yc&&E>yc){if((M+E)*(M+E)<=l*(B*B+R*R)){if(ss<ou){c.push(T,C);return}let W=Math.atan2(n-r,s-t);if(A=Math.abs(W-Math.atan2(r-e,t-i)),L=Math.abs(Math.atan2(a-n,o-s)-W),A>=h&&(A=2*h-A),L>=h&&(L=2*h-L),A+L<ss){c.push(T,C);return}if(ai!==0){if(A>ai){c.push(t,r);return}if(L>ai){c.push(s,n);return}}}}else if(M>yc){if(M*M<=l*(B*B+R*R)){if(ss<ou){c.push(T,C);return}if(A=Math.abs(Math.atan2(n-r,s-t)-Math.atan2(r-e,t-i)),A>=h&&(A=2*h-A),A<ss){c.push(t,r),c.push(s,n);return}if(ai!==0&&A>ai){c.push(t,r);return}}}else if(E>yc){if(E*E<=l*(B*B+R*R)){if(ss<ou){c.push(T,C);return}if(A=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-t)),A>=h&&(A=2*h-A),A<ss){c.push(t,r),c.push(s,n);return}if(ai!==0&&A>ai){c.push(s,n);return}}}else if(B=T-(i+o)/2,R=C-(e+a)/2,B*B+R*R<=l){c.push(T,C);return}}au(i,e,u,f,y,v,T,C,c,l,d+1),au(T,C,w,S,x,b,o,a,c,l,d+1)}var L5,yc,O5,ou,ss,ai,cu=p(()=>{_c();L5=8,yc=11920929e-14,O5=1,ou=.01,ss=0,ai=0});function F_(i,e,t,r,s,n,o,a){let l=Math.min(.99,Math.max(0,a??is.defaultOptions.bezierSmoothness)),d=(W5-l)/1;return d*=d,j5(e,t,r,s,n,o,i,d),i}function j5(i,e,t,r,s,n,o,a){lu(o,i,e,t,r,s,n,a,0),o.push(s,n)}function lu(i,e,t,r,s,n,o,a,c){if(c>H5)return;let l=Math.PI,d=(e+r)/2,h=(t+s)/2,u=(r+n)/2,f=(s+o)/2,m=(d+u)/2,g=(h+f)/2,x=n-e,b=o-t,y=Math.abs((r-n)*b-(s-o)*x);if(y>z5){if(y*y<=a*(x*x+b*b)){if(G_<V5){i.push(m,g);return}let v=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-t,r-e));if(v>=l&&(v=2*l-v),v<G_){i.push(m,g);return}}}else if(x=m-(e+n)/2,b=g-(t+o)/2,x*x+b*b<=a){i.push(m,g);return}lu(i,e,t,d,h,m,g,a,c+1),lu(i,m,g,u,f,n,o,a,c+1)}var H5,z5,W5,V5,G_,U_=p(()=>{_c();H5=8,z5=11920929e-14,W5=1,V5=.01,G_=0});function wc(i,e,t,r,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(c/Math.PI)))),a=Math.max(a,3);let l=c/a,d=s;l*=o?-1:1;for(let h=0;h<a+1;h++){let u=Math.cos(d),f=Math.sin(d),m=e+u*r,g=t+f*r;i.push(m,g),d+=l}}var du=p(()=>{"use strict"});function D_(i,e,t,r,s,n){let o=i[i.length-2],c=i[i.length-1]-t,l=o-e,d=s-t,h=r-e,u=Math.abs(c*h-l*d);if(u<1e-8||n===0){(i[i.length-2]!==e||i[i.length-1]!==t)&&i.push(e,t);return}let f=c*c+l*l,m=d*d+h*h,g=c*d+l*h,x=n*Math.sqrt(f)/u,b=n*Math.sqrt(m)/u,y=x*g/f,v=b*g/m,w=x*h+b*l,S=x*d+b*c,T=l*(b+y),C=c*(b+y),B=h*(x+v),R=d*(x+v),M=Math.atan2(C-S,T-w),E=Math.atan2(R-S,B-w);wc(i,w+e,S+t,n,M,E,l*d>h*c)}var L_=p(()=>{du()});function X5(i,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),r=e===1.5707963267948966?.551915024494:t,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+e),a=Math.sin(i+e);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function N_(i,e,t,r,s,n,o,a=0,c=0,l=0){if(n===0||o===0)return;let d=Math.sin(a*Yn/360),h=Math.cos(a*Yn/360),u=h*(e-r)/2+d*(t-s)/2,f=-d*(e-r)/2+h*(t-s)/2;if(u===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(u,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),Y5(e,t,r,s,n,o,c,l,d,h,u,f,hu);let{ang1:g,ang2:x}=hu,{centerX:b,centerY:y}=hu,v=Math.abs(x)/(Yn/4);Math.abs(1-v)<1e-7&&(v=1);let w=Math.max(Math.ceil(v),1);x/=w;let S=i[i.length-2],T=i[i.length-1],C={x:0,y:0};for(let B=0;B<w;B++){let R=X5(g,x),{x:M,y:E}=uu(R[0],n,o,h,d,b,y,C),{x:A,y:L}=uu(R[1],n,o,h,d,b,y,C),{x:W,y:ee}=uu(R[2],n,o,h,d,b,y,C);vc(i,S,T,M,E,A,L,W,ee),S=W,T=ee,g+=x}}var Yn,hu,uu,O_,Y5,H_=p(()=>{cu();Yn=Math.PI*2,hu={centerX:0,centerY:0,ang1:0,ang2:0},uu=({x:i,y:e},t,r,s,n,o,a,c)=>{i*=t,e*=r;let l=s*i-n*e,d=n*i+s*e;return c.x=l+o,c.y=d+a,c};O_=(i,e,t,r)=>{let s=i*r-e*t<0?-1:1,n=i*t+e*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},Y5=(i,e,t,r,s,n,o,a,c,l,d,h,u)=>{let f=Math.pow(s,2),m=Math.pow(n,2),g=Math.pow(d,2),x=Math.pow(h,2),b=f*m-f*x-m*g;b<0&&(b=0),b/=f*x+m*g,b=Math.sqrt(b)*(o===a?-1:1);let y=b*s/n*h,v=b*-n/s*d,w=l*y-c*v+(i+t)/2,S=c*y+l*v+(e+r)/2,T=(d-y)/s,C=(h-v)/n,B=(-d-y)/s,R=(-h-v)/n,M=O_(1,0,T,C),E=O_(T,C,B,R);a===0&&E>0&&(E-=Yn),a===1&&E<0&&(E+=Yn),u.centerX=w,u.centerY=S,u.ang1=M,u.ang2=E}});function z_(i,e,t){let r=(o,a)=>{let c=a.x-o.x,l=a.y-o.y,d=Math.sqrt(c*c+l*l),h=c/d,u=l/d;return{len:d,nx:h,ny:u}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let l=e[(o+1)%e.length],d=r(a,n),h=r(a,l);if(d.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let u=Math.asin(d.nx*h.ny-d.ny*h.nx),f=1,m=!1;d.nx*h.nx-d.ny*-h.ny<0?u<0?u=Math.PI+u:(u=Math.PI-u,f=-1,m=!0):u>0&&(f=-1,m=!0);let g=u/2,x,b=Math.abs(Math.cos(g)*c/Math.sin(g));b>Math.min(d.len/2,h.len/2)?(b=Math.min(d.len/2,h.len/2),x=Math.abs(b*Math.sin(g)/Math.cos(g))):x=c;let y=a.x+h.nx*b+-h.ny*x*f,v=a.y+h.ny*b+h.nx*x*f,w=Math.atan2(d.ny,d.nx)+Math.PI/2*f,S=Math.atan2(h.ny,h.nx)-Math.PI/2*f;o===0&&i.moveTo(y+Math.cos(w)*x,v+Math.sin(w)*x),i.arc(y,v,x,w,S,m),n=a}}function W_(i,e,t,r){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,l)=>({x:a.x+(c.x-a.x)*l,y:a.y+(c.y-a.y)*l}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],l=c.radius??t;if(l<=0){a===0?i.moveTo(c.x,c.y):i.lineTo(c.x,c.y);continue}let d=e[a],h=e[(a+2)%o],u=s(d,c),f;if(u<1e-4)f=c;else{let x=Math.min(u/2,l);f=n(c,d,x/u)}let m=s(h,c),g;if(m<1e-4)g=c;else{let x=Math.min(m/2,l);g=n(c,h,x/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(c.x,c.y,g.x,g.y,r)}}var V_=p(()=>{"use strict"});var $5,Sc,j_=p(()=>{M0();A0();R0();Ve();k0();et();cu();U_();du();L_();H_();V_();$5=new Q,Sc=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new pe,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==e||n!==t)&&r.push(e,t),this}arc(e,t,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return wc(a,e,t,r,s,n,o),this}arcTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return D_(o,e,t,r,s,n),this}arcToSvg(e,t,r,s,n,o,a){let c=this._currentPoly.points;return N_(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,r,s,n),this}bezierCurveTo(e,t,r,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return vc(this._currentPoly.points,c.lastX,c.lastY,e,t,r,s,n,o,a),this}quadraticCurveTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly;return F_(this._currentPoly.points,o.lastX,o.lastY,e,t,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let r=this.shapePrimitives,s=r.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.checkForHoles&&r.length-s>1){let n=null;for(let o=s;o<r.length;o++){let a=r[o];if(a.shape.type==="polygon"){let c=a.shape,l=n?.shape;l&&l.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,r,s,n){return this.drawShape(new Q(e,t,r,s),n),this}circle(e,t,r,s){return this.drawShape(new ia(e,t,r),s),this}poly(e,t,r){let s=new Bi(e);return s.closePath=t,this.drawShape(s,r),this}regularPoly(e,t,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,l=[];for(let d=0;d<s;d++){let h=a-d*c;l.push(e+r*Math.cos(h),t+r*Math.sin(h))}return this.poly(l,!0,o),this}roundPoly(e,t,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,r,s,o);let c=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let l=-1*Math.PI/2+o,d=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let u=0;u<s;u++){let f=u*d+l,m=e+r*Math.cos(f),g=t+r*Math.sin(f),x=f+Math.PI+h,b=f-Math.PI-h,y=m+n*Math.cos(x),v=g+n*Math.sin(x),w=m+n*Math.cos(b),S=g+n*Math.sin(b);u===0?this.moveTo(y,v):this.lineTo(y,v),this.quadraticCurveTo(m,g,w,S,a)}return this.closePath()}roundShape(e,t,r=!1,s){return e.length<3?this:(r?W_(this,e,t,s):z_(this,e,t),this.closePath())}filletRect(e,t,r,s,n){if(n===0)return this.rect(e,t,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+r,l=t+s,d=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+d,t+d,e+h,t,h).lineTo(c-h,t).arcTo(c-d,t+d,c,t+h,h).lineTo(c,l-h).arcTo(c-d,l-d,e+r-h,l,h).lineTo(e+h,l).arcTo(e+d,l-d,e,l-h,h).closePath()}chamferRect(e,t,r,s,n,o){if(n<=0)return this.rect(e,t,r,s);let a=Math.min(n,Math.min(r,s)/2),c=e+r,l=t+s,d=[e+a,t,c-a,t,c,t+a,c,l-a,c-a,l,e+a,l,e,l-a,e,t+a];for(let h=d.length-1;h>=2;h-=2)d[h]===d[h-2]&&d[h-1]===d[h-3]&&d.splice(h-1,2);return this.poly(d,!0,o)}ellipse(e,t,r,s,n){return this.drawShape(new sa(e,t,r,s),n),this}roundRect(e,t,r,s,n,o){return this.drawShape(new oa(e,t,r,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let r=this._currentPoly;return r&&this.endPoly(),r=new Bi,r.points.push(e,t),this._currentPoly=r,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Bi,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let r=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.transform,o=r;r=n.a*r+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(r,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let r=e.instructions[t];this[r.action](...r.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let r=0;r<t.length;r++){let s=t[r],n=s.shape.getBounds($5);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function ns(i,e){return i?i.prepend(e):e.clone()}var Tt,Tc=p(()=>{Pt();Ie();he();I_();j_();Tt=class i{constructor(e,t=!1){this.instructions=[],this.uid=Y("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?B_(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Sc(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(ae.shared),c=0,l=0;if(!o||o.action!=="bezierCurveTo")c=a.x,l=a.y;else{c=o.data[2],l=o.data[3];let d=a.x,h=a.y;c=d+(d-c),l=h+(h-l)}return this.instructions.push({action:"bezierCurveTo",data:[c,l,e,t,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(ae.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let c=n.x,l=n.y;o=c+(c-o),a=l+(l-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,r]}),this._dirty=!0,this}rect(e,t,r,s,n){return this.instructions.push({action:"rect",data:[e,t,r,s,n]}),this._dirty=!0,this}circle(e,t,r,s){return this.instructions.push({action:"circle",data:[e,t,r,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,r,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,l=r*2,d=Math.PI*2/l,h=[];for(let u=0;u<l;u++){let f=u%2?n:s,m=u*d+c;h.push(e+f*Math.cos(m),t+f*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new i;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,r=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,l=0,d=0,h=0,u=0,f=0,m=0,g=0;for(let x=0;x<this.instructions.length;x++){let b=this.instructions[x],y=b.data;switch(b.action){case"moveTo":case"lineTo":c=y[0],l=y[1],y[0]=t*c+s*l+o,y[1]=r*c+n*l+a;break;case"bezierCurveTo":d=y[0],h=y[1],u=y[2],f=y[3],c=y[4],l=y[5],y[0]=t*d+s*h+o,y[1]=r*d+n*h+a,y[2]=t*u+s*f+o,y[3]=r*u+n*f+a,y[4]=t*c+s*l+o,y[5]=r*c+n*l+a;break;case"quadraticCurveTo":d=y[0],h=y[1],c=y[2],l=y[3],y[0]=t*d+s*h+o,y[1]=r*d+n*h+a,y[2]=t*c+s*l+o,y[3]=r*c+n*l+a;break;case"arcToSvg":c=y[5],l=y[6],m=y[0],g=y[1],y[0]=t*m+s*g,y[1]=r*m+n*g,y[5]=t*c+s*l+o,y[6]=r*c+n*l+a;break;case"circle":y[4]=ns(y[3],e);break;case"rect":y[4]=ns(y[4],e);break;case"ellipse":y[8]=ns(y[8],e);break;case"roundRect":y[5]=ns(y[5],e);break;case"addPath":y[0].transform(e);break;case"poly":y[2]=ns(y[2],e);break;case"regularPoly":case"chamferRect":y[5]=ns(y[5],e);break;case"closePath":break;default:O("unknown transform action",b.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,r=this.instructions[t];if(!r)return e.x=0,e.y=0,e;for(;r.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;r=this.instructions[t]}switch(r.action){case"moveTo":case"lineTo":e.x=r.data[0],e.y=r.data[1];break;case"quadraticCurveTo":e.x=r.data[2],e.y=r.data[3];break;case"bezierCurveTo":e.x=r.data[4],e.y=r.data[5];break;case"arc":case"arcToSvg":e.x=r.data[5],e.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(e);break}return e}}});function Ce(i,e,t){let r=i.getAttribute(e);return r?Number(r):t}var fu=p(()=>{"use strict"});function X_(i,e){let t=i.querySelectorAll("defs");for(let r=0;r<t.length;r++){let s=t[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=q5(o);break;case"radialgradient":e.defs[o.id]=K5(o);break;default:break}}}}function q5(i){let e=Ce(i,"x1",0),t=Ce(i,"y1",0),r=Ce(i,"x2",1),s=Ce(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new Ze(e,t,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let c=i.children[a],l=Ce(c,"offset",0),d=Z.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(l,d)}return o}function K5(i){return O("[SVG Parser] Radial gradients are not yet supported"),new Ze(0,0,1,0)}var Y_=p(()=>{$e();he();si();fu()});function pu(i){let e=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var $_=p(()=>{"use strict"});function mu(i,e){let t=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in q_){let a=i.getAttribute(o);a&&K_(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[l,d]=c.split(":");q_[l]&&K_(e,n,l,d.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function K_(i,e,t,r){switch(t){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=pu(r);e.strokeStyle.fill=i.defs[s]}else e.strokeStyle.color=Z.shared.setValue(r).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=pu(r);e.fillStyle.fill=i.defs[s]}else e.fillStyle.color=Z.shared.setValue(r).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(r);break;case"stroke-opacity":e.strokeStyle.alpha=Number(r);break;case"opacity":e.fillStyle.alpha=Number(r),e.strokeStyle.alpha=Number(r);break}}var q_,Z_=p(()=>{$e();$_();q_={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function Q_(i){if(i.length<=2)return!0;let e=i.map(a=>a.area).sort((a,c)=>c-a),[t,r]=e,s=e[e.length-1],n=t/r,o=r/s;return!(n>3&&o<2)}var J_=p(()=>{"use strict"});function e2(i){return i.split(/(?=[Mm])/).filter(r=>r.trim().length>0)}function t2(i){let e=i.match(/[-+]?[0-9]*\.?[0-9]+/g);if(!e||e.length<4)return 0;let t=e.map(Number),r=[],s=[];for(let d=0;d<t.length;d+=2)d+1<t.length&&(r.push(t[d]),s.push(t[d+1]));if(r.length===0||s.length===0)return 0;let n=Math.min(...r),o=Math.max(...r),a=Math.min(...s),c=Math.max(...s);return(o-n)*(c-a)}function gu(i,e){let t=new Tt(i,!1);for(let r of t.instructions)e.instructions.push(r)}var r2=p(()=>{Tc()});function i2(i,e){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let t={context:e,defs:{},path:new Tt};X_(i,t);let r=i.children,{fillStyle:s,strokeStyle:n}=mu(i,t);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&s2(a,t,s,n)}return e}function s2(i,e,t,r){let s=i.children,{fillStyle:n,strokeStyle:o}=mu(i,e);n&&t?t={...t,...n}:n&&(t=n),o&&r?r={...r,...o}:o&&(r=o);let a=!t&&!r;a&&(t={color:0});let c,l,d,h,u,f,m,g,x,b,y,v,w,S,T,C,B;switch(i.nodeName.toLowerCase()){case"path":{S=i.getAttribute("d");let R=i.getAttribute("fill-rule"),M=e2(S),E=R==="evenodd",A=M.length>1;if(E&&A){let W=M.map(G=>({path:G,area:t2(G)}));if(W.sort((G,D)=>D.area-G.area),M.length>3||!Q_(W))for(let G=0;G<W.length;G++){let D=W[G],j=G===0;e.context.beginPath();let F=new Tt(void 0,!0);gu(D.path,F),e.context.path(F),j?(t&&e.context.fill(t),r&&e.context.stroke(r)):e.context.cut()}else for(let G=0;G<W.length;G++){let D=W[G],j=G%2===1;e.context.beginPath();let F=new Tt(void 0,!0);gu(D.path,F),e.context.path(F),j?e.context.cut():(t&&e.context.fill(t),r&&e.context.stroke(r))}}else{let W=R?R==="evenodd":!0;T=new Tt(S,W),e.context.path(T),t&&e.context.fill(t),r&&e.context.stroke(r)}break}case"circle":m=Ce(i,"cx",0),g=Ce(i,"cy",0),x=Ce(i,"r",0),e.context.ellipse(m,g,x,x),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"rect":c=Ce(i,"x",0),l=Ce(i,"y",0),C=Ce(i,"width",0),B=Ce(i,"height",0),b=Ce(i,"rx",0),y=Ce(i,"ry",0),b||y?e.context.roundRect(c,l,C,B,b||y):e.context.rect(c,l,C,B),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"ellipse":m=Ce(i,"cx",0),g=Ce(i,"cy",0),b=Ce(i,"rx",0),y=Ce(i,"ry",0),e.context.beginPath(),e.context.ellipse(m,g,b,y),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"line":d=Ce(i,"x1",0),h=Ce(i,"y1",0),u=Ce(i,"x2",0),f=Ce(i,"y2",0),e.context.beginPath(),e.context.moveTo(d,h),e.context.lineTo(u,f),r&&e.context.stroke(r);break;case"polygon":w=i.getAttribute("points"),v=w.match(/-?\d+/g).map(R=>parseInt(R,10)),e.context.poly(v,!0),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"polyline":w=i.getAttribute("points"),v=w.match(/-?\d+/g).map(R=>parseInt(R,10)),e.context.poly(v,!1),r&&e.context.stroke(r);break;case"g":case"svg":break;default:{O(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(t=null);for(let R=0;R<s.length;R++)s2(s[R],e,t,r)}var n2=p(()=>{he();Tc();Y_();fu();Z_();J_();r2()});function Z5(i){return Z.isColorLike(i)}function o2(i){return i instanceof Ft}function a2(i){return i instanceof Ze}function Q5(i){return i instanceof U}function J5(i,e,t){let r=Z.shared.setValue(e??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?t.alpha:r.alpha,i.texture=U.WHITE,{...t,...i}}function e6(i,e,t){return i.texture=e,{...t,...i}}function c2(i,e,t){return i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,i.textureSpace=e.textureSpace,{...t,...i}}function l2(i,e,t){return e.buildGradient(),i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,i.textureSpace=e.textureSpace,{...t,...i}}function t6(i,e){let t={...e,...i},r=Z.shared.setValue(t.color);return t.alpha*=r.alpha,t.color=r.toNumber(),t}function nr(i,e){if(i==null)return null;let t={},r=i;return Z5(i)?J5(t,i,e):Q5(i)?e6(t,i,e):o2(i)?c2(t,i,e):a2(i)?l2(t,i,e):r.fill&&o2(r.fill)?c2(r,r.fill,e):r.fill&&a2(r.fill)?l2(r,r.fill,e):t6(r,e)}function os(i,e){let{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,l=nr(i,c);return l?{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}:null}var bu=p(()=>{$e();ge();si();Vn()});function d2(i,e){let t=1,r=i.shapePath.shapePrimitives;for(let s=0;s<r.length;s++){let n=r[s].shape;if(n.type!=="polygon")continue;let o=n.points,a=o.length;if(a<6)continue;let c=n.closePath;for(let l=0;l<a;l+=2){if(!c&&(l===0||l===a-2))continue;let d=(l-2+a)%a,h=(l+2)%a,u=o[d],f=o[d+1],m=o[l],g=o[l+1],x=o[h],b=o[h+1],y=u-m,v=f-g,w=x-m,S=b-g,T=y*y+v*v,C=w*w+S*S;if(T<1e-12||C<1e-12)continue;let M=(y*w+v*S)/Math.sqrt(T*C);M<-1?M=-1:M>1&&(M=1);let E=Math.sqrt((1-M)*.5);if(E<1e-6)continue;let A=Math.min(1/E,e);A>t&&(t=A)}}return t}var h2=p(()=>{"use strict"});var r6,u2,xu,gt,_u=p(()=>{Ne();$e();ce();Pt();ge();Ie();_e();et();Tc();n2();bu();h2();r6=new ae,u2=new k,xu=class Xt extends fe{constructor(){super(...arguments),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=Y("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this.destroyed=!1,this._activePath=new Tt,this._transform=new k,this._fillStyle={...Xt.defaultFillStyle},this._strokeStyle={...Xt.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new pe,this._boundsDirty=!0}clone(){let e=new Xt;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=nr(e,Xt.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=os(e,Xt.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=nr(e,Xt.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=nr(e,Xt.defaultStrokeStyle),this}texture(e,t,r,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:r||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t||t===0?Z.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new Tt,this}fill(e,t){let r,s=this.instructions[this.instructions.length-1];return this._tick===0&&s?.action==="stroke"?r=s.data.path:r=this._activePath.clone(),r?(e!=null&&(t!==void 0&&typeof e=="number"&&(N(re,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=nr(e,Xt.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(ae.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,r=this.instructions[this.instructions.length-1];return this._tick===0&&r?.action==="fill"?t=r.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=os(e,Xt.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],r=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(r);else{t.data.hole=r;break}}return this._initNextPathLocation(),this}arc(e,t,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,r,s,n,o),this}arcTo(e,t,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(e,t,r,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,r,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,r,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*r+c.c*s+c.tx,c.b*r+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,r,s){return this._tick++,this._activePath.ellipse(e,t,r,s,this._transform.clone()),this}circle(e,t,r){return this._tick++,this._activePath.circle(e,t,r,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*e+r.c*t+r.tx,r.b*e+r.d*t+r.ty),this}moveTo(e,t){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*e+r.c*t+r.tx,o=r.b*e+r.d*t+r.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(e,t,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(e,t,r,s){return this._tick++,this._activePath.rect(e,t,r,s,this._transform.clone()),this}roundRect(e,t,r,s,n){return this._tick++,this._activePath.roundRect(e,t,r,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,r,s,n,o),this}roundPoly(e,t,r,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,r,s,n,o),this}roundShape(e,t,r,s){return this._tick++,this._activePath.roundShape(e,t,r,s),this}filletRect(e,t,r,s,n){return this._tick++,this._activePath.filletRect(e,t,r,s,n),this}chamferRect(e,t,r,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,r,s,n,o),this}star(e,t,r,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,r,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,i2(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,r,s,n,o){return e instanceof k?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,r,s,n,o),this)}transform(e,t,r,s,n,o){return e instanceof k?(this._transform.append(e),this):(u2.set(e,t,r,s,n,o),this._transform.append(u2),this)}translate(e,t=e){return this._transform.translate(e,t),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this._boundsDirty=!0,this.dirty=!0,this.emit("update",this,16)}get bounds(){if(!this._boundsDirty)return this._bounds;this._boundsDirty=!1;let e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let r=this.instructions[t],s=r.action;if(s==="fill"){let n=r.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;e.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=r.data,o=n.style.alignment,a=n.style.width*(1-o);n.style.join==="miter"&&(a*=d2(n.path,n.style.miterLimit));let c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e.isValid||e.set(0,0,0,0),e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,r=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,l=a.shapePath.shapePrimitives;for(let d=0;d<l.length;d++){let h=l[d].shape;if(!c||!h)continue;let u=l[d].transform,f=u?u.applyInverse(e,r6):e;if(n.action==="fill")r=h.contains(f.x,f.y);else{let g=c;r=h.strokeContains(f.x,f.y,g.width,g.alignment)}let m=o.hole;if(m){let g=m.shapePath?.shapePrimitives;if(g)for(let x=0;x<g.length;x++)g[x].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}unload(){this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy();this._gpuData=Object.create(null)}destroy(e=!1){if(this.destroyed)return;if(this.destroyed=!0,this._stateStack.length=0,this._transform=null,this.unload(),this.emit("destroy",this),this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._fillStyle.texture&&(this._fillStyle.fill&&"uid"in this._fillStyle.fill?this._fillStyle.fill.destroy():this._fillStyle.texture.destroy(r)),this._strokeStyle.texture&&(this._strokeStyle.fill&&"uid"in this._strokeStyle.fill?this._strokeStyle.fill.destroy():this._strokeStyle.texture.destroy(r))}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};xu.defaultFillStyle={color:16777215,alpha:1,texture:U.WHITE,matrix:null,fill:null,textureSpace:"local"};xu.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:U.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};gt=xu});var yu,vu,Su,f2,p2=p(()=>{P();Uo();Gt();yu=class{constructor(){this.isBatchable=!1}reset(){this.isBatchable=!1,this.context=null,this.graphicsData&&(this.graphicsData.destroy(),this.graphicsData=null)}destroy(){this.reset()}},vu=class{constructor(){this.instructions=new hr}init(){this.instructions.reset()}destroy(){this.instructions.destroy(),this.instructions=null}},Su=class wu{constructor(e){this._renderer=e,this._managedContexts=new Re({renderer:e,type:"resource",name:"graphicsContext"})}init(e){wu.defaultOptions.bezierSmoothness=e?.bezierSmoothness??wu.defaultOptions.bezierSmoothness}getContextRenderData(e){return this.getGpuContext(e).graphicsData||this._initContextRenderData(e)}updateGpuContext(e){let t=e._gpuData,r=!!t[this._renderer.uid],s=t[this._renderer.uid]||this._initContext(e);return(e.dirty||!r)&&(r&&s.reset(),s.isBatchable=!1,e.dirty=!1),s}getGpuContext(e){return e._gpuData[this._renderer.uid]||this._initContext(e)}_initContextRenderData(e){let t=new vu,r=this.getGpuContext(e);return r.graphicsData=t,t.init(),t}_initContext(e){let t=new yu;return t.context=e,e._gpuData[this._renderer.uid]=t,this._managedContexts.add(e),t}destroy(){this._managedContexts.destroy(),this._renderer=null}};Su.extension={type:[_.CanvasSystem],name:"graphicsContext"};Su.defaultOptions={bezierSmoothness:.5};f2=Su});var $n,m2=p(()=>{P();It();Gt();$n=class{constructor(e,t){this.state=De.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this),this._managedGraphics=new Re({renderer:e,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){return!1}addRenderable(e,t){this._managedGraphics.add(e),this.renderer.renderPipes.batch.break(t),t.add(e)}updateRenderable(e){}execute(e){e.isRenderable&&this._adaptor.execute(this,e)}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null}};$n.extension={type:[_.CanvasPipes],name:"graphics"}});var Tu,qn,g2=p(()=>{P();It();Gt();Zt();Na();Kh();Tu=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{ye.return(e)}),this.batches.length=0}},qn=class{constructor(e,t){this.state=De.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this),this._managedGraphics=new Re({renderer:e,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,r=!!e._gpuData,n=this.renderer.graphicsContext.updateGpuContext(t);return!!(n.isBatchable||r!==n.isBatchable)}addRenderable(e,t){let s=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),s.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let r=this._getGpuDataForRenderable(e).batches;for(let s=0;s<r.length;s++){let n=r[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,r=e.context;if(!t.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,Yi(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),s=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),s.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new Tu;return e._gpuData[this.renderer.uid]=t,this._managedGraphics.add(e),t}_updateBatchesForRenderable(e,t){let r=e.context,n=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|e._roundPixels;t.batches=n.batches.map(a=>{let c=ye.get(ni);return a.copyTo(c),c.renderable=e,c.roundPixels=o,c})}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};qn.extension={type:[_.WebGLPipes,_.WebGPUPipes],name:"graphics"}});var b2=p(()=>{P();p2();m2();_c();g2();H.add($n);H.add(qn);H.add(f2);H.add(is)});var it,Eu=p(()=>{_e();Es();_u();b2();it=class i extends Nt{constructor(e){e instanceof gt&&(e={context:e});let{context:t,roundPixels:r,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this.context=t:(this.context=this._ownedContext=new gt,this.context.autoGarbageCollect=this.autoGarbageCollect),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(e){e!==this._context&&(this._context&&(this._context.off("update",this.onViewUpdate,this),this._context.off("unload",this.unload,this)),this._context=e,this._context.on("update",this.onViewUpdate,this),this._context.on("unload",this.unload,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._context?.off("update",this.onViewUpdate,this),this._context?.off("unload",this.unload,this),this._ownedContext=null,this._context=null,super.destroy(e)}_onTouch(e){this._gcLastUsed=e,this._context._gcLastUsed=e}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(e,t,r){N(re,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(e,t){N(re,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return e!==void 0&&(r.color=e),t!==void 0&&(r.alpha=t),this.context.fillStyle=r,this}endFill(){N(re,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==gt.defaultStrokeStyle.width||e.color!==gt.defaultStrokeStyle.color||e.alpha!==gt.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return N(re,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return N(re,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return N(re,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return N(re,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return N(re,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return N(re,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});function i6(i,e,t,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(e+n,t),i.lineTo(e+r-n,t),i.quadraticCurveTo(e+r,t,e+r,t+n),i.lineTo(e+r,t+s-n),i.quadraticCurveTo(e+r,t+s,e+r-n,t+s),i.lineTo(e+n,t+s),i.quadraticCurveTo(e,t+s,e,t+s-n),i.lineTo(e,t+n),i.quadraticCurveTo(e,t,e+n,t)}function x2(i,e){switch(e.type){case"rectangle":{let t=e;i.rect(t.x,t.y,t.width,t.height);break}case"roundedRectangle":{let t=e;i6(i,t.x,t.y,t.width,t.height,t.radius);break}case"circle":{let t=e;i.moveTo(t.x+t.radius,t.y),i.arc(t.x,t.y,t.radius,0,Math.PI*2);break}case"ellipse":{let t=e;i.ellipse?(i.moveTo(t.x+t.halfWidth,t.y),i.ellipse(t.x,t.y,t.halfWidth,t.halfHeight,0,0,Math.PI*2)):(i.save(),i.translate(t.x,t.y),i.scale(t.halfWidth,t.halfHeight),i.moveTo(1,0),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let t=e;i.moveTo(t.x,t.y),i.lineTo(t.x2,t.y2),i.lineTo(t.x3,t.y3),i.closePath();break}case"polygon":default:{let t=e,r=t.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);t.closePath&&i.closePath();break}}}function s6(i,e,t){let r=[],s=[],n=[];if(!Tr[e.type]?.build(e,r))return!1;let a=e.closePath??!0;ts(r,t,!1,a,s,n);for(let c=0;c<n.length;c+=3){let l=n[c]*2,d=n[c+1]*2,h=n[c+2]*2;i.moveTo(s[l],s[l+1]),i.lineTo(s[d],s[d+1]),i.lineTo(s[h],s[h+1]),i.closePath()}return!0}function n6(i,e){if(!e?.length)return!1;for(let t=0;t<e.length;t++){let r=e[t];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),x2(i,r.shape),n&&i.restore()}return!0}var Kn,_2=p(()=>{P();fc();Eu();gc();he();Kn=class{constructor(e){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=e}push(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){if(e.action!=="pushMaskBegin"&&e.action!=="popMaskEnd")return;let t=this._renderer,r=t.canvasContext,s=r?.activeContext;if(!s)return;if(e.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}e.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");let n=e.mask.mask;if(!(n instanceof it)){this._warnOnce("nonGraphics","CanvasRenderer: only Graphics masks are supported in Canvas2D; skipping mask."),this._canvasMaskStack.push(!1);return}let o=n,a=o.context?.instructions;if(!a?.length){this._canvasMaskStack.push(!1);return}s.save(),r.setContextTransform(o.groupTransform,(t._roundPixels|o._roundPixels)===1),s.beginPath();let c=!1,l=!1;for(let d=0;d<a.length;d++){let h=a[d],u=h.action;if(u!=="fill"&&u!=="stroke")continue;let f=h.data,m=f?.path?.shapePath;if(!m?.shapePrimitives?.length)continue;let g=u==="stroke",x=m.shapePrimitives;for(let b=0;b<x.length;b++){let y=x[b];if(!y?.shape)continue;let v=y.transform,w=v&&!v.isIdentity();w&&(s.save(),s.transform(v.a,v.b,v.c,v.d,v.tx,v.ty)),g&&f.style?c=s6(s,y.shape,f.style)||c:(x2(s,y.shape),l=n6(s,y.holes)||l,c=!0),w&&s.restore()}}if(!c){s.restore(),this._canvasMaskStack.push(!1);return}l?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(e,t){this._warnedMaskTypes.has(e)||(this._warnedMaskTypes.add(e),O(t))}};Kn.extension={type:[_.CanvasPipes],name:"stencilMask"}});function y2(){let i=ea(),e=Object.create(null);return e.inherit=xe,e.none=xe,e.normal="source-over",e.add="lighter",e.multiply=i?"multiply":xe,e.screen=i?"screen":xe,e.overlay=i?"overlay":xe,e.darken=i?"darken":xe,e.lighten=i?"lighten":xe,e["color-dodge"]=i?"color-dodge":xe,e["color-burn"]=i?"color-burn":xe,e["hard-light"]=i?"hard-light":xe,e["soft-light"]=i?"soft-light":xe,e.difference=i?"difference":xe,e.exclusion=i?"exclusion":xe,e.saturation=i?"saturation":xe,e.color=i?"color":xe,e.luminosity=i?"luminosity":xe,e["linear-burn"]=i?"color-burn":xe,e["linear-dodge"]=i?"color-dodge":xe,e["linear-light"]=i?"hard-light":xe,e["pin-light"]=i?"hard-light":xe,e["vivid-light"]=i?"hard-light":xe,e["hard-mix"]=xe,e.negation=i?"difference":xe,e["normal-npm"]=e.normal,e["add-npm"]=e.add,e["screen-npm"]=e.screen,e.erase="destination-out",e.subtract=xe,e.divide=xe,e.min=xe,e.max=xe,e}var xe,v2=p(()=>{$l();xe="source-over"});var o6,Zn,w2=p(()=>{$e();P();ce();v2();o6=new k,Zn=class{constructor(e){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=y2(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=e}resolutionChange(e){this.activeResolution=e}init(){let e=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:e}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){let t=this.rootContext;t.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":t.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":t.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":t.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(e,t,r,s){let n=s?k.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||k.IDENTITY,o=o6;o.copyFrom(n),o.append(e);let a=this._projTransform,c=this.activeResolution;if(r=r||c,a){let l=k.shared;l.copyFrom(o),l.prepend(a),o=l}t?this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*c|0,o.ty*c|0):this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*c,o.ty*c)}clear(e,t){let r=this.activeContext,s=this._renderer;if(r.clearRect(0,0,s.width,s.height),e){let n=Z.shared.setValue(e);r.globalAlpha=t??n.alpha,r.fillStyle=n.toHex(),r.fillRect(0,0,s.width,s.height),r.globalAlpha=1}}setBlendMode(e){if(this._activeBlendMode===e)return;this._activeBlendMode=e,this._outerBlend=!1;let t=this.blendModes[e];if(!t){this._warnedBlendModes.has(e)||(console.warn(`CanvasRenderer: blend mode "${e}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(e)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=t}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}};Zn.extension={type:[_.CanvasSystem],name:"canvasContext"}});var Qn,S2=p(()=>{P();Qn=class{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}};Qn.extension={type:[_.CanvasSystem],name:"limits"}});var Ec,T2=p(()=>{$e();be();he();pr();Ec=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}initGpuRenderTarget(e){let t=e.colorTexture,{canvas:r,context:s}=this._ensureCanvas(t);return{canvas:r,context:s,width:r.width,height:r.height}}resizeGpuRenderTarget(e){let t=e.colorTexture,{canvas:r}=this._ensureCanvas(t);r.width=e.pixelWidth,r.height=e.pixelHeight}startRenderPass(e,t,r,s){let n=this._renderTargetSystem.getGpuRenderTarget(e);this._renderer.canvasContext.activeContext=n.context,this._renderer.canvasContext.activeResolution=e.resolution,t&&this.clear(e,t,r,s)}clear(e,t,r,s){let o=this._renderTargetSystem.getGpuRenderTarget(e).context,a=s||{x:0,y:0,width:e.pixelWidth,height:e.pixelHeight};if(o.setTransform(1,0,0,1,0,0),o.clearRect(a.x,a.y,a.width,a.height),r){let c=Z.shared.setValue(r);c.alpha>0&&(o.globalAlpha=c.alpha,o.fillStyle=c.toHex(),o.fillRect(a.x,a.y,a.width,a.height),o.globalAlpha=1)}}finishRenderPass(){}copyToTexture(e,t,r,s,n){let a=this._renderTargetSystem.getGpuRenderTarget(e).canvas,c=t.source,{context:l}=this._ensureCanvas(c),d=n?.x??0,h=n?.y??0;return l.drawImage(a,r.x,r.y,s.width,s.height,d,h,s.width,s.height),c.update(),t}copyDepthTexture(e,t,r,s,n){O("[CanvasRenderTargetAdaptor] copyDepthTexture is not supported in the canvas renderer")}destroyGpuRenderTarget(e){}_ensureCanvas(e){let t=e.resource;(!t||!Se.test(t))&&(t=z.get().createCanvas(e.pixelWidth,e.pixelHeight),e.resource=t),(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(t.width=e.pixelWidth,t.height=e.pixelHeight);let r=t.getContext("2d");return{canvas:t,context:r}}}});var Jn,E2=p(()=>{P();qa();T2();Jn=class extends Sr{constructor(e){super(e),this.adaptor=new Ec,this.adaptor.init(e,this)}};Jn.extension={type:[_.CanvasSystem],name:"renderTarget"}});var eo,C2=p(()=>{be();P();ki();eo=class{constructor(e){}init(){}initSource(e){}generateCanvas(e){let t=z.get().createCanvas(),r=t.getContext("2d"),s=q.getCanvasSource(e);if(!s)return t;let n=e.frame,o=e.source._resolution??e.source.resolution??1,a=n.x*o,c=n.y*o,l=n.width*o,d=n.height*o;return t.width=Math.ceil(l),t.height=Math.ceil(d),r.drawImage(s,a,c,l,d,0,0,l,d),t}getPixels(e){let t=this.generateCanvas(e);return{pixels:t.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,t.width,t.height).data,width:t.width,height:t.height}}destroy(){}};eo.extension={type:[_.CanvasSystem],name:"texture"}});var R2={};Kc(R2,{CanvasRenderer:()=>Cu});var a6,c6,l6,P2,M2,A2,Cu,k2=p(()=>{P();Od();Hd();C_();Vd();M_();th();sh();A_();_2();oh();jr();Va();zt();w2();S2();E2();C2();a6=[...Zi,Zn,Qn,eo,Jn],c6=[Zr,dn,$r,Yr,Kr,Kn,Xn,Xr],l6=[P_,jn],P2=[],M2=[],A2=[];H.handleByNamedList(_.CanvasSystem,P2);H.handleByNamedList(_.CanvasPipes,M2);H.handleByNamedList(_.CanvasPipesAdaptor,A2);H.add(...a6,...c6,...l6);Cu=class extends St{constructor(){let e={name:"canvas",type:Ue.CANVAS,systems:P2,renderPipes:M2,renderPipeAdaptors:A2};super(e)}}});function H2(i=1e3,e=0,t=!1){if(isNaN(i)||i<0)throw new TypeError("Invalid max value");if(isNaN(e)||e<0)throw new TypeError("Invalid ttl value");if(typeof t!="boolean")throw new TypeError("Invalid resetTtl value");return new Mu(i,e,t)}var Mu,z2=p(()=>{Mu=class{constructor(e=0,t=0,r=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=e,this.resetTtl=r,this.size=0,this.ttl=t}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(e){if(this.has(e)){let t=this.items[e];delete this.items[e],this.size--,t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),this.last===t&&(this.last=t.prev)}return this}entries(e=this.keys()){let t=new Array(e.length);for(let r=0;r<e.length;r++){let s=e[r];t[r]=[s,this.get(s)]}return t}evict(e=!1){if(e||this.size>0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}expiresAt(e){let t;return this.has(e)&&(t=this.items[e].expiry),t}get(e){let t=this.items[e];if(t!==void 0){if(this.ttl>0&&t.expiry<=Date.now()){this.delete(e);return}return this.moveToEnd(t),t.value}}has(e){return e in this.items}moveToEnd(e){this.last!==e&&(e.prev!==null&&(e.prev.next=e.next),e.next!==null&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),e.prev=this.last,e.next=null,this.last!==null&&(this.last.next=e),this.last=e,this.first===null&&(this.first=e))}keys(){let e=new Array(this.size),t=this.first,r=0;for(;t!==null;)e[r++]=t.key,t=t.next;return e}setWithEvicted(e,t,r=this.resetTtl){let s=null;if(this.has(e))this.set(e,t,!0,r);else{this.max>0&&this.size===this.max&&(s={...this.first},this.evict(!0));let n=this.items[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t};++this.size===1?this.first=n:this.last.next=n,this.last=n}return s}set(e,t,r=!1,s=this.resetTtl){let n=this.items[e];return r||n!==void 0?(n.value=t,r===!1&&s&&(n.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.moveToEnd(n)):(this.max>0&&this.size===this.max&&this.evict(!0),n=this.items[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t},++this.size===1?this.first=n:this.last.next=n,this.last=n),this}values(e=this.keys()){let t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=this.get(e[r]);return t}}});function Au(i){return!!i.tagStyles&&Object.keys(i.tagStyles).length>0}function Ru(i){return i.includes("<")}function h6(i,e){return i.clone().assign(e)}function W2(i,e){let t=[],r=e.tagStyles;if(!Au(e)||!Ru(i))return t.push({text:i,style:e}),t;let s=[e],n=[],o="",a=0;for(;a<i.length;){let c=i[a];if(c==="<"){let l=i.indexOf(">",a);if(l===-1){o+=c,a++;continue}let d=i.indexOf("<",a+1);if(d!==-1&&d<l){o+=c,a++;continue}let h=i.slice(a+1,l);if(h.startsWith("/")){let u=h.slice(1).trim();if(n.length>0&&n[n.length-1]===u){o.length>0&&(t.push({text:o,style:s[s.length-1]}),o=""),s.pop(),n.pop(),a=l+1;continue}else{o+=i.slice(a,l+1),a=l+1;continue}}else{let u=h.trim();if(r[u]){o.length>0&&(t.push({text:o,style:s[s.length-1]}),o="");let f=s[s.length-1],m=h6(f,r[u]);s.push(m),n.push(u),a=l+1;continue}else{o+=i.slice(a,l+1),a=l+1;continue}}}else o+=c,a++}return o.length>0&&t.push({text:o,style:s[s.length-1]}),t}var ku=p(()=>{"use strict"});function as(i){return typeof i!="string"?!1:f6.has(i.charCodeAt(0))}function st(i,e){return typeof i!="string"?!1:m6.has(i.charCodeAt(0))}function _6(i){return typeof i!="string"?!1:x6.has(i.charCodeAt(0))}function Rc(i){return i==="normal"||i==="pre-line"}function kc(i){return i==="normal"}function Ut(i){if(typeof i!="string")return"";let e=i.length-1;for(;e>=0&&st(i[e]);)e--;return e<i.length-1?i.slice(0,e+1):i}function Bc(i){let e=[],t=[];if(typeof i!="string")return e;for(let r=0;r<i.length;r++){let s=i[r],n=i[r+1];if(st(s,n)||as(s)){t.length>0&&(e.push(t.join("")),t.length=0),s==="\r"&&n===`
907
+ `?(e.push(`\r
908
+ `),r++):e.push(s);continue}t.push(s),_6(s)&&n&&!st(n)&&!as(n)&&(e.push(t.join("")),t.length=0)}return t.length>0&&e.push(t.join("")),e}function Ic(i,e,t,r){let s=t(i),n=[];for(let o=0;o<s.length;o++){let a=s[o],c=a,l=1;for(;s[o+l];){let d=s[o+l];if(!r(c,d,i,o,e))a+=d,c=d,l++;else break}o+=l-1,n.push(a)}return n}var u6,f6,p6,m6,g6,vW,b6,x6,V2,j2,Gc=p(()=>{"use strict";u6=[10,13],f6=new Set(u6),p6=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],m6=new Set(p6),g6=[9,32],vW=new Set(g6),b6=[45,8208,8211,8212,173],x6=new Set(b6),V2=/(\r\n|\r|\n)/,j2=/(?:\r\n|\r|\n)/});function X2(i,e,t,r,s,n,o,a,c){let l=W2(i,e);if(kc(e.whiteSpace))for(let W=0;W<l.length;W++){let ee=l[W];l[W]={text:ee.text.replace(y6," "),style:ee.style}}let h=[],u=[];for(let W of l){let ee=W.text.split(V2);for(let G=0;G<ee.length;G++){let D=ee[G];D===`\r
909
+ `||D==="\r"||D===`
910
+ `?(h.push(u),u=[]):D.length>0&&u.push({text:D,style:W.style})}}(u.length>0||h.length===0)&&h.push(u);let f=t?v6(h,e,r,n,a,c):h,m=[],g=[],x=[],b=[],y=[],v=0,w=e._fontString,S=o(w);S.fontSize===0&&(S.fontSize=e.fontSize,S.ascent=e.fontSize);let T="",C=!!e.dropShadow,B=e._stroke?.width||0;for(let W of f){let ee=0,G=S.ascent,D=S.descent,j="";for(let te of W){let de=te.style._fontString,we=o(de);de!==T&&(r.font=de,T=de);let se=s(te.text,te.style.letterSpacing,r);ee+=se,G=Math.max(G,we.ascent),D=Math.max(D,we.descent),j+=te.text;let ue=te.style._stroke?.width||0;ue>B&&(B=ue),!C&&te.style.dropShadow&&(C=!0)}W.length===0&&(G=S.ascent,D=S.descent),m.push(ee),g.push(G),x.push(D),y.push(j);let F=e.lineHeight||G+D;b.push(F+e.leading),v=Math.max(v,ee)}let R=B,M=v+R+(e.dropShadow?e.dropShadow.distance:0),E=0;for(let W=0;W<b.length;W++)E+=b[W];E=Math.max(E,b[0]+R);let A=E+(e.dropShadow?e.dropShadow.distance:0),L=e.lineHeight||S.fontSize;return{width:M,height:A,lines:y,lineWidths:m,lineHeight:L+e.leading,maxLineWidth:v,fontProperties:S,runsByLine:f,lineAscents:g,lineDescents:x,lineHeights:b,hasDropShadow:C}}function v6(i,e,t,r,s,n){let{letterSpacing:o,whiteSpace:a,wordWrapWidth:c,breakWords:l}=e,d=Rc(a),h=c+o,u={},f="",m=(x,b)=>{let y=`${x}|${b.styleKey}`,v=u[y];if(v===void 0){let w=b._fontString;w!==f&&(t.font=w,f=w),v=r(x,b.letterSpacing,t)+b.letterSpacing,u[y]=v}return v},g=[];for(let x of i){let b=w6(x),y=g.length,v=E=>{let A=0,L=E;do{let{token:W,style:ee}=b[L];A+=m(W,ee),L++}while(L<b.length&&b[L].continuesFromPrevious);return A},w=E=>{let A=[],L=E;do A.push({token:b[L].token,style:b[L].style}),L++;while(L<b.length&&b[L].continuesFromPrevious);return A},S=[],T=0,C=!d,B=null,R=()=>{B&&B.text.length>0&&S.push(B),B=null},M=()=>{if(R(),S.length>0){let E=S[S.length-1];E.text=Ut(E.text),E.text.length===0&&S.pop()}g.push(S),S=[],T=0,C=!1};for(let E=0;E<b.length;E++){let{token:A,style:L,continuesFromPrevious:W}=b[E],ee=m(A,L);if(d){let j=st(A),F=B?.text[B.text.length-1]??S[S.length-1]?.text.slice(-1)??"",te=F?st(F):!1;if(j&&te)continue}let G=!W,D=G?v(E):ee;if(D>h&&G)if(T>0&&M(),l){let j=w(E);for(let F=0;F<j.length;F++){let te=j[F].token,de=j[F].style,we=Ic(te,l,n,s);for(let se of we){let ue=m(se,de);ue+T>h&&M(),!B||B.style!==de?(R(),B={text:se,style:de}):B.text+=se,T+=ue}}E+=j.length-1}else{let j=w(E);R(),g.push(j.map(F=>({text:F.token,style:F.style}))),C=!1,E+=j.length-1}else if(D+T>h&&G){if(st(A)){C=!1;continue}M(),B={text:A,style:L},T=ee}else if(W&&!l)!B||B.style!==L?(R(),B={text:A,style:L}):B.text+=A,T+=ee;else{let j=st(A);if(T===0&&j&&!C)continue;!B||B.style!==L?(R(),B={text:A,style:L}):B.text+=A,T+=ee}}if(R(),S.length>0){let E=S[S.length-1];E.text=Ut(E.text),E.text.length===0&&S.pop()}(S.length>0||g.length===y)&&g.push(S)}return g}function w6(i){let e=[],t=!1;for(let r of i){let s=Bc(r.text),n=!0;for(let o of s){let a=st(o)||as(o),c=n&&t&&!a;e.push({token:o,style:r.style,continuesFromPrevious:c}),t=!a,n=!1}}return e}var y6,Y2=p(()=>{ku();Gc();y6=/\r\n|\r|\n/g});function $2(i,e,t,r,s){let n=t[i];return typeof n!="number"&&(n=s(i,e,r)+e,t[i]=n),n}function q2(i,e,t,r,s,n,o){let a=t.getContext("2d",S6);a.font=e._fontString;let c=0,l="",d=[],h=Object.create(null),{letterSpacing:u,whiteSpace:f}=e,m=Rc(f),g=kc(f),x=!m,b=e.wordWrapWidth+u,y=Bc(i);for(let w=0;w<y.length;w++){let S=y[w];if(as(S)){if(!g){d.push(Ut(l)),x=!m,l="",c=0;continue}S=" "}if(m){let C=st(S),B=st(l[l.length-1]);if(C&&B)continue}let T=$2(S,u,h,a,r);if(T>b)if(l!==""&&(d.push(Ut(l)),l="",c=0),s(S,e.breakWords)){let C=Ic(S,e.breakWords,o,n);for(let B of C){let R=$2(B,u,h,a,r);R+c>b&&(d.push(Ut(l)),x=!1,l="",c=0),l+=B,c+=R}}else l.length>0&&(d.push(Ut(l)),l="",c=0),d.push(Ut(S)),x=!1,l="",c=0;else T+c>b&&(x=!1,d.push(Ut(l)),l="",c=0),(l.length>0||!st(S)||x)&&(l+=S,c+=T)}let v=Ut(l);return v.length>0&&d.push(v),d.join(`
911
+ `)}var S6,K2=p(()=>{Gc();S6={willReadFrequently:!0}});var Z2,ar,Yt,Bu=p(()=>{z2();be();Y2();ku();Gc();K2();Z2={willReadFrequently:!0},ar=class X{static get experimentalLetterSpacingSupported(){let e=X._experimentalLetterSpacingSupported;if(e===void 0){let t=z.get().getCanvasRenderingContext2D().prototype;e=X._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,r,s,n,o,a,c,l,d){this.text=e,this.style=t,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=l,d&&(this.runsByLine=d.runsByLine,this.lineAscents=d.lineAscents,this.lineDescents=d.lineDescents,this.lineHeights=d.lineHeights,this.hasDropShadow=d.hasDropShadow)}static measureText(e=" ",t,r=X._canvas,s=t.wordWrap){let n=`${e}-${t.styleKey}-wordWrap-${s}`;if(X._measurementCache.has(n))return X._measurementCache.get(n);if(Au(t)&&Ru(e)){let w=X2(e,t,s,X._context,X._measureText,X._measureTextAdvance,X.measureFont,X.canBreakChars,X.wordWrapSplit),S=new X(e,t,w.width,w.height,w.lines,w.lineWidths,w.lineHeight,w.maxLineWidth,w.fontProperties,{runsByLine:w.runsByLine,lineAscents:w.lineAscents,lineDescents:w.lineDescents,lineHeights:w.lineHeights,hasDropShadow:w.hasDropShadow});return X._measurementCache.set(n,S),S}let a=t._fontString,c=X.measureFont(a);c.fontSize===0&&(c.fontSize=t.fontSize,c.ascent=t.fontSize,c.descent=0);let l=X._context;l.font=a;let h=(s?X._wordWrap(e,t,r):e).split(j2),u=new Array(h.length),f=0;for(let w=0;w<h.length;w++){let S=X._measureText(h[w],t.letterSpacing,l);u[w]=S,f=Math.max(f,S)}let m=t._stroke?.width??0,g=t.lineHeight||c.fontSize,x=X._adjustWidthForStyle(f,t),b=Math.max(g,c.fontSize+m)+(h.length-1)*(g+t.leading),y=X._adjustHeightForStyle(b,t),v=new X(e,t,x,y,h,u,g+t.leading,f,c);return X._measurementCache.set(n,v),v}static _adjustWidthForStyle(e,t){let r=t._stroke?.width||0,s=e+r;return t.dropShadow&&(s+=t.dropShadow.distance),s}static _adjustHeightForStyle(e,t){let r=e;return t.dropShadow&&(r+=t.dropShadow.distance),r}static _measureText(e,t,r){let{metricWidth:s,metrics:n,letterSpacingVal:o}=X._measureTextCore(e,t,r),a=-(n.actualBoundingBoxLeft??0),l=(n.actualBoundingBoxRight??0)-a;return n.width>0&&(l+=o),Math.max(s,l)}static _measureTextAdvance(e,t,r){return X._measureTextCore(e,t,r).metricWidth}static _measureTextCore(e,t,r){let s=!1;X.experimentalLetterSpacingSupported&&(X.experimentalLetterSpacing?(r.letterSpacing=`${t}px`,r.textLetterSpacing=`${t}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(e),o=n.width,a=0;return o>0&&(s?a=-t:a=(X.graphemeSegmenter(e).length-1)*t,o+=a),{metricWidth:o,metrics:n,letterSpacingVal:a}}static _wordWrap(e,t,r=X._canvas){return q2(e,t,r,X._measureTextAdvance,X.canBreakWords,X.canBreakChars,X.wordWrapSplit)}static isBreakingSpace(e,t){return st(e,t)}static canBreakWords(e,t){return t}static canBreakChars(e,t,r,s,n){return!0}static wordWrapSplit(e){return X.graphemeSegmenter(e)}static measureFont(e){if(X._fonts[e])return X._fonts[e];let t=X._context;t.font=e;let r=t.measureText(X.METRICS_STRING+X.BASELINE_SYMBOL),s=r.actualBoundingBoxAscent??0,n=r.actualBoundingBoxDescent??0,o={ascent:s,descent:n,fontSize:s+n};return X._fonts[e]=o,o}static clearMetrics(e=""){e?delete X._fonts[e]:X._fonts={}}static get _canvas(){if(!X.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",Z2)?.measureText)return X.__canvas=t,t;e=z.get().createCanvas()}catch{e=z.get().createCanvas()}e.width=e.height=10,X.__canvas=e}return X.__canvas}static get _context(){return X.__context||(X.__context=X._canvas.getContext("2d",Z2)),X.__context}};ar.METRICS_STRING="|\xC9q\xC5";ar.BASELINE_SYMBOL="M";ar.BASELINE_MULTIPLIER=1.4;ar.HEIGHT_MULTIPLIER=2;ar.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return e=>{let t=i.segment(e),r=[],s=0;for(let n of t)r[s++]=n.segment;return r}}return i=>[...i]})();ar.experimentalLetterSpacing=!1;ar._fonts={};ar._measurementCache=H2(1e3);Yt=ar});function oo(i){let e=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,t=i.fontFamily;Array.isArray(i.fontFamily)||(t=i.fontFamily.split(","));for(let r=t.length-1;r>=0;r--){let s=t[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!T6.includes(s)&&(s=`"${s}"`),t[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${e} ${t.join(",")}`}var T6,Iu=p(()=>{"use strict";T6=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});function ao(i,e,t,r=0,s=0,n=0){if(i.texture===U.WHITE&&!i.fill)return Z.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Ft){let o=i.fill,a=e.createPattern(o.texture.source.resource,"repeat");return q.applyPatternTransform(a,o.transform,!1),a}else if(i.fill instanceof Ze){let o=i.fill,a=o.type==="linear",c=o.textureSpace==="local",l=1,d=1;c&&t&&(l=t.width+r,d=t.height+r);let h,u=!1;if(a){let{start:f,end:m}=o;h=e.createLinearGradient(f.x*l+s,f.y*d+n,m.x*l+s,m.y*d+n),u=Math.abs(m.x-f.x)<Math.abs((m.y-f.y)*.1)}else{let{center:f,innerRadius:m,outerCenter:g,outerRadius:x}=o;h=e.createRadialGradient(f.x*l+s,f.y*d+n,m*l,g.x*l+s,g.y*d+n,x*l)}if(u&&c&&t){let f=t.lineHeight/d;for(let m=0;m<t.lines.length;m++){let g=(m*t.lineHeight+r/2)/d;o.colorStops.forEach(x=>{let b=g+x.offset*f;b=Math.max(0,Math.min(1,b)),h.addColorStop(Math.floor(b*Q2)/Q2,Z.shared.setValue(x.color).toHex())})}}else o.colorStops.forEach(f=>{h.addColorStop(f.offset,Z.shared.setValue(f.color).toHex())});return h}}else{let o=e.createPattern(i.texture.source.resource,"repeat"),a=i.matrix.copyTo(k.shared);return a.scale(i.texture.source.pixelWidth,i.texture.source.pixelHeight),o.setTransform(a),o}return O("FillStyle not recognised",i),"red"}var Q2,J2=p(()=>{$e();ce();ki();ge();he();si();Vn();Q2=1e5});function E6(i){let e=i;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=$t.defaultDropShadow;i.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){N(re,"strokeThickness is now a part of stroke");let t=e.stroke,r={};if(Z.isColorLike(t))r.color=t;else if(t instanceof Ze||t instanceof Ft)r.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))r=t;else throw new Error("Invalid stroke value.");i.stroke={...r,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){if(N(re,"gradient fill is now a fill pattern: `new FillGradient(...)`"),!Array.isArray(e.fill)||e.fill.length===0)throw new Error("Invalid fill value. Expected an array of colors for gradient fill.");e.fill.length!==e.fillGradientStops.length&&O("The number of fill colors must match the number of fill gradient stops.");let t=new Ze({start:{x:0,y:0},end:{x:0,y:1},textureSpace:"local"}),r=e.fillGradientStops.slice(),s=e.fill.map(n=>Z.shared.setValue(n).toNumber());r.forEach((n,o)=>{t.addColorStop(n,s[o])}),i.fill={fill:t}}}var Fu,$t,Fc=p(()=>{Ne();$e();Ie();_e();he();si();Vn();_u();bu();Iu();Fu=class li extends fe{constructor(e={}){super(),this.uid=Y("textStyle"),this._tick=0,this._cachedFontString=null,E6(e),e instanceof li&&(e=e._toObject());let s={...li.defaultTextStyle,...e};for(let n in s){let o=n;this[o]=s[n]}this._tagStyles=e.tagStyles??void 0,this.update(),this._tick=0}get align(){return this._align}set align(e){this._align!==e&&(this._align=e,this.update())}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords!==e&&(this._breakWords=e,this.update())}get dropShadow(){return this._dropShadow}set dropShadow(e){this._dropShadow!==e&&(e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...li.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...li.defaultDropShadow}):null,this.update())}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.update())}get fontSize(){return this._fontSize}set fontSize(e){this._fontSize!==e&&(typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update())}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle!==e&&(this._fontStyle=e.toLowerCase(),this.update())}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant!==e&&(this._fontVariant=e,this.update())}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.update())}get leading(){return this._leading}set leading(e){this._leading!==e&&(this._leading=e,this.update())}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.update())}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight!==e&&(this._lineHeight=e,this.update())}get padding(){return this._padding}set padding(e){this._padding!==e&&(this._padding=e,this.update())}get filters(){return this._filters}set filters(e){this._filters!==e&&(this._filters=Object.freeze(e),this.update())}get trim(){return this._trim}set trim(e){this._trim!==e&&(this._trim=e,this.update())}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline!==e&&(this._textBaseline=e,this.update())}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace!==e&&(this._whiteSpace=e,this.update())}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap!==e&&(this._wordWrap=e,this.update())}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth!==e&&(this._wordWrapWidth=e,this.update())}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({...gt.defaultFillStyle,...e},()=>{this._fill=nr({...this._originalFill},gt.defaultFillStyle)})),this._fill=nr(e===0?"black":e,gt.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...gt.defaultStrokeStyle,...e},()=>{this._stroke=os({...this._originalStroke},gt.defaultStrokeStyle)})),this._stroke=os(e,gt.defaultStrokeStyle),this.update())}get tagStyles(){return this._tagStyles}set tagStyles(e){this._tagStyles!==e&&(this._tagStyles=e??void 0,this.update())}update(){this._tick++,this._cachedFontString=null,this.emit("update",this)}reset(){let e=li.defaultTextStyle;for(let t in e)this[t]=e[t]}assign(e){for(let t in e){let r=t;this[r]=e[t]}return this}get styleKey(){return`${this.uid}-${this._tick}`}get _fontString(){return this._cachedFontString===null&&(this._cachedFontString=oo(this)),this._cachedFontString}_toObject(){return{align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill?{...this._fill}:void 0,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke?{...this._stroke}:void 0,textBaseline:this.textBaseline,trim:this.trim,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0,tagStyles:this._tagStyles?{...this._tagStyles}:void 0}}clone(){return new li(this._toObject())}_getFinalPadding(){let e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(r),this._originalFill?.texture&&this._originalFill.texture.destroy(r),this._stroke?.texture&&this._stroke.texture.destroy(r),this._originalStroke?.texture&&this._originalStroke.texture.destroy(r)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(r,s,n)=>(r[s]===n||(r[s]=n,t?.(s,n),this.update()),!0)})}_isFillStyle(e){return(e??null)!==null&&!(Z.isColorLike(e)||e instanceof Ze||e instanceof Ft)}};Fu.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Fu.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};$t=Fu});P();var Mm={extension:{type:_.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(Pm(),Qv))}};P();var Rm={extension:{type:_.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(Am(),Jv))}};P();Jo();Xo();P();be();jr();var va;function Xm(i){return va!==void 0||(va=(()=>{let e={stencil:!0,failIfMajorPerformanceCaveat:i??St.defaultOptions.failIfMajorPerformanceCaveat};try{if(!z.get().getWebGLRenderingContext())return!1;let r=z.get().createCanvas().getContext("webgl",e),s=!!r?.getContextAttributes()?.stencil;if(r){let n=r.getExtension("WEBGL_lose_context");n&&n.loseContext()}return r=null,s}catch{return!1}})()),va}be();var wa;async function Ym(i={}){return wa!==void 0||(wa=await(async()=>{let e=z.get().getNavigator().gpu;if(!e)return!1;try{return await(await e.requestAdapter(i)).requestDevice(),!0}catch{return!1}})()),wa}jr();var B2=["webgl","webgpu","canvas"];async function I2(i){let e=[];i.preference?Array.isArray(i.preference)?e=i.preference.slice():(e.push(i.preference),B2.forEach(n=>{n!==i.preference&&e.push(n)})):e=B2.slice();let t,r={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="webgpu"&&await Ym()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(Tb(),Sb));t=a,r={...i,...i.webgpu};break}else if(o==="webgl"&&Xm(i.failIfMajorPerformanceCaveat??St.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(i_(),r_));t=a,r={...i,...i.webgl};break}else if(o==="canvas"){let{CanvasRenderer:a}=await Promise.resolve().then(()=>(k2(),R2));t=a,r={...i,...i.canvasOptions};break}}if(delete r.webgpu,delete r.webgl,delete r.canvasOptions,!t)throw new Error("No available renderer for the current environment");let s=new t;return await s.init(r),s}Mt();Xd();_e();P();P();var to=class{static init(e){Object.defineProperty(this,"resizeTo",{configurable:!0,set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let t,r;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,r=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,r=n}this.renderer.resize(t,r),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};to.extension=_.Application;P();ws();Pi();var ro=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{configurable:!0,set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,Ot.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?Xe.shared:new Xe,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};ro.extension=_.Application;H.add(to);H.add(ro);var G2=class Pu{constructor(...e){this.stage=new me,e[0]!==void 0&&N(re,"Application constructor options are deprecated, please use Application.init() instead.")}async init(e){e={...e},this.stage||(this.stage=new me),this.renderer=await I2(e),Pu._plugins.forEach(t=>{t.init.call(this,e)})}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return N(re,"Application.view is deprecated, please use Application.canvas instead."),this.renderer.canvas}get screen(){return this.renderer.screen}get domContainerRoot(){return this.renderer.renderPipes.dom?._domElement}destroy(e=!1,t=!1){let r=Pu._plugins.slice(0);r.reverse(),r.forEach(s=>{s.destroy.call(this)}),this.stage.destroy(t),this.stage=null,this.renderer.destroy(e),this.renderer=null}};G2._plugins=[];var Cc=G2;H.handleByList(_.Application,Cc._plugins);H.add(en);P0();zr();It();ge();_e();Es();xr();sr();zr();_e();var F2=class U2 extends ct{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(N(re,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...U2.defaultOptions,...t};let r=t.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=t.uvs;s||(t.positions?s=new Float32Array(r.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=t.indices||new Uint32Array([0,1,2,0,2,3]),o=t.shrinkBuffersToFit,a=new Me({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:J.VERTEX|J.COPY_DST}),c=new Me({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:J.VERTEX|J.COPY_DST}),l=new Me({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:J.INDEX|J.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:c,format:"float32x2",stride:8,offset:0}},indexBuffer:l,topology:t.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};F2.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};var io=F2;P();P();ce();gr();mt();qd();Na();var Pc=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),r=t.data,s=r,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._updateID,n.multiplyUvs(r,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}};var Mc=class{destroy(){}},so=class{constructor(e,t){this.localUniforms=new Te({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new ze({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),r=t.batched,s=e.batched;if(t.batched=s,r!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let r=this.renderer.renderPipes.batch,s=this._getMeshData(e);if(e.didViewUpdate&&(s.indexSize=e._geometry.indices?.length,s.vertexSize=e._geometry.positions?.length),s.batched){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,r.addToBatch(n,t)}else r.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blend&&(e.state.blendMode=sn(e.groupBlendMode,e.texture._source));let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),Yi(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,r;return(t=e._gpuData)[r=this.renderer.uid]||(t[r]=new Mc),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:0,vertexSize:0},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,r;return(t=e._gpuData)[r=this.renderer.uid]||(t[r]=new Mc),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new Pc;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};so.extension={type:[_.WebGLPipes,_.WebGPUPipes],name:"mesh"};H.add(so);var no=class extends Nt{constructor(...e){let t=e[0];t instanceof ct&&(N(re,"Mesh: use new Mesh({ geometry, shader }) instead"),t={geometry:t,shader:e[1]},e[3]&&(N(re,"Mesh: drawMode argument has been removed, use geometry.topology instead"),t.geometry.topology=e[3]));let{geometry:r,shader:s,texture:n,roundPixels:o,state:a,...c}=t;super({label:"Mesh",...c}),this.renderPipeId="mesh",this._shader=null,this.allowChildren=!1,this.shader=s??null,this.texture=n??s?.texture??U.WHITE,this.state=a??De.for2d(),this._geometry=r,this._geometry.on("update",this.onViewUpdate,this),this.roundPixels=o??!1}get material(){return N(re,"mesh.material property has been removed, use mesh.shader instead"),this._shader}set shader(e){this._shader!==e&&(this._shader=e,this.onViewUpdate())}get shader(){return this._shader}set geometry(e){this._geometry!==e&&(this._geometry?.off("update",this.onViewUpdate,this),e.on("update",this.onViewUpdate,this),this._geometry=e,this.onViewUpdate())}get geometry(){return this._geometry}set texture(e){e||(e=U.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this.shader&&(this.shader.texture=e),this._texture=e,this.onViewUpdate())}get texture(){return this._texture}get batched(){return this._shader||(this.state.data&12)!==0?!1:this._geometry instanceof io?this._geometry.batchMode==="auto"?this._geometry.positions.length/2<=100:this._geometry.batchMode==="batch":!1}get bounds(){return this._geometry.bounds}updateBounds(){this._bounds=this._geometry.bounds}containsPoint(e){let{x:t,y:r}=e;if(!this.bounds.containsPoint(t,r))return!1;let s=this.geometry.getBuffer("aPosition").data,n=this.geometry.topology==="triangle-strip"?3:1;if(this.geometry.getIndex()){let o=this.geometry.getIndex().data,a=o.length;for(let c=0;c+2<a;c+=n){let l=o[c]*2,d=o[c+1]*2,h=o[c+2]*2;if(Zl(t,r,s[l],s[l+1],s[d],s[d+1],s[h],s[h+1]))return!0}}else{let o=s.length/2;for(let a=0;a+2<o;a+=n){let c=a*2,l=(a+1)*2,d=(a+2)*2;if(Zl(t,r,s[c],s[c+1],s[l],s[l+1],s[d],s[d+1]))return!0}}return!1}destroy(e){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(r)}this._geometry?.off("update",this.onViewUpdate,this),this._texture=null,this._geometry=null,this._shader=null}};je();Rr();Po();_e();Es();var Ac=class extends Nt{constructor(e,t){let{text:r,resolution:s,style:n,anchor:o,width:a,height:c,roundPixels:l,...d}=e;super({...d}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=t,this.text=r??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Be({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=l??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=e===null,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e||(e={}),this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this.bounds.width),t!==void 0&&this._setHeight(t,this.bounds.height)}containsPoint(e){let t=this.bounds.width,r=this.bounds.height,s=-t*this.anchor.x,n=0;return e.x>=s&&e.x<=s+t&&(n=-r*this.anchor.y,e.y>=n&&e.y<=n+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,(typeof e=="boolean"?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}get styleKey(){return`${this._text}:${this._style.styleKey}:${this._resolution}`}};function D2(i,e){let t=i[0]??{};return(typeof t=="string"||i[1])&&(N(re,`use new ${e}({ text: "hi!", style }) instead`),t={text:t,style:i[1]}),t}$e();Ve();ta();be();_s();Ve();var ci=null,or=null;function d6(i,e){ci||(ci=z.get().createCanvas(256,128),or=ci.getContext("2d",{willReadFrequently:!0}),or.globalCompositeOperation="copy",or.globalAlpha=1),(ci.width<i||ci.height<e)&&(ci.width=er(i),ci.height=er(e))}function L2(i,e,t){for(let r=0,s=4*t*e;r<e;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function O2(i,e,t,r,s){let n=4*e;for(let o=r,a=r*n+4*t;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function N2(...i){let e=i[0];e.canvas||(e={canvas:i[0],resolution:i[1]});let{canvas:t}=e,r=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(d6(s,n),!or)throw new TypeError("Failed to get canvas 2D context");or.drawImage(t,0,0,s,n,0,0,s*r,n*r);let c=or.getImageData(0,0,s,n).data,l=0,d=0,h=s-1,u=n-1;for(;d<n&&L2(c,s,d);)++d;if(d===n)return Q.EMPTY;for(;L2(c,s,u);)--u;for(;O2(c,s,l,d,u);)++l;for(;O2(c,s,h,d,u);)--h;return++h,++u,or.globalCompositeOperation="source-over",or.strokeRect(l,d,h-l,u-d),or.globalCompositeOperation="copy",o??(o=new Q),o.set(l/r,d/r,(h-l)/r,(u-d)/r),o}Bu();Iu();J2();var ey=new Q;function cs(i){let e=0;for(let t=0;t<i.length;t++)i.charCodeAt(t)===32&&e++;return e}var Gu=class{getCanvasAndContext(e){let{text:t,style:r,resolution:s=1}=e,n=r._getFinalPadding(),o=Yt.measureText(t||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),l=ir.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(r,n,s,l,o);let d=r.trim?N2({canvas:l.canvas,width:a,height:c,resolution:1,output:ey}):ey.set(0,0,a,c);return{canvasAndContext:l,frame:d}}returnCanvasAndContext(e){ir.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,r,s,n){if(n.runsByLine&&n.runsByLine.length>0){this._renderTaggedTextToCanvas(n,e,t,r,s);return}let{canvas:o,context:a}=s,c=oo(e),l=n.lines,d=n.lineHeight,h=n.lineWidths,u=n.maxLineWidth,f=n.fontProperties,m=o.height;if(a.resetTransform(),a.scale(r,r),a.textBaseline=e.textBaseline,e._stroke?.width){let S=e._stroke;a.lineWidth=S.width,a.miterLimit=S.miterLimit,a.lineJoin=S.join,a.lineCap=S.cap}a.font=c;let g,x,b=e.dropShadow?2:1,v=(e._stroke?.width??0)/2,w=(d-f.fontSize)/2;d-f.fontSize<0&&(w=0);for(let S=0;S<b;++S){let T=e.dropShadow&&S===0,C=T?Math.ceil(Math.max(1,m)+t*2):0,B=C*r;if(T)this._setupDropShadow(a,e,r,B);else{let R=e._gradientBounds,M=e._gradientOffset;if(R){let E={width:R.width,height:R.height,lineHeight:R.height,lines:n.lines};this._setFillAndStrokeStyles(a,e,E,t,v,M?.x??0,M?.y??0)}else M?this._setFillAndStrokeStyles(a,e,n,t,v,M.x,M.y):this._setFillAndStrokeStyles(a,e,n,t,v);a.shadowColor="rgba(0,0,0,0)"}for(let R=0;R<l.length;R++){g=v,x=v+R*d+f.ascent+w,g+=this._getAlignmentOffset(h[R],u,e.align);let M=0;if(e.align==="justify"&&e.wordWrap&&R<l.length-1){let E=cs(l[R]);E>0&&(M=(u-h[R])/E)}e._stroke?.width&&this._drawLetterSpacing(l[R],e,s,g+t,x+t-C,!0,M),e._fill!==void 0&&this._drawLetterSpacing(l[R],e,s,g+t,x+t-C,!1,M)}}}_renderTaggedTextToCanvas(e,t,r,s,n){let{canvas:o,context:a}=n,{runsByLine:c,lineWidths:l,maxLineWidth:d,lineAscents:h,lineHeights:u,hasDropShadow:f}=e,m=o.height;a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline;let g=f?2:1,x=t._stroke?.width??0;for(let v of c)for(let w of v){let S=w.style._stroke?.width??0;S>x&&(x=S)}let b=x/2,y=[];for(let v=0;v<c.length;v++){let w=c[v],S=[];for(let T of w){let C=oo(T.style);a.font=C,S.push({width:Yt._measureText(T.text,T.style.letterSpacing,a),font:C})}y.push(S)}for(let v=0;v<g;++v){let w=f&&v===0,S=w?Math.ceil(Math.max(1,m)+r*2):0,T=S*s;w||(a.shadowColor="rgba(0,0,0,0)");let C=b;for(let B=0;B<c.length;B++){let R=c[B],M=l[B],E=h[B],A=u[B],L=y[B],W=b;W+=this._getAlignmentOffset(M,d,t.align);let ee=0;if(t.align==="justify"&&t.wordWrap&&B<c.length-1){let j=0;for(let F of R)j+=cs(F.text);j>0&&(ee=(d-M)/j)}let G=C+E,D=W+r;for(let j=0;j<R.length;j++){let F=R[j],{width:te,font:de}=L[j];if(a.font=de,a.textBaseline=F.style.textBaseline,F.style._stroke?.width){let se=F.style._stroke;if(a.lineWidth=se.width,a.miterLimit=se.miterLimit,a.lineJoin=se.join,a.lineCap=se.cap,w)if(F.style.dropShadow)this._setupDropShadow(a,F.style,s,T);else{let ue=cs(F.text);D+=te+ue*ee;continue}else{let ue=Yt.measureFont(de),$=F.style.lineHeight||ue.fontSize,dt={width:te,height:$,lineHeight:$,lines:[F.text]};a.strokeStyle=ao(se,a,dt,r*2,D-r,C)}this._drawLetterSpacing(F.text,F.style,n,D,G+r-S,!0,ee)}let we=cs(F.text);D+=te+we*ee}D=W+r;for(let j=0;j<R.length;j++){let F=R[j],{width:te,font:de}=L[j];if(a.font=de,a.textBaseline=F.style.textBaseline,F.style._fill!==void 0){if(w)if(F.style.dropShadow)this._setupDropShadow(a,F.style,s,T);else{let se=cs(F.text);D+=te+se*ee;continue}else{let se=Yt.measureFont(de),ue=F.style.lineHeight||se.fontSize,$={width:te,height:ue,lineHeight:ue,lines:[F.text]};a.fillStyle=ao(F.style._fill,a,$,r*2,D-r,C)}this._drawLetterSpacing(F.text,F.style,n,D,G+r-S,!1,ee)}let we=cs(F.text);D+=te+we*ee}C+=A}}}_setFillAndStrokeStyles(e,t,r,s,n,o=0,a=0){if(e.fillStyle=t._fill?ao(t._fill,e,r,s*2,o,a):null,t._stroke?.width){let c=n+s*2;e.strokeStyle=ao(t._stroke,e,r,c,o,a)}}_setupDropShadow(e,t,r,s){e.fillStyle="black",e.strokeStyle="black";let n=t.dropShadow,o=n.color,a=n.alpha;e.shadowColor=Z.shared.setValue(o).setAlpha(a).toRgbaString();let c=n.blur*r,l=n.distance*r;e.shadowBlur=c,e.shadowOffsetX=Math.cos(n.angle)*l,e.shadowOffsetY=Math.sin(n.angle)*l+s}_getAlignmentOffset(e,t,r){return r==="right"?t-e:r==="center"?(t-e)/2:0}_drawLetterSpacing(e,t,r,s,n,o=!1,a=0){let{context:c}=r,l=t.letterSpacing,d=!1;if(Yt.experimentalLetterSpacingSupported&&(Yt.experimentalLetterSpacing?(c.letterSpacing=`${l}px`,c.textLetterSpacing=`${l}px`,d=!0):(c.letterSpacing="0px",c.textLetterSpacing="0px")),(l===0||d)&&a===0){o?c.strokeText(e,s,n):c.fillText(e,s,n);return}if(a!==0&&(l===0||d)){let g=e.split(" "),x=s,b=c.measureText(" ").width;for(let y=0;y<g.length;y++)o?c.strokeText(g[y],x,n):c.fillText(g[y],x,n),x+=c.measureText(g[y]).width+b+a;return}let h=s,u=Yt.graphemeSegmenter(e),f=c.measureText(e).width,m=0;for(let g=0;g<u.length;++g){let x=u[g];o?c.strokeText(x,h,n):c.fillText(x,h,n);let b="";for(let y=g+1;y<u.length;++y)b+=u[y];m=c.measureText(b).width,h+=f-m+l,x===" "&&(h+=a),f=m}}},Er=new Gu;Bu();Fc();P();P();Gt();Hl();function ty(i,e){let{texture:t,bounds:r}=i,s=e._style._getFinalPadding();Yo(r,e._anchor,t);let n=e._anchor._x*s*2,o=e._anchor._y*s*2;r.minX-=s-n,r.minY-=s-o,r.maxX-=s-n,r.maxY-=s-o}Ba();var Uc=class extends yr{};var co=class{constructor(e){this._renderer=e,e.runners.resolutionChange.add(this),this._managedTexts=new Re({renderer:e,type:"renderable",onUnload:this.onTextUnload.bind(this),name:"canvasText"})}resolutionChange(){for(let e in this._managedTexts.items){let t=this._managedTexts.items[e];t?._autoResolution&&t.onViewUpdate()}}validateRenderable(e){let t=this._getGpuText(e),r=e.styleKey;return t.currentKey!==r?!0:e._didTextUpdate}addRenderable(e,t){let r=this._getGpuText(e);if(e._didTextUpdate){let s=e._autoResolution?this._renderer.resolution:e.resolution;(r.currentKey!==e.styleKey||e._resolution!==s)&&this._updateGpuText(e),e._didTextUpdate=!1,ty(r,e)}this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.decreaseReferenceCount(t.currentKey),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=this._renderer.canvasText.getManagedTexture(e),t.currentKey=e.styleKey}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Uc;return t.currentKey="--",t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,this._managedTexts.add(e),t}onTextUnload(e){let t=e._gpuData[this._renderer.uid];if(!t)return;let{canvasText:r}=this._renderer;r.getReferenceCount(t.currentKey)>0?r.decreaseReferenceCount(t.currentKey):t.texture&&r.returnTexture(t.texture)}destroy(){this._managedTexts.destroy(),this._renderer=null}};co.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"text"};P();Ur();Rr();_e();Fc();Jl();var ls=class{constructor(e,t){this._activeTextures={},this._renderer=e,this._retainCanvasContext=t}getTexture(e,t,r,s){typeof e=="string"&&(N("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:r,resolution:t}),e.style instanceof $t||(e.style=new $t(e.style)),e.textureStyle instanceof ot||(e.textureStyle=new ot(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a,autoGenerateMipmaps:c}=e,l=e.resolution??this._renderer.resolution,{frame:d,canvasAndContext:h}=Er.getCanvasAndContext({text:n,style:o,resolution:l}),u=ca(h.canvas,d.width,d.height,l,c);if(a&&(u.source.style=a),o.trim&&(d.pad(o.padding),u.frame.copyFrom(d),u.frame.scale(1/l),u.updateUvs()),o.filters){let f=this._applyFilters(u,o.filters);return this.returnTexture(u),Er.returnCanvasAndContext(h),f}return this._renderer.texture.initSource(u._source),this._retainCanvasContext||Er.returnCanvasAndContext(h),u}returnTexture(e){let t=e.source,r=t.resource;if(this._retainCanvasContext&&r?.getContext){let s=r.getContext("2d");s&&Er.returnCanvasAndContext({canvas:r,context:s})}t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Pe.returnTexture(e,!0)}renderTextToCanvas(){N("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}getManagedTexture(e){e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let t=e.styleKey;if(this._activeTextures[t])return this._increaseReferenceCount(t),this._activeTextures[t].texture;let r=this.getTexture({text:e.text,style:e.style,resolution:e._resolution,textureStyle:e.textureStyle,autoGenerateMipmaps:e.autoGenerateMipmaps});return this._activeTextures[t]={texture:r,usageCount:1},r}decreaseReferenceCount(e){let t=this._activeTextures[e];t&&(t.usageCount--,t.usageCount===0&&(this.returnTexture(t.texture),this._activeTextures[e]=null))}getReferenceCount(e){return this._activeTextures[e]?.usageCount??0}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}_applyFilters(e,t){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind({target:r,clear:!1}),s}destroy(){this._renderer=null;for(let e in this._activeTextures)this._activeTextures[e]&&this.returnTexture(this._activeTextures[e].texture);this._activeTextures=null}};var lo=class extends ls{constructor(e){super(e,!0)}};lo.extension={type:[_.CanvasSystem],name:"canvasText"};P();var ho=class extends ls{constructor(e){super(e,!1)}};ho.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"canvasText"};H.add(lo);H.add(ho);H.add(co);var uo=class extends Ac{constructor(...e){let t=D2(e,"Text");super(t,$t),this.renderPipeId="text",t.textureStyle&&(this.textureStyle=t.textureStyle instanceof ot?t.textureStyle:new ot(t.textureStyle)),this.autoGenerateMipmaps=t.autoGenerateMipmaps??oe.defaultOptions.autoGenerateMipmaps}updateBounds(){let e=this._bounds,t=this._anchor,r=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=Er.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Er.returnCanvasAndContext(o),r=n.width,s=n.height}else{let n=Yt.measureText(this._text,this._style);r=n.width,s=n.height}e.minX=-t._x*r,e.maxX=e.minX+r,e.minY=-t._y*s,e.maxY=e.minY+s}};xr();sr();zr();mr();Yd();function Uu(i,e=null){let t=i*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let r=0,s=0;r<t;r+=6,s+=4)e[r+0]=s+0,e[r+1]=s+1,e[r+2]=s+2,e[r+3]=s+0,e[r+4]=s+2,e[r+5]=s+3;return e}mr();function iy(i){return{dynamicUpdate:ry(i,!0),staticUpdate:ry(i,!1)}}function ry(i,e){let t=[];t.push(`
912
912
 
913
913
  var index = 0;
914
914
 
@@ -916,15 +916,16 @@ fn mainFragment(
916
916
  {
917
917
  const p = ps[i];
918
918
 
919
- `);let r=0;for(let n in i){let o=i[n];if(t!==o.dynamic)continue;e.push(`offset = index + ${r}`),e.push(o.code);let a=Jt(o.format);r+=a.stride/4}e.push(`
919
+ `);let r=0;for(let n in i){let o=i[n];if(e!==o.dynamic)continue;t.push(`offset = index + ${r}`),t.push(o.code);let a=qe(o.format);r+=a.stride/4}t.push(`
920
920
  index += stride * 4;
921
921
  }
922
- `),e.unshift(`
922
+ `),t.unshift(`
923
923
  var stride = ${r};
924
- `);let s=e.join(`
925
- `);return new Function("ps","f32v","u32v",s)}var kl=class{constructor(t){this._size=0,this._generateParticleUpdateCache={};let e=this._size=t.size??1e3,r=t.properties,s=0,n=0;for(let h in r){let u=r[h],d=Jt(u.format);u.dynamic?n+=d.stride:s+=d.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new ze(e*4*s),this.dynamicAttributeBuffer=new ze(e*4*n),this.indexBuffer=Pd(e);let o=new ue,a=0,l=0;this._staticBuffer=new At({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:tt.VERTEX|tt.COPY_DST}),this._dynamicBuffer=new At({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:tt.VERTEX|tt.COPY_DST});for(let h in r){let u=r[h],d=Jt(u.format);u.dynamic?(o.addAttribute(u.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:u.format}),a+=d.size):(o.addAttribute(u.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:l*4,format:u.format}),l+=d.size)}o.addIndex(this.indexBuffer);let c=this.getParticleUpdate(r);this._dynamicUpload=c.dynamicUpdate,this._staticUpload=c.staticUpdate,this.geometry=o}getParticleUpdate(t){let e=fC(t);return this._generateParticleUpdateCache[e]?this._generateParticleUpdateCache[e]:(this._generateParticleUpdateCache[e]=this.generateParticleUpdate(t),this._generateParticleUpdateCache[e])}generateParticleUpdate(t){return Vv(t)}update(t,e){t.length>this._size&&(e=!0,this._size=Math.max(t.length,this._size*1.5|0),this.staticAttributeBuffer=new ze(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new ze(this._size*this._dynamicStride*4*4),this.indexBuffer=Pd(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let r=this.dynamicAttributeBuffer;if(this._dynamicUpload(t,r.float32View,r.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,t.length*this._dynamicStride*4,!0),e){let s=this.staticAttributeBuffer;this._staticUpload(t,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,t.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}};function fC(i){let t=[];for(let e in i){let r=i[e];t.push(e,r.code,r.dynamic?"d":"s")}return t.join("_")}xt();ot();fr();jo();gt();Lc();Pe();gd();Ho();Al();Ht();z.add(mg,xg);function Md(i,t,e){if(i.fillType!=="Horizontal"&&i.fillType!=="Vertical")return null;let r=Number(i.fillAmount??1),s=Number.isFinite(r)?Math.max(0,Math.min(1,r)):1;if(i.fillType==="Horizontal"){let o=t*s;return{x:i.fillHorizontalType==="Right"?t/2-o:-t/2,y:-e/2,width:o,height:e}}let n=e*s;return{x:-t/2,y:i.fillVerticalType==="Top"?-e/2:e/2-n,width:t,height:n}}var jv="prefab-v1",pC=[[10003004,10003004],[10005001,10005142],[10006001,10006002],[10007002,10007002],[10008001,10008001],[10009001,10009011],[20001001,20001074],[20001076,20001121],[20001123,20001156],[20001158,20001302],[20001304,20001568],[20001570,20001999],[20002001,20002755],[20002757,20002999],[20003001,20003455],[30001001,30001016],[30002001,30002017],[30003001,30003011],[30004001,30004001],[30005001,30005020],[30006001,30006026],[30007001,30007013],[30008001,30008011]];function Xv(i){return!Number.isSafeInteger(i)||!pC.some(([t,e])=>i>=t&&i<=e)?null:i===10003004||i===10008001?128:256}var mC="sprite-v1",gC="/qxqy-assets/",xC=[[100001,100006],[100101,100213],[101001,101018],[101020,101028],[101030,101046],[101048,101048],[101050,101054],[101056,101080],[102001,102052],[103001,103148],[104001,104010],[105001,105140],[105142,105219],[105221,105317],[106001,106047],[106049,106096],[107001,107007],[107010,107020],[107031,107092],[107094,107180],[107183,107201],[107203,107205],[107207,107228],[107231,107278],[107280,107402],[108001,108017],[108019,108020],[109001,109031],[109033,109034],[109036,109075],[110001,110053],[111001,111139],[112001,112042]];function ar(i){return i==null||i===""?"StaticReference":typeof i=="string"?i:typeof i.Name=="string"?i.Name:"Unknown"}function Ye(i,t){return`${ar(t)}:${i}`}function Bl(i,t){let e=ar(t);return e==="Prefab"?Xv(i)!==null:e==="StaticReference"&&Number.isSafeInteger(i)&&i>100006&&xC.some(([r,s])=>i>=r&&i<=s)}function Ad(i,t=0,e){let r=ar(e);if(!["StaticReference","Prefab"].includes(r))throw new Error(`Unsupported image source: ${r}`);return`${gC}${r==="Prefab"?jv:mC}/${i}.png${t?`?refresh=${t}`:""}`}function Yv(i,t=0,e){return Ad(i,t,e).replace(".png",".json")}var _C=Object.freeze(["KEYBOARD","TOUCHSCREEN","CONTROLLER_CONSOLE","CONTROLLER_MOBILE"]),yC=Object.freeze({"pc-16-9":{id:"pc-16-9",device:"pc",platform:"KEYBOARD",width:1600,height:900,ratio:"16:9",luaDevice:"KeyboardAndMouse",label:"PC 1600\xD7900"},"pc-21-9":{id:"pc-21-9",device:"pc",platform:"KEYBOARD",width:2100,height:900,ratio:"21:9",luaDevice:"KeyboardAndMouse",label:"PC 2100\xD7900"},"mobile-16-9":{id:"mobile-16-9",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:720,ratio:"16:9",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7720"},"mobile-19.5-9":{id:"mobile-19.5-9",device:"mobile",platform:"TOUCHSCREEN",width:1560,height:720,ratio:"19.5:9",luaDevice:"Mobile",label:"\u624B\u673A 1560\xD7720"},"mobile-4-3":{id:"mobile-4-3",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:960,ratio:"4:3",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7960"}});var hY=Object.freeze({KEYBOARD:"pc-16-9",TOUCHSCREEN:"mobile-16-9",CONTROLLER_CONSOLE:"pc-16-9",CONTROLLER_MOBILE:"mobile-16-9"}),uY=Object.freeze({"server-container":"\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668",container:"\u5BB9\u5668\u8282\u70B9",textbox:"\u6587\u672C\u6846",image:"\u56FE\u7247",button:"\u9884\u8BBE\u6309\u94AE",cursor:"\u5149\u6807\u68C0\u6D4B\u533A\u57DF",grid:"\u7F51\u683C\u89C6\u7A97",reference:"\u6A21\u677F\u5F15\u7528\u63A7\u4EF6",textwindow:"\u6587\u672C\u89C6\u7A97",keyhint:"\u6309\u952E\u63D0\u793A",animation:"\u754C\u9762\u52A8\u6548",fullscreen:"\u5168\u5C4F\u52A8\u6548"}),dY=Object.freeze(["server-container","container","textbox","cursor","reference","grid","image","button","textwindow","keyhint","animation","fullscreen"]),fY=Object.freeze({"server-container":null,container:[150,150],textbox:[100,40],image:[80,80],button:[150,50],cursor:[150,50],grid:[80,80],reference:[80,80],textwindow:[100,40],keyhint:[40,40],animation:[100,100],fullscreen:null}),pY=Object.freeze({100001:"rect",100002:"circle",100003:"triangle",100004:"fourstar",100005:"fivestar",100006:"ring"});var mY=Object.freeze({font:4294967295,bg:16777215,outline:858993459,image:4294967295});function $v(i,t,e){return{x:i.a*t+i.c*e+i.tx,y:i.b*t+i.d*e+i.ty}}function Rd(i){let t=i.a*i.d-i.b*i.c;return!Number.isFinite(t)||Math.abs(t)<1e-8?null:{a:i.d/t,b:-i.b/t,c:-i.c/t,d:i.a/t,tx:(i.c*i.ty-i.d*i.tx)/t,ty:(i.b*i.tx-i.a*i.ty)/t}}var Il=i=>Number.isFinite(Number(i))?Math.max(0,Number(i)):0;function Kv(i,t){if(!i||i.kind!=="image"||i.enableMask!==!0||!t)return null;let e=Il(i.sourceWidth??i.width),r=Il(i.sourceHeight??i.height),s=i.enableSoftEdge===!0,n=i.softEdgeMode!=="Pixel",o=s?Il(i.softEdgeWidthX):0,a=s?Il(i.softEdgeWidthY):0;return{id:i.id,matrix:t,width:e,height:r,featherX:n?e*o/100:o,featherY:n?r*a/100:a}}function bC(i,t,e){let r=(s,n)=>s<=0?0:!(n>0)||s>=n?1:s/n;return Math.min(r(i+e.width/2,e.featherX),r(e.width/2-i,e.featherX),r(t+e.height/2,e.featherY),r(e.height/2-t,e.featherY))}function vC(i){let t={children:[]},e=[t],r=[];for(let s of i||[]){if(!s||s.id==null)continue;let n=s.masks||[],o=n.map(l=>JSON.stringify([l.id,l.matrix,l.width,l.height,l.featherX,l.featherY])),a=0;for(;a<r.length&&a<o.length&&r[a]===o[a];)a++;e.length=a+1;for(let l=a;l<n.length;l++){let c={mask:n[l],children:[]};e.at(-1).children.push(c),e.push(c)}e.at(-1).children.push({item:s}),r=o}return t.children}var Zv=()=>({a:1,b:0,c:0,d:1,tx:0,ty:0});function qv(i,t){let e=Rd(i)||Zv();return{a:e.a*t.a+e.c*t.b,b:e.b*t.a+e.d*t.b,c:e.a*t.c+e.c*t.d,d:e.b*t.c+e.d*t.d,tx:e.a*t.tx+e.c*t.ty+e.tx,ty:e.b*t.tx+e.d*t.ty+e.ty}}function Qv(i){let t=[],e=0,r=(s,n=null,o=Zv())=>{s.forEach((a,l)=>{let c=`paint-mask:${e++}`,h=s.length-1-l;if(a.mask){let u=a.mask;t.push({id:c,parent:n,z:h,group:!1,kind:"image",primitive:"rect",imageColor:0,sourceWidth:u.width,sourceHeight:u.height,matrix:qv(o,u.matrix),enableMask:!0,enableSoftEdge:!0,softEdgeMode:"Pixel",softEdgeWidthX:u.featherX,softEdgeWidthY:u.featherY}),r(a.children,c,u.matrix)}else{let u=a.item,d=u.sourceWidth??u.width??0,f=u.sourceHeight??u.height??0,m=(u.rotationZ||0)*Math.PI/180,g=u.matrix||{a:Math.cos(m),b:Math.sin(m),c:-Math.sin(m),d:Math.cos(m),tx:(u.left||0)+d/2,ty:(u.bottom||0)+f/2},_=Rd(o),x=(u.clipPolygons||[]).map(S=>S.map(T=>_?$v(_,T.x,T.y):T)),{masks:b,...v}=u;t.push({...v,id:c,parent:n,z:h,group:!1,enableMask:!1,clipToParent:!1,sourceWidth:d,sourceHeight:f,matrix:qv(o,g),clipPolygons:x})}})};return r(vC(i)),{format:"tree-v1",reset:!0,nodes:t}}function kd(i,t){let e=Math.max(1,i.width),r=Math.max(1,i.height),s=i.getContext("2d"),n=s.createImageData(e,r),o=n.data;for(let a=0;a<r;a+=1){let l=t.height/2-(a+.5)*t.height/r;for(let c=0;c<e;c+=1){let h=-t.width/2+(c+.5)*t.width/e,u=Math.round(255*bC(h,l,t)),d=(a*e+c)*4;o[d]=255,o[d+1]=255,o[d+2]=255,o[d+3]=u}}return s.putImageData(n,0,0),i}function Bd(i,t,e){if(!i?.showBar||i.max<=0||t<=0||e<=0)return null;let r=i.horizontal===!0,s=r?t:e,n=Math.max(0,s-4),o=Math.min(n,Math.max(18,n*s/(s+i.max))),a=n-o,l=a*i.offset/i.max,c=Math.min(8,r?e:t),h=r?{x:-t/2+2,y:e/2-c-2,width:n,height:c}:{x:t/2-c-2,y:-e/2+2,width:c,height:n},u=r?{...h,x:h.x+l,width:o}:{...h,y:h.y+l,height:o};return{track:h,thumb:u,travel:a}}function Jv(i,t){let e=Math.max(0,Math.floor(i.offset/i.lineHeight)-1),r=Math.min(i.lines.length,Math.ceil((i.offset+t)/i.lineHeight)+1);return{text:i.lines.slice(e,r).join(`
926
- `),y:e*i.lineHeight}}function t1(i){let t=i[0]||[],e=(r,s,n)=>(s.x-r.x)*(n.y-r.y)-(s.y-r.y)*(n.x-r.x);for(let r of i.slice(1)){let n=r.reduce((o,a,l)=>{let c=r[(l+1)%r.length];return o+a.x*c.y-c.x*a.y},0)>=0?1:-1;for(let o=0;o<r.length&&t.length;o++){let a=r[o],l=r[(o+1)%r.length],c=t;t=[];let h=c[c.length-1],u=e(a,l,h)*n;for(let d of c){let f=e(a,l,d)*n;if(f>=0!=u>=0){let m=u/(u-f);t.push({x:h.x+m*(d.x-h.x),y:h.y+m*(d.y-h.y)})}f>=0&&t.push(d),h=d,u=f}}}return t}var e1="qxqy-image-refresh",lr=new Map,po=new Map,mo=new Map,Id=new Set,SC=16777216,r1=!1;function TC(i,t){mo.set(i,t),lr.delete(i),po.delete(i);for(let e of Id)e(i)}var i1=i=>/^\d+$/.test(i)?Ye(Number(i)):i;function Gd(){if(!(r1||typeof window>"u")){r1=!0;try{for(let[i,t]of Object.entries(JSON.parse(localStorage.getItem(e1)||"{}")))mo.set(i1(i),t)}catch{}window.addEventListener("storage",i=>{if(i.key===e1)try{for(let[t,e]of Object.entries(JSON.parse(i.newValue||"{}"))){let r=i1(t);mo.get(r)!==e&&TC(r,e)}}catch{}})}}function s1(i){return Gd(),Id.add(i),()=>Id.delete(i)}function wC(i,t){if(Gd(),ar(t)!=="StaticReference"||!Bl(i,t))return Promise.resolve(null);let e=Ye(i,t),r=po.get(e);if(r)return r;let s=fetch(Yv(i,mo.get(e),t),{signal:AbortSignal.timeout(3e4)}).then(async n=>{if(!n.ok)throw new Error(`\u56FE\u7247 ${i} \u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);return n.json()}).catch(n=>{throw po.get(e)===s&&po.delete(e),n});return po.set(e,s),s}async function n1(i,t){let[e,r]=await Promise.all([CC(i,t),wC(i,t).then(s=>({meta:s,error:""}),s=>({meta:void 0,error:s.message}))]);return{image:e,...r}}function CC(i,t){if(Gd(),!Bl(i,t))return Promise.reject(new Error("Image source/ID is not in the preview allowlist"));let e=Ye(i,t),r=lr.get(e);if(r&&(!r.failed||Date.now()<r.retryAt))return lr.delete(e),lr.set(e,r),r.promise;let s={pixels:0,failed:!1};return s.promise=new Promise((n,o)=>{let a=new Image,l=setTimeout(()=>{a.src="",c(new Error("\u56FE\u7247\u52A0\u8F7D\u8D85\u65F6"))},45e3);function c(h){if(clearTimeout(l),a.onload=a.onerror=null,h){s.failed=!0,s.retryAt=Date.now()+6e4,o(h);return}s.pixels=a.width*a.height;let u=[...lr.values()].reduce((d,f)=>d+f.pixels,0);for(let[d,f]of lr){if(u<=SC&&lr.size<=128)break;d!==e&&(!f.pixels&&!f.failed||(lr.delete(d),u-=f.pixels))}n(a)}a.onload=()=>c(),a.onerror=()=>c(new Error(`\u56FE\u7247 ${i} \u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5728\u5C5E\u6027\u9762\u677F\u5237\u65B0\u7D20\u6750`)),a.src=Ad(i,mo.get(e),t)}),lr.set(e,s),s.promise}function EC(i){return!!i?.border&&Object.values(i.border).some(t=>Number.isFinite(t)&&t>0)}function a1(i,t){let e=typeof t=="object"?t?.Name:t;return EC(i)&&e!=="Basic"?"Stretch":"Basic"}function o1(i,t,e,r){t=Number.isFinite(t)?Math.max(0,t):0,e=Number.isFinite(e)?Math.max(0,e):0;let s=Math.min(1,i/(t+e||1));t*=s,e*=s;let n=Math.min(1,r/(t+e||1));return{source:[0,t,i-e,i],target:[0,t*n,r-e*n,r]}}function l1(i,t,e){if(!(i?.width>0&&i?.height>0&&t>0&&e>0))return[];let r=o1(i.width,i.border.left,i.border.right,t),s=o1(i.height,i.border.top,i.border.bottom,e),n=[];for(let o=0;o<3;o++)for(let a=0;a<3;a++){let l=[r.target[a],s.target[o],r.target[a+1]-r.target[a],s.target[o+1]-s.target[o]];l[2]<=0||l[3]<=0||n.push({source:[r.source[a],s.source[o],r.source[a+1]-r.source[a],s.source[o+1]-s.source[o]],target:l})}return n}var ci='"Microsoft YaHei UI","Microsoft YaHei","HarmonyOS Sans SC","Noto Sans CJK SC",sans-serif',Fd="/qxqy-font";var Ud=i=>`QxqyLocal_${i}`,c1=i=>i?`"${Ud(i)}",${ci}`:ci;var Dd;function MC(){return Dd||=AC().catch(i=>{throw Dd=null,i}),Dd}async function AC(){let i={cache:"no-store",credentials:"same-origin",mode:"same-origin",signal:AbortSignal.timeout(1e4)},t=await fetch(`${Fd}/manifest`,i);if(!t.ok)throw new Error("\u65E0\u6CD5\u8BFB\u53D6\u672C\u5730\u5B57\u4F53\u914D\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u5BBF\u4E3B\u914D\u7F6E\u53CA\u672C\u673A\u8FDE\u63A5");let{id:e,scope:r="all"}=await t.json();if(e===null)return null;if(typeof e!="string"||!/^[a-f0-9]{64}$/.test(e))throw new Error("\u672C\u5730\u5B57\u4F53\u6807\u8BC6\u65E0\u6548");let s=await fetch(`${Fd}/file/${e}`,i);if(!s.ok)throw new Error("\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762");let n=await s.arrayBuffer();if(!n.byteLength||n.byteLength>33554432)throw new Error("\u672C\u5730\u5B57\u4F53\u5927\u5C0F\u65E0\u6548");let o=new FontFace(Ud(e),n);await o.load(),document.fonts.add(o);let a=c1(e),l="qxqy-local-font-style",c=document.getElementById(l);return r==="game"?c?.remove():(c||(c=document.createElement("style"),c.id=l,document.head.appendChild(c)),c.textContent=`[data-qxqy-font-ui], [data-qxqy-font-ui] * { font-family: ${a} !important; }`),a}var Gl={"\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u5B57\u4F53\u8BBE\u7F6E\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support font settings yet. Restart the Web or Harness host, then retry.","\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u68C0\u67E5\u66F4\u65B0\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support update checks yet. Restart the Web or Harness host, then retry.","\u8BF7\u8F93\u5165\u516D\u4F4D\u989C\u8272\uFF0C\u4F8B\u5982 #FF8800":"Enter a six-digit color, e.g. #FF8800","\u900F\u660E\u5EA6\u8BF7\u8F93\u5165 0\u2013100 \u7684\u6574\u6570":"Enter an integer from 0 to 100 for opacity","Alpha\uFF1A0% \u5B8C\u5168\u900F\u660E\uFF0C100% \u5B8C\u5168\u4E0D\u900F\u660E":"Alpha: 0% is transparent; 100% is opaque","{0}\u4E0E\u900F\u660E\u5EA6":"{0} and opacity",\u6253\u5F00\u53D6\u8272\u5668:"Open color picker","{0}\u53D6\u8272\u5668":"{0} color picker",\u900F\u660E\u5EA6:"Opacity","{0}\u900F\u660E\u5EA6\u6ED1\u5757":"{0} opacity slider","{0}\u900F\u660E\u5EA6":"{0} opacity","Lua \u7D22\u5F15\u5F85\u540C\u6B65\uFF08{0} \u9879\uFF09\xB7 \u5C55\u5F00":"Lua index references need updating ({0}) \xB7 Expand","Lua \u7D22\u5F15\u540C\u6B65":"Update Lua Index References","\u4E0B\u4E00\u6B65\uFF1A\u540C\u6B65 Lua \u7D22\u5F15\u5F15\u7528\uFF08{0} \u9879\uFF09":"Next: Update Lua index references ({0})",\u811A\u672C\u5168\u91CF\u66FF\u6362\u5DF2\u5B8C\u6210:"Script index replacement completed",\u5173\u95ED\u7D22\u5F15\u540C\u6B65\u63D0\u793A:"Close index update notice","\u6536\u8D77\u63D0\u793A\uFF0C\u4FDD\u7559\u5F85\u540C\u6B65\u8BB0\u5F55":"Collapse notice and keep pending changes",\u5173\u95ED:"Close","\u540C\u6B65\u4EFB\u52A1\uFF08\u7C98\u8D34\u7ED9\u5F53\u524D\u9879\u76EE\u7684 AI\uFF09":"Update task (paste into this project's AI chat)","AI \u7D22\u5F15\u540C\u6B65\u4EFB\u52A1":"AI task: Update index references","AI \u5DF2\u5904\u7406\uFF0C\u91CD\u65B0\u8F7D\u5165\u5B58\u6863":"AI finished \u2014 reload the save","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\uFF0C\u8BF7\u9009\u62E9\u4E00\u79CD\u65B9\u5F0F\u540C\u6B65\u811A\u672C\u3002":"Control indices changed. Choose how to update script references.","\u8BF7\u68C0\u67E5\u66FF\u6362\u7ED3\u679C\u5E76\u4FDD\u5B58\u5B58\u6863\uFF0C\u518D\u5230\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u91CC\u7684\u6587\u4EF6\u5E76\u91CD\u65B0\u8BD5\u73A9\u3002":"Review the replacements and save. Then use Lua Scripts \u2192 Sync Scripts to Game and test again in the game.",\u7D22\u5F15\u540C\u6B65\u65B9\u5F0F:"Update method",\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15:"Replace All Script Indices","\u53EF\u80FD\u9519\u8BEF\u5730\u66FF\u6362\u975E\u7D22\u5F15\u5185\u5BB9\u3002":"This may replace numbers unrelated to control indices.","\u6309\u5B8C\u6574\u5341\u8FDB\u5236\u6570\u5B57\u66FF\u6362\u6240\u6709\u5DF2\u767B\u8BB0\u811A\u672C\uFF0C\u5305\u62EC\u914D\u7F6E\u8868\u3001\u5B57\u7B26\u4E32\u548C\u6CE8\u91CA\uFF1B\u540C\u65F6\u66F4\u65B0\u5185\u5BB9\u4E00\u81F4\u7684\u5DE5\u4F5C\u533A\u6E90\u6587\u4EF6\uFF0C\u66FF\u6362\u524D\u81EA\u52A8\u5907\u4EFD\u3002":"Replace whole decimal numbers in all registered scripts, including tables, strings, and comments. Matching workspace source files are updated too, with backups.","\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI":"Copy Task for AI","\u5148\u4FDD\u5B58\u6700\u65B0\u5B58\u6863\uFF0C\u518D\u590D\u5236\u5305\u542B\u6620\u5C04\u8BFB\u53D6\u65B9\u5F0F\u548C\u811A\u672C\u4F4D\u7F6E\u7684\u63D0\u793A\u8BCD\uFF0C\u7531 AI \u5224\u65AD\u54EA\u4E9B\u5F15\u7528\u9700\u8981\u66F4\u65B0\u3002":"Save first, then copy the index mapping instructions and script locations so the AI can identify references to update.","\u67E5\u770B\u7D22\u5F15\u53D8\u66F4\uFF08{0} \u9879\uFF09":"View index changes ({0})","\u8FD9\u91CC\u663E\u793A\u524D 20 \u9879\uFF1B\u5B8C\u6574\u6620\u5C04\u968F\u5B58\u6863\u4FDD\u5B58\uFF0C\u590D\u5236\u7684\u4EFB\u52A1\u4F1A\u5F15\u5BFC AI \u8BFB\u53D6\u5168\u90E8\u3002":"Showing the first 20 changes. The save includes the complete mapping; the copied task tells the AI how to read it.","Lua \u7D22\u5F15\u540C\u6B65\u95EE\u9898":"Lua index update issues","\u6E90\u7801\u6587\u4EF6\u6216\u7D22\u5F15\u6620\u5C04\u5B58\u5728\u51B2\u7A81\uFF0C\u672C\u6B21\u6CA1\u6709\u4FEE\u6539\u811A\u672C\u3002\u53EF\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI \u5904\u7406\u3002":"Source files or index mappings conflict. No scripts were changed. You can copy a task for the AI.",\u5185\u8054\u811A\u672C:"Inline script","\u7B2C {0} \u884C\uFF1A":"Line {0}:","\u5176\u4F59\u95EE\u9898\u8BF7\u7531 AI \u6838\u5BF9\u3002":"Ask the AI to review the remaining issues.","\u5DF2\u66FF\u6362 {0} \u4E2A\u811A\u672C\u7684 {1} \u5904\u6587\u672C\uFF0C\u66F4\u65B0 {2} \u4E2A\u9879\u76EE\u6587\u4EF6\u3002\u5907\u4EFD\uFF1A{3}":"Replaced {1} occurrences in {0} scripts and updated {2} project files. Backups: {3}","\u524D\u5F80 Lua \u811A\u672C":"Open Lua Scripts",\u65E0\u6CD5\u8BFB\u53D6\u5B57\u4F53\u8BBE\u7F6E:"Unable to read font settings","\u627E\u5230\u5B57\u4F53\uFF1A{0}\u3002":"Font found: {0}.","\u9ED8\u8BA4\u4F4D\u7F6E\u672A\u627E\u5230\u5B57\u4F53\uFF0C\u5C06\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002":"No font found in the default locations. The system font will be used.","\u5DF2\u4FDD\u5B58\u3002{0}\u91CD\u542F Web\u3001MCP \u6216 Harness \u5BBF\u4E3B\u540E\uFF0C\u5237\u65B0\u7F16\u8F91\u5668\u53CA\u8BD5\u73A9\u9875\u751F\u6548\u3002":"Saved. {0}Restart the Web, MCP, or Harness host, then refresh the editor and playtest pages to apply.",\u5B57\u4F53\u8BBE\u7F6E:"Font Settings","\u81EA\u5B9A\u4E49\u5B57\u4F53\u53EF\u7528\u4E8E\u6E38\u620F\u5185\u6587\u672C\u6216\u6574\u4F53 UI\u3002\u8BBE\u7F6E\u4EC5\u4FDD\u5B58\u5728\u672C\u673A\uFF0C\u91CD\u542F\u5BBF\u4E3B\u540E\u751F\u6548\u3002":"Apply the custom font to in-game text or the entire UI. Settings stay on this machine and apply after restarting the host.",\u5E94\u7528\u8303\u56F4:"Apply to",\u4EC5\u6E38\u620F\u5185\u6587\u672C:"In-game text only","\u6574\u4F53 UI":"Entire UI","\u4EC5\u6E38\u620F\u5185\u6587\u672C\uFF1A\u7528\u4E8E\u753B\u5E03\u3001\u8BD5\u73A9\u548C\u622A\u56FE\uFF1B\u6574\u4F53 UI\uFF1A\u540C\u65F6\u66FF\u6362\u5DE5\u5177\u680F\u3001\u9762\u677F\u3001\u4EE3\u7801\u548C\u65E5\u5FD7\u5B57\u4F53\u3002":"In-game text only: canvas, playtests, and screenshots. Entire UI: also changes fonts in toolbars, panels, code, and logs.",\u8BF7\u9009\u62E9\u5B57\u4F53\u5E94\u7528\u8303\u56F4:"Choose where to apply the font","\u5F53\u524D\u5B57\u4F53\uFF1A{0}":"Active font: {0}",\u7CFB\u7EDF\u5B57\u4F53:"System font","\u5B57\u4F53\u6587\u4EF6\u7531\u73AF\u5883\u53D8\u91CF QXQY_FONT_PATH \u6307\u5B9A\uFF0C\u4ECD\u53EF\u8C03\u6574\u5E94\u7528\u8303\u56F4\u3002":"QXQY_FONT_PATH selects the font file. You can still change where it applies.",\u5B57\u4F53\u6765\u6E90:"Font source",\u81EA\u52A8\u5C1D\u8BD5\u539F\u795E\u7684\u9ED8\u8BA4\u5B89\u88C5\u4F4D\u7F6E:"Look in Genshin Impact's default installation locations",\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6:"Use a local font file",\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53:"Use the system font",\u5B57\u4F53\u6587\u4EF6\u8DEF\u5F84:"Font file path","\u586B\u5199 TTF / OTF \u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u6700\u5927 32 MiB\uFF1B\u53EF\u4EE5\u76F4\u63A5\u7C98\u8D34\u5E26\u5F15\u53F7\u7684 Windows \u8DEF\u5F84\u3002":"Enter an absolute TTF / OTF path (up to 32 MiB). Quoted Windows paths are accepted.","\u6309\u987A\u5E8F\u5C1D\u8BD5\u4EE5\u4E0B\u4F4D\u7F6E\uFF1B\u90FD\u672A\u627E\u5230\u65F6\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002\u5B89\u88C5\u5728\u5176\u4ED6\u76D8\u7B26\u65F6\u8BF7\u9009\u62E9\u201C\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6\u201D\u3002":"These locations are checked in order. If none contains a font, the system font is used. For another drive, select \u201CUse a local font file\u201D.","\u5F53\u524D\u7CFB\u7EDF\u4E0D\u81EA\u52A8\u67E5\u627E\uFF0C\u8BF7\u6307\u5B9A\u5B57\u4F53\u6587\u4EF6\u3002":"Automatic font discovery is unavailable on this system. Specify a font file.","\u6709\u5DF2\u4FDD\u5B58\u7684\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762\u540E\u751F\u6548\u3002":"Font settings have been saved. Restart the host and refresh the pages to apply them.","\u6B63\u5728\u8BFB\u53D6\u8BBE\u7F6E\u2026":"Loading settings\u2026","\u4FDD\u5B58\u4E2D\u2026":"Saving...",\u4FDD\u5B58\u8BBE\u7F6E:"Save Settings","\u56FE\u7247 {0} \u52A0\u8F7D\u5931\u8D25":"Failed to load image {0}","\u52A0\u8F7D\u56FE\u7247 {0}\u2026":"Loading image {0}\u2026","\u56FE\u7247 {0}":"Image {0}",\u56FE\u7247\u7C7B\u578B:"Image Type",\u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25:"Failed to load image metadata","\u8BFB\u53D6\u7D20\u6750\u8FB9\u754C\u2026":"Loading asset borders\u2026",\u57FA\u7840:"Basic",\u62C9\u4F38:"Stretch",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668:"Client Control Container",\u5BB9\u5668\u8282\u70B9:"Container Control",\u6587\u672C\u6846:"Text Box",\u5149\u6807\u68C0\u6D4B\u533A\u57DF:"CursorEventArea",\u6A21\u677F\u5F15\u7528\u63A7\u4EF6:"Reference Control",\u7F51\u683C\u89C6\u7A97:"Grid Scroller",\u56FE\u7247:"Image",\u9884\u8BBE\u6309\u94AE:"Preset Button",\u6587\u672C\u89C6\u7A97:"Text Window",\u6309\u952E\u63D0\u793A:"Key Hint",\u754C\u9762\u52A8\u6548:"UI Animation",\u5168\u5C4F\u52A8\u6548:"Fullscreen UI Animation",\u5149\u6807\u68C0\u6D4B:"CursorEventArea",\u6A21\u677F\u5F15\u7528:"Reference Control","\u5BFC\u51FA\u5185\u5BB9\u89E3\u7801\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u5237\u65B0\u9875\u9762":"Unable to decode the export. Retry or refresh the page.","PC KEYBOARD \u753B\u5E03\uFF1A1600\xD7900 / 2100\xD7900":"PC KEYBOARD canvas: 1600\xD7900 / 2100\xD7900",\u624B\u673A:"Mobile","\u624B\u673A TOUCHSCREEN \u753B\u5E03\uFF1A1280\xD7720 / 1560\xD7720 / 1280\xD7960":"Mobile TOUCHSCREEN canvas: 1280\xD7720 / 1560\xD7720 / 1280\xD7960",\u5C1A\u65E0\u53EF\u7F16\u8F91\u503C:"No editable value available","\u672A\u8BC6\u522B\u9009\u9879 {0}\uFF08\u4FDD\u7559\u539F\u503C\uFF09":"Unknown option {0} (original value preserved)",\u7A7A:"None","\u65B0\u5EFA\u5E76\u7ED1\u5B9A{0}\u56FE\u7247":"Create and assign a {0} image",\u7FBD\u5316\u5BBD\u5EA6:"Soft Edge Width",\u7FBD\u5316\u8303\u56F4:"Soft Edge Range",\u56FE\u7247\u8BBE\u7F6E:"Image Settings",\u906E\u7F69\u8BBE\u7F6E:"Mask Settings",\u6587\u672C\u6846\u8BBE\u7F6E:"Text Box Settings",\u6309\u94AE\u8BBE\u7F6E:"Button Settings","{0}\u8BBE\u7F6E":"{0} Settings",\u8282\u70B9\u4FE1\u606F:"Node Information",\u53D8\u6362:"Transform",\u4F4D\u7F6E:"Location",\u5927\u5C0F:"Size",\u4E2D\u5FC3:"Pivot",\u521B\u5EFA\u8BBE\u7F6E:"Create Settings",\u624B\u67C4\u5BFC\u822A:"Controller Navigation",\u5B9E\u73B0\u72B6\u6001:"Support Status","\u5B58\u6863\u5185 Lua \u811A\u672C\uFF08{0}\uFF09":"Lua Scripts in This Save ({0})","\uFF0B \u65B0\u5EFA\u811A\u672C":"\uFF0B New Script","(\u672A\u547D\u540D\u811A\u672C)":"(Unnamed script)","\u6302\u8F7D\uFF1A{0} \xB7 {1}":"Attached to: {0} \xB7 {1}","\u672A\u6302\u8F7D\uFF08\u4EC5\u53EF\u88AB require\uFF09":"Not attached (available through require only)","\u4E0B\u8F7D\u8BE5\u811A\u672C .lua":"Download this script as .lua",\u5220\u9664\u8BE5\u811A\u672C:"Delete this script","\u8FD8\u6CA1\u6709\u811A\u672C\uFF0C\u70B9\u51FB\u201C\u65B0\u5EFA\u811A\u672C\u201D\u5F00\u59CB":"No scripts yet. Click \u201CNew Script\u201D to begin.","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 Lua \u811A\u672C\u662F\u5B58\u6863\u5185\u72EC\u7ACB\u8D44\u4EA7":"Save: \u201C{0}\u201D \xB7 Lua scripts are separate assets within the save",\u672A\u547D\u540D\u5B58\u6863:"Untitled Save","\u811A\u672C {0}":"Script {0}","\u811A\u672C\u8DEF\u5F84\uFF08\u5DE5\u4F5C\u533A\u76F8\u5BF9\u8DEF\u5F84\uFF09":"Script path (relative to the workspace)","\u6302\u8F7D\u76EE\u6807\uFF08\u5BA2\u6237\u7AEF\u63A7\u4EF6 / \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF09":"Attach to (client control / client control template)","\u672A\u6302\u8F7D\uFF08\u4E0D\u751F\u6548\uFF0C\u4EC5\u53EF\u88AB require\uFF09":"Not attached (does not run automatically; require only)","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F \xB7 \u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u5185":"Server Control Template \xB7 Inside the Client Control Container",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Client Control Template","Lua \u6E90\u7801":"Lua Source","-- \u5728\u8FD9\u91CC\u8F93\u5165\u5BA2\u6237\u7AEF Lua\uFF1B\u811A\u672C\u53EA\u6709\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548":"-- Enter client-side Lua here; attach the script to a client control to run it in playtests",\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539:"Unsaved changes","\u5DF2\u6302\u8F7D\uFF1A{0}":"Attached to: {0}","\u5F53\u524D\u672A\u6302\u8F7D\uFF0C\u8BD5\u73A9\u65F6\u4E0D\u4F1A\u81EA\u52A8\u8FD0\u884C":"Not attached; it will not run automatically in playtests","\u21E9 \u811A\u672C\u5305 JSON":"\u21E9 Script Bundle JSON","\u21E9 \u811A\u672C\u5305 GIA":"\u21E9 Script Bundle GIA",\u4FDD\u5B58\u811A\u672C:"Save Script",\u8BF7\u65B0\u5EFA\u6216\u9009\u62E9\u4E00\u4E2A\u811A\u672C:"Create or select a script","PlayerSelf \u5F53\u524D\u73A9\u5BB6":"PlayerSelf \u2014 Current Player","AllPlayers \u5168\u90E8\u73A9\u5BB6":"AllPlayers \u2014 All Players","Level \u5173\u5361":"Level \u2014 Stage","Player1 \u73A9\u5BB61":"Player1 \u2014 Player 1","Player2 \u73A9\u5BB62":"Player2 \u2014 Player 2","Player3 \u73A9\u5BB63":"Player3 \u2014 Player 3","Player4 \u73A9\u5BB64":"Player4 \u2014 Player 4","Player5 \u73A9\u5BB65":"Player5 \u2014 Player 5","Player6 \u73A9\u5BB66":"Player6 \u2014 Player 6","Player7 \u73A9\u5BB67":"Player7 \u2014 Player 7","Player8 \u73A9\u5BB68":"Player8 \u2014 Player 8","\u89C4\u5219 {0} \u9700\u8981\u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0} needs a signal name to listen for","\u89C4\u5219 {0} \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u52A8\u4F5C":"Rule {0} needs at least one action","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D":"Rule {0}, action {1} needs a client signal name","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u53D8\u91CF\u540D":"Rule {0}, action {1} needs a variable name","{0}\u6765\u6E90":"{0} source","\u5B57\u9762\u91CF\uFF08JSON\uFF09":"Literal (JSON)",\u5F15\u7528\u76D1\u542C\u4FE1\u53F7\u53C2\u6570:"Use a received signal argument","{0}\u53C2\u6570\u5E8F\u53F7":"{0} argument index","{0}\u5B57\u9762\u91CF":"{0} literal","\u5BA2\u6237\u7AEF\u4FE1\u53F7\u53C2\u6570\uFF08\u6309\u6DFB\u52A0\u987A\u5E8F\uFF09":"Client signal arguments (in order)","\u53C2\u6570 {0}":"Argument {0}",\u5220\u9664\u53C2\u6570:"Remove argument","\u6682\u65E0\u53C2\u6570\uFF0C\u53EF\u53D1\u9001\u7A7A\u53C2\u6570\u5217\u8868":"No arguments; an empty argument list can be sent","\uFF0B \u6DFB\u52A0\u53C2\u6570":"\uFF0B Add Argument",\u670D\u52A1\u7AEF\u903B\u8F91:"Server Logic","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 \u76D1\u542C\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540E\u8BBE\u7F6E Level / \u73A9\u5BB6\u53D8\u91CF\uFF0C\u6216\u5411\u6307\u5B9A\u73A9\u5BB6\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"Save: \u201C{0}\u201D \xB7 Listen for client signals to set Level / player variables or send client script signals to selected players",\u4FDD\u5B58\u670D\u52A1\u7AEF\u903B\u8F91:"Save Server Logic","\u8FD9\u662F\u6A21\u62DF\u5668\u5B58\u6863\u683C\u5F0F\uFF0C\u4E0D\u662F\u5B98\u65B9\u8282\u70B9\u56FE\u3002PlayerSelf \u8868\u793A\u53D1\u4FE1\u53F7\u7684\u90A3\u4F4D\u73A9\u5BB6\uFF1BPlayer1\u20138 \u662F\u56FA\u5B9A\u5EA7\u4F4D\uFF1BAllPlayers \u5411\u672C\u5C40\u5168\u90E8\u8BD5\u73A9\u73A9\u5BB6\u5E7F\u64AD\u3002":"This uses the simulator's save format. PlayerSelf is the player who sent the signal; Player1\u20138 are fixed slots; AllPlayers broadcasts to every player in this playtest.","\u89C4\u5219 {0}":"Rule {0}",\u76D1\u542C\u4FE1\u53F7\u540D:"Signal to listen for","\u89C4\u5219 {0} \u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0}: signal to listen for",\u5220\u9664\u89C4\u5219:"Remove rule","\u52A8\u4F5C {0}":"Action {0}","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u7C7B\u578B":"Rule {0}, action {1}: type",\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF:"Set Custom Variable",\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7:"Send Client Script Signal","\u53D1\u7ED9\u5F53\u524D\u73A9\u5BB6\u3001\u6307\u5B9A\u73A9\u5BB6\u6216\u5168\u90E8\u73A9\u5BB6":"Send to the current player, a selected player, or all players","\u5199\u5165 Level / \u5F53\u524D\u73A9\u5BB6 / \u73A9\u5BB61-8":"Write to Level / current player / Player1\u20138",\u5220\u9664\u52A8\u4F5C:"Remove action",\u53D1\u9001\u76EE\u6807:"Send to",\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D:"Client signal name",\u5B9E\u4F53:"Entity",\u53D8\u91CF\u540D:"Variable name",\u53D8\u91CF\u503C:"Variable value","\uFF0B \u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF":"\uFF0B Set Custom Variable","\uFF0B \u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"\uFF0B Send Client Script Signal","\u8FD8\u6CA1\u6709\u76D1\u542C\u89C4\u5219\u3002\u8BD5\u73A9\u65F6\u5BA2\u6237\u7AEF SendSignal \u4E0D\u4F1A\u81EA\u52A8\u6539\u53D8\u91CF\u6216\u56DE\u4F20\u4FE1\u53F7\u3002":"No signal rules yet. In a playtest, client SendSignal calls do not automatically change variables or send signals back.","\uFF0B \u6DFB\u52A0\u76D1\u542C\u89C4\u5219":"\uFF0B Add Signal Rule","\u4FDD\u5B58\u540E\u4F1A\u5199\u5165\u5F53\u524D\u5B58\u6863\uFF0C\u4E0B\u6B21\u8BD5\u73A9\u751F\u6548":"Saved to the current save; applies on the next playtest","\u8BF7\u8F93\u5165 1\u20132147483647 \u4E4B\u95F4\u7684\u6574\u6570\u7D22\u5F15\u3002":"Enter an integer index from 1 to 2147483647.",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u7D22\u5F15:"Client Control Index",\u4FDD\u5B58\u4E2D:"Saving",\u4FEE\u6539:"Edit",\u81EA\u52A8\u4FEE\u6539\u5176\u4ED6\u5BA2\u6237\u7AEF\u7D22\u5F15\u503C:"Automatically fill other client control indices",\u81EA\u52A8\u586B\u5145\u7D22\u5F15\u9884\u89C8:"Index Autofill Preview","\u4EE5\u5F53\u524D\u63A7\u4EF6\u4E3A\u57FA\u51C6\uFF0C\u6309 GIA \u5BFC\u5165\u987A\u5E8F\u586B\u5145 {0} \u4E2A\u63A7\u4EF6\uFF08{1} \u4E2A\u6A21\u677F\u53CA\u5176\u5B50\u63A7\u4EF6\uFF09\u3002":"Using this control as the anchor, assign indices in GIA import order to {0} controls ({1} templates and their children).","\u7D22\u5F15\u8303\u56F4\uFF1A{0}\u2013{1}":"Index range: {0}\u2013{1}","\u7D22\u5F15\u8303\u56F4\u8D85\u51FA\u6709\u6548\u8303\u56F4\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u3002":"Index range exceeds the valid bounds. Check your input.","\u9002\u7528\u4E8E\u6574\u6279\u5BFC\u5165\u540E\u672A\u589E\u5220\u3001\u91CD\u6392\u7684\u6A21\u677F\u3002\u670D\u52A1\u7AEF\u754C\u9762\u548C\u811A\u672C\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199\u3002":"For templates imported together without structural changes or reordering. Server UI and script indices must be entered separately.","\u586B\u5199 GIA \u5BFC\u5165\u540E\u5B9E\u9645\u663E\u793A\u7684\u7D22\u5F15\uFF1B\u4FEE\u6539\u540E\u4ECE\u9875\u9762\u4E0A\u65B9\u7EE7\u7EED\u540C\u6B65 Lua\u3002":"Enter the actual index shown after importing the GIA. Then update Lua references using the notice above.",\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6\u7684\u811A\u672C:"Scripts Attached to This Control","\u89E3\u9664\u6302\u8F7D\uFF08\u4FDD\u7559\u811A\u672C\uFF09":"Detach (keep script)","\u8BE5\u63A7\u4EF6\u5C1A\u672A\u6302\u8F7D\u811A\u672C\u3002\u811A\u672C\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548\u3002":"No script is attached to this control. Attach a script to a client control to run it in playtests.",\u6302\u8F7D\u5DF2\u6709\u811A\u672C:"Attach an Existing Script",\u9009\u62E9\u811A\u672C\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Choose a script to attach to this control","\u9009\u62E9\u811A\u672C\u2026":"Select a script\u2026","\uFF08\u5F53\u524D\u6302\u8F7D\u4E8E {0} \xB7 {1}\uFF0C\u5C06\u79FB\u52A8\u5230\u6B64\u63A7\u4EF6\uFF09":"(currently on {0} \xB7 {1}; will move to this control)","\uFF08\u672A\u6302\u8F7D\uFF09":"(not attached)","\u5B58\u6863\u5185\u8FD8\u6CA1\u6709\u5176\u4ED6\u811A\u672C\uFF0C\u53EF\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u65B0\u5EFA\u3002":"No other scripts in this save. Create one using the button below.","\uFF0B \u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u6B64\u63A7\u4EF6":"\uFF0B Create and Attach a Script","\u7F3A\u5C11\u56FE\u7247 {0}":"Missing image {0}",\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25:"Failed to load the local font","\u5F53\u524D\u8D44\u4EA7\u5DF2\u5207\u6362\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u63A7\u4EF6\u540E\u4FEE\u6539\u7D22\u5F15":"The active asset changed. Select the control again before changing its index.","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\u3002\u8BF7\u9009\u62E9\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\u3002":"Control indices changed. Choose \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above.","\u8BF7\u5148\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\uFF0C\u518D\u590D\u5236\u63D0\u793A\u8BCD\uFF1BAI \u9700\u8981\u8BFB\u53D6\u8FD9\u6B21\u5B9E\u9645\u4FEE\u6539\u7684\u5B58\u6863\u3002":"Save the complete project before copying the task. The AI needs the save containing these changes.","\u8BF7\u5B8C\u6210\u6A21\u62DF\u5668\u63A7\u4EF6\u7D22\u5F15\u4E0E Lua \u5F15\u7528\u540C\u6B65\u3002":"Update the simulator's control indices and Lua references.","\u5DE5\u4F5C\u533A\uFF1A{0}":"Workspace: {0}",\u8BF7\u5148\u6838\u5BF9\u5DE5\u4F5C\u533A:"Verify the workspace first","\u6700\u65B0\u5B8C\u6574\u5B58\u6863\uFF1A{0}\uFF08\u7F16\u8F91\u5668\u5DF2\u4FDD\u5B58\uFF09":"Latest complete save: {0} (saved by the editor)","Lua \u6587\u4EF6\uFF1A{0}":"Lua files: {0}","\u5185\u8054\u811A\u672C {0}":"Inline script {0}",\u6682\u65E0:"None","\u5148\u4ECE\u4E0A\u8FF0\u6587\u4EF6\u91CD\u65B0\u52A0\u8F7D\u6700\u65B0\u5B58\u6863\uFF0C\u4E0D\u8981\u4F7F\u7528\u53E6\u4E00\u4E2A MCP/Web \u8FDB\u7A0B\u91CC\u7684\u65E7\u5DE5\u7A0B\u3002":"Reload the latest save from the file above. Do not use an older project from another MCP/Web process.","\u83B7\u53D6\u65B0\u65E7\u6620\u5C04\uFF1A\u8BFB\u53D6\u8BE5 JSON \u9876\u5C42\u7684 controlGuidChanges \u6570\u7EC4\uFF0C\u5F53\u524D\u5171 {0} \u6761\uFF0C\u5FC5\u987B\u8BFB\u53D6\u5168\u90E8\u8BB0\u5F55\u3002oldGuid \u662F\u65E7\u7D22\u5F15\uFF0CnewGuid \u662F\u65B0\u7D22\u5F15\uFF1BcontrolAsset + controlId \u6807\u8BC6\u63A7\u4EF6\uFF0CcontrolName \u662F\u540D\u79F0\uFF0Cid \u662F\u8BB0\u5F55\u7F16\u53F7\uFF0CbatchId \u662F\u6279\u6B21\u3002":"Read all {0} entries in the save's top-level controlGuidChanges array. oldGuid/newGuid are the old/new indices. controlAsset + controlId identifies the control; controlName is its name; id identifies the change; batchId identifies the batch.","\u83B7\u53D6\u811A\u672C\uFF1A\u8BFB\u53D6 assets.scripts \u6570\u7EC4\uFF1B\u6BCF\u9879\u7684 source \u662F\u5B58\u6863\u5185\u6E90\u7801\uFF0Cpath \u662F\u811A\u672C\u6587\u4EF6\u8DEF\u5F84\uFF08\u76F8\u5BF9\u8DEF\u5F84\u4EE5\u5DE5\u4F5C\u533A\u4E3A\u57FA\u51C6\uFF09\u3002":"Read scripts from assets.scripts. Each source contains the saved code; path identifies its file, relative to the workspace where applicable.","\u6309\u63A7\u4EF6\u8EAB\u4EFD\u548C\u53D8\u66F4\u987A\u5E8F\u6838\u5BF9\u5168\u90E8 Lua \u811A\u672C\u7684\u7D22\u5F15\u5E38\u91CF\u3001\u914D\u7F6E\u8868\u4E0E\u8C03\u7528\uFF0C\u4FEE\u6539\u5B58\u6863\u4E2D\u7684 source \u53CA\u76F8\u5173 Lua \u6E90\u6587\u4EF6\u548C\u751F\u6210\u5668\u6620\u5C04\uFF0C\u907F\u514D\u91CD\u5EFA\u540E\u8986\u76D6\u3002\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\uFF0C\u4E5F\u4E0D\u8981\u6539\u8FD0\u884C\u65F6\u5B9E\u4F8B ID \u6216\u56FE\u7247\u8D44\u6E90 ID\u3002":"Review index constants, tables, and calls in all Lua scripts by control identity and change order. Update saved source, related Lua files, and generator mappings. Do not globally replace equal numbers or alter runtime instance IDs or image resource IDs.","\u540C\u4E00 batchId \u662F\u540C\u65F6\u6620\u5C04\uFF0C\u987B\u6309\u539F\u503C\u4E00\u6B21\u6027\u5E94\u7528\uFF0C\u4E0D\u80FD\u9010\u6761\u66FF\u6362\u5BFC\u81F4\u7D22\u5F15\u4E32\u6539\u3002":"Changes sharing batchId form one simultaneous mapping. Apply them to original values together to avoid cascading replacements.","\u68C0\u67E5\u65E7\u7D22\u5F15\u5F15\u7528\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF1B\u4EC5\u5728\u5F15\u7528\u5168\u90E8\u540C\u6B65\u6216\u660E\u786E\u6CA1\u6709\u5F15\u7528\u540E\uFF0C\u7528 acknowledgeControlGuidChanges \u7684 changeIds \u6E05\u9664\u5DF2\u6838\u5BF9\u8BB0\u5F55\uFF0C\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u3002\u672A\u5224\u65AD\u7684\u8BB0\u5F55\u7EE7\u7EED\u4FDD\u7559\u3002":"Check old references and playtest again. Only after updating every reference or confirming none exist, acknowledge reviewed changeIds with acknowledgeControlGuidChanges and save. Keep unreviewed changes.","\u5B8C\u6210\u540E\u544A\u77E5\u7528\u6237\u91CD\u65B0\u8F7D\u5165\u8FD9\u4E2A\u5B58\u6863\uFF0C\u518D\u901A\u8FC7\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u6587\u4EF6\uFF1B\u4E0D\u8981\u91CD\u65B0\u5BFC\u5165 GIA\uFF0C\u4E5F\u4E0D\u8981\u64C5\u81EA\u590D\u5236\u5230\u6E38\u620F\u76EE\u5F55\u3002":"Tell the user to reload this save and use Lua Scripts \u2192 Sync Scripts to Game. Do not reimport GIA or copy files into the game directory without authorization.","\u5B58\u6863\u5DF2\u4FDD\u5B58\uFF0C\u63D0\u793A\u8BCD\u5DF2\u590D\u5236\uFF0C\u5305\u542B\u5B8C\u6574\u6620\u5C04\u7684\u8BFB\u53D6\u65B9\u5F0F\u3002\u7C98\u8D34\u7ED9 AI\uFF1B\u5904\u7406\u540E\u91CD\u65B0\u8F7D\u5165\u5B58\u6863\u3002":"Save written and task copied, including instructions for reading the full mapping. Paste it into the AI chat, then reload the save when finished.","\u5B58\u6863\u5DF2\u4FDD\u5B58\u3002\u526A\u8D34\u677F\u4E0D\u53EF\u7528\uFF0C\u53EF\u4ECE\u4E0B\u65B9\u6587\u672C\u6846\u624B\u52A8\u590D\u5236\u63D0\u793A\u8BCD\u3002":"Save written. Clipboard access is unavailable; copy the task from the text box below.","\u56FE\u7247 {0} \u5DF2\u91CD\u65B0\u4E0B\u8F7D\uFF1B\u540C\u6E90\u8BD5\u73A9\u9875\u4F1A\u540C\u6B65\u5237\u65B0\u3002":"Image {0} downloaded again. Playtest pages on this origin will refresh it too.","{0}\u56FE\u7247":"{0} Image","{0}\u5DF2\u521B\u5EFA\u5E76\u7ED1\u5B9A\uFF1B\u53EF\u5728\u63A7\u4EF6\u6811\u4E2D\u7EE7\u7EED\u7F16\u8F91\u56FE\u7247\u3002":"Created and assigned {0}. Edit the image in the control tree.","Lua \u811A\u672C\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863":"Lua script saved to the current save",\u670D\u52A1\u7AEF\u903B\u8F91\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863:"Server logic saved to the current save",\u5DF2\u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Script created and attached to this control","\u5DF2\u65B0\u5EFA\u811A\u672C\uFF0C\u53EF\u7F16\u8F91\u8DEF\u5F84\u3001\u6E90\u7801\u548C\u6302\u8F7D\u76EE\u6807":"Script created. Edit its path, source, and attachment target.",\u811A\u672C\u5DF2\u5220\u9664:"Script deleted","\u5DF2\u89E3\u9664\u6302\u8F7D\uFF0C\u811A\u672C\u4ECD\u4FDD\u7559\u5728\u5B58\u6863\u4E2D":"Script detached and kept in the save",\u5DF2\u6302\u8F7D\u5230\u5F53\u524D\u63A7\u4EF6:"Attached to the current control","\u5DF2\u5207\u6362\u5230\u5B58\u6863\u5185\u7684{0}":"Switched to {0} in this save","{0}\u6A21\u677F":"{0} Template","\u5DF2\u65B0\u589E{0}\u6A21\u677F":"Created a {0} template","\u5DF2\u6DFB\u52A0{0}\u5B50\u63A7\u4EF6":"Added a {0} child control","\u5DF2\u5BFC\u51FA {0} \u4E2A GIA \u6587\u4EF6\uFF08{1}\uFF09\uFF1B\u82E5\u6D4F\u89C8\u5668\u62E6\u622A\u591A\u6587\u4EF6\u4E0B\u8F7D\uFF0C\u8BF7\u5141\u8BB8\u540E\u91CD\u8BD5\u3002":"Exported {0} GIA files ({1}). If downloads are blocked, allow multiple downloads and retry.","\u5DF2\u5BFC\u51FA {0}\uFF1B\u8BF7\u67E5\u770B\u4E0A\u65B9\u5BFC\u51FA\u8BF4\u660E\u3002":"Exported {0}. Review the export notes above.","\u5DF2\u5BFC\u51FA {0}":"Exported {0}","\u5DF2\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6 {0}":"Loaded {0} from the workspace","\u4EC5\u652F\u6301 .json\u3001.gia \u6216 .lua \u6587\u4EF6":"Only .json, .gia, and .lua files are supported","\u5DF2\u5BFC\u5165 {0}":"Imported {0}","\u5DF2\u4FDD\u5B58\u5230 {0}":"Saved to {0}","\u6B63\u5728\u8F7D\u5165\u5343\u661F\u6C99\u7BB1\u2026":"Loading Miliastra Sandbox\u2026","\u5DF2\u5207\u6362\u5230{0}":"Switched to {0}",\u4FDD\u5B58\u5230\u5DE5\u4F5C\u533A:"Save to Workspace",\u5B58\u6863\u76F8\u5BF9\u8DEF\u5F84:"Save path (relative to workspace)",\u53D6\u6D88:"Cancel",\u4FDD\u5B58:"Save",\u5DE5\u4F5C\u533A\u672A\u7ED1\u5B9A:"No workspace bound",\u5C1A\u672A\u5BFC\u5165\u6587\u4EF6:"No file imported","\u5B58\u6863\uFF1A{0}":"Save: {0}","\u5DE5\u4F5C\u533A\uFF1A{0} \xB7 \u5F53\u524D\u8D44\u4EA7\uFF1A{1}":"Workspace: {0} \xB7 Active asset: {1}",\u672A\u7ED1\u5B9A:"Unbound",UI\u63A7\u4EF6:"UI Controls",\u76EE\u6807\u8BBE\u5907:"Target device",\u5C4F\u5E55\u6BD4\u4F8B:"Aspect ratio",\u753B\u5E03\u7F29\u653E:"Canvas zoom",\u9002\u5E94:"Fit","\u670D\u52A1\u7AEF\u903B\u8F91\uFF1A\u76D1\u542C\u4FE1\u53F7 / \u81EA\u5B9A\u4E49\u53D8\u91CF / \u73A9\u5BB61-8 \u56DE\u4F20":"Server logic: signals / custom variables / Player1\u20138 responses","Lua \u811A\u672C\u8D44\u4EA7\u7F16\u8F91":"Lua script asset editor",\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u5230\u5DE5\u4F5C\u533A:"Save the complete project to the workspace",\u4FDD\u5B58\u5B58\u6863:"Save Project",\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6\u5B58\u6863:"Load a save from the workspace","\u2913 \u5DE5\u4F5C\u533A\u5B58\u6863":"\u2913 Workspace Saves","\u672A\u53D1\u73B0 qxqy-simulator-save":"No qxqy-simulator-save found",\u5148\u7ED1\u5B9A\u4F1A\u8BDD\u5DE5\u4F5C\u533A:"Bind a session workspace first","\u5BFC\u5165\u5B58\u6863\u3001\u5355\u9879 UI \u8D44\u4EA7\u6216 Lua":"Import a save, individual UI asset, or Lua script","\u21E7 \u5BFC\u5165":"\u21E7 Import",\u5BFC\u51FA\u683C\u5F0F:"Export format","\u21E9 \u5BFC\u51FA":"\u21E9 Export","\u8D44\u4EA7\u5305 JSON\uFF08\u4E09\u7C7B\u5408\u4E00\uFF09":"Complete Save JSON (all three asset types)","\u8D44\u4EA7\u5305 GIA\uFF08\u5DF2\u6539\u52A8\u9879\uFF09":"Asset Bundle GIA (modified assets)","\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\uFF08\u63A7\u4EF6+\u811A\u672C\uFF09":"Combined GIA (controls + scripts)","\u5F53\u524D\u754C\u9762\uFF08\u5DE6\u680F\u6B63\u5728\u770B\u7684\u90A3\u68F5\u6811\uFF09":"Current UI (the tree shown on the left)","\u5F53\u524D\u754C\u9762 Authoring JSON":"Current UI Authoring JSON","\u5F53\u524D\u754C\u9762 GIA":"Current UI GIA",\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F:"Server Control Template","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF08\u4EC5\u5F53\u5DE6\u680F\u5207\u5230\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\u65F6\u624D\u662F\u9875\u9762\u5185\u5BB9\uFF09":"Client Control Templates (shown in the Client UI tab)","Lua \u811A\u672C":"Lua Scripts","\u811A\u672C\u5305 JSON\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle JSON (all scripts)","\u811A\u672C\u5305 GIA\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle GIA (all scripts)","\u6253\u5F00\u8BD5\u73A9\uFF1B\u65B0\u7A97\u53E3\u4E0D\u53EF\u7528\u65F6\u5728\u5E94\u7528\u5185\u8BD5\u73A9":"Open a playtest; use an embedded view if new windows are unavailable","\u6B63\u5728\u51C6\u5907\u2026":"Preparing\u2026","\u25B7 \u8BD5\u73A9 \u2197":"\u25B7 Playtest \u2197",\u91CD\u65B0\u8F7D\u5165:"Reload",\u7F16\u8F91\u9875\u9762:"Editor page","UI \u7F16\u8F91":"UI Editor","\u4E00\u4E2A\u5B58\u6863 \xB7 \u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F + \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F + Lua \u811A\u672C + \u670D\u52A1\u7AEF\u903B\u8F91":"One save \xB7 Server Control Templates + Client Control Templates + Lua Scripts + Server Logic","\u4E0A\u6B21\u5BFC\u51FA\u8BF4\u660E\uFF08{0} \u9879\uFF0C\u8BF7\u6838\u5BF9\u5BFC\u5165\u540E\u7684\u6548\u679C\uFF09":"Export notes ({0}; verify the result after import)",\u5173\u95ED\u5BFC\u51FA\u8BF4\u660E:"Close export notes",\u7F16\u8F91\u8D44\u6E90\u7C7B\u578B:"Asset type","\u7F16\u8F91\u5B58\u6863\u5185\u7684\u670D\u52A1\u7AEF UI \u63A7\u4EF6":"Edit the save's server UI controls","UI\u63A7\u4EF6-\u670D\u52A1\u7AEF":"Server UI",\u7F16\u8F91\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Edit the save's client control templates","UI\u63A7\u4EF6-\u5BA2\u6237\u7AEF":"Client UI",\u6A21\u677F\u4E0E\u5B50\u63A7\u4EF6:"Templates and Children",\u63A7\u4EF6\u6811:"Control Tree","{0} \u4E2A\u6A21\u677F \xB7 {1} \u4E2A\u63A7\u4EF6":"{0} templates \xB7 {1} controls","{0} \u4E2A\u8282\u70B9":"{0} nodes",\u641C\u7D22\u6A21\u677F\u6216\u63A7\u4EF6:"Search templates or controls",\u641C\u7D22\u63A7\u4EF6:"Search controls",\u6A21\u677F:"Template",\u6682\u4E0D\u652F\u6301:"Not supported yet","\u5728\u753B\u5E03\u4E0A\u663E\u793A\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Show on canvas (does not change initial visibility)","\u5728\u753B\u5E03\u4E0A\u9690\u85CF\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Hide on canvas (does not change initial visibility)","{0}\u753B\u5E03\u53EF\u89C1\u6027":"Canvas visibility: {0}",\u6CA1\u6709\u5339\u914D\u7684\u63A7\u4EF6:"No matching controls",\u5C42\u7EA7\u4E0E\u6A21\u677F\u8FB9\u754C:"Hierarchy and Templates",\u7236\u7EA7\u63A7\u4EF6:"Parent control",\u5DF2\u63D0\u5347\u4E3A\u53EF\u5B9E\u4F8B\u5316\u9876\u5C42\u6A21\u677F:"Promoted to an instantiable top-level template",\u5DF2\u8C03\u6574\u63A7\u4EF6\u7236\u7EA7:"Control parent changed","\u9876\u5C42\u6A21\u677F\uFF08\u53EF\u5B9E\u4F8B\u5316\uFF09":"Top-level template (instantiable)",\u5728\u540C\u7EA7\u4E2D\u4E0A\u79FB:"Move up among siblings",\u5728\u540C\u7EA7\u4E2D\u4E0B\u79FB:"Move down among siblings","\u8BE5\u8282\u70B9\u4F1A\u5199\u5165\u72EC\u7ACB UIControlTemplate\uFF0C\u53EF\u76F4\u63A5\u4F5C\u4E3A prefabId\u3002":"This node exports as a separate UIControlTemplate and can be used directly as prefabId.","\u5F53\u524D\u4E3A\u7B2C {0} \u5C42\u5B50\u63A7\u4EF6\uFF0C\u4E0D\u4F1A\u5355\u72EC\u6210\u4E3A prefabId\u3002":"This is a depth-{0} child control, not a standalone template for prefabId instantiation.",\u65B0\u589E\u72EC\u7ACB\u53EF\u5B9E\u4F8B\u5316\u6A21\u677F:"Create a separate instantiable template","\u6DFB\u52A0\u5230{0}":"Add to {0}",\u5F53\u524D\u63A7\u4EF6:"Current control",\u65B0\u589E\u9876\u5C42\u6A21\u677F:"Create a top-level template",\u9876\u5C42:"Top Level",\u5B50\u63A7\u4EF6:"Child",\u65B0\u589E:"New",\u6DFB\u52A0:"Add","Lua \u6A21\u677F\u9884\u89C8":"Lua Template Preview",\u754C\u9762\u63A7\u4EF6\u7EC4:"UI Control Group","{0} \xB7 {1}\xD7{2} \xB7 \u5DE6\u4E0B\u539F\u70B9":"{0} \xB7 {1}\xD7{2} \xB7 Bottom-left origin","\u25CF {0}\u7F16\u8F91":"\u25CF Editing {0}",\u63A7\u4EF6:"Control","\u5F53\u524D\uFF1A{0}":"Selected: {0}","GIA \u5BFC\u51FA\u540E\u53EF\u5728 Lua \u4E2D\u6309 prefabId \u5B9E\u4F8B\u5316":"After exporting GIA, instantiate in Lua using prefabId","\u5B57\u6BB5\u5728\u5931\u7126\u6216 Enter \u65F6\u63D0\u4EA4":"Commit fields on blur or Enter","\u4F5C\u8005 B\u7AD9\u4E3B\u9875":"Author's Bilibili profile",\u4F5C\u8005B\u7AD9:"Bilibili",\u53EF\u5B9E\u4F8B\u5316:"Instantiable","\u6A21\u677F\u7D22\u5F15 ":"Template index ","\u63A7\u4EF6 GUID ":"Control GUID ",\u8282\u70B9:"Node",\u57FA\u7840\u5C5E\u6027:"Properties",\u811A\u672C:"Script","\u6B63\u5728\u5237\u65B0\u7D20\u6750\u2026":"Refreshing asset\u2026","\u21BB \u91CD\u65B0\u4E0B\u8F7D\u6B64\u7D20\u6750":"\u21BB Download This Asset Again","\u767D\u540D\u5355\u56FE\u7247\u6309\u9700\u7F13\u5B58\uFF1B\u5237\u65B0\u4F1A\u91CD\u65B0\u8BBF\u95EE\u7D20\u6750\u6E90\u3002":"Supported images are cached on demand. Refreshing downloads them from the asset source.","\u232B \u5220\u9664\u5F53\u524D\u6A21\u677F":"\u232B Delete Template","\u232B \u5220\u9664\u5F53\u524D\u63A7\u4EF6":"\u232B Delete Control",\u8BF7\u9009\u62E9\u4E00\u4E2A\u63A7\u4EF6:"Select a control",'<!doctype html><meta charset="utf-8"><title>\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026</title><p>\u6B63\u5728\u4FDD\u5B58\u9879\u76EE\u5E76\u51C6\u5907\u8BD5\u73A9\u2026</p>':'<!doctype html><meta charset="utf-8"><title>Preparing playtest\u2026</title><p>Saving the project and preparing the playtest\u2026</p>',"\u505C\u6B62\u8BD5\u73A9\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\uFF1A{0}":"Could not stop the playtest. Retry: {0}","\u8BD5\u73A9\u9875\u672A\u80FD\u52A0\u8F7D\uFF0C\u8BF7\u8FD4\u56DE\u7F16\u8F91\u540E\u91CD\u8BD5\u3002":"The playtest page could not load. Return to the editor and retry.",\u8BD5\u73A9\u6B63\u5728\u5173\u95ED:"Closing playtest",\u5185\u5D4C\u8BD5\u73A9:"Embedded Playtest","\u6B63\u5728\u505C\u6B62\u8BD5\u73A9\u2026":"Stopping playtest\u2026","\u6B63\u5728\u8F7D\u5165\u8BD5\u73A9\u2026":"Loading playtest\u2026",\u5173\u95ED\u8BD5\u73A9:"Close Playtest",\u5343\u661F\u6C99\u7BB1\u8BD5\u73A9:"Miliastra Sandbox Playtest",\u672A\u53D8\u5316:"Unchanged","\u3010\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3011":"[Miliastra Sandbox Script Folder]",\u65B0\u589E\u6587\u4EF6:"New file",\u66F4\u65B0\u5DF2\u6709\u6587\u4EF6:"Update existing file","\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u66F4\u65B0":"Identical; no update needed",\u65E0\u6CD5\u590D\u5236:"Cannot copy",\u5B58\u6863\u91CC\u7F16\u8F91\u7684\u4EE3\u7801:"Code edited in the save","\u9879\u76EE\u4E2D\u7684 .lua \u6587\u4EF6":"Project .lua file","\u5B9E\u673A\u811A\u672C\u540C\u6B65 \xB7 {0}":"Sync Scripts to Game \xB7 {0}",\u5DF2\u8BBE\u7F6E\u6587\u4EF6\u5939:"Folders configured",\u5148\u8BBE\u7F6E\u6587\u4EF6\u5939:"Configure folders first","\u628A\u5F53\u524D\u5B58\u6863\u91CC\u7684 Lua \u811A\u672C\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u7528\u4E8E\u6E38\u620F\u5185\u6D4B\u8BD5\u3002\u64CD\u4F5C\u987A\u5E8F\uFF1A\u586B\u5199\u811A\u672C\u4F4D\u7F6E \u2192 \u4FDD\u5B58\u8BBE\u7F6E \u2192 \u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0 \u2192 \u786E\u8BA4\u590D\u5236\u3002":"Copy this save's Lua scripts into Miliastra Sandbox for in-game testing. Set folders \u2192 Save Settings \u2192 Save and Preview Changes \u2192 Confirm Copy.",\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939:"Project script folder","\u4F8B\u5982 workspace/my-game\uFF1B\u4E5F\u53EF\u4EE5\u7559\u7A7A":"e.g. workspace/my-game; may be left blank","\u586B\u5199\u5728\u5DE5\u4F5C\u533A\u91CC\u7684\u4F4D\u7F6E\uFF0C\u4F8B\u5982 workspace/my-game\uFF1B\u7559\u7A7A\u8868\u793A\u4F7F\u7528\u5DE5\u4F5C\u533A\u672C\u8EAB\u3002":"Enter a workspace-relative folder, e.g. workspace/my-game. Leave blank to use the workspace root.",\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939:"Miliastra Sandbox script folder","\u7C98\u8D34\u4EE5 default_import_file \u7ED3\u5C3E\u7684\u5B8C\u6574\u8DEF\u5F84":"Paste the full path ending in default_import_file","\u5173\u5361\u5B58\u653E\u5916\u90E8 Lua \u811A\u672C\u7684\u6587\u4EF6\u5939\uFF0C\u53EF\u70B9\u51FB\u300C\u53D1\u73B0\u672C\u673A\u76EE\u5F55\u300D\u67E5\u627E\u3002\u8BF7\u586B\u5199\u8FD0\u884C\u6A21\u62DF\u5668\u90A3\u53F0\u7535\u8111\u4E0A\u7684\u5B8C\u6574\u8DEF\u5F84\u3002":"The stage's folder for external Lua scripts. Use \u201CFind Local Folders\u201D to locate it. Enter the full path on the simulator host machine.",\u6E38\u620F\u91CC\u7684\u9879\u76EE\u5B50\u6587\u4EF6\u5939:"Project subfolder in the game","\u4E00\u822C\u548C\u201C\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939\u201D\u586B\u4E00\u6837\u7684\u5185\u5BB9\uFF0C\u4FDD\u7559\u539F\u6765\u7684\u6587\u4EF6\u4F4D\u7F6E\u3002\u7559\u7A7A\u5219\u76F4\u63A5\u653E\u8FDB\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3002":"Usually matches the project script folder to preserve file locations. Leave blank to place files directly in the Miliastra Sandbox script folder.",\u590D\u5236\u8DEF\u5F84\u793A\u4F8B:"Copy Path Example","\u590D\u5236\u793A\u4F8B\uFF1A":"Example destination:","\u6E38\u620F\u8D26\u53F7 UID\uFF1A{0} \xB7 \u5173\u5361\u76EE\u5F55\u7F16\u53F7\uFF1A{1}":"Game account UID: {0} \xB7 Stage folder ID: {1}",\u53D1\u73B0\u672C\u673A\u76EE\u5F55:"Find Local Folders","\u6CA1\u6709\u627E\u5230\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\u3002\u53EF\u4EE5\u624B\u52A8\u7C98\u8D34 default_import_file \u6587\u4EF6\u5939\u7684\u5B8C\u6574\u8DEF\u5F84\uFF1B\u5982\u679C\u8FD8\u6CA1\u5BFC\u5165\u811A\u672C\uFF0C\u8BF7\u5148\u5728\u5343\u661F\u6C99\u7BB1\u5B8C\u6210\u5BFC\u5165\u3002":"No game script folder found. Paste the full default_import_file path manually. If you have not imported scripts yet, do so in Miliastra Sandbox first.","\u627E\u5230 {0} \u4E2A\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u8BF7\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361\u3002":"Found {0} game script folders. Select the account and stage to update.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u4FDD\u5B58\u3002\u4E0B\u4E00\u6B65\u70B9\u51FB\u300C\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0\u300D\u3002":"Script folders saved. Next, click \u201CSave and Preview Changes\u201D.",\u6E05\u9664\u8BBE\u7F6E:"Clear Settings","\u5DF2\u6E05\u9664\u811A\u672C\u4F4D\u7F6E\u8BBE\u7F6E\u3002\u6E38\u620F\u91CC\u7684\u811A\u672C\u6587\u4EF6\u4ECD\u7136\u4FDD\u7559\u3002":"Script folder settings cleared. Existing files in the game are kept.",\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361:"Select the Account and Stage","\u8BF7\u9009\u62E9\u6E38\u620F\u8D26\u53F7\u548C\u5173\u5361\u6587\u4EF6\u5939\u2026":"Select a game account and stage folder\u2026","\u8D26\u53F7 {0} / \u5173\u5361\u76EE\u5F55 {1} \xB7 {2}":"Account {0} / Stage folder {1} \xB7 {2}",\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6:"Simulator save file","\u4F8B\u5982 my-game.save.json":"e.g. my-game.save.json","\u586B\u5199\u5DE5\u4F5C\u533A\u91CC\u7684\u5B58\u6863\u6587\u4EF6\u540D\u6216\u8DEF\u5F84\u3002\u4FDD\u5B58\u8BBE\u7F6E\u65F6\u4F1A\u4E00\u8D77\u4FDD\u5B58\u9879\u76EE\uFF0C\u4E0B\u6B21\u6253\u5F00\u5B58\u6863\u5373\u53EF\u590D\u7528\u3002":"Enter a save filename or path within the workspace. Saving these settings also saves the project so they are available next time.",\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0:"Save and Preview Changes","\u8BF7\u5148\u586B\u5199\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u5E76\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Enter the Miliastra Sandbox script folder and click \u201CSave Settings\u201D first.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u6539\u52A8\uFF0C\u8BF7\u5148\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Script folders changed. Click \u201CSave Settings\u201D first.","\u8BF7\u5148\u586B\u5199\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6\u540D\u3002":"Enter a simulator save filename first.","\u6B63\u5728\u5904\u7406\uFF0C\u8BF7\u7A0D\u5019\u2026":"Working, please wait\u2026",\u811A\u672C\u540C\u6B65\u786E\u8BA4:"Confirm Script Copy","\u672C\u6B21\u66F4\u65B0\u5230\uFF1A{0}":"Destination: {0}","\u8FD9\u4E2A\u5B58\u6863\u8FD8\u6CA1\u6709 Lua \u811A\u672C\u3002\u8BF7\u5148\u5728\u4E0B\u65B9\u6DFB\u52A0\u811A\u672C\uFF0C\u518D\u67E5\u770B\u66F4\u65B0\u3002":"This save has no Lua scripts. Add a script below, then preview the changes.","\u6240\u6709\u811A\u672C\u90FD\u4E0E\u6E38\u620F\u6587\u4EF6\u5939\u91CC\u7684\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u590D\u5236\u3002":"All scripts match the game folder. Nothing to copy.","\u6709\u63A7\u4EF6\u7D22\u5F15\u5C1A\u672A\u540C\u6B65\u5230 Lua\u3002\u8BF7\u5148\u5728\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\uFF0C\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\uFF1B\u5904\u7406\u5B8C\u6210\u540E\u518D\u67E5\u770B\u6E38\u620F\u811A\u672C\u66F4\u65B0\u3002":"Some control index changes are not reflected in Lua. Use \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above before previewing game script changes.","\u590D\u5236\u7684\u4EE3\u7801\u6765\u81EA\uFF1A{0}":"Code source: {0}","\u65E0\u6CD5\u590D\u5236\uFF1A{0}":"Cannot copy: {0}","\u590D\u5236\u5230\uFF1A{0}":"Copy to: {0}","\u8FD9\u4E2A\u811A\u672C\u5728\u5B58\u6863\u91CC\u548C\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u4E0D\u540C\u3002\u672C\u6B21\u4F1A\u590D\u5236\u5B58\u6863\u91CC\u7684\u4EE3\u7801\uFF1B\u5982\u679C\u8981\u4F7F\u7528\u9879\u76EE\u6587\u4EF6\uFF0C\u8BF7\u70B9\u51FB\u300C\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u300D\uFF0C\u7136\u540E\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u3002":"The saved script differs from its project file. This copy uses the saved code. To use the project file instead, choose \u201CUse Project File Code\u201D, then preview changes again.",\u67E5\u770B\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"View Project File Code",\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"Use Project File Code",\u5BF9\u6BD4\u66F4\u65B0\u524D\u540E\u7684\u4EE3\u7801:"Compare Changes",\u6E38\u620F\u91CC\u73B0\u5728\u7684\u4EE3\u7801:"Current Code in the Game","\uFF08\u6E38\u620F\u91CC\u8FD8\u6CA1\u6709\u8FD9\u4E2A\u6587\u4EF6\uFF09":"(This file does not exist in the game yet)",\u672C\u6B21\u8981\u590D\u5236\u7684\u4EE3\u7801:"Code to Copy","\u65B0\u589E\u811A\u672C\u590D\u5236\u540E\uFF0C\u8FD8\u9700\u8981\u5728\u5343\u661F\u6C99\u7BB1\u91CC\u5173\u8054\u5BF9\u5E94\u7684\u811A\u672C\u6587\u4EF6\uFF1B\u9700\u8981\u76F4\u63A5\u8FD0\u884C\u7684\u811A\u672C\u8FD8\u8981\u6302\u5230\u63A7\u4EF6\u4E0A\u3002":"After copying new scripts, link their files in Miliastra Sandbox. Scripts that should run directly must also be attached to controls.","\u5DF2\u9009 {0} \u4E2A\u811A\u672C\uFF0C\u5176\u4E2D {1} \u4E2A\u4F1A\u66FF\u6362\u6E38\u620F\u91CC\u7684\u65E7\u6587\u4EF6\u3002\u66FF\u6362\u524D\u4F1A\u81EA\u52A8\u5907\u4EFD\u65E7\u6587\u4EF6\uFF0C\u6E38\u620F\u91CC\u7684\u5176\u4ED6\u6587\u4EF6\u4F1A\u4FDD\u7559\u3002":"Selected {0} scripts; {1} will replace existing game files. Replaced files are backed up. Other files are kept.",\u8986\u76D6:"Replace",\u6682\u4E0D\u590D\u5236:"Cancel","\u786E\u8BA4\u590D\u5236 {0} \u4E2A\u811A\u672C":"Confirm Copy of {0} Scripts",\u811A\u672C\u5DF2\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1:"Scripts Copied to Miliastra Sandbox",\u6709\u4E9B\u811A\u672C\u672A\u590D\u5236\u6210\u529F:"Some Scripts Could Not Be Copied","\u4E0B\u4E00\u6B65\uFF1A\u56DE\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u4FDD\u5B58\u5173\u5361\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF0C\u8BA9\u6E38\u620F\u52A0\u8F7D\u66F4\u65B0\u540E\u7684\u811A\u672C\u3002":"Next: Return to Miliastra Sandbox, save the stage, and start a new playtest to load the updated scripts.","\u8BF7\u6309\u4E0B\u65B9\u63D0\u793A\u5904\u7406\u5931\u8D25\u7684\u6587\u4EF6\uFF0C\u518D\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u5E76\u590D\u5236\u3002":"Resolve the failed files using the notes below, then preview and copy again.","\u590D\u5236\u65F6\u95F4\uFF1A{0} \xB7 \u65E7\u6587\u4EF6\u5907\u4EFD\u4FDD\u5B58\u5728\uFF1A{1}":"Copied at: {0} \xB7 Backups: {1}",\u6210\u529F:"Success",\u5DF2\u590D\u5236:"Copied",\u672A\u590D\u5236:"Not copied",\u5207\u6362\u5230\u4EAE\u8272\u4E3B\u9898:"Switch to light theme",\u5207\u6362\u5230\u6697\u8272\u4E3B\u9898:"Switch to dark theme",\u5F53\u524D\u5B58\u6863:"Current save","\u5F53\u524D\u8D44\u4EA7\u6CA1\u6709\u63A7\u4EF6\u3002":"This asset has no controls.","\u6253\u5F00\u5B58\u6863\u540E\u663E\u793A\u63A7\u4EF6\u7ED3\u6784\u3002":"Open a save to view its control structure.",\u672A\u9009\u62E9:"None selected",\u7C7B\u578B:"Type",\u6811\u6DF1\u5EA6:"Tree depth",\u7236\u8282\u70B9:"Parent node","\u8BD5\u73A9\u542F\u52A8\u540E\u663E\u793A Lua \u65E5\u5FD7\u3002":"Lua logs appear after starting a playtest.",\u5B58\u6863\u52A0\u8F7D\u5931\u8D25:"Failed to Load Save",\u7B49\u5F85\u5DE5\u4F5C\u533A\u5B58\u6863:"Waiting for a Workspace Save","\u6B63\u5728\u76D1\u542C {0}\u3002":"Watching {0}.","{0}Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"{0}Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.",\u8BD5\u73A9\u5C1A\u672A\u542F\u52A8:"Playtest Not Started","\u9009\u62E9\u8BBE\u5907\u5E76\u70B9\u51FB\u201C\u542F\u52A8\u201D\uFF0C\u5373\u53EF\u8FD0\u884C Lua \u548C\u4EA4\u4E92\u903B\u8F91\u3002":"Select a device and click \u201CStart\u201D to run Lua scripts and interactions.",\u7B49\u5F85\u5B58\u6863:"Waiting for a Save",\u5C1A\u672A\u6253\u5F00\u5B58\u6863:"No save open"," \xB7 \u5DF2\u6682\u505C":" \xB7 Paused","\u7B49\u5F85\u542F\u52A8 Runtime":"Waiting to start Runtime","\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8 \xB7 \u78C1\u76D8\u81EA\u52A8\u5237\u65B0":"Static editor preview \xB7 Refreshes from disk automatically","\u7F16\u8F91\u5668\u753B\u9762\u52A0\u8F7D\u5931\u8D25\u3002":"Failed to load the editor preview.","\u670D\u52A1\u7248\u672C\u672A\u77E5\uFF0C\u8BF7\u66F4\u65B0 Web":"Unknown server version. Update the Web package.",\u5B9E\u65F6\u76D1\u542C\u4E2D:"Live",\u8FDE\u63A5\u4E2D\u65AD:"Disconnected",\u5F00\u542F\u58F0\u97F3:"Enable Sound",\u58F0\u97F3\u5DF2\u5173\u95ED:"Sound Off",\u58F0\u97F3\u5DF2\u5F00\u542F:"Sound On",\u70B9\u51FB\u6216\u5728\u753B\u5E03\u5185\u64CD\u4F5C\u4EE5\u89E3\u9501\u97F3\u6548:"Click or interact with the canvas to enable audio",\u5207\u6362\u9759\u97F3:"Toggle mute","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5F00":"Key Input: On","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5173":"Key Input: Off",\u5DF2\u6253\u5F00\u5B58\u6863:"Save opened",\u5DF2\u91CD\u65B0\u8BFB\u53D6\u78C1\u76D8\u5B58\u6863:"Save reloaded from disk","\u65E5\u5FD7\u5DF2\u5728\u5F53\u524D\u89C6\u56FE\u6E05\u7A7A\u3002":"Logs cleared in this view.",\u6B63\u5728\u91CD\u8FDE:"Reconnecting","\u68C0\u6D4B\u5230\u5B58\u6863\u53D8\u5316\uFF0C\u9884\u89C8\u5DF2\u66F4\u65B0":"Save changed; preview updated",\u9884\u89C8\u5B58\u6863\u5DF2\u6253\u5F00:"Preview save opened","\u624B\u673A 1280\xD7720":"Mobile 1280\xD7720","\u624B\u673A 1560\xD7720":"Mobile 1560\xD7720","\u624B\u673A 1280\xD7960":"Mobile 1280\xD7960",\u540D\u79F0:"Name",\u521D\u59CB\u6FC0\u6D3B:"Initially Active",\u521D\u59CB\u53EF\u89C1\u6027:"Initially Visible",\u53EF\u88AB\u624B\u67C4\u6447\u6746\u5BFC\u822A\u9009\u4E2D:"Selectable by Controller Navigation","\u4F4D\u7F6E X":"Location X","\u4F4D\u7F6E Y":"Location Y","\u5927\u5C0F W":"Width","\u5927\u5C0F H":"Height","\u65CB\u8F6C X":"Rotation X","\u65CB\u8F6C Y":"Rotation Y","\u65CB\u8F6C Z":"Rotation Z",\u540C\u6B65\u4FE1\u606F\u81F3\u6240\u6709\u8BBE\u5907:"Sync Layout Across Devices",\u951A\u70B9\u7C7B\u578B:"Anchor Preset",\u5C45\u4E2D:"Center",\u5DE6\u4E0A:"Top Left",\u4E0A\u65B9:"Top",\u53F3\u4E0A:"Top Right",\u5DE6\u4FA7:"Left",\u53F3\u4FA7:"Right",\u5DE6\u4E0B:"Bottom Left",\u4E0B\u65B9:"Bottom",\u53F3\u4E0B:"Bottom Right",\u53CC\u5411\u62C9\u4F38:"Stretch Both Axes",\u6C34\u5E73\u62C9\u4F38:"Stretch Horizontally",\u5782\u76F4\u62C9\u4F38:"Stretch Vertically",\u81EA\u5B9A\u4E49:"Custom","\u951A\u70B9 Min X":"Anchor Min X","\u951A\u70B9 Min Y":"Anchor Min Y","\u951A\u70B9 Max X":"Anchor Max X","\u951A\u70B9 Max Y":"Anchor Max Y","\u4E2D\u5FC3 X":"Pivot X","\u4E2D\u5FC3 Y":"Pivot Y",\u9694\u79BB\u624B\u67C4\u5BFC\u822A:"Isolate Controller Navigation",\u5C4F\u853D\u6309\u952E\u4E8B\u4EF6\u7A7F\u900F:"Block Key Event Passthrough",\u5C4F\u853D\u533A\u57DF\u5185\u70B9\u51FB\u4E8B\u4EF6\u7A7F\u900F:"Block Click Event Passthrough in Area",\u663E\u793A\u5E38\u9A7B\u5149\u6807:"Show Persistent Cursor",\u5B57\u53F7:"Font Size",\u5B57\u53F7\u81EA\u9002\u5E94:"Auto Font Size",\u6700\u5C0F\u5B57\u53F7:"Minimum Font Size",\u6587\u672C\u8272:"Text Color",\u80CC\u666F\u8272:"Background Color",\u542F\u7528\u63CF\u8FB9:"Enable Outline",\u63CF\u8FB9\u8272:"Outline Color",\u6C34\u5E73\u5BF9\u9F50:"Horizontal Alignment",\u5DE6\u5BF9\u9F50:"Left",\u53F3\u5BF9\u9F50:"Right",\u5782\u76F4\u5BF9\u9F50:"Vertical Alignment",\u9876\u90E8:"Top",\u5E95\u90E8:"Bottom",\u6587\u672C:"Text",\u56FE\u7247\u6E90:"Image Source",\u9759\u6001\u5F15\u7528:"Static Reference",\u5143\u4EF6:"Prefab",\u586B\u5145\u8272:"Fill Color",\u5F00\u542F\u906E\u7F69:"Enable Mask",\u8FB9\u7F18\u7FBD\u5316:"Soft Edge",\u7FBD\u5316\u6A21\u5F0F:"Soft Edge Mode",\u767E\u5206\u6BD4:"Percentage",\u50CF\u7D20:"Pixels","\u7FBD\u5316\u5BBD\u5EA6 X":"Soft Edge Width X","\u7FBD\u5316\u5BBD\u5EA6 Y":"Soft Edge Width Y",\u6C34\u5E73\u7FBD\u5316\u8303\u56F4:"Horizontal Soft Edge Range",\u5782\u76F4\u7FBD\u5316\u8303\u56F4:"Vertical Soft Edge Range",\u6309\u8FDB\u5EA6\u586B\u5145:"Fill by Progress",\u5F62\u72B6:"Shape",\u6A2A\u5411:"Horizontal",\u7EB5\u5411:"Vertical","90\u5EA6\u73AF\u7ED5":"Radial90","180\u5EA6\u73AF\u7ED5":"Radial180","360\u5EA6\u73AF\u7ED5":"Radial360",\u65B9\u5411:"Direction",\u4ECE\u5DE6\u81F3\u53F3:"From Left to Right",\u4ECE\u53F3\u81F3\u5DE6:"From Right to Left",\u4ECE\u4E0B\u81F3\u4E0A:"From Bottom to Top",\u4ECE\u4E0A\u81F3\u4E0B:"From Top to Bottom",\u8D77\u70B9:"Origin",\u8FDB\u5EA6:"Progress",\u906E\u7F69\u533A\u57DF\u53CD\u8F6C:"Invert Mask Area",\u672A\u8BBE\u7F6E:"Not set",\u53EF\u88AB\u5149\u6807\u5C04\u7EBF\u68C0\u6D4B:"Raycast Target",\u6309\u94AE\u662F\u5426\u53EF\u7528:"Interactable",\u4E0D\u53EF\u7528\u72B6\u6001\u8282\u70B9:"Unavailable Status Nodes",\u60AC\u505C\u72B6\u6001\u8282\u70B9:"Hover Status Nodes",\u6309\u4E0B\u72B6\u6001\u8282\u70B9:"Pressed Status Nodes",\u9009\u4E2D\u72B6\u6001\u8282\u70B9:"Selected Status Nodes",\u70B9\u51FB\u97F3\u6548:"Click Sound",\u5F15\u7528\u63A7\u4EF6\u6A21\u677F\u7D22\u5F15:"Referenced Control Template Index",\u5141\u8BB8\u6EDA\u52A8\u4EA4\u4E92:"Enable Scrolling",\u663E\u793A\u6EDA\u52A8\u6761:"Show Scrollbar",\u5217\u8868\u9879\u6A21\u677F\u7D22\u5F15:"Item Template Index",\u6EDA\u52A8\u65B9\u5411:"Scroll Direction",\u6392\u5217\u9650\u5236:"Layout Constraint",\u81EA\u52A8\u6362\u884C:"Automatic Wrapping",\u56FA\u5B9A\u884C\u5217\u6570:"Fixed Row / Column Count",\u6BCF\u884C\u6216\u6BCF\u5217\u6570\u91CF:"Items per Row / Column","\u5217\u8868\u9879\u5927\u5C0F W":"Item Width","\u5217\u8868\u9879\u5927\u5C0F H":"Item Height","\u5217\u8868\u9879\u95F4\u9694 X":"Item Spacing X","\u5217\u8868\u9879\u95F4\u9694 Y":"Item Spacing Y","\u8FB9\u8DDD\u5411\u91CF 1 X":"Padding 1 X","\u8FB9\u8DDD\u5411\u91CF 1 Y":"Padding 1 Y","\u8FB9\u8DDD\u5411\u91CF 2 X":"Padding 2 X","\u8FB9\u8DDD\u5411\u91CF 2 Y":"Padding 2 Y",\u9884\u89C8\u6570\u91CF:"Preview Count",\u952E\u9F20\u6309\u952E:"Keyboard / Mouse Key",\u624B\u67C4\u6309\u952E:"Controller Button",\u52A8\u6548\u7D22\u5F15:"Animation Index",\u5168\u5C4F\u52A8\u6548\u7D22\u5F15:"Fullscreen Animation Index",\u5B8C\u6574\u5EA6:"Support Status","\u8BD5\u73A9\u652F\u6301\u57FA\u7840\u6EDA\u52A8\uFF1B\u6EDA\u52A8\u4EA4\u4E92\u3001\u6EDA\u52A8\u6761\u53CA\u5217\u8868\u914D\u7F6E\u4EE5 JSON/Lua \u4E3A\u51C6\uFF0C\u76F8\u5173 GIA \u5F00\u5173\u6620\u5C04\u5C1A\u672A\u6838\u5B9E\u3002":"Basic scrolling is supported in playtests. Configure interaction, scrollbars, and lists through JSON/Lua; the related GIA flags are not yet verified.","\u672C\u9636\u6BB5\u4EC5\u516C\u5171\u53D8\u6362\uFF0C\u4E1A\u52A1\u69FD\u4E0D\u5B8C\u6574":"Only common transforms are supported at this stage; control-specific fields are incomplete.",\u5173\u5361:"Stage",\u5F53\u524D\u73A9\u5BB6:"Current Player",\u5F53\u524D\u89D2\u8272:"Current Character","\u73A9\u5BB6{0}":"Player {0}","\u89D2\u8272{0}":"Character {0}","\u63A7\u4EF6\u7D22\u5F15\u5FC5\u987B\u662F 1\u20132147483647 \u8303\u56F4\u5185\u7684\u6574\u6570":"Control indices must be integers from 1 to 2147483647","controlGuidChanges \u5FC5\u987B\u662F\u6570\u7EC4":"controlGuidChanges must be an array","controlGuidChanges \u5305\u542B\u65E0\u6548\u6216\u91CD\u590D\u7684\u53D8\u66F4\u8BB0\u5F55":"controlGuidChanges contains invalid or duplicate changes","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 batchId":"controlGuidChanges contains an invalid batchId","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 scriptSignature":"controlGuidChanges contains an invalid scriptSignature",\u672A\u547D\u540D\u754C\u9762:"Untitled UI",\u672A\u547D\u540D\u754C\u9762\u63A7\u4EF6\u7EC4:"Untitled UI Control Group",\u6574\u5408\u5305\u9700\u8981\u670D\u52A1\u7AEF\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u4E0B\u81F3\u5C11\u6709\u4E00\u4E2A\u6839\u63A7\u4EF6:"A combined bundle requires at least one root control inside the server-side Client Control Container","{0} \xB7 \u6574\u5408\u5305.gia":"{0} \xB7 Combined.gia",\u6302\u8F7D\u76EE\u6807\u5FC5\u987B\u662F\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Attachment targets must be client controls or client control templates in the save","\u811A\u672C\u4E0D\u5B58\u5728: {0}":"Script not found: {0}",\u4EC5\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u5141\u8BB8\u4FEE\u6539\u7D22\u5F15:"Only client controls and client control templates support index changes","autoFillClientGuids \u5FC5\u987B\u662F\u5E03\u5C14\u503C":"autoFillClientGuids must be a boolean","\u81EA\u52A8\u586B\u5145\u4EC5\u652F\u6301\u5BA2\u6237\u7AEF\u6A21\u677F\u5217\u8868\uFF1B\u670D\u52A1\u7AEF\u754C\u9762\u7684\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199":"Autofill is only available for client templates. Enter server UI indices separately.","\u5BA2\u6237\u7AEF\u6A21\u677F\u5B58\u5728\u91CD\u590D\u65E7\u7D22\u5F15\uFF0C\u65E0\u6CD5\u81EA\u52A8\u586B\u5145\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49":"Client templates contain duplicate old indices. Resolve the ambiguity before using autofill.","\u63A7\u4EF6\u7D22\u5F15 {0} \u5DF2\u88AB\u300C{1}\u300D\u5360\u7528\uFF1B\u8BF7\u5148\u586B\u5199\u5B83\u7684\u5B9E\u9645\u7D22\u5F15\u3002\u672C\u6B21\u672A\u4FEE\u6539\u4EFB\u4F55\u7D22\u5F15\u3002":"Control index {0} is already used by \u201C{1}\u201D. Enter its actual index first. No indices were changed.","\u65E7\u7D22\u5F15 {0} \u5728\u591A\u68F5\u8D44\u4EA7\u6811\u4E2D\u91CD\u590D\uFF0C\u65E0\u6CD5\u786E\u5B9A\u6A21\u677F\u5F15\u7528\u5F52\u5C5E\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49\u540E\u4FEE\u6539":"Old index {0} appears in multiple asset trees, so the template reference is ambiguous. Resolve it before making changes.","\u8BF7\u660E\u786E\u6307\u5B9A\u5DF2\u6838\u5BF9 Lua \u5F15\u7528\u7684\u6709\u6548\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55 changeIds":"Specify valid changeIds whose Lua references have been reviewed",\u5B58\u6863\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A:"The save name cannot be empty","\u63A7\u4EF6\u7D22\u5F15\u5F85\u6838\u5BF9 Lua \u5F15\u7528\uFF1A{0} / {1} ({2})\uFF1A{3} \u2192 {4}\u3002\u8BF7\u6309\u8BED\u4E49\u66F4\u65B0\u811A\u672C\u4E2D\u7684\u63A7\u4EF6\u7D22\u5F15\u5F15\u7528\uFF0C\u6838\u5BF9\u540E\u786E\u8BA4\u53D8\u66F4\u8BB0\u5F55 {5}\uFF1B\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\u3002":"Review Lua references for control index change: {0} / {1} ({2}): {3} \u2192 {4}. Update references by meaning, then acknowledge change {5}. Do not globally replace equal numbers.","{0} \xB7 \u8D44\u4EA7\u5305.json":"{0} \xB7 Assets.json","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u6A71\u7A97\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default server UI was omitted from the asset bundle GIA.","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u300CLua\u5B9E\u4F8B\u5316\u9762\u677F\u300D\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default client control template was omitted from the asset bundle GIA.","\u8D44\u4EA7\u5305 GIA \u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5DF2\u6539\u52A8\u9879\uFF1B\u8BF7\u5148\u7F16\u8F91\u5F53\u524D\u754C\u9762\uFF0C\u6216\u6539\u7528\u300C\u5F53\u524D\u754C\u9762 GIA\u300D\u3002":"There are no modified assets to export. Edit the UI first, or use \u201CCurrent UI GIA\u201D.","{0} \xB7 \u811A\u672C.json":"{0} \xB7 Scripts.json","{0} \xB7 \u811A\u672C.gia":"{0} \xB7 Scripts.gia","\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684 Lua \u811A\u672C\uFF0C\u8BF7\u5148\u5728\u201CLua \u811A\u672C\u201D\u9875\u521B\u5EFA":"No Lua scripts to export. Create one on the Lua Scripts page first.","\u5F53\u524D\u670D\u52A1\u5668\u63A7\u4EF6 GIA \u4E0D\u5305\u542B {0} \u4E2A Lua \u811A\u672C\u7684\u6E90\u7801\uFF1B\u8BF7\u4F7F\u7528\u300C\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\u300D\uFF0C\u6216\u53E6\u884C\u5BFC\u5165\u811A\u672C\u5305\u5E76\u6838\u5BF9\u6302\u8F7D\u3002":"This server UI GIA does not contain source for {0} Lua scripts. Use \u201CCombined GIA\u201D or import the script bundle separately and check attachments.","JSON \u6587\u4EF6\u65E0\u6548":"Invalid JSON file","\u6574\u5408\u5305\u5DF2\u62C6\u56DE\u300CUI\u63A7\u4EF6-\u670D\u52A1\u7AEF\u300D\u4E0E\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\uFF1B\u5BA2\u6237\u7AEF\u6A21\u677F\u8FB9\u754C\u5DF2\u4FDD\u7559\u3002":"Combined bundle split back into Server UI and Client UI. Client template boundaries were preserved.","\u811A\u672C GUID {0} \u540C\u65F6\u6302\u8F7D\u5230\u591A\u4E2A\u63A7\u4EF6\uFF0C\u5DF2\u4FDD\u7559\u201C{1}\u201D\u76EE\u6807\u3002":"Script GUID {0} was attached to multiple controls. The \u201C{1}\u201D target was kept.",\u670D\u52A1\u7AEF:"Server",\u5BA2\u6237\u7AEF:"Client","\u5355\u8D44\u4EA7 JSON \u7684\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u5BFC\u5165\u8D44\u4EA7":"Index change records in a single-asset JSON must belong to the imported asset","\u811A\u672C {0} \u8BFB\u53D6\u5931\u8D25: {1}":"Failed to read script {0}: {1}","\u5343\u661F\u6C99\u7BB1 \xB7 \u72EC\u7ACB\u8BD5\u73A9":"Miliastra Sandbox \xB7 Standalone Playtest",\u6A21\u62DF\u5668:"Simulator",\u5207\u6362\u8BBE\u5907\u753B\u5E03:"Switch Device Canvas","\u5207\u6362\u8BBE\u5907\u753B\u5E03\uFF1A\u4EE5\u65B0\u753B\u5E03\u91CD\u5EFA\u8FD0\u884C\u65F6\uFF0CGetUICanvasSize \u4E0E\u9884\u8BBE\u50CF\u7D20\u4E00\u81F4":"Rebuild the runtime for the selected canvas. GetUICanvasSize matches the preset's pixel dimensions.",\u8BD5\u73A9\u4EBA\u6570:"Player count","\u8BD5\u73A9\u4EBA\u6570\uFF1A\u6700\u591A 8 \u4EBA\uFF0C\u6BCF\u4EBA\u4E00\u4EFD\u72EC\u7ACB\u5BA2\u6237\u7AEF":"Up to 8 players, each with a separate client instance",\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2:"Current player view","\u5207\u6362\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2\uFF1A\u8F93\u5165\u3001\u753B\u9762\u548C PlayerSelf \u90FD\u8DDF\u968F\u8BE5\u73A9\u5BB6":"Change the active player for input, rendering, and PlayerSelf",\u8BBE\u5907:"Device","\u51C6\u5907\u4E2D\u2026":"Preparing...",\u8BD5\u73A9\u9875\u9762:"Playtest page",\u8BD5\u73A9:"Playtest",\u65E5\u5FD7:"Logs","\u8F6C\u53D1\u5B98\u65B9\u952E\u4F4D\u7684\u6309\u4E0B/\u62AC\u8D77\u4E8B\u4EF6\uFF08\u542B\u9F20\u6807\u5DE6\u53F3\u952E\uFF09\uFF1B\u5173\u95ED\u4E0D\u5F71\u54CD\u753B\u5E03\u70B9\u51FB":"Forward supported key/button down and up events, including mouse buttons. Turning this off does not disable canvas clicks.",\u70B9\u51FB\u89E3\u9501\u6D4F\u89C8\u5668\u97F3\u6548:"Click to enable browser audio","\u2161 \u6682\u505C\u8FD0\u884C":"\u2161 Pause",\u6682\u505C\u540E\u53EF\u5355\u5E27\u8C03\u8BD5:"Pause to step through individual frames","\u25B7 \u5355\u5E27\u8C03\u8BD5":"\u25B7 Step One Frame","\u25A0 \u7ED3\u675F\u8BD5\u73A9":"\u25A0 Stop Playtest","\u21BB \u91CD\u65B0\u5F00\u59CB":"\u21BB Restart",\u5207\u6362\u4EAE\u6697\u4E3B\u9898:"Toggle light / dark theme",\u8FD4\u56DE\u7F16\u8F91:"Back to Editor","\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026":"Preparing playtest\u2026",\u8FD0\u884C\u65F6\u573A\u666F\u6811:"Runtime Scene Tree","0 \u8282\u70B9":"0 nodes",\u670D\u52A1\u7AEF\u53D8\u91CF:"Server Variables","0 \u9879":"0 items",\u5BA2\u6237\u7AEF\u811A\u672C\u65E5\u5FD7:"Client Script Logs","\u6700\u8FD1 100 \u6761":"Latest 100 entries",\u670D\u52A1\u7AEF\u65E5\u5FD7:"Server Logs","\u53D8\u91CF / \u4FE1\u53F7":"Variables / signals",\u81EA\u52A8\u6D4B\u7528\u4F8B:"Automated Test Case","\u5148\u8BD5\u73A9\uFF0C\u518D\u4FDD\u5B58\u56DE\u653E":"Play first, then save a replay",'\u65AD\u8A00 JSON \u6570\u7EC4\uFF0C\u4F8B\u5982 [{"kind":"log","contains":"clicked"}]':'JSON assertion array, e.g. [{"kind":"log","contains":"clicked"}]',\u4FDD\u5B58\u7528\u4F8B:"Save Test Case",\u56DE\u653E\u7528\u4F8B:"Replay Test Case","\u25CF \u6B63\u5728\u542F\u52A8":"\u25CF Starting","\u9875\u9762\uFF1A\u8BD5\u73A9":"View: Playtest","\u9875\u9762\uFF1A\u65E5\u5FD7":"View: Logs",\u8BD5\u73A9\u8BF7\u6C42\u5931\u8D25:"Playtest request failed"," \u9879":" items","\u6682\u65E0\u81EA\u5B9A\u4E49\u53D8\u91CF\u3002\u811A\u672C Get/Set \u6216 serverSet \u4E4B\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"No custom variables yet. They appear after script Get/Set calls or serverSet.","\u5B8C\u6574\u8FD0\u884C\u6811\u8BF7\u7528 Agent \u7684 inspect \u5FEB\u7167\u3002\u821E\u53F0\u6309\u5DE6\u6811\u4E0A\u65B9\u76D6\u4F4F\u4E0B\u65B9\u7ED8\u5236\u3002":"Use an Agent inspect snapshot for the full runtime tree. Items higher in the left tree draw over those below."," \u4E2A\u53EF\u89C1\u56FE\u5143":" visible primitives","\u25B6 \u7EE7\u7EED\u8FD0\u884C":"\u25B6 Resume"," \u4EBA":" players",\u73A9\u5BB6:"Player"," \xB7 \u73A9\u5BB6":" \xB7 Player "," \xB7 \u70B9\u51FB\u8F93\u5165":" \xB7 Click to focus","\u26A0 \u811A\u672C\u6302\u8F7D\u5931\u8D25":"\u26A0 Script attachment failed","\u2161 \u5DF2\u6682\u505C":"\u2161 Paused","\u25CF \u8BD5\u73A9\u8FD0\u884C\u4E2D":"\u25CF Playtest running","\u5DF2\u8BB0\u5F55 ":"Recorded "," \u6B65":" steps","\u26A0 \u8BD5\u73A9\u9519\u8BEF":"\u26A0 Playtest error","\u25A0 \u8BD5\u73A9\u5DF2\u7ED3\u675F\uFF0C\u53EF\u91CD\u65B0\u5F00\u59CB\u6216\u8FD4\u56DE\u7F16\u8F91":"\u25A0 Playtest stopped. Restart or return to the editor.","\u65AD\u8A00\u5FC5\u987B\u662F JSON \u6570\u7EC4":"Assertions must be a JSON array","\u5DF2\u4FDD\u5B58 ":"Saved "," \u6B65 / ":" steps / "," \u6761\u65AD\u8A00":" assertions",\u56DE\u653E\u901A\u8FC7:"Replay passed","\u56DE\u653E\u5931\u8D25 @":"Replay failed @","\u7F3A\u5C11\u4F1A\u8BDD ID":"Missing session ID","\u5343\u661F\u6A21\u62DF\u5668 \xB7 Live Preview":"Miliastra Simulator \xB7 Live Preview","\u5343\u661F\u6A21\u62DF\u5668 \xB7 \u7F16\u8F91\u5DE5\u4F5C\u53F0":"Miliastra Simulator \xB7 Editor","Web Preview \xB7 \u5B9E\u65F6\u9884\u89C8":"Web Preview \xB7 Live Preview",\u5DE5\u4F5C\u533A\u5B58\u6863:"Workspace Saves",\u91CD\u65B0\u8BFB\u53D6\u5B58\u6863:"Reload save from disk","\u7F16\u8F91\u5DE5\u4F5C\u53F0 \u2197":"Open Editor \u2197",\u6B63\u5728\u8FDE\u63A5:"Connecting",\u9884\u89C8\u6A21\u5F0F:"Preview mode",\u7F16\u8F91\u5668:"Editor",\u8D44\u4EA7:"Asset","\u670D\u52A1\u7AEF UI":"Server UI",\u5BA2\u6237\u7AEF\u6A21\u677F:"Client Templates","\u25B6 \u542F\u52A8":"\u25B6 Start","\u2161 \u6682\u505C":"\u2161 Pause","\u25B7 \u7EE7\u7EED":"\u25B7 Resume","+ 1 \u5E27":"+ 1 Frame","\u25A0 \u505C\u6B62":"\u25A0 Stop",\u6A21\u62DF\u5668\u9884\u89C8\u753B\u5E03:"Simulator preview canvas","Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.","\u6B63\u5728\u66F4\u65B0\u753B\u9762\u2026":"Updating preview\u2026",\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8:"Static Editor Preview",\u9884\u89C8\u4FE1\u606F:"Preview Details",\u5F53\u524D\u8282\u70B9:"Selected Node",\u753B\u5E03:"Canvas",\u6E05\u7A7A:"Clear",\u9884\u89C8\u8FDE\u63A5:"Preview Connection","\u6B63\u5728\u8FDE\u63A5\u670D\u52A1\u2026":"Connecting to the service\u2026","\u5F53\u524D\u5B58\u6863\u4FDD\u5B58\u540E\u81EA\u52A8\u5237\u65B0\uFF1B\u9996\u6B21\u5B58\u6863\u4F1A\u81EA\u52A8\u53D1\u73B0\u3002\u5207\u6362\u5176\u4ED6\u5B58\u6863\u8BF7\u4F7F\u7528\u9876\u90E8\u5217\u8868\u6216 MCP \u9884\u89C8\u5DE5\u5177\u3002":"Refreshes automatically when the current save changes, and discovers the first save. Switch saves using the list above or the MCP preview tool.","\u68C0\u67E5\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002":"Update check failed. Check your network connection and retry.",\u53D1\u73B0\u65B0\u7248\u672C:"A new version is available",\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C:"You are up to date",\u5F53\u524D\u7248\u672C\u6BD4\u516C\u5F00\u7248\u672C\u66F4\u65B0:"Your version is newer than the public release",\u6682\u672A\u627E\u5230\u6B64\u5B89\u88C5\u5305\u7684\u6B63\u5F0F\u7248\u672C:"No stable release found for this package",\u754C\u9762\u8BED\u8A00:"Interface language","\u81EA\u52A8\uFF08\u7CFB\u7EDF\u8BED\u8A00\uFF09":"Auto (system language)","\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026":"Checking for updates\u2026",\u68C0\u67E5\u66F4\u65B0:"Check for Updates",\u8054\u7CFB\u4F5C\u8005:"Contact Author",QQ\u7FA4\u53F71007538100:"QQ Group: 1007538100","\u4F5C\u8005\u90AE\u7BB1 ":"Email: ","\u5F00\u6E90\u4ED3\u5E93 ":"Source repository: ","\u5F53\u524D\u7248\u672C\uFF1A{0}":"Current version: {0}","\u516C\u5F00\u7248\u672C\uFF1A{0}":"Public version: {0}","\u66F4\u65B0\u540E\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u7F16\u8F91\u5668\u4E0E\u8BD5\u73A9\u9875\u3002":"After updating, restart the host and refresh the editor and playtest pages.",\u67E5\u770B\u66F4\u65B0\u8BF4\u660E:"View Release Notes",\u4E0B\u8F7D\u66F4\u65B0\u5305:"Download Update",\u91CD\u8BD5:"Retry","\u8BF7\u9009\u62E9\u81EA\u52A8\u67E5\u627E\u3001\u6307\u5B9A\u6587\u4EF6\u6216\u7CFB\u7EDF\u5B57\u4F53":"Choose automatic discovery, a local file, or the system font",\u5B57\u4F53\u8DEF\u5F84\u8FC7\u957F:"The font path is too long",\u8BF7\u586B\u5199\u5B57\u4F53\u6587\u4EF6\u7684\u7EDD\u5BF9\u8DEF\u5F84:"Enter an absolute font file path","\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u5728\u300C\u5B57\u4F53\u8BBE\u7F6E\u300D\u4E2D\u91CD\u65B0\u4FDD\u5B58":"Unable to read local font settings. Save them again in Font Settings.","\u65E0\u6CD5\u4FDD\u5B58\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u76EE\u5F55\u7684\u5199\u5165\u6743\u9650":"Unable to save local font settings. Check write permissions for the configuration directory.","\u5F53\u524D\u5B57\u4F53\u7531 QXQY_FONT_PATH \u56FA\u5B9A\uFF0C\u8BF7\u79FB\u9664\u8BE5\u73AF\u5883\u53D8\u91CF\u5E76\u91CD\u542F\u540E\u518D\u4F7F\u7528\u524D\u7AEF\u8BBE\u7F6E":"QXQY_FONT_PATH overrides font settings. Remove it and restart before editing settings here.",\u5B57\u4F53\u8BBE\u7F6E\u4EC5\u9650\u672C\u673A\u76F4\u63A5\u8BBF\u95EE:"Font settings require a direct connection from this machine",\u5B57\u4F53\u8BBE\u7F6E\u8FC7\u5927:"Font settings exceed the size limit",\u5343\u661F\u6C99\u7BB1:"Miliastra Sandbox",\u5343\u661F\u5947\u57DF:"Miliastra Wonderland",\u670D\u52A1\u7AEF\u63A7\u4EF6\u6A21\u677F:"Server Control Template",\u670D\u52A1\u7AEF\u63A7\u4EF6:"Server Controls",\u5BA2\u6237\u7AEF\u63A7\u4EF6:"Client Controls","1 \u4EBA":"1 player","{0} \u4EBA":"{0} players"};var Od="qxqy-ui-language",Ul="qxqy-ui-language-change",hi=new Set,h1=i=>["auto","zh","en"].includes(i);function Nd(){try{let i=globalThis.localStorage?.getItem(Od);return h1(i)?i:"auto"}catch{return"auto"}}var go=Nd(),u1=null;function RC(i="auto",t="zh-CN",e=""){return i==="zh"||i==="en"?i:/^(?:zh|cmn|yue|wuu|hak|nan|gan|hsn)(?:[-_]|$)/i.test(e||t)?"zh":"en"}var kC=()=>go,zd=()=>u1||{language:typeof window>"u"?"zh-CN":globalThis.navigator?.language||globalThis.navigator?.languages?.[0]||Intl.DateTimeFormat().resolvedOptions().locale||"en",source:"browser"},Hd=()=>RC(go,zd().language);async function BC(i,t=globalThis.fetch){try{let e=await t(i,{method:"POST",mode:"same-origin",credentials:"same-origin",cache:"no-store",headers:{"content-type":"application/json"},body:"{}",signal:AbortSignal.timeout(4e3)});if(e.ok){let r=await e.json(),s=r.ok?r.value:null;if(typeof s?.language=="string"&&s.language.length<=80){let n=Intl.getCanonicalLocales(s.language.replaceAll("_","-"))[0];if(n){u1={language:n,source:s.source||"host"};for(let o of hi)o()}}}}catch{}return zd()}function os(i){if(!(i?.type==="storage"&&i.key!==Od&&i.key!==null)){go=i?.type===Ul?i.detail:Nd();for(let t of hi)t()}}function IC(i){if(h1(i)){go=i;try{globalThis.localStorage?.setItem(Od,i)}catch{}if(typeof window<"u")window.dispatchEvent(new CustomEvent(Ul,{detail:i}));else for(let t of hi)t()}}function GC(i){return!hi.size&&typeof window<"u"&&(go=Nd(),window.addEventListener("storage",os),window.addEventListener(Ul,os),window.addEventListener("languagechange",os)),hi.add(i),()=>{hi.delete(i),!hi.size&&typeof window<"u"&&(window.removeEventListener("storage",os),window.removeEventListener(Ul,os),window.removeEventListener("languagechange",os))}}var Fl=(i,t)=>i.replace(/\{(\d+)\}/g,(e,r)=>r<t.length?String(t[r]??""):e),FC=Object.entries(Gl).filter(([i])=>/\{\d+\}/.test(i)).map(([i,t])=>{let e=[],r=i.split(/(\{\d+\})/).map(s=>{let n=s.match(/^\{(\d+)\}$/);return n?(e.push(Number(n[1])),"([\\s\\S]*?)"):s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("");return{expression:new RegExp(`^${r}$`),value:t,slots:e}});function UC(i,t,...e){if(Array.isArray(t)&&Object.hasOwn(t,"raw")&&(t=t.reduce((r,s,n)=>r+(n?`{${n-1}}`:"")+s,"")),typeof t!="string")return t;if(i!=="en")return Fl(t,e);if(Object.hasOwn(Gl,t))return Fl(Gl[t],e);if(!e.length&&/[\p{Script=Han}]/u.test(t))for(let r of FC){let s=r.expression.exec(t);if(!s)continue;let n=[];return r.slots.forEach((o,a)=>{n[o]=s[a+1]}),Fl(r.value,n)}return Fl(t,e)}var Ld=(i,...t)=>UC(Hd(),i,...t);function DC(i=document){for(let t of i.querySelectorAll("[data-i18n]"))t.textContent=Ld(t.dataset.i18n);for(let t of["title","placeholder","aria-label"])for(let e of i.querySelectorAll(`[data-i18n-${t}]`))e.setAttribute(t,Ld(e.getAttribute(`data-i18n-${t}`)));i===document&&(document.documentElement.lang=Hd()==="zh"?"zh-CN":"en")}var BY=Object.freeze({aqua:"00ffff",black:"000000",blue:"0000ff",brown:"a52a2a",cyan:"00ffff",darkblue:"0000a0",fuchsia:"ff00ff",green:"008000",grey:"808080",lightblue:"add8e6",lime:"00ff00",magenta:"ff00ff",maroon:"800000",navy:"000080",olive:"808000",orange:"ffa500",purple:"800080",red:"ff0000",silver:"c0c0c0",teal:"008080",white:"ffffff",yellow:"ffff00"});function d1(i,t){return`${i.italic?"italic ":""}${i.bold?"bold ":""}${i.fontSize}px ${t}`}function f1(i){let t=Number(i)>>>0;return`rgba(${t>>>16&255},${t>>>8&255},${t&255},${(t>>>24)/255})`}function LC(i,t,e,r,s=ci){let n=t.textLayout;if(!n?.richLines||e<=0||r<=0)return;let o=t.horizontalAlignment==="Right"?1:t.horizontalAlignment==="Middle"?.5:0,a=t.verticalAlignment==="Bottom"?1:t.verticalAlignment==="Middle"?.5:0,l=t.kind==="textwindow"?t.scroll:null,c=n.visibleLineCount??n.richLines.length,h=n.visibleContentHeight??n.contentHeight,u=t.kind==="textwindow"&&n.contentHeight>r?-(l?.offset||0):a*(r-h);i.save(),i.beginPath(),i.rect(0,0,e,r),i.clip(),i.textAlign="left",i.textBaseline="alphabetic",i.lineJoin="round",i.strokeStyle=f1(t.outlineColor??4278190080);for(let d=0;d<c;d++){let f=n.richLines[d],m=u+f.top;if(m+f.height<0||m>r)continue;let g=2+o*(n.textWidth-f.width);for(let _ of f.runs)i.font=d1(_,s||ci),i.fillStyle=f1(_.color??t.fontColor??4294967295),t.enableOutline&&(i.lineWidth=Math.max(2,_.fontSize*.12),i.strokeText(_.text,g+_.x,m+f.baseline)),i.fillText(_.text,g+_.x,m+f.baseline)}i.restore()}function Wd(i,t,e,r,s,n=1){let o=Math.min(Math.max(1,n),4096/Math.max(1,e,r)),a=Math.max(1,Math.ceil(e*o)),l=Math.max(1,Math.ceil(r*o));i.width!==a&&(i.width=a),i.height!==l&&(i.height=l);let c=i.getContext("2d");c.setTransform(1,0,0,1,0,0),c.clearRect(0,0,a,l),c.save(),c.scale(a/(e>0?e:1),l/(r>0?r:1)),LC(c,t,e,r,s),c.restore()}Su();Au();Ru();hu();Oa();Vr();pr();var p1={aVertex:(i,t,e,r,s)=>{let n=0,o=0,a=0,l=0;for(let c=0;c<i.length;++c){let h=i[c],u=h.texture,d=h.scaleX,f=h.scaleY,m=h.anchorX,g=h.anchorY,_=u.trim,x=u.orig;_?(o=_.x-m*x.width,n=o+_.width,l=_.y-g*x.height,a=l+_.height):(n=x.width*(1-m),o=x.width*-m,a=x.height*(1-g),l=x.height*-g),t[r]=o*d,t[r+1]=l*f,t[r+s]=n*d,t[r+s+1]=l*f,t[r+s*2]=n*d,t[r+s*2+1]=a*f,t[r+s*3]=o*d,t[r+s*3+1]=a*f,r+=s*4}},aPosition:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n],a=o.x,l=o.y;t[r]=a,t[r+1]=l,t[r+s]=a,t[r+s+1]=l,t[r+s*2]=a,t[r+s*2+1]=l,t[r+s*3]=a,t[r+s*3+1]=l,r+=s*4}},aRotation:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].rotation;t[r]=o,t[r+s]=o,t[r+s*2]=o,t[r+s*3]=o,r+=s*4}},aUV:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].texture.uvs;t[r]=o.x0,t[r+1]=o.y0,t[r+s]=o.x1,t[r+s+1]=o.y1,t[r+s*2]=o.x2,t[r+s*2+1]=o.y2,t[r+s*3]=o.x3,t[r+s*3+1]=o.y3,r+=s*4}},aColor:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].color;e[r]=o,e[r+s]=o,e[r+s*2]=o,e[r+s*3]=o,r+=s*4}}};function g1(i){let t=Object.values(i),e=t.filter(s=>s.dynamic),r=t.filter(s=>!s.dynamic);return{dynamicUpdate:m1(e),staticUpdate:m1(r)}}function m1(i){let t=0,e=[];for(let r=0;r<i.length;r++){let s=i[r],n=Jt(s.format).stride/4;t+=n,e.push({stride:n,updateFunction:s.updateFunction||p1[s.attributeName]})}return(r,s,n)=>{let o=0;for(let a=0;a<e.length;a++){let l=e[a];l.updateFunction(r,s,n,o,t),o+=l.stride}}}Cn();me();$t();Ar();Tu();function x1(){return OC}function OC(i,t,e){let r=i.gl,s=i.shader,n=s._getProgramData(t.glProgram);for(let o in t.groups){let a=t.groups[o];for(let l in a.resources){let c=a.resources[l];if(c instanceof Ct)c.ubo?s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++):s.updateUniformGroup(c);else if(c instanceof He)s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++);else if(c instanceof st||c instanceof Ki){i.texture.bind(c,e.textureCount);let h=t._uniformBindMap[o][l],u=n.uniformData[h];u&&(u.value!==e.textureCount&&r.uniform1i(u.location,e.textureCount),e.textureCount++)}else c instanceof ce}}}Za();Na();wn();var _1=[(i,t,e,r,s)=>{let n=r[i].toArray(!0);t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+4]=n[3],t[e+5]=n[4],t[e+6]=n[5],t[e+8]=n[6],t[e+9]=n[7],t[e+10]=n[8]},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y,t[e+2]=s.width,t[e+3]=s.height},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue,t[e+3]=s.alpha},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue}],y1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}},b1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+4]=s[2],t[e+5]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}};function v1(i){return T1(i,b1,t=>{let e=Math.max(Wn[t.data.type]/16,1),r=t.data.value.length/t.data.size,s=(4-r%4)%4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*e;u++){for(let d=0;d<r;d++)o[a++]=c[h++];a+=s}}})}function S1(i){return T1(i,y1,t=>{let{size:e,align:r}=Zr[t.data.type],s=(e-r)/4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*(e/4);u++){for(let d=0;d<e/4;d++)o[a++]=c[h++];a+=s}}})}function T1(i,t,e){let r={};for(let s in i){let n=i[s],o=n.data,a=!1;r[o.name]={offset:n.offset/4,func:null};for(let l=0;l<de.length;l++){let c=de[l];if(o.type===c.type&&c.test(o)){r[o.name].func=_1[l],a=!0;break}}a||(o.size===1?r[o.name].func=t[o.type]:r[o.name].func=e(n))}return(s,n,o)=>{for(let a in r)r[a].func(a,n,o+r[a].offset,s,s[a])}}wn();var w1={f32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1f(s[i].location,r))},"vec2<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2f(s[i].location,r[0],r[1]))},"vec3<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3f(s[i].location,r[0],r[1],r[2]))},"vec4<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4f(s[i].location,r[0],r[1],r[2],r[3]))},i32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},u32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1ui(s[i].location,r))},"vec2<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2ui(s[i].location,r[0],r[1]))},"vec3<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3ui(s[i].location,r[0],r[1],r[2]))},"vec4<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4ui(s[i].location,r[0],r[1],r[2],r[3]))},bool(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)}},C1={f32(i,t,e,r,s,n,o){o.uniform1fv(s[i].location,r)},"vec2<f32>"(i,t,e,r,s,n,o){o.uniform2fv(s[i].location,r)},"vec3<f32>"(i,t,e,r,s,n,o){o.uniform3fv(s[i].location,r)},"vec4<f32>"(i,t,e,r,s,n,o){o.uniform4fv(s[i].location,r)},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)},i32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<i32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<i32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<i32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},u32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<u32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<u32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<u32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},bool(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<bool>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<bool>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<bool>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)}},E1=[(i,t,e,r,s,n,o)=>{o.uniformMatrix3fv(s[i].location,!1,n[i].toArray(!0))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y||e[2]!==r.width||e[3]!==r.height)&&(e[0]=r.x,e[1]=r.y,e[2]=r.width,e[3]=r.height,o.uniform4f(s[i].location,r.x,r.y,r.width,r.height))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y)&&(e[0]=r.x,e[1]=r.y,o.uniform2f(s[i].location,r.x,r.y))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue||e[3]!==r.alpha)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,e[3]=r.alpha,o.uniform4f(s[i].location,r.red,r.green,r.blue,r.alpha))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,o.uniform3f(s[i].location,r.red,r.green,r.blue))}];function P1(i,t){let e={};for(let r in i.uniformStructures){if(!t[r])continue;let s=i.uniformStructures[r],n=!1;for(let o=0;o<de.length;o++){let a=de[o];if(s.type===a.type&&a.test(s)){e[r]=E1[o],n=!0;break}}if(!n){let o=s.size===1?w1:C1;e[r]=o[s.type]}}return(r,s,n)=>{let o=n.gl;for(let a in e){let l=s[a],c=r[a],h=r[a].value;e[a](a,c,h,l,r,s,o)}}}function NC(){Object.assign(Te.prototype,{_unsafeEvalCheck(){}}),Object.assign(br.prototype,{_systemCheck(){}}),Object.assign(ei.prototype,{_generateUniformsSync:P1}),Object.assign(Jr.prototype,{_generateUboSync:v1}),Object.assign(Qr.prototype,{_generateUboSync:S1}),Object.assign(ti.prototype,{_generateShaderSync:x1}),Object.assign(kl.prototype,{generateParticleUpdate:g1})}NC();var zC="mp3-v1",HC="/qxqy-audio/",WC=[[10001,"ura.1ht4.2ag9.1hh5.jbb.k02.jcw.2tv.2wn.2xk.2r3.d5s.94l.ebv.kcr.b40.77k.9gp.97w.1hb5.jag.btu.jc9.hp5.bmj.blq.blq.ff9.ffk.o74.1owl.rp.mg.l3.lf.lh.qy.1a3z.2xk.2xk.2xk.2xk.2xk.17dc.1f2b.2bc.2bc.2bc.2bc.2bc.ffo.ffo.126.1fk.4mo.4mo.15e.1h2.237.2ba.2kd.2bc.4mo.4mo.4mo.4mo.1mc.1n6.2cu.1ud.2b1.2ee.1tj.1tk"],[20001,"o6.fh.kb.cr.og.sm.6x.8c.87.o7.vz.kt.qo.lg.ob.9w.mg.1kz.zc.1ex.1d5.ps.uu.su.qs.ys.zp.10k.15a.xc.uk.mx.1ax.nt.tu.19m.uj.1ku.tt.100.ie.d3.fp.ie.ie.d3.fp.ie.8p.7k.fw.h0.qc.ot.uc.ot.rk.gb.1c2.ff.cl.9v.wg.1ir.1lr.1b8.1ri.1p0.104.10n.mw.j6.jb.f1.dv.84.a0.cp.bx.1ko.1au.1ia.rs.rt.rs.t7.x6.wi.zc.16f.1i6.2jh.28d.qh.k8.1gz.1ko.2iv.1xp.1l4.1gk.10j.yo.1jk.1jk.xv.104.15o.1xg.1xg.1xi.25i.p1.t1.yh.1ak.1i6.1y2.xt.32u.3g6.1bz.2mn.14l.14c.1e1.op.s8.p2.v5.2ix.1a0.ry.16m.17n.13c.134.ys.yu.xr.sl.sr.sd.yh.z5.gd.gl.hx.h2.g8.fj.iy.hz.jj.th.12n.16r.d3.j9.dg.lj.fl.a7.f9.iw.el.27f.1dh.1rh.2ph.yd.w5.x5.tr.pq.zf.16h.1a5.17t.wy.vn.y8.wl.yv.2ye.2qt.1ah.163.19t.uf.119.2vv.1bm.13h.14p.1so.c3.as.9z.19w.1l4.1nl.rj.we"],[30001,"jo.my.ss.dw.c1.b4.hl.hl.hl.cz.dw.dw.b4.dw.fr.kd.qv.px.px.74.6u.8h.60.8q.8b.eo.eo.eo.8k.a5.99.12v.13y.lg.m4.qr.dw.ex.g0.ef.cd.br.11n.17h.1b8.1c9.9p.ag.9z.l9.m8.m8.lw.m8.cz.99.b4.8c.63.7f.6h.99.re.pp.pi.cq.c9.cp.ck.c6.b0.bd.al.f6.gl.ed.fs.lc.k6.kh.i6.cx.j1.hk.gb.d7.h7.g2.em.kj.kn.k4.j5.rh.t0.qt.mj.i7.ih.i2.hd.3r.8d.6u.6z.by.de.dg.cr.1a5.1ab.16c.18g.n2.ly.no.nt.f9.de.lr.fe.f0.fj.el.fo.t1.g9.ly.h3.g6.de.2ak.2f3.wf.kg.qn.11p.rg.uj.u6.11c.22o.2cs.3dp.3dq.3d5.3d6.1zx.18v"],[40001,"19x.215.2zt.1ex.2pj.7hy.1ur.1gn.1g7.1b1.u9.1tw.108.1ew.rs.1qu.w9.lk.244.qi.b6.tk.jg.jg.jg.y4.c1.b4.iv.hi.r4.n7.gy.ev.qe.12z.18n.dw.1l6.ou.wz.1un.19t.18k.yy.1hs.sl.dw.1vl.100.14k.1q8.209.1jk.1xr.ua.1j2.pr.26h.1gs.s9.px.15v.pf.1jk.xc.1hb.111.172.ut.285.1oh.149.zj.22r.2l9.14a.ok.23y.1eh.xe.1j0.1rp.1cz.wf.1mh.22k.334.1z2.1xo.1br.4ji.5nq.5nf.2za.18r.h3.eo.ia.1kn.dc.ss.s0.1bl.1oc.is.km.177.1ec.1ao.h4.hp.dx.l9.iw.i3.12w.n1.yq.12w.1ju.yx.14s.18b.22t.u3.my.2rb.36w.13u.z8.20r.18g.19r.2x9.w4.q2.1d2.wo.13a.v6.17w.ur.288.1b6.14m.1fi.1xx.1ee.kj.121.j2.1d2.2ad.1ri.2lc.1vk.138.12r.xj.1h5.1c5.2qx.1gj.t2.lv.rf.18q.1kz.dw.2aq.ia.1i9.k5.199.f4.10y.18a.xf.rk.1g9.1q3.10h.sj.15o.e3.dz.sv.135.w9.yg.aw.2a2.19m.22w.1c8.272.13o.104.1sr.rs.1pb.d5.df.kp.jq.1a7.s8.1ao.ba.rb.in.pz.q8.140.ij.1e7.jl.yk.117.10i.1tn.1oj.1sv.sj.1e3.2so.1c7.1gv.178.107.10n.1dx.1qi.1wp.2bc.218.16r.105.xc.z6.11w.1mc.1y9.17p.1cs.2ij.18c.1ie.nn.16c.1ce.xb.1ei.3j0.ve.14x.1sx.285.1b8.1at.v4.rv.rs.10z.xq.11o.15k.xq.u1.i2.pu.i4.l3.9u.oh.mc.nm.pw.1i3.1h4.pj.111.l4.lb.qq.qf.u0.h4.nk.yf.6h.ij.ds.oy.re.m8.1gl.cz.16z.a1.1f8.1x6.vp.dz.gp.g6.fr.vl.fr.gg.qc.aj.99.go.ij.fz.11a.x5.mo.1u9.h0.m8.10m.1an.2bc.3uw.2gk.124.xb.1uk.1b6.2xj.1os.11a.vs.1i9.1lr.2gv.265.668.1xg.45j.404.2x1.1io.3om.4q2.4mo.1d4.2bp.1pr.166.2y6.2bv.361.2nc.2bc.3g0.7g4.334.2bc.2xo.3uw.6ic.4ig.3uw.23v.1la.2zr.1jt.1cq.27a.1n1.19x.1qg.1jn.1ca.26y.2d6.4v4.4mo.4mo.7ps.1jk.153.1fo.1dm.1s2.1w1.oe.1lb.319.2eg.58p.4mo.3dw.2y2.2xm.1u8.1ko.12n.1e0.2sd.1md.2cl.1q2.372.4mo.48s.b14.3fu.334.334.34i.4nf.4ji.5eg.3uw.2u8.1g1.110.37x.2jo.su.334.3aj.3uw.63f.2bc.2bc.8v4.1ts.ax5.5du.34d.3oc.34j.4si.174.rt.1rp.2b0.37d.1ta.2gh.28a.22z.1nc.1a5.1pa.4dd.3ha.2cs.5mv.4mq.5c2.3uw.1gf.4md.113.10x.21o.2hj.1b3.1cx.1ol.3ar.1fv.17t.1a7.2uj.2we.1jk"],[50001,"1o8.1k1.mo.1wu.2c9.22d.1kb.23n.1b8.1ic.24c.2wz.1mq.1mu.1jx.1z1.o3.190.vp.1h7.th.4mo.1rp.4mo.4mo.7ps.zz.143.21v.1nf.34s.1s3.r9.18t.s1.r9.21w.277.ls.25k.5v1.2bc.1kh.wt.14i.1eq.15o.668.sh.rl.3wi.3vc.43c.3yn.17c.f5.xu.jg.176.19v.1xy.23m.18x.30c.10l.13k.v8.vp.17t.qj.17m.1wr.1la.8t.s7.18d.1l2.152.mx.1c8.1l4.1f5.1xe.rz.2hz.1et.13t.xb.14r.15o.z0.1zo.ur.257.1gb.li.12d.15a.132.1m1.3vu.296.1mg.11m.z0.159.mp.hd.x4.1go.ns.xh.2a7.tt.2vb.1bx.1kh.u3.11i.1y1.24e.2hp.2mn.1w6.3zm.166.14g.1mo.2v9.2rg.2f9.1r0.139.m1.k3.ys.1dy.29k.1mm.22m.3zx.4dr.2h7.22o.tv.rm.1et.2wv.2ar.1t7.ku.12s.10b.1v9.1gu.12m.1b3.tv.1c8.tk.10s.ul.1tt.ka.oi.qb.13f.13f.13k.17h.1uh.ez.en.2x7.2ln.2h8.3h8.ig.n9.27o.18b.hl.nm.uk.11a.1ta.1k4.1eh.wv.1go.1gg.sc.18u.1dz.2aq.vt.2l7.25h.1l5.1kn.1vc.1b4.28i.17t.1d6.1k2.18z.jy.jw.dh.1mx.fr.vp.35w.34z.35w.34z.4so.vf.yx.1bg.1d3.2yc.1tg.8q3.99g.am.2du.rm.rg.xa.2cw.xc.1j6.1if.18z.13a.yz.142.1z5.262.1bj.1y8.ur.u5.16j.1pf.1bi.l8.1il.3vz.2dr.jo.ls.18s.16l.18c.141.219.1yz.1fc.24t.27e.481.1vp.25h.1yq.1zn.1uw.11u.1jp.1pz.39o.t6.1mj.1u5.11l.1vd.1dk.1zb.1ic.3ql.14p.1wq.25x.267.zn.zn.1pf.13z.1j7.r9.1hb.4yp.1lt.1cw.1z4.19z.1og.1j4.1cl.1eg.u8.16s.1en.zu.1hr.1js.19g.303.22j.2oa.180.1v7.2ud.2d7.21s.3g9.vh.v1.284.3lg.3lg.17q.1h3.4mo.1cm.1rv.22i.2mc.2j3.27o.333.1q8.237.2ll.23b.2sp.2ll.2ox.2cf.2f8.2hz.1uo.y4.s9.w6.2dg.2q9.up.1m1.1vz.2n8.192.1eb.z7.2em.2q3.1sd.1gj.348.3vf.2iu.29x.1dc.7oj.4pq.5vb.4mx.5me.5sf.5yf.7ps.yj.q0.10w.13p.18b.2wd.11q.2vx.dd.iv.12p.jh.u9.1uy.w0.3f0.3bj.126.qo.1gj.11k.pu.22h.1z6.rp.y4.y0.xl.1d0.11s.wa.1a6.127.10m.12r.1nh.1fy.yo.1js.162.n4.174.1aj.y4.o8.qz.rh.qa.18s.mr.j3.ii.sr.sx.1jk.17l.mj.zr.uy.wa.19t.2bt.xe.1od.hs.xr.5b.12c.1ab.we.gz.mz.4y.sf.11s.e0.1l7.ew.h6.jz.l0.e8.1cx.p6.17u.bw.1ah.10r.10e.o9.1bc.uv.lq.tl.zb.100.jy.b8.bj.336.10n.na.sq.14r.yr.nm.123.tf.l1.zp.1xc.1vk.31l.zl.2bj.2b9.2fv.17p.y0.so.1ln.29c.1eh.nh.xn.131.qc.186.ff.fc.xq.1bm.la.l8.14f.243.111.xi.qw.1qn.11v.1ur.1jx.1ks.s9.nz.269.1zj.2zd.1pv.18n.2vk.p3.1fh.13v.1lf.1lu.2db.1sr.1k3.26o.1dl.1f3.187.2lh.166.v9.xh.1e3.119.s2.mt.1iu.1k6.1o2.12s.u4.2br.1q3.qv.1e4.1zu.1v4.1vk.1t3.3p7.1ob.14d.1ns.1ef.1e4.12w.2kk.1ba.2jx.1e0.1s5.12w.17r.14s.wz.1qp.183.3fb.188.1gr.2ot.168.1u7.w8.28o.1zd.32z.230.w7.vq.x8.1qh.19f.14o.2r9.qg.1ey.1qr.1p6.3a3.1ov.13d.tz.wk.22v.1qa.2l9.yw.yf.nw.p6.1ly.1jk.1nh.x9.q0.17r.17h.ux.uw.12y.p7.g7.kt.14c.ze.1kh.1eo.18a.1d8.26j.15k.19f.1ym.1j5.1c6.11k.1sd.1jp.1ws.13s.1o5.214.sx.px.20x.14h.1ja.s6.1q8.w8.1ks.so.ub.121.202.1ej.1g1.1s8.2bc.4t1.bih.3uw.3pb.avp.6c7.bko.5eg.79c.6wh.3wd.4pn.55j.4a5.3gg.bko.5ei.52p.578.bcv.6gr.2bc.4j9.5y7.9d2.2bb.2bc.668.73z.5pg.50f.5m7.788.267.642.8h2.8h2.49s.64g.5e8.5e8.2bb.3ih.5ur.6bk.578.4ck.3sg.5fe.23i.e9w.2b8.5oj.6bw.2al.2rk.2rk.5pj.n6e.350.6v9.70t.639.3uw.3uw.2bg.639.2bb.2bd.6gj.2bh.660.578.3bk.65e.359.3o0.44i.4tn.1zq.5ee.4a5.3zu.rs.639.33q.5eg.1k1.15o.dw.3uw.b7p.7qd.898.4l4.5uu.5uu.b4g.2yh.2yh.3uw.51a.51a.5kk.66f.iq9.3n7.4nb.46a.1wb.20p.bih.8xa.7ps.70t.70t.4rv.5p1.6aq.ts.63z.668.5v2.5nu.563.55s.55s.5p3.2ga.32x.42x.5cr.4c2.71b.5zp.5c2.66t.4c8.2bc.2bc.2gn.3ea.2kp.fz6.8hz.3e8.4an.bko.j7e.jag.7sr.2bc.3zx.7qd.5ut.5jp.2wk.5q7.3uw.334.4i3.3uw.4bd.5eu.46h.4i2.6t4.446.5s7.5cg.4bk.5nd.7bf.4rt.23b.2bc.2bc.2bc.2bc.2ba.4mo.4dv.3wn.2bc.1we.4he.2bc.4gz.3wn.3km.4xy.4hi.4mr.2bc.247.3yj.2c6.2bc.3aj.446.4ub.3uw.51.e0.86.is.i1.hg.mn.m4.2c.7h.sg.e3.jb.7r.eq.nf.u0.60.4o.ke.47.47.47.47.b8.4x.dr.dy.rw.rw.59.8j.5z.a5.l3.c0.ik.f7.li.lr.7x.dv.du.dd.5e.91.1b.ce.cc.59.bh.e6.8m.9n.cl.lt.7ip.4mr.4si.4kf.vo.we.13e.17n.1iw.2pi.lp.r6.gw.7x.xz.qt.bq.ls.q1.eh.bx.cr.3c.j7.b8.fz.4k.8p.bg.5w.iy.j3.12o.rs.cz.dp.yz.jk.63.63.7ps.7ps.7ps.40g.3jp.4tw.89k.88a.7s0.83d.668.7ps.2fw.2ev.2fp.7ps.2jb.2dh.2ud.25i.24c.2bt.1pa.17r.1a7.7ps.7pt.5rg.4nl.3vv.7qo.31a.2p0.2k0.49a.3v4.3nl.1ug.1ug.1l6.7s1.7ps.2cp.2f8.2i7.7ps.28q.2be.275.1ma.1oz.1q7.16s.1iq.1e0.78m.7ps.2bc.2bc.2bc.bko.2wu.2wu.2wu.3b4.38f.3uw.3uw.3uw.3uw.7ps.7qa.32n.2gg.2wk.7rv.1v3.1qq.1rb.1zk.1my.1zp.1yn.1oh.1uh.7st.9q.9q.9q.9q.9q.kk.kk.kk.kk.kk.dw.dp.dw.rs.rs.rs.rs.s4.sd.54j.5n8.2n6.21r.1nu.1o5.14u.t6.3f7.2j0.32c.304.189.1gf.18w.18j.1st.1vq.116.kw.3uw.3uw.vr.zx.xc.tc.7d.7r.9d.9w.8s.9p.3b.3b"]].map(([i,t])=>[i,t.split(".").map(e=>parseInt(e,36)/1e3)]);function M1(i){if(!Number.isSafeInteger(i))return null;for(let[t,e]of WC)if(i>=t&&i<t+e.length)return e[i-t];return null}function A1(i){return`${HC}${zC}/${i}.mp3`}var Dl=class{constructor({contextFactory:t=()=>new(globalThis.AudioContext||globalThis.webkitAudioContext),fetch:e=(...n)=>globalThis.fetch(...n),onStatus:r=()=>{},now:s=()=>performance.now()}={}){Object.assign(this,{contextFactory:t,fetcher:e,onStatus:r,now:s}),this.context=null,this.output=null,this.buffers=new Map,this.voices=new Map,this.key="",this.sequence=0,this.paused=!1,this.muted=!1,this.disposed=!1,this.error="",this.revision=-1,this.unlockHandlers=[]}status(){return{unlocked:this.context?.state==="running",muted:this.muted,error:this.error,voices:this.voices.size}}publish(){this.onStatus(this.status())}ensureContext(){return this.context||(this.context=this.contextFactory(),this.output=this.context.createGain(),this.output.gain.value=this.muted?0:1,this.output.connect(this.context.destination),this.context.onstatechange=()=>this.publish()),this.context}unlock(){if(!this.disposed)try{this.ensureContext().resume().then(()=>{if(!this.disposed){for(let e of this.voices.values())this.playVoice(e);this.publish()}}).catch(e=>{this.error=e.message,this.publish()});for(let e of this.voices.values())this.playVoice(e)}catch(t){this.error=t.message,this.publish()}}bindUnlock(t){let e=s=>{s.target?.closest?.("[data-audio-toggle]")||this.unlock()};for(let s of["pointerdown","keydown"])t.addEventListener(s,e,{capture:!0});let r=()=>{for(let s of["pointerdown","keydown"])t.removeEventListener(s,e,{capture:!0})};return this.unlockHandlers.push(r),r}toggle(){this.context?.state!=="running"?this.unlock():this.setMuted(!this.muted)}setMuted(t){this.muted=!!t,this.output&&(this.output.gain.value=this.muted?0:1),this.publish()}buffer(t){let e=this.buffers.get(t);if(e&&(!e.failed||this.now()<e.retryAt))return this.buffers.delete(t),this.buffers.set(t,e),e.promise;let r={bytes:0,failed:!1,abort:new AbortController},s=setTimeout(()=>r.abort.abort(),3e4);return r.promise=(async()=>{let n=await this.fetcher(A1(t),{signal:r.abort.signal});if(!n.ok)throw new Error(`\u97F3\u6548 ${t} \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);let o=await n.arrayBuffer();if(this.disposed)throw new Error("audio player disposed");let a=await this.ensureContext().decodeAudioData(o);r.bytes=a.length*a.numberOfChannels*4;let l=[...this.buffers.values()].reduce((c,h)=>c+h.bytes,0);for(let[c,h]of this.buffers){if(l<=32*1024*1024&&this.buffers.size<=64)break;c===t||!h.bytes&&!h.failed||(this.buffers.delete(c),l-=h.bytes)}return a})().catch(n=>{throw r.failed=!0,r.retryAt=this.now()+6e4,n}).finally(()=>clearTimeout(s)),this.buffers.set(t,r),r.promise}stopSource(t){let e=t.source;if(t.source=null,!!e){e.onended=null;try{e.stop()}catch{}e.disconnect()}}removeVoice(t){let e=this.voices.get(t);e&&(this.stopSource(e),this.voices.delete(t))}playVoice(t){if(this.disposed||this.voices.get(t.row.instanceId)!==t||this.paused||t.source||t.loading||t.done)return;if(!t.buffer){t.loading=!0,this.buffer(t.row.audioId).then(r=>{t.loading=!1,!(this.disposed||this.voices.get(t.row.instanceId)!==t)&&(t.buffer=r,this.playVoice(t))}).catch(r=>{this.disposed||this.voices.get(t.row.instanceId)!==t||(this.removeVoice(t.row.instanceId),this.error=r.message,this.publish())});return}if(this.context?.state!=="running"){this.publish();return}if(t.offset>=t.buffer.duration){t.done=!0;return}let e=this.context.createBufferSource();e.buffer=t.buffer,e.connect(this.output),t.source=e,t.beganAt=this.context.currentTime,e.onended=()=>{t.source===e&&(e.disconnect(),t.source=null,t.done=!0,this.publish())},e.start(0,t.offset),this.publish()}sync(t,{fresh:e=!1}={}){if(this.disposed)return;if(t?.running===!1){this.reset();return}let r=t?.audio;if(!r)return;let s=`${r.sessionId}:${r.playerIndex}`,n=s!==this.key;if(n&&(this.reset(),this.key=s),!n&&(r.sequence<this.sequence||r.revision<this.revision))return;this.revision=r.revision;let o=this.paused;this.paused=!!t.paused;let a=new Map(r.active.map(h=>[h.instanceId,h])),l=new Map(r.recent.map(h=>[h.instanceId,h]));for(let[h,u]of this.voices){let d=l.get(h)||a.get(h);if(d?.stopped||u.done&&!a.has(h)||!d){this.removeVoice(h);continue}this.paused&&!o&&u.source&&(u.offset+=Math.max(0,this.context.currentTime-u.beganAt),this.stopSource(u))}let c=n&&!e?r.active:r.recent;for(let h of c){if(!n&&h.instanceId<=this.sequence||h.stopped||M1(h.audioId)===null||h.duration<=0)continue;this.voices.size>=64&&this.removeVoice(this.voices.keys().next().value);let u={row:h,offset:n&&!e?Math.max(0,t.time-h.startedAt):0,source:null,buffer:null,loading:!1,done:!1};this.voices.set(h.instanceId,u)}this.sequence=r.sequence;for(let h of this.voices.values())this.playVoice(h);this.publish()}reset(){for(let t of this.voices.keys())this.removeVoice(t);this.key="",this.sequence=0,this.revision=-1,this.paused=!1,this.publish()}destroy(){this.disposed=!0,this.reset();for(let t of this.buffers.values())t.abort.abort();this.buffers.clear();for(let t of this.unlockHandlers)t();this.unlockHandlers.length=0,this.context&&(this.context.onstatechange=null,this.context.close().catch(()=>{}))}};var VC=["Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Digit0","KeyU","KeyZ","KeyY","KeyG","KeyH","KeyI","KeyO","KeyP","KeyJ","KeyK","KeyL","KeyV","F5","F6","F7","F8","F9","F10","Backquote","Minus","Equal","BracketLeft","Comma","Period","Slash","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","ControlRight","ShiftRight","Backspace","CapsLock"],R1=new Map(VC.map((i,t)=>[i,`CraftspersonKey${t+1}`]));for(let[i,t]of Object.entries({KeyW:"MoveForwardKey",KeyS:"MoveBackwardKey",KeyA:"MoveLeftKey",KeyD:"MoveRightKey",ControlLeft:"SwitchToWalkOrRunKey",Space:"JumpKey",KeyX:"DropKey",Tab:"OpenShortcutWheelKey",KeyF:"InteractKey",KeyE:"CharacterSkill1Key",KeyQ:"CharacterSkill2Key",KeyR:"CharacterSkill3Key",KeyT:"CharacterSkill4Key"}))R1.set(i,t);function Ll(i,t){if(t!=="Down"&&t!=="Up"||i.isComposing||i.keyCode===229||i.key==="Process"||i.key==="Dead")return"";let e=String(i.key||""),r=/^[a-z]$/i.test(e)?`Key${e.toUpperCase()}`:i.code,s=R1.get(r);return s?`Keyboard${s}${t}`:""}function k1(i,t){if(t!=="Down"&&t!=="Up")return"";let e=i===0?"NormalAttackKey":i===2?"SprintKey":"";return e?`Keyboard${e}${t}`:""}var B1=33,I1=60;function G1(i,t,e,r){return{x:(i.clientX-t.left)*e/t.width,y:(t.bottom-i.clientY)*r/t.height}}function jC({renderer:i,api:t,onSnapshot:e,onStatus:r,onError:s,onAudioStatus:n,audio:o,isActive:a,isInputActive:l,keyInputEnabled:c=!0}={}){o||=typeof window<"u"?new Dl({onStatus:n}):null,typeof window<"u"&&o?.bindUnlock(window);let h=0,u=null,d=!1,f=!1,m=null,g=null,_=0,x=null,b=null,v=null,S=!1,T=[],w=new Set,E=Promise.resolve();function B(N){let et=h;return E=E.then(()=>et===h&&d?Y("key",{key:N},{allowInactive:!0}):null),E}function R(N=!0){return Promise.all([...w].map(et=>et(N))).then(()=>E)}function M(N){c=!!N,c||R()}function C(N){s&&s(N)}async function A(N,{freshAudio:et=!1}={}){u=N,d=N?.running!==!1,o?.sync(N,{fresh:et}),N?.scene&&N.scene.format==="tree-v1"?(N.scene.reset&&(_=0),await i.applyScene(N.scene,N.canvasWidth,N.canvasHeight),_=N.scene.revision||_):Array.isArray(N?.paint)&&await i.render(N.paint,N.canvasWidth,N.canvasHeight),e&&await e(N)}async function D(){if(!d||f)return;if(a&&!a()){o?.reset();return}f=!0;let N=h;try{let et=await t("get",{view:!0,sceneRev:_,compact:!0});if(N!==h)return;await A(et)}catch(et){if(N!==h)return;d=!1,K(),o?.reset(),C(et)}finally{f=!1}}function H(){m||(m=setInterval(()=>{D()},B1))}function K(){m&&clearInterval(m),m=null,g&&clearTimeout(g),g=null}function I(N=30){g||(g=setTimeout(()=>{g=null,D()},N))}function U(){x&&clearTimeout(x),x=null}function j(){x&&(U(),Y("pointer",{type:"move",...b}))}function G(){R(!1),h++,o?.reset(),U(),v=null,S=!1,d=!1,_=0,K()}async function Y(N,et,{allowInactive:ct=!1}={}){if(!ct&&a&&!a())return null;let It=h;try{let St=await t(N,{light:!0,...et||{}});return It!==h||!d||(St&&typeof St=="object"&&St.frame!==void 0&&r&&r(St),I(30)),St}catch(St){return It===h&&C(St),null}}async function pt(N={}){G(),o?.unlock();let et=h;_=0;let ct=await t("start",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,K(),H()),ct}async function wt(){await R(),G();let N=h;_=0,K();let et=await t("get",{view:!0,compact:!0,sceneRev:0});return N!==h||(await A(et),N!==h)||d&&H(),et}async function lt(N={}){G();let et=h;_=0,K();let ct=await t("device",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,H()),ct}async function ft(N={}){S=!0;let et=h;try{if(await R(),et!==h)return null;et=++h,o?.reset(),_=0;let ct=await t("view",{view:!0,compact:!0,...N});return et!==h||await A({...ct,running:!0}),ct}finally{et===h&&(S=!1)}}async function q(){return G(),t("stop")}function jt(N,et){return G1(N,et.getBoundingClientRect(),u.canvasWidth,u.canvasHeight)}function ui(N,{keysOn:et}={}){let ct=et||N,It=N.ownerDocument||ct.ownerDocument,St=It?.defaultView||ct,Kt=It||ct,Bt=new Map,xe="",Xt=()=>u&&d&&!S&&(!a||a())&&(!l||l()),$e=()=>c&&Xt(),ls=V=>V.target?.isContentEditable||V.target?.closest?.('input,textarea,select,button,a[href],[role="textbox"],[contenteditable]:not([contenteditable="false"])'),cs=(V,zt)=>{if(!zt||Bt.has(V))return;let Ol=[...Bt.values()].includes(zt);Bt.set(V,zt),Ol||B(zt)},cr=V=>{let zt=Bt.get(V);return zt?(Bt.delete(V),d&&![...Bt.values()].includes(zt)?B(zt.replace(/Down$/,"Up")):null):null},Er=(V=!0)=>V?Promise.all([...Bt.keys()].map(cr)):(Bt.clear(),Promise.resolve());w.add(Er);let hs=V=>{xe=V.pointerType||"",Xt()&&(v!==null||V.button!=null&&V.button!==0||(v=V.pointerId,N.setPointerCapture?.(V.pointerId),j(),Y("pointer",{type:"down",...jt(V,N)})))},us=V=>{Xt()&&v===V.pointerId&&(j(),Y("pointer",{type:"up",...jt(V,N)}),v=null)},ds=V=>{Xt()&&(v!==null&&v!==V.pointerId||(b=jt(V,N),!x&&(x=setTimeout(()=>{x=null,Xt()&&Y("pointer",{type:"move",...b})},I1))))},fs=()=>{v===null&&(U(),Xt()&&Y("pointer",{type:"move",x:-1,y:-1}))},di=V=>{V.pointerType==="mouse"&&(cr("mouse:0"),cr("mouse:2")),v===V.pointerId&&(U(),v=null,u&&d&&Y("pointer",{type:"cancel",...jt(V,N)}))},xo=V=>{if(!Xt())return;V.preventDefault();let zt=N.getBoundingClientRect(),Ol=V.deltaMode===2?zt.width:V.deltaMode===1?16:1,O1=V.deltaMode===2?zt.height:V.deltaMode===1?16:1;Y("pointer",{type:"wheel",...jt(V,N),deltaX:V.deltaX*Ol*u.canvasWidth/zt.width,deltaY:V.deltaY*O1*u.canvasHeight/zt.height})},fi=V=>{if(!$e()||ls(V))return;let zt=Ll(V,"Down");zt&&(V.preventDefault(),V.repeat||cs(`key:${V.code||V.key}`,zt))},pi=V=>{let zt=`key:${V.code||V.key}`;Bt.has(zt)&&(V.preventDefault(),cr(zt))},jd=V=>{!$e()||xe&&xe!=="mouse"||V.sourceCapabilities?.firesTouchEvents||cs(`mouse:${V.button}`,k1(V.button,"Down"))},Xd=V=>{cr(`mouse:${V.button}`)},ps=()=>{Er()},Yd=()=>{It?.hidden&&ps()},$d=V=>{$e()&&V.preventDefault()};N.addEventListener("pointerdown",hs),N.addEventListener("pointerup",us),N.addEventListener("pointermove",ds),N.addEventListener("pointerleave",fs),N.addEventListener("pointercancel",di),N.addEventListener("lostpointercapture",di),N.addEventListener("wheel",xo,{passive:!1}),N.addEventListener("mousedown",jd),N.addEventListener("contextmenu",$d),Kt.addEventListener("mouseup",Xd),ct.addEventListener("keydown",fi),ct.addEventListener("keyup",pi),ct.addEventListener("focusout",ps),St.addEventListener("blur",ps),It?.addEventListener("visibilitychange",Yd);let qd=()=>{Er(),w.delete(Er),N.removeEventListener("pointerdown",hs),N.removeEventListener("pointerup",us),N.removeEventListener("pointermove",ds),N.removeEventListener("pointerleave",fs),N.removeEventListener("pointercancel",di),N.removeEventListener("lostpointercapture",di),N.removeEventListener("wheel",xo),N.removeEventListener("mousedown",jd),N.removeEventListener("contextmenu",$d),Kt.removeEventListener("mouseup",Xd),ct.removeEventListener("keydown",fi),ct.removeEventListener("keyup",pi),ct.removeEventListener("focusout",ps),St.removeEventListener("blur",ps),It?.removeEventListener("visibilitychange",Yd),U()};return T.push(qd),qd}function Cr(){for(G();T.length;)T.pop()();i?.destroy?.(),o?.destroy()}return{audio:o,get snapshot(){return u},get running(){return d},get sceneRev(){return _},get keyInputEnabled(){return c},setKeyInputEnabled:M,releaseKeys:R,applyScene:A,poll:D,pollSoon:I,startPolling:H,stopPolling:K,reset:G,act:Y,start:pt,attach:wt,device:lt,view:ft,stop:q,bindInput:ui,destroy:Cr}}var XC=[0,-.5,.5,.5,-.5,.5],YC=[0,-.5,.12,-.12,.5,0,.12,.12,0,.5,-.12,.12,-.5,0,-.12,-.12],$C=[0,-.5,.11,-.15,.48,-.15,.18,.07,.29,.41,0,.2,-.29,.41,-.18,.07,-.48,-.15,-.11,-.15],qC=new Set(["image","textbox","textwindow","button","grid"]);function as(i,t=4294967295){let e=Number(i??t)>>>0;return{color:e&16777215,alpha:(e>>>24&255)/255}}function le(i,t=0){let e=Number(i);return Number.isFinite(e)?e:t}function F1(i){let t=i?.matrix;if(!t||typeof t!="object")return null;let e=[t.a,t.b,t.c,t.d,t.tx,t.ty].map(Number);return e.every(Number.isFinite)?e:null}function KC(i){let t=i.horizontalAlignment==="Right"?1:i.horizontalAlignment==="Middle"?.5:0,e=i.verticalAlignment==="Bottom"?1:i.verticalAlignment==="Middle"?.5:0;return{x:t,y:e}}function U1(i,t,e,r){let s=i.textLayout,n=s?.fontSize??Math.max(1,le(i.fontSize,12)),o=KC(i),a=i.kind==="textwindow"?i.scroll:null,l=a?Jv(a,e):null,c={fontFamily:r||ci,fontSize:n,fill:as(i.fontColor,4294967295),stroke:i.enableOutline?{...as(i.outlineColor,4278190080),width:Math.max(2,n*.12),join:"round"}:void 0,wordWrap:!a&&!s,wordWrapWidth:Math.max(4,t-4),breakWords:!0,align:o.x===1?"right":o.x===.5?"center":"left",lineHeight:s?.lineHeight??n*1.2};return{text:l?l.text:s?s.lines.slice(0,s.visibleLineCount??s.lines.length).join(`
927
- `):String(i.text||""),style:c,anchorX:o.x,anchorY:a?0:o.y,x:a?-t/2+2+o.x*a.textWidth:o.x===0?-t/2+2:o.x===1?t/2-2:0,y:a?-e/2-a.offset+l.y+(a.max>0?0:o.y*(e-a.contentLength)):o.y===0?-e/2:o.y===1?e/2:0}}function Vd(i,t,e){return JSON.stringify([i.kind,t,e,i.bgColor,Bd(i.scroll,t,e)])}function ZC(i,t,e){let r=i.primitive==="triangle"?XC:i.primitive==="fourstar"?YC:$C,s=[];for(let n=0;n<r.length;n+=2)s.push(r[n]*t,r[n+1]*e);return s}function QC(i,t,e){return L1(i)?[i.kind,i.primitive,i.imageId,ar(i.imageSource),"sprite"].join(" "):[i.kind,i.primitive,t,e,i.imageColor,i.imageId,ar(i.imageSource),i.imageType,i.fillType,i.fillHorizontalType,i.fillVerticalType,i.fillAmount,i.text,i.fontSize,i.fontColor,i.bgColor,i.enableOutline,i.adaptiveFontSize,i.minimumFontSize,JSON.stringify(i.textLayout),i.outlineColor,i.horizontalAlignment,i.verticalAlignment,i.pressed,JSON.stringify(i.scroll)].join(" ")}function L1(i){return i.kind==="image"&&i.primitive==="circle"&&(!i.fillType||i.fillType==="Unused")}function JC(i){let t=W.get().createCanvas(i,i);t.width=t.height=i;let e=t.getContext("2d");return e.fillStyle="#ffffff",e.beginPath(),e.arc(i/2,i/2,i/2,0,Math.PI*2),e.fill(),new F({source:new Tt({resource:t,width:i,height:i,resolution:1})})}var D1=class{constructor(t,{fontReady:e=null}={}){this.canvas=t,this.app=null,this.nodes=new Map,this.circleTextures=new Map,this.imageTextures=new Map,this.disposed=!1,this.unsubscribeImages=s1(r=>this.invalidateImage(r)),this.canvasWidth=0,this.canvasHeight=0,this.scratch=new k,this.ready=this.initialize(e)}async initialize(t){this.fontFamily=await t;let e=new bl;await e.init({canvas:this.canvas,width:1,height:1,autoStart:!1,autoDensity:!1,resolution:Math.min(2,window.devicePixelRatio||1),antialias:!0,backgroundAlpha:0,preference:"webgl",powerPreference:"high-performance"}),e.ticker.stop(),e.stage.eventMode="none",e.stage.sortableChildren=!0,this.app=e}resize(t,e){let r=Math.max(1,Math.round(le(t,1))),s=Math.max(1,Math.round(le(e,1)));r===this.canvasWidth&&s===this.canvasHeight||(this.canvasWidth=r,this.canvasHeight=s,this.app.renderer.resize(r,s))}createNode(t,{group:e=!1}={}){let r=new mt({isRenderGroup:!!e});return r.label=`runtime:${t.id}`,r.eventMode="none",r.sortableChildren=!0,r.__runtimeId=t.id,r.__group=!!e,this.nodes.set(t.id,r),this.app.stage.addChild(r),r}clearVisual(t){if(!t.__visual)return;let e=t.__visual.__text,r=this.app?.renderer,s=r?.renderPipes?.text?._managedTexts?.items,n=e?._gpuData?.[r?.uid]?.currentKey,o=e?.uid;t.__visual.parent?.removeChild(t.__visual);let a=t.__visual.__sliceGeometry,l=t.__visual.__richText?.texture;t.__visual.destroy({children:!0,context:!0,style:!0}),l?.destroy(!0),s&&o!==void 0&&s[o]===null&&delete s[o],n&&this.retireTextKey(n),a?.destroy(!0),t.__visual=null,t.__visualKey=""}retireTextKey(t){t&&(this.retiredTextKeys||=new Set,this.retiredTextKeys.add(t))}pruneTextKeys(){let t=this.app?.renderer?.canvasText?._activeTextures;for(let e of this.retiredTextKeys||[])t?.[e]===null&&delete t[e],t?.[e]||this.retiredTextKeys.delete(e)}updateTextVisual(t,e,r,s){let n=t.__visual;if(e.kind!=="textbox"&&e.kind!=="textwindow")return!1;if(n?.__richText){if(!e.textLayout?.richLines||n.__textChromeKey!==Vd(e,r,s))return!1;let c=n.__richText;return Wd(c.texture.source.resource,e,r,s,this.fontFamily,this.app?.renderer?.resolution||1),c.texture.source.update(),!0}if(e.textLayout?.richLines||!n?.__text||n.__textChromeKey!==Vd(e,r,s))return!1;let o=n.__text,a=U1(e,r,s,this.fontFamily),l=JSON.stringify(a.style);if(o.text!==a.text||n.__textStyleKey!==l){if(this.retireTextKey(o._gpuData?.[this.app?.renderer?.uid]?.currentKey),n.__textStyleKey!==l){let c=o.style;o.style=new Xe(a.style),c.destroy(),n.__textStyleKey=l}o.text=a.text}return o.anchor.set(a.anchorX,a.anchorY),o.position.set(a.x,a.y),!0}circleTexture(t){let e=this.app?.renderer.resolution||2,r=Math.min(4096,Math.max(256,2**Math.ceil(Math.log2(Math.max(1,t*e)))));this.circleTextures||=new Map;let s=this.circleTextures.get(r);return s||(s=JC(r),this.circleTextures.set(r,s)),s}imageTexture(t,e){this.imageTextures||=new Map;let r=Ye(t,e);if(this.imageTextures.has(r))return this.imageTextures.get(r);let s={texture:null,error:""};return this.imageTextures.set(r,s),s.promise=n1(t,e).then(({image:n,meta:o,error:a})=>{if(!(this.disposed||this.imageTextures.get(r)!==s)){s.texture=new F({source:new Re({resource:n})}),s.meta=o,s.error=a;for(let l of this.nodes.values()){let c=l.__sceneItem;c?.kind!=="image"||Ye(c.imageId,c.imageSource)!==r||(l.__visualKey="",this.updateNode(l,c,{nested:!l.__flat&&c.parent!=null}))}this.app?.render()}}).catch(n=>{s.error=n.message}),s}invalidateImage(t){let e=this.imageTextures.get(t);this.imageTextures.delete(t);for(let r of this.nodes.values()){let s=r.__sceneItem;s?.kind!=="image"||Ye(s.imageId,s.imageSource)!==t||(r.__visualKey="",this.updateNode(r,s,{nested:!r.__flat&&s.parent!=null}))}e?.texture?.destroy(!0),this.app?.render()}pruneImageTextures(){if(!this.imageTextures?.size)return;let t=new Set([...this.nodes.values()].filter(e=>e.__sceneItem?.primitive==="sprite").map(e=>Ye(e.__sceneItem.imageId,e.__sceneItem.imageSource)));for(let[e,r]of this.imageTextures||[])t.has(e)||(this.imageTextures.delete(e),r.texture?.destroy(!0))}replaceVisual(t,e,r,s){if(this.clearVisual(t),!qC.has(e.kind))return;let n=new mt;if(n.eventMode="none",n.label=`visual:${e.id}`,n.zIndex=e.kind==="grid"?Number.MAX_SAFE_INTEGER:-Number.MAX_SAFE_INTEGER,e.kind==="textbox"||e.kind==="textwindow"){let l=new oe,c=as(e.bgColor,16777215);if(l.rect(-r/2,-s/2,r,s).fill(c),n.addChild(l),e.textLayout?.richLines){let h=W.get().createCanvas(1,1);Wd(h,e,r,s,this.fontFamily,this.app?.renderer?.resolution||1);let u=new he({texture:new F({source:new Tt({resource:h})}),anchor:.5});u.width=r,u.height=s,n.__richText=u,n.addChild(u)}else{let h=U1(e,r,s,this.fontFamily),u=new fo({text:h.text,style:new Xe(h.style)});u.anchor.set(h.anchorX,h.anchorY),u.position.set(h.x,h.y),n.__text=u,n.__textStyleKey=JSON.stringify(h.style);let d=new oe().rect(-r/2,-s/2,r,s).fill({color:16777215,alpha:1});u.mask=d,n.addChild(d,u)}n.__textChromeKey=Vd(e,r,s)}else if(e.kind==="button"){let l=new oe;l.roundRect(-r/2,-s/2,r,s,6).fill({color:3303631,alpha:1}),l.roundRect(-r/2,-s/2,r,s,6).stroke({color:7381247,alpha:.8,width:1}),e.pressed&&l.roundRect(-r/2,-s/2,r,s,6).fill({color:0,alpha:.28}),n.addChild(l)}else if(e.kind==="image"&&e.primitive==="sprite"&&this.imageTexture(e.imageId,e.imageSource).texture){let l=this.imageTextures.get(Ye(e.imageId,e.imageSource)),c;if(r>0&&s>0&&a1(l.meta,e.imageType)==="Stretch"){let d=[],f=[],m=[];for(let{source:[_,x,b,v],target:[S,T,w,E]}of l1(l.meta,r,s)){let B=d.length/2,R=S-r/2,M=T-s/2;d.push(R,M,R+w,M,R+w,M+E,R,M+E);let C=_/l.meta.width,A=(_+b)/l.meta.width,D=x/l.meta.height,H=(x+v)/l.meta.height;f.push(C,D,A,D,A,H,C,H),m.push(B,B+1,B+2,B,B+2,B+3)}let g=new so({positions:new Float32Array(d),uvs:new Float32Array(f),indices:new Uint32Array(m)});n.__sliceGeometry=g,c=new oo({geometry:g,texture:l.texture})}else c=new he({texture:l.texture,anchor:.5}),c.width=r,c.height=s;let h=as(e.imageColor,4294967295);c.tint=h.color,c.alpha=h.alpha;let u=Md(e,r,s);if(c.visible=r>0&&s>0&&(!u||u.width>0&&u.height>0),u&&c.visible){let d=new oe().rect(u.x,u.y,u.width,u.height).fill(16777215);c.mask=d,n.addChild(d)}n.addChild(c)}else if(L1(e)){let l=new he({texture:this.circleTexture(Math.max(r,s)),anchor:.5});n.__circle=l,n.addChild(l)}else if(e.kind!=="grid"){let l=new oe,c=as(e.imageColor,4294967295);e.primitive==="missing"||e.primitive==="sprite"?(l.rect(-r/2,-s/2,r,s).fill({color:4727336,alpha:.36}),l.rect(-r/2+.5,-s/2+.5,Math.max(0,r-1),Math.max(0,s-1)).stroke({color:16741505,alpha:1,width:1})):e.primitive==="circle"?l.ellipse(0,0,r/2,s/2).fill(c):e.primitive==="ring"?l.ellipse(0,0,Math.max(1,r/2-3.5),Math.max(1,s/2-3.5)).stroke({...c,width:7}):e.primitive==="triangle"||e.primitive==="fourstar"||e.primitive==="fivestar"?l.poly(ZC(e,r,s)).fill(c):l.rect(-r/2,-s/2,r,s).fill(c);let h=Md(e,r,s);if(h&&(l.visible=h.width>0&&h.height>0,l.visible)){let u=new oe().rect(h.x,h.y,h.width,h.height).fill({color:16777215,alpha:1});l.mask=u,n.addChild(u)}n.addChild(l)}let o=Bd(e.scroll,r,s);if(o){let l=new oe;l.label="scrollbar";for(let[c,h]of[[o.track,2503751],[o.thumb,9481931]])l.rect(c.x,c.y,c.width,c.height).fill({color:h,alpha:1});n.addChild(l)}n.scale.set(e.pressed?.98:1),(t.__imageContent||t).addChildAt(n,0),t.__visual=n}applyMatrix(t,e,r){let s=F1(e);if(!s){let u=Math.max(0,le(e.sourceWidth,le(e.width))),d=Math.max(0,le(e.sourceHeight,le(e.height)));t.x=le(e.left)+u/2,t.y=this.canvasHeight-le(e.bottom)-d/2,t.rotation=-le(e.rotationZ)*Math.PI/180,t.scale.set(1);return}let[n,o,a,l,c,h]=s;this.scratch.set(n,-o,-a,l,c,r?-h:this.canvasHeight-h),t.setFromMatrix(this.scratch)}updateNode(t,e,{nested:r=!1}={}){let s=Math.max(0,le(e.sourceWidth,le(e.width))),n=Math.max(0,le(e.sourceHeight,le(e.height))),o=QC(e,s,n);t.__visualKey!==o&&(this.updateTextVisual(t,e,s,n)||this.replaceVisual(t,e,s,n),t.__visualKey=o),t.__visual&&t.__visual.scale.set(e.pressed?.98:1);let a=t.__visual?.__circle;if(a){let l=Math.max(s,n),c=as(e.imageColor,4294967295);a.texture=this.circleTexture(l),a.width=s,a.height=n,a.tint=c.color,a.alpha=c.alpha,a.visible=s>0&&n>0}this.applyMatrix(t,e,r),this.updateImageMask(t,e,s,n)}updateImageMask(t,e,r,s){let n=e.kind==="image"?Kv({...e,sourceWidth:r,sourceHeight:s},{a:1,b:0,c:0,d:1,tx:0,ty:0}):null,o=n?[n.width,n.height,n.featherX,n.featherY].join(":"):"";if(t.__maskKey===o)return;if(t.__maskKey=o,!t.__imageContent&&n){let f=new mt;f.sortableChildren=!0,f.eventMode="none";for(let m of[...t.children])m!==t.__viewportClip&&f.addChild(m);t.addChildAt(f,0),t.__imageContent=f}let a=t.__imageContent;if(!a)return;a.visible=!n||r>0&&s>0;let l=n&&(n.featherX>0||n.featherY>0),c=Math.min(2048,Math.max(1,Math.ceil(r))),h=Math.min(2048,Math.max(1,Math.ceil(s))),u=t.__imageMask;if(l&&a.visible&&u instanceof he&&u.texture.source.resource.width===c&&u.texture.source.resource.height===h){kd(u.texture.source.resource,n),u.texture.source.update(),u.width=r,u.height=s;return}if(a.mask=null,u?.destroy({context:!0,texture:!0,textureSource:!0}),t.__imageMask=null,!n||!a.visible)return;let d;if(l){let f=W.get().createCanvas(c,h);kd(f,n),d=new he({texture:new F({source:new Tt({resource:f})}),anchor:.5}),d.width=r,d.height=s}else d=new oe().rect(-r/2,-s/2,r,s).fill(16777215);d.eventMode="none",a.addChild(d),a.setMask({mask:d,channel:"alpha"}),t.__imageMask=d}attachNode(t,e){let r=e.parent,s=r==null?this.app.stage:this.nodes.get(r),n=s?.__imageContent||s||this.app.stage;t.parent!==n&&n.addChild(t),n.sortableChildren=!0,t.zIndex=-le(e.z)}upsertSceneNode(t){if(!t||t.id===void 0||t.id===null)return;let e=t.group===!0,r=this.nodes.get(t.id);r?r.__group!==e&&(e?r.enableRenderGroup?.():r.disableRenderGroup?.(),r.__group=e):r=this.createNode(t,{group:e}),this.updateNode(r,t,{nested:t.parent!=null}),this.attachNode(r,t),r.__sceneItem=t,r.__flat=!1}updateViewportClip(t){let e=t.__sceneItem,r=this.nodes.get(e?.parent)?.__sceneItem,s=e?.clipPolygons||[];if(!t.__flat&&e?.clipToParent&&r){let h=r.sourceWidth/2,u=r.sourceHeight/2;s=[[[-h,-u],[h,-u],[h,u],[-h,u]].map(([d,f])=>({x:d,y:f}))]}let n=JSON.stringify([s,e?.matrix]);if(t.__clipKey===n||(t.__clipKey=n,t.mask=null,t.__viewportClip?.destroy({context:!0}),t.__viewportClip=null,t.visible=!0,!s.length))return;let o=F1(e);if(!o||Math.abs(o[0]*o[3]-o[1]*o[2])<1e-8){t.visible=!1;return}let a=new k(...o).invert(),l=t1(s).flatMap(h=>{let u=a.apply(h);return[u.x,-u.y]});if(l.length<6||!l.every(Number.isFinite)){t.visible=!1;return}let c=new oe().poly(l).fill({color:16777215,alpha:1});t.addChild(c),t.mask=c,t.__viewportClip=c}removeNode(t){let e=this.nodes.get(t);if(e){for(let r of[...e.children,...e.__imageContent?.children||[]])r.__runtimeId!=null&&r.parent?.removeChild(r);e.parent?.removeChild(e),this.clearVisual(e),e.mask=null,e.__imageContent&&(e.__imageContent.mask=null),e.__imageMask?.destroy({context:!0,texture:!0,textureSource:!0}),e.__imageMask=null,e.__viewportClip?.destroy({context:!0}),e.__imageContent?.destroy({children:!1}),e.destroy({children:!1}),this.nodes.delete(t)}}clearNodes(){for(let t of[...this.nodes.keys()])this.removeNode(t);this.pruneTextKeys()}async applyScene(t,e,r){if(await this.ready,this.resize(e,r),!t||t.format!=="tree-v1"){this.app.render();return}t.reset&&this.clearNodes();for(let n of t.removed||[])this.removeNode(n);let s=t.reset?t.nodes:t.changed;for(let n=0;n<(s||[]).length;n+=1){let o=s[n];!o||o.id===void 0||o.id===null||this.nodes.has(o.id)||this.createNode(o,{group:o.group===!0})}for(let n=0;n<(s||[]).length;n+=1)this.upsertSceneNode(s[n]);for(let n of this.nodes.values())(n.__sceneItem?.clipToParent||n.__sceneItem?.clipPolygons?.length||n.__clipKey!==void 0)&&this.updateViewportClip(n);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}async render(t,e,r){if(t?.some(o=>o?.masks?.length))return this.__maskedPaint=!0,this.applyScene(Qv(t),e,r);await this.ready,this.__maskedPaint&&(this.clearNodes(),this.__maskedPaint=!1),this.resize(e,r);let s=new Set,n=Array.isArray(t)?t:[];for(let o=0;o<n.length;o+=1){let a=n[o];if(!a||a.id===void 0||a.id===null)continue;s.add(a.id);let l=this.nodes.get(a.id)||this.createNode(a);this.updateNode(l,a),l.__sceneItem=a,l.__flat=!0,this.updateViewportClip(l),l.zIndex=o,l.parent!==this.app.stage&&this.app.stage.addChild(l)}for(let[o]of this.nodes)s.has(o)||this.removeNode(o);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}destroy(){this.disposed=!0,this.unsubscribeImages?.(),this.clearNodes();for(let t of this.imageTextures?.values()||[])t.texture?.destroy(!0);this.imageTextures?.clear();for(let t of this.circleTextures.values())t.destroy(!0);this.circleTextures.clear(),this.app?.destroy({removeView:!1},{children:!0,texture:!0,textureSource:!0}),this.app=null}};export{I1 as PLAY_MOVE_THROTTLE_MS,B1 as PLAY_POLL_INTERVAL_MS,D1 as PixiPlayRenderer,JC as createCircleTexture,jC as createPlaySession,kC as getLanguagePreference,Hd as getLocale,zd as getSystemLanguage,Ll as keyEventName,MC as loadBrowserFont,BC as loadSystemLanguage,DC as localizePage,IC as setLanguagePreference,G1 as stagePoint,GC as subscribeLocale,Ld as t};
924
+ `);let s=t.join(`
925
+ `);return new Function("ps","f32v","u32v",s)}var Dc=class{constructor(e){this._size=0,this._generateParticleUpdateCache={};let t=this._size=e.size??1e3,r=e.properties,s=0,n=0;for(let d in r){let h=r[d],u=qe(h.format);h.dynamic?n+=u.stride:s+=u.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Wt(t*4*s),this.dynamicAttributeBuffer=new Wt(t*4*n),this.indexBuffer=Uu(t);let o=new ct,a=0,c=0;this._staticBuffer=new Me({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:J.VERTEX|J.COPY_DST}),this._dynamicBuffer=new Me({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:J.VERTEX|J.COPY_DST});for(let d in r){let h=r[d],u=qe(h.format);h.dynamic?(o.addAttribute(h.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:h.format}),a+=u.size):(o.addAttribute(h.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:c*4,format:h.format}),c+=u.size)}o.addIndex(this.indexBuffer);let l=this.getParticleUpdate(r);this._dynamicUpload=l.dynamicUpdate,this._staticUpload=l.staticUpdate,this.geometry=o}getParticleUpdate(e){let t=C6(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return iy(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Wt(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Wt(this._size*this._dynamicStride*4*4),this.indexBuffer=Uu(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let r=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,r.float32View,r.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let s=this.staticAttributeBuffer;this._staticUpload(e,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}};function C6(i){let e=[];for(let t in i){let r=i[t];e.push(t,r.code,r.dynamic?"d":"s")}return e.join("_")}be();ce();pr();Zo();ge();Yl();Mt();Eu();$o();Fc();Ne();H.add(Mm,Rm);function Du(i,e,t){if(i.fillType!=="Horizontal"&&i.fillType!=="Vertical")return null;let r=Number(i.fillAmount??1),s=Number.isFinite(r)?Math.max(0,Math.min(1,r)):1;if(i.fillType==="Horizontal"){let o=e*s;return{x:i.fillHorizontalType==="Right"?e/2-o:-e/2,y:-t/2,width:o,height:t}}let n=t*s;return{x:-e/2,y:i.fillVerticalType==="Top"?-t/2:t/2-n,width:e,height:n}}var sy="prefab-v1",P6=[[10003004,10003004],[10005001,10005142],[10006001,10006002],[10007002,10007002],[10008001,10008001],[10009001,10009011],[20001001,20001074],[20001076,20001121],[20001123,20001156],[20001158,20001302],[20001304,20001568],[20001570,20001999],[20002001,20002755],[20002757,20002999],[20003001,20003455],[30001001,30001016],[30002001,30002017],[30003001,30003011],[30004001,30004001],[30005001,30005020],[30006001,30006026],[30007001,30007013],[30008001,30008011]];function ny(i){return!Number.isSafeInteger(i)||!P6.some(([e,t])=>i>=e&&i<=t)?null:i===10003004||i===10008001?128:256}var M6="sprite-v1",A6="/qxqy-assets/",R6=[[100001,100006],[100101,100213],[101001,101018],[101020,101028],[101030,101046],[101048,101048],[101050,101054],[101056,101080],[102001,102052],[103001,103148],[104001,104010],[105001,105140],[105142,105219],[105221,105317],[106001,106047],[106049,106096],[107001,107007],[107010,107020],[107031,107092],[107094,107180],[107183,107201],[107203,107205],[107207,107228],[107231,107278],[107280,107402],[108001,108017],[108019,108020],[109001,109031],[109033,109034],[109036,109075],[110001,110053],[111001,111139],[112001,112042]];function cr(i){return i==null||i===""?"StaticReference":typeof i=="string"?i:typeof i.Name=="string"?i.Name:"Unknown"}function qt(i,e){return`${cr(e)}:${i}`}function Lc(i,e){let t=cr(e);return t==="Prefab"?ny(i)!==null:t==="StaticReference"&&Number.isSafeInteger(i)&&i>100006&&R6.some(([r,s])=>i>=r&&i<=s)}function Lu(i,e=0,t){let r=cr(t);if(!["StaticReference","Prefab"].includes(r))throw new Error(`Unsupported image source: ${r}`);return`${A6}${r==="Prefab"?sy:M6}/${i}.png${e?`?refresh=${e}`:""}`}function oy(i,e=0,t){return Lu(i,e,t).replace(".png",".json")}var k6=Object.freeze(["KEYBOARD","TOUCHSCREEN","CONTROLLER_CONSOLE","CONTROLLER_MOBILE"]),B6=Object.freeze({"pc-16-9":{id:"pc-16-9",device:"pc",platform:"KEYBOARD",width:1600,height:900,ratio:"16:9",luaDevice:"KeyboardAndMouse",label:"PC 1600\xD7900"},"pc-21-9":{id:"pc-21-9",device:"pc",platform:"KEYBOARD",width:2100,height:900,ratio:"21:9",luaDevice:"KeyboardAndMouse",label:"PC 2100\xD7900"},"mobile-16-9":{id:"mobile-16-9",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:720,ratio:"16:9",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7720"},"mobile-19.5-9":{id:"mobile-19.5-9",device:"mobile",platform:"TOUCHSCREEN",width:1560,height:720,ratio:"19.5:9",luaDevice:"Mobile",label:"\u624B\u673A 1560\xD7720"},"mobile-4-3":{id:"mobile-4-3",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:960,ratio:"4:3",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7960"}});var Mj=Object.freeze({KEYBOARD:"pc-16-9",TOUCHSCREEN:"mobile-16-9",CONTROLLER_CONSOLE:"pc-16-9",CONTROLLER_MOBILE:"mobile-16-9"}),Aj=Object.freeze({"server-container":"\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668",container:"\u5BB9\u5668\u8282\u70B9",textbox:"\u6587\u672C\u6846",image:"\u56FE\u7247",button:"\u9884\u8BBE\u6309\u94AE",cursor:"\u5149\u6807\u68C0\u6D4B\u533A\u57DF",grid:"\u7F51\u683C\u89C6\u7A97",reference:"\u6A21\u677F\u5F15\u7528\u63A7\u4EF6",textwindow:"\u6587\u672C\u89C6\u7A97",keyhint:"\u6309\u952E\u63D0\u793A",animation:"\u754C\u9762\u52A8\u6548",fullscreen:"\u5168\u5C4F\u52A8\u6548"}),Rj=Object.freeze(["server-container","container","textbox","cursor","reference","grid","image","button","textwindow","keyhint","animation","fullscreen"]),kj=Object.freeze({"server-container":null,container:[150,150],textbox:[100,40],image:[80,80],button:[150,50],cursor:[150,50],grid:[80,80],reference:[80,80],textwindow:[100,40],keyhint:[40,40],animation:[100,100],fullscreen:null}),Bj=Object.freeze({100001:"rect",100002:"circle",100003:"triangle",100004:"fourstar",100005:"fivestar",100006:"ring"});var Ij=Object.freeze({font:4294967295,bg:16777215,outline:858993459,image:4294967295});function fo(i,e,t){return{x:i.a*e+i.c*t+i.tx,y:i.b*e+i.d*t+i.ty}}function po(i){let e=i.a*i.d-i.b*i.c;return!Number.isFinite(e)||Math.abs(e)<1e-8?null:{a:i.d/e,b:-i.b/e,c:-i.c/e,d:i.a/e,tx:(i.c*i.ty-i.d*i.tx)/e,ty:(i.b*i.tx-i.a*i.ty)/e}}var Oc=i=>Number.isFinite(Number(i))?Math.max(0,Number(i)):0;function cy(i,e){if(!i||i.kind!=="image"||i.enableMask!==!0||!e)return null;let t=Oc(i.sourceWidth??i.width),r=Oc(i.sourceHeight??i.height),s=i.enableSoftEdge===!0,n=i.softEdgeMode!=="Pixel",o=s?Oc(i.softEdgeWidthX):0,a=s?Oc(i.softEdgeWidthY):0;return{id:i.id,matrix:e,width:t,height:r,featherX:n?t*o/100:o,featherY:n?r*a/100:a}}function Ou(i,e,t){let r=(s,n)=>s<=0?0:!(n>0)||s>=n?1:s/n;return Math.min(r(i+t.width/2,t.featherX),r(t.width/2-i,t.featherX),r(e+t.height/2,t.featherY),r(t.height/2-e,t.featherY))}function I6(i){let e={children:[]},t=[e],r=[];for(let s of i||[]){if(!s||s.id==null)continue;let n=s.masks||[],o=n.map(c=>JSON.stringify([c.id,c.matrix,c.width,c.height,c.featherX,c.featherY])),a=0;for(;a<r.length&&a<o.length&&r[a]===o[a];)a++;t.length=a+1;for(let c=a;c<n.length;c++){let l={mask:n[c],children:[]};t.at(-1).children.push(l),t.push(l)}t.at(-1).children.push({item:s}),r=o}return e.children}var ly=()=>({a:1,b:0,c:0,d:1,tx:0,ty:0});function ay(i,e){let t=po(i)||ly();return{a:t.a*e.a+t.c*e.b,b:t.b*e.a+t.d*e.b,c:t.a*e.c+t.c*e.d,d:t.b*e.c+t.d*e.d,tx:t.a*e.tx+t.c*e.ty+t.tx,ty:t.b*e.tx+t.d*e.ty+t.ty}}function dy(i){let e=[],t=0,r=(s,n=null,o=ly())=>{s.forEach((a,c)=>{let l=`paint-mask:${t++}`,d=s.length-1-c;if(a.mask){let h=a.mask;e.push({id:l,parent:n,z:d,group:!1,kind:"image",primitive:"rect",imageColor:0,sourceWidth:h.width,sourceHeight:h.height,matrix:ay(o,h.matrix),enableMask:!0,enableSoftEdge:!0,softEdgeMode:"Pixel",softEdgeWidthX:h.featherX,softEdgeWidthY:h.featherY}),r(a.children,l,h.matrix)}else{let h=a.item,u=h.sourceWidth??h.width??0,f=h.sourceHeight??h.height??0,m=(h.rotationZ||0)*Math.PI/180,g=h.matrix||{a:Math.cos(m),b:Math.sin(m),c:-Math.sin(m),d:Math.cos(m),tx:(h.left||0)+u/2,ty:(h.bottom||0)+f/2},x=po(o),b=(h.clipPolygons||[]).map(w=>w.map(S=>x?fo(x,S.x,S.y):S)),{masks:y,...v}=h;e.push({...v,id:l,parent:n,z:d,group:!1,enableMask:!1,clipToParent:!1,sourceWidth:u,sourceHeight:f,matrix:ay(o,g),clipPolygons:b})}})};return r(I6(i)),{format:"tree-v1",reset:!0,nodes:e}}function Nu(i,e){let t=Math.max(1,i.width),r=Math.max(1,i.height),s=i.getContext("2d"),n=s.createImageData(t,r),o=n.data;for(let a=0;a<r;a+=1){let c=e.height/2-(a+.5)*e.height/r;for(let l=0;l<t;l+=1){let d=-e.width/2+(l+.5)*e.width/t,h=Math.round(255*Ou(d,c,e)),u=(a*t+l)*4;o[u]=255,o[u+1]=255,o[u+2]=255,o[u+3]=h}}return s.putImageData(n,0,0),i}function Hu(i,e,t){if(!i?.showBar||i.max<=0||e<=0||t<=0)return null;let r=i.horizontal===!0,s=r?e:t,n=Math.max(0,s-4),o=Math.min(n,Math.max(18,n*s/(s+i.max))),a=n-o,c=a*i.offset/i.max,l=Math.min(8,r?t:e),d=r?{x:-e/2+2,y:t/2-l-2,width:n,height:l}:{x:e/2-l-2,y:-t/2+2,width:l,height:n},h=r?{...d,x:d.x+c,width:o}:{...d,y:d.y+c,height:o};return{track:d,thumb:h,travel:a}}function hy(i,e){let t=Math.max(0,Math.floor(i.offset/i.lineHeight)-1),r=Math.min(i.lines.length,Math.ceil((i.offset+e)/i.lineHeight)+1);return{text:i.lines.slice(t,r).join(`
926
+ `),y:t*i.lineHeight}}function uy(i){let e=i[0]||[],t=(r,s,n)=>(s.x-r.x)*(n.y-r.y)-(s.y-r.y)*(n.x-r.x);for(let r of i.slice(1)){let n=r.reduce((o,a,c)=>{let l=r[(c+1)%r.length];return o+a.x*l.y-l.x*a.y},0)>=0?1:-1;for(let o=0;o<r.length&&e.length;o++){let a=r[o],c=r[(o+1)%r.length],l=e;e=[];let d=l[l.length-1],h=t(a,c,d)*n;for(let u of l){let f=t(a,c,u)*n;if(f>=0!=h>=0){let m=h/(h-f);e.push({x:d.x+m*(u.x-d.x),y:d.y+m*(u.y-d.y)})}f>=0&&e.push(u),d=u,h=f}}}return e}var fy="qxqy-image-refresh",lr=new Map,mo=new Map,go=new Map,zu=new Set,G6=16777216,py=!1;function F6(i,e){go.set(i,e),lr.delete(i),mo.delete(i);for(let t of zu)t(i)}var my=i=>/^\d+$/.test(i)?qt(Number(i)):i;function Wu(){if(!(py||typeof window>"u")){py=!0;try{for(let[i,e]of Object.entries(JSON.parse(localStorage.getItem(fy)||"{}")))go.set(my(i),e)}catch{}window.addEventListener("storage",i=>{if(i.key===fy)try{for(let[e,t]of Object.entries(JSON.parse(i.newValue||"{}"))){let r=my(e);go.get(r)!==t&&F6(r,t)}}catch{}})}}function gy(i){return Wu(),zu.add(i),()=>zu.delete(i)}function U6(i,e){if(Wu(),cr(e)!=="StaticReference"||!Lc(i,e))return Promise.resolve(null);let t=qt(i,e),r=mo.get(t);if(r)return r;let s=fetch(oy(i,go.get(t),e),{signal:AbortSignal.timeout(3e4)}).then(async n=>{if(!n.ok)throw new Error(`\u56FE\u7247 ${i} \u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);return n.json()}).catch(n=>{throw mo.get(t)===s&&mo.delete(t),n});return mo.set(t,s),s}async function by(i,e){let[t,r]=await Promise.all([D6(i,e),U6(i,e).then(s=>({meta:s,error:""}),s=>({meta:void 0,error:s.message}))]);return{image:t,...r}}function D6(i,e){if(Wu(),!Lc(i,e))return Promise.reject(new Error("Image source/ID is not in the preview allowlist"));let t=qt(i,e),r=lr.get(t);if(r&&(!r.failed||Date.now()<r.retryAt))return lr.delete(t),lr.set(t,r),r.promise;let s={pixels:0,failed:!1};return s.promise=new Promise((n,o)=>{let a=new Image,c=setTimeout(()=>{a.src="",l(new Error("\u56FE\u7247\u52A0\u8F7D\u8D85\u65F6"))},45e3);function l(d){if(clearTimeout(c),a.onload=a.onerror=null,d){s.failed=!0,s.retryAt=Date.now()+6e4,o(d);return}s.pixels=a.width*a.height;let h=[...lr.values()].reduce((u,f)=>u+f.pixels,0);for(let[u,f]of lr){if(h<=G6&&lr.size<=128)break;u!==t&&(!f.pixels&&!f.failed||(lr.delete(u),h-=f.pixels))}n(a)}a.onload=()=>l(),a.onerror=()=>l(new Error(`\u56FE\u7247 ${i} \u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5728\u5C5E\u6027\u9762\u677F\u5237\u65B0\u7D20\u6750`)),a.src=Lu(i,go.get(t),e)}),lr.set(t,s),s.promise}function L6(i){return!!i?.border&&Object.values(i.border).some(e=>Number.isFinite(e)&&e>0)}function _y(i,e){let t=typeof e=="object"?e?.Name:e;return L6(i)&&t!=="Basic"?"Stretch":"Basic"}function xy(i,e,t,r){e=Number.isFinite(e)?Math.max(0,e):0,t=Number.isFinite(t)?Math.max(0,t):0;let s=Math.min(1,i/(e+t||1));e*=s,t*=s;let n=Math.min(1,r/(e+t||1));return{source:[0,e,i-t,i],target:[0,e*n,r-t*n,r]}}function yy(i,e,t){if(!(i?.width>0&&i?.height>0&&e>0&&t>0))return[];let r=xy(i.width,i.border.left,i.border.right,e),s=xy(i.height,i.border.top,i.border.bottom,t),n=[];for(let o=0;o<3;o++)for(let a=0;a<3;a++){let c=[r.target[a],s.target[o],r.target[a+1]-r.target[a],s.target[o+1]-s.target[o]];c[2]<=0||c[3]<=0||n.push({source:[r.source[a],s.source[o],r.source[a+1]-r.source[a],s.source[o+1]-s.source[o]],target:c})}return n}var di='"Microsoft YaHei UI","Microsoft YaHei","HarmonyOS Sans SC","Noto Sans CJK SC",sans-serif',Vu="/qxqy-font";var ju=i=>`QxqyLocal_${i}`,vy=i=>i?`"${ju(i)}",${di}`:di;var Xu;function N6(){return Xu||=H6().catch(i=>{throw Xu=null,i}),Xu}async function H6(){let i={cache:"no-store",credentials:"same-origin",mode:"same-origin",signal:AbortSignal.timeout(1e4)},e=await fetch(`${Vu}/manifest`,i);if(!e.ok)throw new Error("\u65E0\u6CD5\u8BFB\u53D6\u672C\u5730\u5B57\u4F53\u914D\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u5BBF\u4E3B\u914D\u7F6E\u53CA\u672C\u673A\u8FDE\u63A5");let{id:t,scope:r="all"}=await e.json();if(t===null)return null;if(typeof t!="string"||!/^[a-f0-9]{64}$/.test(t))throw new Error("\u672C\u5730\u5B57\u4F53\u6807\u8BC6\u65E0\u6548");let s=await fetch(`${Vu}/file/${t}`,i);if(!s.ok)throw new Error("\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762");let n=await s.arrayBuffer();if(!n.byteLength||n.byteLength>33554432)throw new Error("\u672C\u5730\u5B57\u4F53\u5927\u5C0F\u65E0\u6548");let o=new FontFace(ju(t),n);await o.load(),document.fonts.add(o);let a=vy(t),c="qxqy-local-font-style",l=document.getElementById(c);return r==="game"?l?.remove():(l||(l=document.createElement("style"),l.id=c,document.head.appendChild(l)),l.textContent=`[data-qxqy-font-ui], [data-qxqy-font-ui] * { font-family: ${a} !important; }`),a}var Nc={"\u611F\u8C22@xiaomol444\u63D0\u4F9B\u7684\u56FE\u7247\u3001\u97F3\u6548\u3001\u754C\u9762\u52A8\u6548\u7D20\u6750":"Thanks to @xiaomol444 for providing the image, sound effect, and UI animation assets.",\u64AD\u653E\u52A8\u6548\u97F3\u6548:"Play effect sound",\u52A8\u6548\u5C42\u7EA7:"Effect layer",\u6240\u6709\u63A7\u4EF6\u4E4B\u4E0A:"Above all controls",\u6240\u6709\u63A7\u4EF6\u4E4B\u4E0B:"Below all controls","\u652F\u6301\u6D4F\u89C8\u5668\u52A8\u6548\u64AD\u653E\uFF1B\u975E\u7A7A\u52A8\u6548 GIA \u914D\u7F6E\u5C1A\u672A\u6838\u5B9E\u3002":"Browser effect playback is supported; nonempty effect settings in GIA remain unverified.",\u8BF7\u9009\u62E9\u52A8\u6548\u7D20\u6750:"Choose an effect","\u753B\u5E03\u9884\u89C8\u9759\u97F3\uFF1B\u52A0\u8F7D\u5931\u8D25\u53EA\u8DF3\u8FC7\u5F53\u524D\u52A8\u6548\u3002":"Canvas preview is muted. Unavailable effects are skipped.",\u9009\u62E9\u7D20\u6750:"Choose effect","\u91CD\u64AD / \u91CD\u8BD5":"Replay / retry",\u505C\u6B62\u9884\u89C8:"Stop Preview","\u641C\u7D22 ID / \u540D\u79F0":"Search ID / name",\u641C\u7D22\u52A8\u6548:"Search effects","\u52A8\u6548\u52A0\u8F7D\u5931\u8D25\uFF08{0}\uFF09":"Effects unavailable ({0})","\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u5B57\u4F53\u8BBE\u7F6E\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support font settings yet. Restart the Web or Harness host, then retry.","\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u68C0\u67E5\u66F4\u65B0\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support update checks yet. Restart the Web or Harness host, then retry.","\u8BF7\u8F93\u5165\u516D\u4F4D\u989C\u8272\uFF0C\u4F8B\u5982 #FF8800":"Enter a six-digit color, e.g. #FF8800","\u900F\u660E\u5EA6\u8BF7\u8F93\u5165 0\u2013100 \u7684\u6574\u6570":"Enter an integer from 0 to 100 for opacity","Alpha\uFF1A0% \u5B8C\u5168\u900F\u660E\uFF0C100% \u5B8C\u5168\u4E0D\u900F\u660E":"Alpha: 0% is transparent; 100% is opaque","{0}\u4E0E\u900F\u660E\u5EA6":"{0} and opacity",\u6253\u5F00\u53D6\u8272\u5668:"Open color picker","{0}\u53D6\u8272\u5668":"{0} color picker",\u900F\u660E\u5EA6:"Opacity","{0}\u900F\u660E\u5EA6\u6ED1\u5757":"{0} opacity slider","{0}\u900F\u660E\u5EA6":"{0} opacity","Lua \u7D22\u5F15\u5F85\u540C\u6B65\uFF08{0} \u9879\uFF09\xB7 \u5C55\u5F00":"Lua index references need updating ({0}) \xB7 Expand","Lua \u7D22\u5F15\u540C\u6B65":"Update Lua Index References","\u4E0B\u4E00\u6B65\uFF1A\u540C\u6B65 Lua \u7D22\u5F15\u5F15\u7528\uFF08{0} \u9879\uFF09":"Next: Update Lua index references ({0})",\u811A\u672C\u5168\u91CF\u66FF\u6362\u5DF2\u5B8C\u6210:"Script index replacement completed",\u5173\u95ED\u7D22\u5F15\u540C\u6B65\u63D0\u793A:"Close index update notice","\u6536\u8D77\u63D0\u793A\uFF0C\u4FDD\u7559\u5F85\u540C\u6B65\u8BB0\u5F55":"Collapse notice and keep pending changes",\u5173\u95ED:"Close","\u540C\u6B65\u4EFB\u52A1\uFF08\u7C98\u8D34\u7ED9\u5F53\u524D\u9879\u76EE\u7684 AI\uFF09":"Update task (paste into this project's AI chat)","AI \u7D22\u5F15\u540C\u6B65\u4EFB\u52A1":"AI task: Update index references","AI \u5DF2\u5904\u7406\uFF0C\u91CD\u65B0\u8F7D\u5165\u5B58\u6863":"AI finished \u2014 reload the save","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\uFF0C\u8BF7\u9009\u62E9\u4E00\u79CD\u65B9\u5F0F\u540C\u6B65\u811A\u672C\u3002":"Control indices changed. Choose how to update script references.","\u8BF7\u68C0\u67E5\u66FF\u6362\u7ED3\u679C\u5E76\u4FDD\u5B58\u5B58\u6863\uFF0C\u518D\u5230\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u91CC\u7684\u6587\u4EF6\u5E76\u91CD\u65B0\u8BD5\u73A9\u3002":"Review the replacements and save. Then use Lua Scripts \u2192 Sync Scripts to Game and test again in the game.",\u7D22\u5F15\u540C\u6B65\u65B9\u5F0F:"Update method",\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15:"Replace All Script Indices","\u53EF\u80FD\u9519\u8BEF\u5730\u66FF\u6362\u975E\u7D22\u5F15\u5185\u5BB9\u3002":"This may replace numbers unrelated to control indices.","\u6309\u5B8C\u6574\u5341\u8FDB\u5236\u6570\u5B57\u66FF\u6362\u6240\u6709\u5DF2\u767B\u8BB0\u811A\u672C\uFF0C\u5305\u62EC\u914D\u7F6E\u8868\u3001\u5B57\u7B26\u4E32\u548C\u6CE8\u91CA\uFF1B\u540C\u65F6\u66F4\u65B0\u5185\u5BB9\u4E00\u81F4\u7684\u5DE5\u4F5C\u533A\u6E90\u6587\u4EF6\uFF0C\u66FF\u6362\u524D\u81EA\u52A8\u5907\u4EFD\u3002":"Replace whole decimal numbers in all registered scripts, including tables, strings, and comments. Matching workspace source files are updated too, with backups.","\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI":"Copy Task for AI","\u5148\u4FDD\u5B58\u6700\u65B0\u5B58\u6863\uFF0C\u518D\u590D\u5236\u5305\u542B\u6620\u5C04\u8BFB\u53D6\u65B9\u5F0F\u548C\u811A\u672C\u4F4D\u7F6E\u7684\u63D0\u793A\u8BCD\uFF0C\u7531 AI \u5224\u65AD\u54EA\u4E9B\u5F15\u7528\u9700\u8981\u66F4\u65B0\u3002":"Save first, then copy the index mapping instructions and script locations so the AI can identify references to update.","\u67E5\u770B\u7D22\u5F15\u53D8\u66F4\uFF08{0} \u9879\uFF09":"View index changes ({0})","\u8FD9\u91CC\u663E\u793A\u524D 20 \u9879\uFF1B\u5B8C\u6574\u6620\u5C04\u968F\u5B58\u6863\u4FDD\u5B58\uFF0C\u590D\u5236\u7684\u4EFB\u52A1\u4F1A\u5F15\u5BFC AI \u8BFB\u53D6\u5168\u90E8\u3002":"Showing the first 20 changes. The save includes the complete mapping; the copied task tells the AI how to read it.","Lua \u7D22\u5F15\u540C\u6B65\u95EE\u9898":"Lua index update issues","\u6E90\u7801\u6587\u4EF6\u6216\u7D22\u5F15\u6620\u5C04\u5B58\u5728\u51B2\u7A81\uFF0C\u672C\u6B21\u6CA1\u6709\u4FEE\u6539\u811A\u672C\u3002\u53EF\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI \u5904\u7406\u3002":"Source files or index mappings conflict. No scripts were changed. You can copy a task for the AI.",\u5185\u8054\u811A\u672C:"Inline script","\u7B2C {0} \u884C\uFF1A":"Line {0}:","\u5176\u4F59\u95EE\u9898\u8BF7\u7531 AI \u6838\u5BF9\u3002":"Ask the AI to review the remaining issues.","\u5DF2\u66FF\u6362 {0} \u4E2A\u811A\u672C\u7684 {1} \u5904\u6587\u672C\uFF0C\u66F4\u65B0 {2} \u4E2A\u9879\u76EE\u6587\u4EF6\u3002\u5907\u4EFD\uFF1A{3}":"Replaced {1} occurrences in {0} scripts and updated {2} project files. Backups: {3}","\u524D\u5F80 Lua \u811A\u672C":"Open Lua Scripts",\u65E0\u6CD5\u8BFB\u53D6\u5B57\u4F53\u8BBE\u7F6E:"Unable to read font settings","\u627E\u5230\u5B57\u4F53\uFF1A{0}\u3002":"Font found: {0}.","\u9ED8\u8BA4\u4F4D\u7F6E\u672A\u627E\u5230\u5B57\u4F53\uFF0C\u5C06\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002":"No font found in the default locations. The system font will be used.","\u5DF2\u4FDD\u5B58\u3002{0}\u91CD\u542F Web\u3001MCP \u6216 Harness \u5BBF\u4E3B\u540E\uFF0C\u5237\u65B0\u7F16\u8F91\u5668\u53CA\u8BD5\u73A9\u9875\u751F\u6548\u3002":"Saved. {0}Restart the Web, MCP, or Harness host, then refresh the editor and playtest pages to apply.",\u5B57\u4F53\u8BBE\u7F6E:"Font Settings","\u81EA\u5B9A\u4E49\u5B57\u4F53\u53EF\u7528\u4E8E\u6E38\u620F\u5185\u6587\u672C\u6216\u6574\u4F53 UI\u3002\u8BBE\u7F6E\u4EC5\u4FDD\u5B58\u5728\u672C\u673A\uFF0C\u91CD\u542F\u5BBF\u4E3B\u540E\u751F\u6548\u3002":"Apply the custom font to in-game text or the entire UI. Settings stay on this machine and apply after restarting the host.",\u5E94\u7528\u8303\u56F4:"Apply to",\u4EC5\u6E38\u620F\u5185\u6587\u672C:"In-game text only","\u6574\u4F53 UI":"Entire UI","\u4EC5\u6E38\u620F\u5185\u6587\u672C\uFF1A\u7528\u4E8E\u753B\u5E03\u3001\u8BD5\u73A9\u548C\u622A\u56FE\uFF1B\u6574\u4F53 UI\uFF1A\u540C\u65F6\u66FF\u6362\u5DE5\u5177\u680F\u3001\u9762\u677F\u3001\u4EE3\u7801\u548C\u65E5\u5FD7\u5B57\u4F53\u3002":"In-game text only: canvas, playtests, and screenshots. Entire UI: also changes fonts in toolbars, panels, code, and logs.",\u8BF7\u9009\u62E9\u5B57\u4F53\u5E94\u7528\u8303\u56F4:"Choose where to apply the font","\u5F53\u524D\u5B57\u4F53\uFF1A{0}":"Active font: {0}",\u7CFB\u7EDF\u5B57\u4F53:"System font","\u5B57\u4F53\u6587\u4EF6\u7531\u73AF\u5883\u53D8\u91CF QXQY_FONT_PATH \u6307\u5B9A\uFF0C\u4ECD\u53EF\u8C03\u6574\u5E94\u7528\u8303\u56F4\u3002":"QXQY_FONT_PATH selects the font file. You can still change where it applies.",\u5B57\u4F53\u6765\u6E90:"Font source",\u81EA\u52A8\u5C1D\u8BD5\u539F\u795E\u7684\u9ED8\u8BA4\u5B89\u88C5\u4F4D\u7F6E:"Look in Genshin Impact's default installation locations",\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6:"Use a local font file",\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53:"Use the system font",\u5B57\u4F53\u6587\u4EF6\u8DEF\u5F84:"Font file path","\u586B\u5199 TTF / OTF \u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u6700\u5927 32 MiB\uFF1B\u53EF\u4EE5\u76F4\u63A5\u7C98\u8D34\u5E26\u5F15\u53F7\u7684 Windows \u8DEF\u5F84\u3002":"Enter an absolute TTF / OTF path (up to 32 MiB). Quoted Windows paths are accepted.","\u6309\u987A\u5E8F\u5C1D\u8BD5\u4EE5\u4E0B\u4F4D\u7F6E\uFF1B\u90FD\u672A\u627E\u5230\u65F6\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002\u5B89\u88C5\u5728\u5176\u4ED6\u76D8\u7B26\u65F6\u8BF7\u9009\u62E9\u201C\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6\u201D\u3002":"These locations are checked in order. If none contains a font, the system font is used. For another drive, select \u201CUse a local font file\u201D.","\u5F53\u524D\u7CFB\u7EDF\u4E0D\u81EA\u52A8\u67E5\u627E\uFF0C\u8BF7\u6307\u5B9A\u5B57\u4F53\u6587\u4EF6\u3002":"Automatic font discovery is unavailable on this system. Specify a font file.","\u6709\u5DF2\u4FDD\u5B58\u7684\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762\u540E\u751F\u6548\u3002":"Font settings have been saved. Restart the host and refresh the pages to apply them.","\u6B63\u5728\u8BFB\u53D6\u8BBE\u7F6E\u2026":"Loading settings\u2026","\u4FDD\u5B58\u4E2D\u2026":"Saving...",\u4FDD\u5B58\u8BBE\u7F6E:"Save Settings","\u56FE\u7247 {0} \u52A0\u8F7D\u5931\u8D25":"Failed to load image {0}","\u52A0\u8F7D\u56FE\u7247 {0}\u2026":"Loading image {0}\u2026","\u56FE\u7247 {0}":"Image {0}",\u56FE\u7247\u7C7B\u578B:"Image Type",\u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25:"Failed to load image metadata","\u8BFB\u53D6\u7D20\u6750\u8FB9\u754C\u2026":"Loading asset borders\u2026",\u57FA\u7840:"Basic",\u62C9\u4F38:"Stretch",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668:"Client Control Container",\u5BB9\u5668\u8282\u70B9:"Container Control",\u6587\u672C\u6846:"Text Box",\u5149\u6807\u68C0\u6D4B\u533A\u57DF:"CursorEventArea",\u6A21\u677F\u5F15\u7528\u63A7\u4EF6:"Reference Control",\u7F51\u683C\u89C6\u7A97:"Grid Scroller",\u56FE\u7247:"Image",\u9884\u8BBE\u6309\u94AE:"Preset Button",\u6587\u672C\u89C6\u7A97:"Text Window",\u6309\u952E\u63D0\u793A:"Key Hint",\u754C\u9762\u52A8\u6548:"UI Animation",\u5168\u5C4F\u52A8\u6548:"Fullscreen UI Animation",\u5149\u6807\u68C0\u6D4B:"CursorEventArea",\u6A21\u677F\u5F15\u7528:"Reference Control","\u5BFC\u51FA\u5185\u5BB9\u89E3\u7801\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u5237\u65B0\u9875\u9762":"Unable to decode the export. Retry or refresh the page.","PC KEYBOARD \u753B\u5E03\uFF1A1600\xD7900 / 2100\xD7900":"PC KEYBOARD canvas: 1600\xD7900 / 2100\xD7900",\u624B\u673A:"Mobile","\u624B\u673A TOUCHSCREEN \u753B\u5E03\uFF1A1280\xD7720 / 1560\xD7720 / 1280\xD7960":"Mobile TOUCHSCREEN canvas: 1280\xD7720 / 1560\xD7720 / 1280\xD7960",\u5C1A\u65E0\u53EF\u7F16\u8F91\u503C:"No editable value available","\u672A\u8BC6\u522B\u9009\u9879 {0}\uFF08\u4FDD\u7559\u539F\u503C\uFF09":"Unknown option {0} (original value preserved)",\u7A7A:"None","\u65B0\u5EFA\u5E76\u7ED1\u5B9A{0}\u56FE\u7247":"Create and assign a {0} image",\u7FBD\u5316\u5BBD\u5EA6:"Soft Edge Width",\u7FBD\u5316\u8303\u56F4:"Soft Edge Range",\u56FE\u7247\u8BBE\u7F6E:"Image Settings",\u906E\u7F69\u8BBE\u7F6E:"Mask Settings",\u6587\u672C\u6846\u8BBE\u7F6E:"Text Box Settings",\u6309\u94AE\u8BBE\u7F6E:"Button Settings","{0}\u8BBE\u7F6E":"{0} Settings",\u8282\u70B9\u4FE1\u606F:"Node Information",\u53D8\u6362:"Transform",\u4F4D\u7F6E:"Location",\u5927\u5C0F:"Size",\u4E2D\u5FC3:"Pivot",\u521B\u5EFA\u8BBE\u7F6E:"Create Settings",\u624B\u67C4\u5BFC\u822A:"Controller Navigation",\u5B9E\u73B0\u72B6\u6001:"Support Status","\u5B58\u6863\u5185 Lua \u811A\u672C\uFF08{0}\uFF09":"Lua Scripts in This Save ({0})","\uFF0B \u65B0\u5EFA\u811A\u672C":"\uFF0B New Script","(\u672A\u547D\u540D\u811A\u672C)":"(Unnamed script)","\u6302\u8F7D\uFF1A{0} \xB7 {1}":"Attached to: {0} \xB7 {1}","\u672A\u6302\u8F7D\uFF08\u4EC5\u53EF\u88AB require\uFF09":"Not attached (available through require only)","\u4E0B\u8F7D\u8BE5\u811A\u672C .lua":"Download this script as .lua",\u5220\u9664\u8BE5\u811A\u672C:"Delete this script","\u8FD8\u6CA1\u6709\u811A\u672C\uFF0C\u70B9\u51FB\u201C\u65B0\u5EFA\u811A\u672C\u201D\u5F00\u59CB":"No scripts yet. Click \u201CNew Script\u201D to begin.","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 Lua \u811A\u672C\u662F\u5B58\u6863\u5185\u72EC\u7ACB\u8D44\u4EA7":"Save: \u201C{0}\u201D \xB7 Lua scripts are separate assets within the save",\u672A\u547D\u540D\u5B58\u6863:"Untitled Save","\u811A\u672C {0}":"Script {0}","\u811A\u672C\u8DEF\u5F84\uFF08\u5DE5\u4F5C\u533A\u76F8\u5BF9\u8DEF\u5F84\uFF09":"Script path (relative to the workspace)","\u6302\u8F7D\u76EE\u6807\uFF08\u5BA2\u6237\u7AEF\u63A7\u4EF6 / \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF09":"Attach to (client control / client control template)","\u672A\u6302\u8F7D\uFF08\u4E0D\u751F\u6548\uFF0C\u4EC5\u53EF\u88AB require\uFF09":"Not attached (does not run automatically; require only)","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F \xB7 \u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u5185":"Server Control Template \xB7 Inside the Client Control Container",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Client Control Template","Lua \u6E90\u7801":"Lua Source","-- \u5728\u8FD9\u91CC\u8F93\u5165\u5BA2\u6237\u7AEF Lua\uFF1B\u811A\u672C\u53EA\u6709\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548":"-- Enter client-side Lua here; attach the script to a client control to run it in playtests",\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539:"Unsaved changes","\u5DF2\u6302\u8F7D\uFF1A{0}":"Attached to: {0}","\u5F53\u524D\u672A\u6302\u8F7D\uFF0C\u8BD5\u73A9\u65F6\u4E0D\u4F1A\u81EA\u52A8\u8FD0\u884C":"Not attached; it will not run automatically in playtests","\u21E9 \u811A\u672C\u5305 JSON":"\u21E9 Script Bundle JSON","\u21E9 \u811A\u672C\u5305 GIA":"\u21E9 Script Bundle GIA",\u4FDD\u5B58\u811A\u672C:"Save Script",\u8BF7\u65B0\u5EFA\u6216\u9009\u62E9\u4E00\u4E2A\u811A\u672C:"Create or select a script","PlayerSelf \u5F53\u524D\u73A9\u5BB6":"PlayerSelf \u2014 Current Player","AllPlayers \u5168\u90E8\u73A9\u5BB6":"AllPlayers \u2014 All Players","Level \u5173\u5361":"Level \u2014 Stage","Player1 \u73A9\u5BB61":"Player1 \u2014 Player 1","Player2 \u73A9\u5BB62":"Player2 \u2014 Player 2","Player3 \u73A9\u5BB63":"Player3 \u2014 Player 3","Player4 \u73A9\u5BB64":"Player4 \u2014 Player 4","Player5 \u73A9\u5BB65":"Player5 \u2014 Player 5","Player6 \u73A9\u5BB66":"Player6 \u2014 Player 6","Player7 \u73A9\u5BB67":"Player7 \u2014 Player 7","Player8 \u73A9\u5BB68":"Player8 \u2014 Player 8","\u89C4\u5219 {0} \u9700\u8981\u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0} needs a signal name to listen for","\u89C4\u5219 {0} \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u52A8\u4F5C":"Rule {0} needs at least one action","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D":"Rule {0}, action {1} needs a client signal name","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u53D8\u91CF\u540D":"Rule {0}, action {1} needs a variable name","{0}\u6765\u6E90":"{0} source","\u5B57\u9762\u91CF\uFF08JSON\uFF09":"Literal (JSON)",\u5F15\u7528\u76D1\u542C\u4FE1\u53F7\u53C2\u6570:"Use a received signal argument","{0}\u53C2\u6570\u5E8F\u53F7":"{0} argument index","{0}\u5B57\u9762\u91CF":"{0} literal","\u5BA2\u6237\u7AEF\u4FE1\u53F7\u53C2\u6570\uFF08\u6309\u6DFB\u52A0\u987A\u5E8F\uFF09":"Client signal arguments (in order)","\u53C2\u6570 {0}":"Argument {0}",\u5220\u9664\u53C2\u6570:"Remove argument","\u6682\u65E0\u53C2\u6570\uFF0C\u53EF\u53D1\u9001\u7A7A\u53C2\u6570\u5217\u8868":"No arguments; an empty argument list can be sent","\uFF0B \u6DFB\u52A0\u53C2\u6570":"\uFF0B Add Argument",\u670D\u52A1\u7AEF\u903B\u8F91:"Server Logic","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 \u76D1\u542C\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540E\u8BBE\u7F6E Level / \u73A9\u5BB6\u53D8\u91CF\uFF0C\u6216\u5411\u6307\u5B9A\u73A9\u5BB6\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"Save: \u201C{0}\u201D \xB7 Listen for client signals to set Level / player variables or send client script signals to selected players",\u4FDD\u5B58\u670D\u52A1\u7AEF\u903B\u8F91:"Save Server Logic","\u8FD9\u662F\u6A21\u62DF\u5668\u5B58\u6863\u683C\u5F0F\uFF0C\u4E0D\u662F\u5B98\u65B9\u8282\u70B9\u56FE\u3002PlayerSelf \u8868\u793A\u53D1\u4FE1\u53F7\u7684\u90A3\u4F4D\u73A9\u5BB6\uFF1BPlayer1\u20138 \u662F\u56FA\u5B9A\u5EA7\u4F4D\uFF1BAllPlayers \u5411\u672C\u5C40\u5168\u90E8\u8BD5\u73A9\u73A9\u5BB6\u5E7F\u64AD\u3002":"This uses the simulator's save format. PlayerSelf is the player who sent the signal; Player1\u20138 are fixed slots; AllPlayers broadcasts to every player in this playtest.","\u89C4\u5219 {0}":"Rule {0}",\u76D1\u542C\u4FE1\u53F7\u540D:"Signal to listen for","\u89C4\u5219 {0} \u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0}: signal to listen for",\u5220\u9664\u89C4\u5219:"Remove rule","\u52A8\u4F5C {0}":"Action {0}","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u7C7B\u578B":"Rule {0}, action {1}: type",\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF:"Set Custom Variable",\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7:"Send Client Script Signal","\u53D1\u7ED9\u5F53\u524D\u73A9\u5BB6\u3001\u6307\u5B9A\u73A9\u5BB6\u6216\u5168\u90E8\u73A9\u5BB6":"Send to the current player, a selected player, or all players","\u5199\u5165 Level / \u5F53\u524D\u73A9\u5BB6 / \u73A9\u5BB61-8":"Write to Level / current player / Player1\u20138",\u5220\u9664\u52A8\u4F5C:"Remove action",\u53D1\u9001\u76EE\u6807:"Send to",\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D:"Client signal name",\u5B9E\u4F53:"Entity",\u53D8\u91CF\u540D:"Variable name",\u53D8\u91CF\u503C:"Variable value","\uFF0B \u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF":"\uFF0B Set Custom Variable","\uFF0B \u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"\uFF0B Send Client Script Signal","\u8FD8\u6CA1\u6709\u76D1\u542C\u89C4\u5219\u3002\u8BD5\u73A9\u65F6\u5BA2\u6237\u7AEF SendSignal \u4E0D\u4F1A\u81EA\u52A8\u6539\u53D8\u91CF\u6216\u56DE\u4F20\u4FE1\u53F7\u3002":"No signal rules yet. In a playtest, client SendSignal calls do not automatically change variables or send signals back.","\uFF0B \u6DFB\u52A0\u76D1\u542C\u89C4\u5219":"\uFF0B Add Signal Rule","\u4FDD\u5B58\u540E\u4F1A\u5199\u5165\u5F53\u524D\u5B58\u6863\uFF0C\u4E0B\u6B21\u8BD5\u73A9\u751F\u6548":"Saved to the current save; applies on the next playtest","\u8BF7\u8F93\u5165 1\u20132147483647 \u4E4B\u95F4\u7684\u6574\u6570\u7D22\u5F15\u3002":"Enter an integer index from 1 to 2147483647.",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u7D22\u5F15:"Client Control Index",\u4FDD\u5B58\u4E2D:"Saving",\u4FEE\u6539:"Edit",\u81EA\u52A8\u4FEE\u6539\u5176\u4ED6\u5BA2\u6237\u7AEF\u7D22\u5F15\u503C:"Automatically fill other client control indices",\u81EA\u52A8\u586B\u5145\u7D22\u5F15\u9884\u89C8:"Index Autofill Preview","\u4EE5\u5F53\u524D\u63A7\u4EF6\u4E3A\u57FA\u51C6\uFF0C\u6309 GIA \u5BFC\u5165\u987A\u5E8F\u586B\u5145 {0} \u4E2A\u63A7\u4EF6\uFF08{1} \u4E2A\u6A21\u677F\u53CA\u5176\u5B50\u63A7\u4EF6\uFF09\u3002":"Using this control as the anchor, assign indices in GIA import order to {0} controls ({1} templates and their children).","\u7D22\u5F15\u8303\u56F4\uFF1A{0}\u2013{1}":"Index range: {0}\u2013{1}","\u7D22\u5F15\u8303\u56F4\u8D85\u51FA\u6709\u6548\u8303\u56F4\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u3002":"Index range exceeds the valid bounds. Check your input.","\u9002\u7528\u4E8E\u6574\u6279\u5BFC\u5165\u540E\u672A\u589E\u5220\u3001\u91CD\u6392\u7684\u6A21\u677F\u3002\u670D\u52A1\u7AEF\u754C\u9762\u548C\u811A\u672C\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199\u3002":"For templates imported together without structural changes or reordering. Server UI and script indices must be entered separately.","\u586B\u5199 GIA \u5BFC\u5165\u540E\u5B9E\u9645\u663E\u793A\u7684\u7D22\u5F15\uFF1B\u4FEE\u6539\u540E\u4ECE\u9875\u9762\u4E0A\u65B9\u7EE7\u7EED\u540C\u6B65 Lua\u3002":"Enter the actual index shown after importing the GIA. Then update Lua references using the notice above.",\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6\u7684\u811A\u672C:"Scripts Attached to This Control","\u89E3\u9664\u6302\u8F7D\uFF08\u4FDD\u7559\u811A\u672C\uFF09":"Detach (keep script)","\u8BE5\u63A7\u4EF6\u5C1A\u672A\u6302\u8F7D\u811A\u672C\u3002\u811A\u672C\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548\u3002":"No script is attached to this control. Attach a script to a client control to run it in playtests.",\u6302\u8F7D\u5DF2\u6709\u811A\u672C:"Attach an Existing Script",\u9009\u62E9\u811A\u672C\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Choose a script to attach to this control","\u9009\u62E9\u811A\u672C\u2026":"Select a script\u2026","\uFF08\u5F53\u524D\u6302\u8F7D\u4E8E {0} \xB7 {1}\uFF0C\u5C06\u79FB\u52A8\u5230\u6B64\u63A7\u4EF6\uFF09":"(currently on {0} \xB7 {1}; will move to this control)","\uFF08\u672A\u6302\u8F7D\uFF09":"(not attached)","\u5B58\u6863\u5185\u8FD8\u6CA1\u6709\u5176\u4ED6\u811A\u672C\uFF0C\u53EF\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u65B0\u5EFA\u3002":"No other scripts in this save. Create one using the button below.","\uFF0B \u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u6B64\u63A7\u4EF6":"\uFF0B Create and Attach a Script","\u7F3A\u5C11\u56FE\u7247 {0}":"Missing image {0}",\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25:"Failed to load the local font","\u5F53\u524D\u8D44\u4EA7\u5DF2\u5207\u6362\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u63A7\u4EF6\u540E\u4FEE\u6539\u7D22\u5F15":"The active asset changed. Select the control again before changing its index.","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\u3002\u8BF7\u9009\u62E9\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\u3002":"Control indices changed. Choose \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above.","\u8BF7\u5148\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\uFF0C\u518D\u590D\u5236\u63D0\u793A\u8BCD\uFF1BAI \u9700\u8981\u8BFB\u53D6\u8FD9\u6B21\u5B9E\u9645\u4FEE\u6539\u7684\u5B58\u6863\u3002":"Save the complete project before copying the task. The AI needs the save containing these changes.","\u8BF7\u5B8C\u6210\u6A21\u62DF\u5668\u63A7\u4EF6\u7D22\u5F15\u4E0E Lua \u5F15\u7528\u540C\u6B65\u3002":"Update the simulator's control indices and Lua references.","\u5DE5\u4F5C\u533A\uFF1A{0}":"Workspace: {0}",\u8BF7\u5148\u6838\u5BF9\u5DE5\u4F5C\u533A:"Verify the workspace first","\u6700\u65B0\u5B8C\u6574\u5B58\u6863\uFF1A{0}\uFF08\u7F16\u8F91\u5668\u5DF2\u4FDD\u5B58\uFF09":"Latest complete save: {0} (saved by the editor)","Lua \u6587\u4EF6\uFF1A{0}":"Lua files: {0}","\u5185\u8054\u811A\u672C {0}":"Inline script {0}",\u6682\u65E0:"None","\u5148\u4ECE\u4E0A\u8FF0\u6587\u4EF6\u91CD\u65B0\u52A0\u8F7D\u6700\u65B0\u5B58\u6863\uFF0C\u4E0D\u8981\u4F7F\u7528\u53E6\u4E00\u4E2A MCP/Web \u8FDB\u7A0B\u91CC\u7684\u65E7\u5DE5\u7A0B\u3002":"Reload the latest save from the file above. Do not use an older project from another MCP/Web process.","\u83B7\u53D6\u65B0\u65E7\u6620\u5C04\uFF1A\u8BFB\u53D6\u8BE5 JSON \u9876\u5C42\u7684 controlGuidChanges \u6570\u7EC4\uFF0C\u5F53\u524D\u5171 {0} \u6761\uFF0C\u5FC5\u987B\u8BFB\u53D6\u5168\u90E8\u8BB0\u5F55\u3002oldGuid \u662F\u65E7\u7D22\u5F15\uFF0CnewGuid \u662F\u65B0\u7D22\u5F15\uFF1BcontrolAsset + controlId \u6807\u8BC6\u63A7\u4EF6\uFF0CcontrolName \u662F\u540D\u79F0\uFF0Cid \u662F\u8BB0\u5F55\u7F16\u53F7\uFF0CbatchId \u662F\u6279\u6B21\u3002":"Read all {0} entries in the save's top-level controlGuidChanges array. oldGuid/newGuid are the old/new indices. controlAsset + controlId identifies the control; controlName is its name; id identifies the change; batchId identifies the batch.","\u83B7\u53D6\u811A\u672C\uFF1A\u8BFB\u53D6 assets.scripts \u6570\u7EC4\uFF1B\u6BCF\u9879\u7684 source \u662F\u5B58\u6863\u5185\u6E90\u7801\uFF0Cpath \u662F\u811A\u672C\u6587\u4EF6\u8DEF\u5F84\uFF08\u76F8\u5BF9\u8DEF\u5F84\u4EE5\u5DE5\u4F5C\u533A\u4E3A\u57FA\u51C6\uFF09\u3002":"Read scripts from assets.scripts. Each source contains the saved code; path identifies its file, relative to the workspace where applicable.","\u6309\u63A7\u4EF6\u8EAB\u4EFD\u548C\u53D8\u66F4\u987A\u5E8F\u6838\u5BF9\u5168\u90E8 Lua \u811A\u672C\u7684\u7D22\u5F15\u5E38\u91CF\u3001\u914D\u7F6E\u8868\u4E0E\u8C03\u7528\uFF0C\u4FEE\u6539\u5B58\u6863\u4E2D\u7684 source \u53CA\u76F8\u5173 Lua \u6E90\u6587\u4EF6\u548C\u751F\u6210\u5668\u6620\u5C04\uFF0C\u907F\u514D\u91CD\u5EFA\u540E\u8986\u76D6\u3002\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\uFF0C\u4E5F\u4E0D\u8981\u6539\u8FD0\u884C\u65F6\u5B9E\u4F8B ID \u6216\u56FE\u7247\u8D44\u6E90 ID\u3002":"Review index constants, tables, and calls in all Lua scripts by control identity and change order. Update saved source, related Lua files, and generator mappings. Do not globally replace equal numbers or alter runtime instance IDs or image resource IDs.","\u540C\u4E00 batchId \u662F\u540C\u65F6\u6620\u5C04\uFF0C\u987B\u6309\u539F\u503C\u4E00\u6B21\u6027\u5E94\u7528\uFF0C\u4E0D\u80FD\u9010\u6761\u66FF\u6362\u5BFC\u81F4\u7D22\u5F15\u4E32\u6539\u3002":"Changes sharing batchId form one simultaneous mapping. Apply them to original values together to avoid cascading replacements.","\u68C0\u67E5\u65E7\u7D22\u5F15\u5F15\u7528\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF1B\u4EC5\u5728\u5F15\u7528\u5168\u90E8\u540C\u6B65\u6216\u660E\u786E\u6CA1\u6709\u5F15\u7528\u540E\uFF0C\u7528 acknowledgeControlGuidChanges \u7684 changeIds \u6E05\u9664\u5DF2\u6838\u5BF9\u8BB0\u5F55\uFF0C\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u3002\u672A\u5224\u65AD\u7684\u8BB0\u5F55\u7EE7\u7EED\u4FDD\u7559\u3002":"Check old references and playtest again. Only after updating every reference or confirming none exist, acknowledge reviewed changeIds with acknowledgeControlGuidChanges and save. Keep unreviewed changes.","\u5B8C\u6210\u540E\u544A\u77E5\u7528\u6237\u91CD\u65B0\u8F7D\u5165\u8FD9\u4E2A\u5B58\u6863\uFF0C\u518D\u901A\u8FC7\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u6587\u4EF6\uFF1B\u4E0D\u8981\u91CD\u65B0\u5BFC\u5165 GIA\uFF0C\u4E5F\u4E0D\u8981\u64C5\u81EA\u590D\u5236\u5230\u6E38\u620F\u76EE\u5F55\u3002":"Tell the user to reload this save and use Lua Scripts \u2192 Sync Scripts to Game. Do not reimport GIA or copy files into the game directory without authorization.","\u5B58\u6863\u5DF2\u4FDD\u5B58\uFF0C\u63D0\u793A\u8BCD\u5DF2\u590D\u5236\uFF0C\u5305\u542B\u5B8C\u6574\u6620\u5C04\u7684\u8BFB\u53D6\u65B9\u5F0F\u3002\u7C98\u8D34\u7ED9 AI\uFF1B\u5904\u7406\u540E\u91CD\u65B0\u8F7D\u5165\u5B58\u6863\u3002":"Save written and task copied, including instructions for reading the full mapping. Paste it into the AI chat, then reload the save when finished.","\u5B58\u6863\u5DF2\u4FDD\u5B58\u3002\u526A\u8D34\u677F\u4E0D\u53EF\u7528\uFF0C\u53EF\u4ECE\u4E0B\u65B9\u6587\u672C\u6846\u624B\u52A8\u590D\u5236\u63D0\u793A\u8BCD\u3002":"Save written. Clipboard access is unavailable; copy the task from the text box below.","\u56FE\u7247 {0} \u5DF2\u91CD\u65B0\u4E0B\u8F7D\uFF1B\u540C\u6E90\u8BD5\u73A9\u9875\u4F1A\u540C\u6B65\u5237\u65B0\u3002":"Image {0} downloaded again. Playtest pages on this origin will refresh it too.","{0}\u56FE\u7247":"{0} Image","{0}\u5DF2\u521B\u5EFA\u5E76\u7ED1\u5B9A\uFF1B\u53EF\u5728\u63A7\u4EF6\u6811\u4E2D\u7EE7\u7EED\u7F16\u8F91\u56FE\u7247\u3002":"Created and assigned {0}. Edit the image in the control tree.","Lua \u811A\u672C\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863":"Lua script saved to the current save",\u670D\u52A1\u7AEF\u903B\u8F91\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863:"Server logic saved to the current save",\u5DF2\u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Script created and attached to this control","\u5DF2\u65B0\u5EFA\u811A\u672C\uFF0C\u53EF\u7F16\u8F91\u8DEF\u5F84\u3001\u6E90\u7801\u548C\u6302\u8F7D\u76EE\u6807":"Script created. Edit its path, source, and attachment target.",\u811A\u672C\u5DF2\u5220\u9664:"Script deleted","\u5DF2\u89E3\u9664\u6302\u8F7D\uFF0C\u811A\u672C\u4ECD\u4FDD\u7559\u5728\u5B58\u6863\u4E2D":"Script detached and kept in the save",\u5DF2\u6302\u8F7D\u5230\u5F53\u524D\u63A7\u4EF6:"Attached to the current control","\u5DF2\u5207\u6362\u5230\u5B58\u6863\u5185\u7684{0}":"Switched to {0} in this save","{0}\u6A21\u677F":"{0} Template","\u5DF2\u65B0\u589E{0}\u6A21\u677F":"Created a {0} template","\u5DF2\u6DFB\u52A0{0}\u5B50\u63A7\u4EF6":"Added a {0} child control","\u5DF2\u5BFC\u51FA {0} \u4E2A GIA \u6587\u4EF6\uFF08{1}\uFF09\uFF1B\u82E5\u6D4F\u89C8\u5668\u62E6\u622A\u591A\u6587\u4EF6\u4E0B\u8F7D\uFF0C\u8BF7\u5141\u8BB8\u540E\u91CD\u8BD5\u3002":"Exported {0} GIA files ({1}). If downloads are blocked, allow multiple downloads and retry.","\u5DF2\u5BFC\u51FA {0}\uFF1B\u8BF7\u67E5\u770B\u4E0A\u65B9\u5BFC\u51FA\u8BF4\u660E\u3002":"Exported {0}. Review the export notes above.","\u5DF2\u5BFC\u51FA {0}":"Exported {0}","\u5DF2\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6 {0}":"Loaded {0} from the workspace","\u4EC5\u652F\u6301 .json\u3001.gia \u6216 .lua \u6587\u4EF6":"Only .json, .gia, and .lua files are supported","\u5DF2\u5BFC\u5165 {0}":"Imported {0}","\u5DF2\u4FDD\u5B58\u5230 {0}":"Saved to {0}","\u6B63\u5728\u8F7D\u5165\u5343\u661F\u6C99\u7BB1\u2026":"Loading Miliastra Sandbox\u2026","\u5DF2\u5207\u6362\u5230{0}":"Switched to {0}",\u4FDD\u5B58\u5230\u5DE5\u4F5C\u533A:"Save to Workspace",\u5B58\u6863\u76F8\u5BF9\u8DEF\u5F84:"Save path (relative to workspace)",\u53D6\u6D88:"Cancel",\u4FDD\u5B58:"Save",\u5DE5\u4F5C\u533A\u672A\u7ED1\u5B9A:"No workspace bound",\u5C1A\u672A\u5BFC\u5165\u6587\u4EF6:"No file imported","\u5B58\u6863\uFF1A{0}":"Save: {0}","\u5DE5\u4F5C\u533A\uFF1A{0} \xB7 \u5F53\u524D\u8D44\u4EA7\uFF1A{1}":"Workspace: {0} \xB7 Active asset: {1}",\u672A\u7ED1\u5B9A:"Unbound",UI\u63A7\u4EF6:"UI Controls",\u76EE\u6807\u8BBE\u5907:"Target device",\u5C4F\u5E55\u6BD4\u4F8B:"Aspect ratio",\u753B\u5E03\u7F29\u653E:"Canvas zoom",\u9002\u5E94:"Fit","\u670D\u52A1\u7AEF\u903B\u8F91\uFF1A\u76D1\u542C\u4FE1\u53F7 / \u81EA\u5B9A\u4E49\u53D8\u91CF / \u73A9\u5BB61-8 \u56DE\u4F20":"Server logic: signals / custom variables / Player1\u20138 responses","Lua \u811A\u672C\u8D44\u4EA7\u7F16\u8F91":"Lua script asset editor",\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u5230\u5DE5\u4F5C\u533A:"Save the complete project to the workspace",\u4FDD\u5B58\u5B58\u6863:"Save Project",\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6\u5B58\u6863:"Load a save from the workspace","\u2913 \u5DE5\u4F5C\u533A\u5B58\u6863":"\u2913 Workspace Saves","\u672A\u53D1\u73B0 qxqy-simulator-save":"No qxqy-simulator-save found",\u5148\u7ED1\u5B9A\u4F1A\u8BDD\u5DE5\u4F5C\u533A:"Bind a session workspace first","\u5BFC\u5165\u5B58\u6863\u3001\u5355\u9879 UI \u8D44\u4EA7\u6216 Lua":"Import a save, individual UI asset, or Lua script","\u21E7 \u5BFC\u5165":"\u21E7 Import",\u5BFC\u51FA\u683C\u5F0F:"Export format","\u21E9 \u5BFC\u51FA":"\u21E9 Export","\u8D44\u4EA7\u5305 JSON\uFF08\u4E09\u7C7B\u5408\u4E00\uFF09":"Complete Save JSON (all three asset types)","\u8D44\u4EA7\u5305 GIA\uFF08\u5DF2\u6539\u52A8\u9879\uFF09":"Asset Bundle GIA (modified assets)","\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\uFF08\u63A7\u4EF6+\u811A\u672C\uFF09":"Combined GIA (controls + scripts)","\u5F53\u524D\u754C\u9762\uFF08\u5DE6\u680F\u6B63\u5728\u770B\u7684\u90A3\u68F5\u6811\uFF09":"Current UI (the tree shown on the left)","\u5F53\u524D\u754C\u9762 Authoring JSON":"Current UI Authoring JSON","\u5F53\u524D\u754C\u9762 GIA":"Current UI GIA",\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F:"Server Control Template","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF08\u4EC5\u5F53\u5DE6\u680F\u5207\u5230\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\u65F6\u624D\u662F\u9875\u9762\u5185\u5BB9\uFF09":"Client Control Templates (shown in the Client UI tab)","Lua \u811A\u672C":"Lua Scripts","\u811A\u672C\u5305 JSON\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle JSON (all scripts)","\u811A\u672C\u5305 GIA\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle GIA (all scripts)","\u6253\u5F00\u8BD5\u73A9\uFF1B\u65B0\u7A97\u53E3\u4E0D\u53EF\u7528\u65F6\u5728\u5E94\u7528\u5185\u8BD5\u73A9":"Open a playtest; use an embedded view if new windows are unavailable","\u6B63\u5728\u51C6\u5907\u2026":"Preparing\u2026","\u25B7 \u8BD5\u73A9 \u2197":"\u25B7 Playtest \u2197",\u91CD\u65B0\u8F7D\u5165:"Reload",\u7F16\u8F91\u9875\u9762:"Editor page","UI \u7F16\u8F91":"UI Editor","\u4E00\u4E2A\u5B58\u6863 \xB7 \u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F + \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F + Lua \u811A\u672C + \u670D\u52A1\u7AEF\u903B\u8F91":"One save \xB7 Server Control Templates + Client Control Templates + Lua Scripts + Server Logic","\u4E0A\u6B21\u5BFC\u51FA\u8BF4\u660E\uFF08{0} \u9879\uFF0C\u8BF7\u6838\u5BF9\u5BFC\u5165\u540E\u7684\u6548\u679C\uFF09":"Export notes ({0}; verify the result after import)",\u5173\u95ED\u5BFC\u51FA\u8BF4\u660E:"Close export notes",\u7F16\u8F91\u8D44\u6E90\u7C7B\u578B:"Asset type","\u7F16\u8F91\u5B58\u6863\u5185\u7684\u670D\u52A1\u7AEF UI \u63A7\u4EF6":"Edit the save's server UI controls","UI\u63A7\u4EF6-\u670D\u52A1\u7AEF":"Server UI",\u7F16\u8F91\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Edit the save's client control templates","UI\u63A7\u4EF6-\u5BA2\u6237\u7AEF":"Client UI",\u6A21\u677F\u4E0E\u5B50\u63A7\u4EF6:"Templates and Children",\u63A7\u4EF6\u6811:"Control Tree","{0} \u4E2A\u6A21\u677F \xB7 {1} \u4E2A\u63A7\u4EF6":"{0} templates \xB7 {1} controls","{0} \u4E2A\u8282\u70B9":"{0} nodes",\u641C\u7D22\u6A21\u677F\u6216\u63A7\u4EF6:"Search templates or controls",\u641C\u7D22\u63A7\u4EF6:"Search controls",\u6A21\u677F:"Template",\u6682\u4E0D\u652F\u6301:"Not supported yet","\u5728\u753B\u5E03\u4E0A\u663E\u793A\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Show on canvas (does not change initial visibility)","\u5728\u753B\u5E03\u4E0A\u9690\u85CF\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Hide on canvas (does not change initial visibility)","{0}\u753B\u5E03\u53EF\u89C1\u6027":"Canvas visibility: {0}",\u6CA1\u6709\u5339\u914D\u7684\u63A7\u4EF6:"No matching controls",\u5C42\u7EA7\u4E0E\u6A21\u677F\u8FB9\u754C:"Hierarchy and Templates",\u7236\u7EA7\u63A7\u4EF6:"Parent control",\u5DF2\u63D0\u5347\u4E3A\u53EF\u5B9E\u4F8B\u5316\u9876\u5C42\u6A21\u677F:"Promoted to an instantiable top-level template",\u5DF2\u8C03\u6574\u63A7\u4EF6\u7236\u7EA7:"Control parent changed","\u9876\u5C42\u6A21\u677F\uFF08\u53EF\u5B9E\u4F8B\u5316\uFF09":"Top-level template (instantiable)",\u5728\u540C\u7EA7\u4E2D\u4E0A\u79FB:"Move up among siblings",\u5728\u540C\u7EA7\u4E2D\u4E0B\u79FB:"Move down among siblings","\u8BE5\u8282\u70B9\u4F1A\u5199\u5165\u72EC\u7ACB UIControlTemplate\uFF0C\u53EF\u76F4\u63A5\u4F5C\u4E3A prefabId\u3002":"This node exports as a separate UIControlTemplate and can be used directly as prefabId.","\u5F53\u524D\u4E3A\u7B2C {0} \u5C42\u5B50\u63A7\u4EF6\uFF0C\u4E0D\u4F1A\u5355\u72EC\u6210\u4E3A prefabId\u3002":"This is a depth-{0} child control, not a standalone template for prefabId instantiation.",\u65B0\u589E\u72EC\u7ACB\u53EF\u5B9E\u4F8B\u5316\u6A21\u677F:"Create a separate instantiable template","\u6DFB\u52A0\u5230{0}":"Add to {0}",\u5F53\u524D\u63A7\u4EF6:"Current control",\u65B0\u589E\u9876\u5C42\u6A21\u677F:"Create a top-level template",\u9876\u5C42:"Top Level",\u5B50\u63A7\u4EF6:"Child",\u65B0\u589E:"New",\u6DFB\u52A0:"Add","Lua \u6A21\u677F\u9884\u89C8":"Lua Template Preview",\u754C\u9762\u63A7\u4EF6\u7EC4:"UI Control Group","{0} \xB7 {1}\xD7{2} \xB7 \u5DE6\u4E0B\u539F\u70B9":"{0} \xB7 {1}\xD7{2} \xB7 Bottom-left origin","\u25CF {0}\u7F16\u8F91":"\u25CF Editing {0}",\u63A7\u4EF6:"Control","\u5F53\u524D\uFF1A{0}":"Selected: {0}","GIA \u5BFC\u51FA\u540E\u53EF\u5728 Lua \u4E2D\u6309 prefabId \u5B9E\u4F8B\u5316":"After exporting GIA, instantiate in Lua using prefabId","\u5B57\u6BB5\u5728\u5931\u7126\u6216 Enter \u65F6\u63D0\u4EA4":"Commit fields on blur or Enter","\u4F5C\u8005 B\u7AD9\u4E3B\u9875":"Author's Bilibili profile",\u4F5C\u8005B\u7AD9:"Bilibili",\u53EF\u5B9E\u4F8B\u5316:"Instantiable","\u6A21\u677F\u7D22\u5F15 ":"Template index ","\u63A7\u4EF6 GUID ":"Control GUID ",\u8282\u70B9:"Node",\u57FA\u7840\u5C5E\u6027:"Properties",\u811A\u672C:"Script","\u6B63\u5728\u5237\u65B0\u7D20\u6750\u2026":"Refreshing asset\u2026","\u21BB \u91CD\u65B0\u4E0B\u8F7D\u6B64\u7D20\u6750":"\u21BB Download This Asset Again","\u767D\u540D\u5355\u56FE\u7247\u6309\u9700\u7F13\u5B58\uFF1B\u5237\u65B0\u4F1A\u91CD\u65B0\u8BBF\u95EE\u7D20\u6750\u6E90\u3002":"Supported images are cached on demand. Refreshing downloads them from the asset source.","\u232B \u5220\u9664\u5F53\u524D\u6A21\u677F":"\u232B Delete Template","\u232B \u5220\u9664\u5F53\u524D\u63A7\u4EF6":"\u232B Delete Control",\u8BF7\u9009\u62E9\u4E00\u4E2A\u63A7\u4EF6:"Select a control",'<!doctype html><meta charset="utf-8"><title>\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026</title><p>\u6B63\u5728\u4FDD\u5B58\u9879\u76EE\u5E76\u51C6\u5907\u8BD5\u73A9\u2026</p>':'<!doctype html><meta charset="utf-8"><title>Preparing playtest\u2026</title><p>Saving the project and preparing the playtest\u2026</p>',"\u505C\u6B62\u8BD5\u73A9\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\uFF1A{0}":"Could not stop the playtest. Retry: {0}","\u8BD5\u73A9\u9875\u672A\u80FD\u52A0\u8F7D\uFF0C\u8BF7\u8FD4\u56DE\u7F16\u8F91\u540E\u91CD\u8BD5\u3002":"The playtest page could not load. Return to the editor and retry.",\u8BD5\u73A9\u6B63\u5728\u5173\u95ED:"Closing playtest",\u5185\u5D4C\u8BD5\u73A9:"Embedded Playtest","\u6B63\u5728\u505C\u6B62\u8BD5\u73A9\u2026":"Stopping playtest\u2026","\u6B63\u5728\u8F7D\u5165\u8BD5\u73A9\u2026":"Loading playtest\u2026",\u5173\u95ED\u8BD5\u73A9:"Close Playtest",\u5343\u661F\u6C99\u7BB1\u8BD5\u73A9:"Miliastra Sandbox Playtest",\u672A\u53D8\u5316:"Unchanged","\u3010\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3011":"[Miliastra Sandbox Script Folder]",\u65B0\u589E\u6587\u4EF6:"New file",\u66F4\u65B0\u5DF2\u6709\u6587\u4EF6:"Update existing file","\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u66F4\u65B0":"Identical; no update needed",\u65E0\u6CD5\u590D\u5236:"Cannot copy",\u5B58\u6863\u91CC\u7F16\u8F91\u7684\u4EE3\u7801:"Code edited in the save","\u9879\u76EE\u4E2D\u7684 .lua \u6587\u4EF6":"Project .lua file","\u5B9E\u673A\u811A\u672C\u540C\u6B65 \xB7 {0}":"Sync Scripts to Game \xB7 {0}",\u5DF2\u8BBE\u7F6E\u6587\u4EF6\u5939:"Folders configured",\u5148\u8BBE\u7F6E\u6587\u4EF6\u5939:"Configure folders first","\u628A\u5F53\u524D\u5B58\u6863\u91CC\u7684 Lua \u811A\u672C\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u7528\u4E8E\u6E38\u620F\u5185\u6D4B\u8BD5\u3002\u64CD\u4F5C\u987A\u5E8F\uFF1A\u586B\u5199\u811A\u672C\u4F4D\u7F6E \u2192 \u4FDD\u5B58\u8BBE\u7F6E \u2192 \u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0 \u2192 \u786E\u8BA4\u590D\u5236\u3002":"Copy this save's Lua scripts into Miliastra Sandbox for in-game testing. Set folders \u2192 Save Settings \u2192 Save and Preview Changes \u2192 Confirm Copy.",\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939:"Project script folder","\u4F8B\u5982 workspace/my-game\uFF1B\u4E5F\u53EF\u4EE5\u7559\u7A7A":"e.g. workspace/my-game; may be left blank","\u586B\u5199\u5728\u5DE5\u4F5C\u533A\u91CC\u7684\u4F4D\u7F6E\uFF0C\u4F8B\u5982 workspace/my-game\uFF1B\u7559\u7A7A\u8868\u793A\u4F7F\u7528\u5DE5\u4F5C\u533A\u672C\u8EAB\u3002":"Enter a workspace-relative folder, e.g. workspace/my-game. Leave blank to use the workspace root.",\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939:"Miliastra Sandbox script folder","\u7C98\u8D34\u4EE5 default_import_file \u7ED3\u5C3E\u7684\u5B8C\u6574\u8DEF\u5F84":"Paste the full path ending in default_import_file","\u5173\u5361\u5B58\u653E\u5916\u90E8 Lua \u811A\u672C\u7684\u6587\u4EF6\u5939\uFF0C\u53EF\u70B9\u51FB\u300C\u53D1\u73B0\u672C\u673A\u76EE\u5F55\u300D\u67E5\u627E\u3002\u8BF7\u586B\u5199\u8FD0\u884C\u6A21\u62DF\u5668\u90A3\u53F0\u7535\u8111\u4E0A\u7684\u5B8C\u6574\u8DEF\u5F84\u3002":"The stage's folder for external Lua scripts. Use \u201CFind Local Folders\u201D to locate it. Enter the full path on the simulator host machine.",\u6E38\u620F\u91CC\u7684\u9879\u76EE\u5B50\u6587\u4EF6\u5939:"Project subfolder in the game","\u4E00\u822C\u548C\u201C\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939\u201D\u586B\u4E00\u6837\u7684\u5185\u5BB9\uFF0C\u4FDD\u7559\u539F\u6765\u7684\u6587\u4EF6\u4F4D\u7F6E\u3002\u7559\u7A7A\u5219\u76F4\u63A5\u653E\u8FDB\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3002":"Usually matches the project script folder to preserve file locations. Leave blank to place files directly in the Miliastra Sandbox script folder.",\u590D\u5236\u8DEF\u5F84\u793A\u4F8B:"Copy Path Example","\u590D\u5236\u793A\u4F8B\uFF1A":"Example destination:","\u6E38\u620F\u8D26\u53F7 UID\uFF1A{0} \xB7 \u5173\u5361\u76EE\u5F55\u7F16\u53F7\uFF1A{1}":"Game account UID: {0} \xB7 Stage folder ID: {1}",\u53D1\u73B0\u672C\u673A\u76EE\u5F55:"Find Local Folders","\u6CA1\u6709\u627E\u5230\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\u3002\u53EF\u4EE5\u624B\u52A8\u7C98\u8D34 default_import_file \u6587\u4EF6\u5939\u7684\u5B8C\u6574\u8DEF\u5F84\uFF1B\u5982\u679C\u8FD8\u6CA1\u5BFC\u5165\u811A\u672C\uFF0C\u8BF7\u5148\u5728\u5343\u661F\u6C99\u7BB1\u5B8C\u6210\u5BFC\u5165\u3002":"No game script folder found. Paste the full default_import_file path manually. If you have not imported scripts yet, do so in Miliastra Sandbox first.","\u627E\u5230 {0} \u4E2A\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u8BF7\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361\u3002":"Found {0} game script folders. Select the account and stage to update.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u4FDD\u5B58\u3002\u4E0B\u4E00\u6B65\u70B9\u51FB\u300C\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0\u300D\u3002":"Script folders saved. Next, click \u201CSave and Preview Changes\u201D.",\u6E05\u9664\u8BBE\u7F6E:"Clear Settings","\u5DF2\u6E05\u9664\u811A\u672C\u4F4D\u7F6E\u8BBE\u7F6E\u3002\u6E38\u620F\u91CC\u7684\u811A\u672C\u6587\u4EF6\u4ECD\u7136\u4FDD\u7559\u3002":"Script folder settings cleared. Existing files in the game are kept.",\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361:"Select the Account and Stage","\u8BF7\u9009\u62E9\u6E38\u620F\u8D26\u53F7\u548C\u5173\u5361\u6587\u4EF6\u5939\u2026":"Select a game account and stage folder\u2026","\u8D26\u53F7 {0} / \u5173\u5361\u76EE\u5F55 {1} \xB7 {2}":"Account {0} / Stage folder {1} \xB7 {2}",\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6:"Simulator save file","\u4F8B\u5982 my-game.save.json":"e.g. my-game.save.json","\u586B\u5199\u5DE5\u4F5C\u533A\u91CC\u7684\u5B58\u6863\u6587\u4EF6\u540D\u6216\u8DEF\u5F84\u3002\u4FDD\u5B58\u8BBE\u7F6E\u65F6\u4F1A\u4E00\u8D77\u4FDD\u5B58\u9879\u76EE\uFF0C\u4E0B\u6B21\u6253\u5F00\u5B58\u6863\u5373\u53EF\u590D\u7528\u3002":"Enter a save filename or path within the workspace. Saving these settings also saves the project so they are available next time.",\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0:"Save and Preview Changes","\u8BF7\u5148\u586B\u5199\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u5E76\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Enter the Miliastra Sandbox script folder and click \u201CSave Settings\u201D first.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u6539\u52A8\uFF0C\u8BF7\u5148\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Script folders changed. Click \u201CSave Settings\u201D first.","\u8BF7\u5148\u586B\u5199\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6\u540D\u3002":"Enter a simulator save filename first.","\u6B63\u5728\u5904\u7406\uFF0C\u8BF7\u7A0D\u5019\u2026":"Working, please wait\u2026",\u811A\u672C\u540C\u6B65\u786E\u8BA4:"Confirm Script Copy","\u672C\u6B21\u66F4\u65B0\u5230\uFF1A{0}":"Destination: {0}","\u8FD9\u4E2A\u5B58\u6863\u8FD8\u6CA1\u6709 Lua \u811A\u672C\u3002\u8BF7\u5148\u5728\u4E0B\u65B9\u6DFB\u52A0\u811A\u672C\uFF0C\u518D\u67E5\u770B\u66F4\u65B0\u3002":"This save has no Lua scripts. Add a script below, then preview the changes.","\u6240\u6709\u811A\u672C\u90FD\u4E0E\u6E38\u620F\u6587\u4EF6\u5939\u91CC\u7684\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u590D\u5236\u3002":"All scripts match the game folder. Nothing to copy.","\u6709\u63A7\u4EF6\u7D22\u5F15\u5C1A\u672A\u540C\u6B65\u5230 Lua\u3002\u8BF7\u5148\u5728\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\uFF0C\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\uFF1B\u5904\u7406\u5B8C\u6210\u540E\u518D\u67E5\u770B\u6E38\u620F\u811A\u672C\u66F4\u65B0\u3002":"Some control index changes are not reflected in Lua. Use \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above before previewing game script changes.","\u590D\u5236\u7684\u4EE3\u7801\u6765\u81EA\uFF1A{0}":"Code source: {0}","\u65E0\u6CD5\u590D\u5236\uFF1A{0}":"Cannot copy: {0}","\u590D\u5236\u5230\uFF1A{0}":"Copy to: {0}","\u8FD9\u4E2A\u811A\u672C\u5728\u5B58\u6863\u91CC\u548C\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u4E0D\u540C\u3002\u672C\u6B21\u4F1A\u590D\u5236\u5B58\u6863\u91CC\u7684\u4EE3\u7801\uFF1B\u5982\u679C\u8981\u4F7F\u7528\u9879\u76EE\u6587\u4EF6\uFF0C\u8BF7\u70B9\u51FB\u300C\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u300D\uFF0C\u7136\u540E\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u3002":"The saved script differs from its project file. This copy uses the saved code. To use the project file instead, choose \u201CUse Project File Code\u201D, then preview changes again.",\u67E5\u770B\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"View Project File Code",\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"Use Project File Code",\u5BF9\u6BD4\u66F4\u65B0\u524D\u540E\u7684\u4EE3\u7801:"Compare Changes",\u6E38\u620F\u91CC\u73B0\u5728\u7684\u4EE3\u7801:"Current Code in the Game","\uFF08\u6E38\u620F\u91CC\u8FD8\u6CA1\u6709\u8FD9\u4E2A\u6587\u4EF6\uFF09":"(This file does not exist in the game yet)",\u672C\u6B21\u8981\u590D\u5236\u7684\u4EE3\u7801:"Code to Copy","\u65B0\u589E\u811A\u672C\u590D\u5236\u540E\uFF0C\u8FD8\u9700\u8981\u5728\u5343\u661F\u6C99\u7BB1\u91CC\u5173\u8054\u5BF9\u5E94\u7684\u811A\u672C\u6587\u4EF6\uFF1B\u9700\u8981\u76F4\u63A5\u8FD0\u884C\u7684\u811A\u672C\u8FD8\u8981\u6302\u5230\u63A7\u4EF6\u4E0A\u3002":"After copying new scripts, link their files in Miliastra Sandbox. Scripts that should run directly must also be attached to controls.","\u5DF2\u9009 {0} \u4E2A\u811A\u672C\uFF0C\u5176\u4E2D {1} \u4E2A\u4F1A\u66FF\u6362\u6E38\u620F\u91CC\u7684\u65E7\u6587\u4EF6\u3002\u66FF\u6362\u524D\u4F1A\u81EA\u52A8\u5907\u4EFD\u65E7\u6587\u4EF6\uFF0C\u6E38\u620F\u91CC\u7684\u5176\u4ED6\u6587\u4EF6\u4F1A\u4FDD\u7559\u3002":"Selected {0} scripts; {1} will replace existing game files. Replaced files are backed up. Other files are kept.",\u8986\u76D6:"Replace",\u6682\u4E0D\u590D\u5236:"Cancel","\u786E\u8BA4\u590D\u5236 {0} \u4E2A\u811A\u672C":"Confirm Copy of {0} Scripts",\u811A\u672C\u5DF2\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1:"Scripts Copied to Miliastra Sandbox",\u6709\u4E9B\u811A\u672C\u672A\u590D\u5236\u6210\u529F:"Some Scripts Could Not Be Copied","\u4E0B\u4E00\u6B65\uFF1A\u56DE\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u4FDD\u5B58\u5173\u5361\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF0C\u8BA9\u6E38\u620F\u52A0\u8F7D\u66F4\u65B0\u540E\u7684\u811A\u672C\u3002":"Next: Return to Miliastra Sandbox, save the stage, and start a new playtest to load the updated scripts.","\u8BF7\u6309\u4E0B\u65B9\u63D0\u793A\u5904\u7406\u5931\u8D25\u7684\u6587\u4EF6\uFF0C\u518D\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u5E76\u590D\u5236\u3002":"Resolve the failed files using the notes below, then preview and copy again.","\u590D\u5236\u65F6\u95F4\uFF1A{0} \xB7 \u65E7\u6587\u4EF6\u5907\u4EFD\u4FDD\u5B58\u5728\uFF1A{1}":"Copied at: {0} \xB7 Backups: {1}",\u6210\u529F:"Success",\u5DF2\u590D\u5236:"Copied",\u672A\u590D\u5236:"Not copied",\u5207\u6362\u5230\u4EAE\u8272\u4E3B\u9898:"Switch to light theme",\u5207\u6362\u5230\u6697\u8272\u4E3B\u9898:"Switch to dark theme",\u5F53\u524D\u5B58\u6863:"Current save","\u5F53\u524D\u8D44\u4EA7\u6CA1\u6709\u63A7\u4EF6\u3002":"This asset has no controls.","\u6253\u5F00\u5B58\u6863\u540E\u663E\u793A\u63A7\u4EF6\u7ED3\u6784\u3002":"Open a save to view its control structure.",\u672A\u9009\u62E9:"None selected",\u7C7B\u578B:"Type",\u6811\u6DF1\u5EA6:"Tree depth",\u7236\u8282\u70B9:"Parent node","\u8BD5\u73A9\u542F\u52A8\u540E\u663E\u793A Lua \u65E5\u5FD7\u3002":"Lua logs appear after starting a playtest.",\u5B58\u6863\u52A0\u8F7D\u5931\u8D25:"Failed to Load Save",\u7B49\u5F85\u5DE5\u4F5C\u533A\u5B58\u6863:"Waiting for a Workspace Save","\u6B63\u5728\u76D1\u542C {0}\u3002":"Watching {0}.","{0}Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"{0}Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.",\u8BD5\u73A9\u5C1A\u672A\u542F\u52A8:"Playtest Not Started","\u9009\u62E9\u8BBE\u5907\u5E76\u70B9\u51FB\u201C\u542F\u52A8\u201D\uFF0C\u5373\u53EF\u8FD0\u884C Lua \u548C\u4EA4\u4E92\u903B\u8F91\u3002":"Select a device and click \u201CStart\u201D to run Lua scripts and interactions.",\u7B49\u5F85\u5B58\u6863:"Waiting for a Save",\u5C1A\u672A\u6253\u5F00\u5B58\u6863:"No save open"," \xB7 \u5DF2\u6682\u505C":" \xB7 Paused","\u7B49\u5F85\u542F\u52A8 Runtime":"Waiting to start Runtime","\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8 \xB7 \u78C1\u76D8\u81EA\u52A8\u5237\u65B0":"Static editor preview \xB7 Refreshes from disk automatically","\u7F16\u8F91\u5668\u753B\u9762\u52A0\u8F7D\u5931\u8D25\u3002":"Failed to load the editor preview.","\u670D\u52A1\u7248\u672C\u672A\u77E5\uFF0C\u8BF7\u66F4\u65B0 Web":"Unknown server version. Update the Web package.",\u5B9E\u65F6\u76D1\u542C\u4E2D:"Live",\u8FDE\u63A5\u4E2D\u65AD:"Disconnected",\u5F00\u542F\u58F0\u97F3:"Enable Sound",\u58F0\u97F3\u5DF2\u5173\u95ED:"Sound Off",\u58F0\u97F3\u5DF2\u5F00\u542F:"Sound On",\u70B9\u51FB\u6216\u5728\u753B\u5E03\u5185\u64CD\u4F5C\u4EE5\u89E3\u9501\u97F3\u6548:"Click or interact with the canvas to enable audio",\u5207\u6362\u9759\u97F3:"Toggle mute","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5F00":"Key Input: On","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5173":"Key Input: Off",\u5DF2\u6253\u5F00\u5B58\u6863:"Save opened",\u5DF2\u91CD\u65B0\u8BFB\u53D6\u78C1\u76D8\u5B58\u6863:"Save reloaded from disk","\u65E5\u5FD7\u5DF2\u5728\u5F53\u524D\u89C6\u56FE\u6E05\u7A7A\u3002":"Logs cleared in this view.",\u6B63\u5728\u91CD\u8FDE:"Reconnecting","\u68C0\u6D4B\u5230\u5B58\u6863\u53D8\u5316\uFF0C\u9884\u89C8\u5DF2\u66F4\u65B0":"Save changed; preview updated",\u9884\u89C8\u5B58\u6863\u5DF2\u6253\u5F00:"Preview save opened","\u624B\u673A 1280\xD7720":"Mobile 1280\xD7720","\u624B\u673A 1560\xD7720":"Mobile 1560\xD7720","\u624B\u673A 1280\xD7960":"Mobile 1280\xD7960",\u540D\u79F0:"Name",\u521D\u59CB\u6FC0\u6D3B:"Initially Active",\u521D\u59CB\u53EF\u89C1\u6027:"Initially Visible",\u53EF\u88AB\u624B\u67C4\u6447\u6746\u5BFC\u822A\u9009\u4E2D:"Selectable by Controller Navigation","\u4F4D\u7F6E X":"Location X","\u4F4D\u7F6E Y":"Location Y","\u5927\u5C0F W":"Width","\u5927\u5C0F H":"Height","\u65CB\u8F6C X":"Rotation X","\u65CB\u8F6C Y":"Rotation Y","\u65CB\u8F6C Z":"Rotation Z",\u540C\u6B65\u4FE1\u606F\u81F3\u6240\u6709\u8BBE\u5907:"Sync Layout Across Devices",\u951A\u70B9\u7C7B\u578B:"Anchor Preset",\u5C45\u4E2D:"Center",\u5DE6\u4E0A:"Top Left",\u4E0A\u65B9:"Top",\u53F3\u4E0A:"Top Right",\u5DE6\u4FA7:"Left",\u53F3\u4FA7:"Right",\u5DE6\u4E0B:"Bottom Left",\u4E0B\u65B9:"Bottom",\u53F3\u4E0B:"Bottom Right",\u53CC\u5411\u62C9\u4F38:"Stretch Both Axes",\u6C34\u5E73\u62C9\u4F38:"Stretch Horizontally",\u5782\u76F4\u62C9\u4F38:"Stretch Vertically",\u81EA\u5B9A\u4E49:"Custom","\u951A\u70B9 Min X":"Anchor Min X","\u951A\u70B9 Min Y":"Anchor Min Y","\u951A\u70B9 Max X":"Anchor Max X","\u951A\u70B9 Max Y":"Anchor Max Y","\u4E2D\u5FC3 X":"Pivot X","\u4E2D\u5FC3 Y":"Pivot Y",\u9694\u79BB\u624B\u67C4\u5BFC\u822A:"Isolate Controller Navigation",\u5C4F\u853D\u6309\u952E\u4E8B\u4EF6\u7A7F\u900F:"Block Key Event Passthrough",\u5C4F\u853D\u533A\u57DF\u5185\u70B9\u51FB\u4E8B\u4EF6\u7A7F\u900F:"Block Click Event Passthrough in Area",\u663E\u793A\u5E38\u9A7B\u5149\u6807:"Show Persistent Cursor",\u5B57\u53F7:"Font Size",\u5B57\u53F7\u81EA\u9002\u5E94:"Auto Font Size",\u6700\u5C0F\u5B57\u53F7:"Minimum Font Size",\u6587\u672C\u8272:"Text Color",\u80CC\u666F\u8272:"Background Color",\u542F\u7528\u63CF\u8FB9:"Enable Outline",\u63CF\u8FB9\u8272:"Outline Color",\u6C34\u5E73\u5BF9\u9F50:"Horizontal Alignment",\u5DE6\u5BF9\u9F50:"Left",\u53F3\u5BF9\u9F50:"Right",\u5782\u76F4\u5BF9\u9F50:"Vertical Alignment",\u9876\u90E8:"Top",\u5E95\u90E8:"Bottom",\u6587\u672C:"Text",\u56FE\u7247\u6E90:"Image Source",\u9759\u6001\u5F15\u7528:"Static Reference",\u5143\u4EF6:"Prefab",\u586B\u5145\u8272:"Fill Color",\u5F00\u542F\u906E\u7F69:"Enable Mask",\u8FB9\u7F18\u7FBD\u5316:"Soft Edge",\u7FBD\u5316\u6A21\u5F0F:"Soft Edge Mode",\u767E\u5206\u6BD4:"Percentage",\u50CF\u7D20:"Pixels","\u7FBD\u5316\u5BBD\u5EA6 X":"Soft Edge Width X","\u7FBD\u5316\u5BBD\u5EA6 Y":"Soft Edge Width Y",\u6C34\u5E73\u7FBD\u5316\u8303\u56F4:"Horizontal Soft Edge Range",\u5782\u76F4\u7FBD\u5316\u8303\u56F4:"Vertical Soft Edge Range",\u6309\u8FDB\u5EA6\u586B\u5145:"Fill by Progress",\u5F62\u72B6:"Shape",\u6A2A\u5411:"Horizontal",\u7EB5\u5411:"Vertical","90\u5EA6\u73AF\u7ED5":"Radial90","180\u5EA6\u73AF\u7ED5":"Radial180","360\u5EA6\u73AF\u7ED5":"Radial360",\u65B9\u5411:"Direction",\u4ECE\u5DE6\u81F3\u53F3:"From Left to Right",\u4ECE\u53F3\u81F3\u5DE6:"From Right to Left",\u4ECE\u4E0B\u81F3\u4E0A:"From Bottom to Top",\u4ECE\u4E0A\u81F3\u4E0B:"From Top to Bottom",\u8D77\u70B9:"Origin",\u8FDB\u5EA6:"Progress",\u906E\u7F69\u533A\u57DF\u53CD\u8F6C:"Invert Mask Area",\u672A\u8BBE\u7F6E:"Not set",\u53EF\u88AB\u5149\u6807\u5C04\u7EBF\u68C0\u6D4B:"Raycast Target",\u6309\u94AE\u662F\u5426\u53EF\u7528:"Interactable",\u4E0D\u53EF\u7528\u72B6\u6001\u8282\u70B9:"Unavailable Status Nodes",\u60AC\u505C\u72B6\u6001\u8282\u70B9:"Hover Status Nodes",\u6309\u4E0B\u72B6\u6001\u8282\u70B9:"Pressed Status Nodes",\u9009\u4E2D\u72B6\u6001\u8282\u70B9:"Selected Status Nodes",\u70B9\u51FB\u97F3\u6548:"Click Sound",\u5F15\u7528\u63A7\u4EF6\u6A21\u677F\u7D22\u5F15:"Referenced Control Template Index",\u5141\u8BB8\u6EDA\u52A8\u4EA4\u4E92:"Enable Scrolling",\u663E\u793A\u6EDA\u52A8\u6761:"Show Scrollbar",\u5217\u8868\u9879\u6A21\u677F\u7D22\u5F15:"Item Template Index",\u6EDA\u52A8\u65B9\u5411:"Scroll Direction",\u6392\u5217\u9650\u5236:"Layout Constraint",\u81EA\u52A8\u6362\u884C:"Automatic Wrapping",\u56FA\u5B9A\u884C\u5217\u6570:"Fixed Row / Column Count",\u6BCF\u884C\u6216\u6BCF\u5217\u6570\u91CF:"Items per Row / Column","\u5217\u8868\u9879\u5927\u5C0F W":"Item Width","\u5217\u8868\u9879\u5927\u5C0F H":"Item Height","\u5217\u8868\u9879\u95F4\u9694 X":"Item Spacing X","\u5217\u8868\u9879\u95F4\u9694 Y":"Item Spacing Y","\u8FB9\u8DDD\u5411\u91CF 1 X":"Padding 1 X","\u8FB9\u8DDD\u5411\u91CF 1 Y":"Padding 1 Y","\u8FB9\u8DDD\u5411\u91CF 2 X":"Padding 2 X","\u8FB9\u8DDD\u5411\u91CF 2 Y":"Padding 2 Y",\u9884\u89C8\u6570\u91CF:"Preview Count",\u952E\u9F20\u6309\u952E:"Keyboard / Mouse Key",\u624B\u67C4\u6309\u952E:"Controller Button",\u52A8\u6548\u7D22\u5F15:"Animation Index",\u5168\u5C4F\u52A8\u6548\u7D22\u5F15:"Fullscreen Animation Index",\u5B8C\u6574\u5EA6:"Support Status","\u8BD5\u73A9\u652F\u6301\u57FA\u7840\u6EDA\u52A8\uFF1B\u6EDA\u52A8\u4EA4\u4E92\u3001\u6EDA\u52A8\u6761\u53CA\u5217\u8868\u914D\u7F6E\u4EE5 JSON/Lua \u4E3A\u51C6\uFF0C\u76F8\u5173 GIA \u5F00\u5173\u6620\u5C04\u5C1A\u672A\u6838\u5B9E\u3002":"Basic scrolling is supported in playtests. Configure interaction, scrollbars, and lists through JSON/Lua; the related GIA flags are not yet verified.","\u672C\u9636\u6BB5\u4EC5\u516C\u5171\u53D8\u6362\uFF0C\u4E1A\u52A1\u69FD\u4E0D\u5B8C\u6574":"Only common transforms are supported at this stage; control-specific fields are incomplete.",\u5173\u5361:"Stage",\u5F53\u524D\u73A9\u5BB6:"Current Player",\u5F53\u524D\u89D2\u8272:"Current Character","\u73A9\u5BB6{0}":"Player {0}","\u89D2\u8272{0}":"Character {0}","\u63A7\u4EF6\u7D22\u5F15\u5FC5\u987B\u662F 1\u20132147483647 \u8303\u56F4\u5185\u7684\u6574\u6570":"Control indices must be integers from 1 to 2147483647","controlGuidChanges \u5FC5\u987B\u662F\u6570\u7EC4":"controlGuidChanges must be an array","controlGuidChanges \u5305\u542B\u65E0\u6548\u6216\u91CD\u590D\u7684\u53D8\u66F4\u8BB0\u5F55":"controlGuidChanges contains invalid or duplicate changes","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 batchId":"controlGuidChanges contains an invalid batchId","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 scriptSignature":"controlGuidChanges contains an invalid scriptSignature",\u672A\u547D\u540D\u754C\u9762:"Untitled UI",\u672A\u547D\u540D\u754C\u9762\u63A7\u4EF6\u7EC4:"Untitled UI Control Group",\u6574\u5408\u5305\u9700\u8981\u670D\u52A1\u7AEF\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u4E0B\u81F3\u5C11\u6709\u4E00\u4E2A\u6839\u63A7\u4EF6:"A combined bundle requires at least one root control inside the server-side Client Control Container","{0} \xB7 \u6574\u5408\u5305.gia":"{0} \xB7 Combined.gia",\u6302\u8F7D\u76EE\u6807\u5FC5\u987B\u662F\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Attachment targets must be client controls or client control templates in the save","\u811A\u672C\u4E0D\u5B58\u5728: {0}":"Script not found: {0}",\u4EC5\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u5141\u8BB8\u4FEE\u6539\u7D22\u5F15:"Only client controls and client control templates support index changes","autoFillClientGuids \u5FC5\u987B\u662F\u5E03\u5C14\u503C":"autoFillClientGuids must be a boolean","\u81EA\u52A8\u586B\u5145\u4EC5\u652F\u6301\u5BA2\u6237\u7AEF\u6A21\u677F\u5217\u8868\uFF1B\u670D\u52A1\u7AEF\u754C\u9762\u7684\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199":"Autofill is only available for client templates. Enter server UI indices separately.","\u5BA2\u6237\u7AEF\u6A21\u677F\u5B58\u5728\u91CD\u590D\u65E7\u7D22\u5F15\uFF0C\u65E0\u6CD5\u81EA\u52A8\u586B\u5145\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49":"Client templates contain duplicate old indices. Resolve the ambiguity before using autofill.","\u63A7\u4EF6\u7D22\u5F15 {0} \u5DF2\u88AB\u300C{1}\u300D\u5360\u7528\uFF1B\u8BF7\u5148\u586B\u5199\u5B83\u7684\u5B9E\u9645\u7D22\u5F15\u3002\u672C\u6B21\u672A\u4FEE\u6539\u4EFB\u4F55\u7D22\u5F15\u3002":"Control index {0} is already used by \u201C{1}\u201D. Enter its actual index first. No indices were changed.","\u65E7\u7D22\u5F15 {0} \u5728\u591A\u68F5\u8D44\u4EA7\u6811\u4E2D\u91CD\u590D\uFF0C\u65E0\u6CD5\u786E\u5B9A\u6A21\u677F\u5F15\u7528\u5F52\u5C5E\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49\u540E\u4FEE\u6539":"Old index {0} appears in multiple asset trees, so the template reference is ambiguous. Resolve it before making changes.","\u8BF7\u660E\u786E\u6307\u5B9A\u5DF2\u6838\u5BF9 Lua \u5F15\u7528\u7684\u6709\u6548\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55 changeIds":"Specify valid changeIds whose Lua references have been reviewed",\u5B58\u6863\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A:"The save name cannot be empty","\u63A7\u4EF6\u7D22\u5F15\u5F85\u6838\u5BF9 Lua \u5F15\u7528\uFF1A{0} / {1} ({2})\uFF1A{3} \u2192 {4}\u3002\u8BF7\u6309\u8BED\u4E49\u66F4\u65B0\u811A\u672C\u4E2D\u7684\u63A7\u4EF6\u7D22\u5F15\u5F15\u7528\uFF0C\u6838\u5BF9\u540E\u786E\u8BA4\u53D8\u66F4\u8BB0\u5F55 {5}\uFF1B\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\u3002":"Review Lua references for control index change: {0} / {1} ({2}): {3} \u2192 {4}. Update references by meaning, then acknowledge change {5}. Do not globally replace equal numbers.","{0} \xB7 \u8D44\u4EA7\u5305.json":"{0} \xB7 Assets.json","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u6A71\u7A97\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default server UI was omitted from the asset bundle GIA.","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u300CLua\u5B9E\u4F8B\u5316\u9762\u677F\u300D\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default client control template was omitted from the asset bundle GIA.","\u8D44\u4EA7\u5305 GIA \u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5DF2\u6539\u52A8\u9879\uFF1B\u8BF7\u5148\u7F16\u8F91\u5F53\u524D\u754C\u9762\uFF0C\u6216\u6539\u7528\u300C\u5F53\u524D\u754C\u9762 GIA\u300D\u3002":"There are no modified assets to export. Edit the UI first, or use \u201CCurrent UI GIA\u201D.","{0} \xB7 \u811A\u672C.json":"{0} \xB7 Scripts.json","{0} \xB7 \u811A\u672C.gia":"{0} \xB7 Scripts.gia","\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684 Lua \u811A\u672C\uFF0C\u8BF7\u5148\u5728\u201CLua \u811A\u672C\u201D\u9875\u521B\u5EFA":"No Lua scripts to export. Create one on the Lua Scripts page first.","\u5F53\u524D\u670D\u52A1\u5668\u63A7\u4EF6 GIA \u4E0D\u5305\u542B {0} \u4E2A Lua \u811A\u672C\u7684\u6E90\u7801\uFF1B\u8BF7\u4F7F\u7528\u300C\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\u300D\uFF0C\u6216\u53E6\u884C\u5BFC\u5165\u811A\u672C\u5305\u5E76\u6838\u5BF9\u6302\u8F7D\u3002":"This server UI GIA does not contain source for {0} Lua scripts. Use \u201CCombined GIA\u201D or import the script bundle separately and check attachments.","JSON \u6587\u4EF6\u65E0\u6548":"Invalid JSON file","\u6574\u5408\u5305\u5DF2\u62C6\u56DE\u300CUI\u63A7\u4EF6-\u670D\u52A1\u7AEF\u300D\u4E0E\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\uFF1B\u5BA2\u6237\u7AEF\u6A21\u677F\u8FB9\u754C\u5DF2\u4FDD\u7559\u3002":"Combined bundle split back into Server UI and Client UI. Client template boundaries were preserved.","\u811A\u672C GUID {0} \u540C\u65F6\u6302\u8F7D\u5230\u591A\u4E2A\u63A7\u4EF6\uFF0C\u5DF2\u4FDD\u7559\u201C{1}\u201D\u76EE\u6807\u3002":"Script GUID {0} was attached to multiple controls. The \u201C{1}\u201D target was kept.",\u670D\u52A1\u7AEF:"Server",\u5BA2\u6237\u7AEF:"Client","\u5355\u8D44\u4EA7 JSON \u7684\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u5BFC\u5165\u8D44\u4EA7":"Index change records in a single-asset JSON must belong to the imported asset","\u811A\u672C {0} \u8BFB\u53D6\u5931\u8D25: {1}":"Failed to read script {0}: {1}","\u5343\u661F\u6C99\u7BB1 \xB7 \u72EC\u7ACB\u8BD5\u73A9":"Miliastra Sandbox \xB7 Standalone Playtest",\u6A21\u62DF\u5668:"Simulator",\u5207\u6362\u8BBE\u5907\u753B\u5E03:"Switch Device Canvas","\u5207\u6362\u8BBE\u5907\u753B\u5E03\uFF1A\u4EE5\u65B0\u753B\u5E03\u91CD\u5EFA\u8FD0\u884C\u65F6\uFF0CGetUICanvasSize \u4E0E\u9884\u8BBE\u50CF\u7D20\u4E00\u81F4":"Rebuild the runtime for the selected canvas. GetUICanvasSize matches the preset's pixel dimensions.",\u8BD5\u73A9\u4EBA\u6570:"Player count","\u8BD5\u73A9\u4EBA\u6570\uFF1A\u6700\u591A 8 \u4EBA\uFF0C\u6BCF\u4EBA\u4E00\u4EFD\u72EC\u7ACB\u5BA2\u6237\u7AEF":"Up to 8 players, each with a separate client instance",\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2:"Current player view","\u5207\u6362\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2\uFF1A\u8F93\u5165\u3001\u753B\u9762\u548C PlayerSelf \u90FD\u8DDF\u968F\u8BE5\u73A9\u5BB6":"Change the active player for input, rendering, and PlayerSelf",\u8BBE\u5907:"Device","\u51C6\u5907\u4E2D\u2026":"Preparing...",\u8BD5\u73A9\u9875\u9762:"Playtest page",\u8BD5\u73A9:"Playtest",\u65E5\u5FD7:"Logs","\u8F6C\u53D1\u5B98\u65B9\u952E\u4F4D\u7684\u6309\u4E0B/\u62AC\u8D77\u4E8B\u4EF6\uFF08\u542B\u9F20\u6807\u5DE6\u53F3\u952E\uFF09\uFF1B\u5173\u95ED\u4E0D\u5F71\u54CD\u753B\u5E03\u70B9\u51FB":"Forward supported key/button down and up events, including mouse buttons. Turning this off does not disable canvas clicks.",\u70B9\u51FB\u89E3\u9501\u6D4F\u89C8\u5668\u97F3\u6548:"Click to enable browser audio","\u2161 \u6682\u505C\u8FD0\u884C":"\u2161 Pause",\u6682\u505C\u540E\u53EF\u5355\u5E27\u8C03\u8BD5:"Pause to step through individual frames","\u25B7 \u5355\u5E27\u8C03\u8BD5":"\u25B7 Step One Frame","\u25A0 \u7ED3\u675F\u8BD5\u73A9":"\u25A0 Stop Playtest","\u21BB \u91CD\u65B0\u5F00\u59CB":"\u21BB Restart",\u5207\u6362\u4EAE\u6697\u4E3B\u9898:"Toggle light / dark theme",\u8FD4\u56DE\u7F16\u8F91:"Back to Editor","\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026":"Preparing playtest\u2026",\u8FD0\u884C\u65F6\u573A\u666F\u6811:"Runtime Scene Tree","0 \u8282\u70B9":"0 nodes",\u670D\u52A1\u7AEF\u53D8\u91CF:"Server Variables","0 \u9879":"0 items",\u5BA2\u6237\u7AEF\u811A\u672C\u65E5\u5FD7:"Client Script Logs","\u6700\u8FD1 100 \u6761":"Latest 100 entries",\u670D\u52A1\u7AEF\u65E5\u5FD7:"Server Logs","\u53D8\u91CF / \u4FE1\u53F7":"Variables / signals",\u81EA\u52A8\u6D4B\u7528\u4F8B:"Automated Test Case","\u5148\u8BD5\u73A9\uFF0C\u518D\u4FDD\u5B58\u56DE\u653E":"Play first, then save a replay",'\u65AD\u8A00 JSON \u6570\u7EC4\uFF0C\u4F8B\u5982 [{"kind":"log","contains":"clicked"}]':'JSON assertion array, e.g. [{"kind":"log","contains":"clicked"}]',\u4FDD\u5B58\u7528\u4F8B:"Save Test Case",\u56DE\u653E\u7528\u4F8B:"Replay Test Case","\u25CF \u6B63\u5728\u542F\u52A8":"\u25CF Starting","\u9875\u9762\uFF1A\u8BD5\u73A9":"View: Playtest","\u9875\u9762\uFF1A\u65E5\u5FD7":"View: Logs",\u8BD5\u73A9\u8BF7\u6C42\u5931\u8D25:"Playtest request failed"," \u9879":" items","\u6682\u65E0\u81EA\u5B9A\u4E49\u53D8\u91CF\u3002\u811A\u672C Get/Set \u6216 serverSet \u4E4B\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"No custom variables yet. They appear after script Get/Set calls or serverSet.","\u5B8C\u6574\u8FD0\u884C\u6811\u8BF7\u7528 Agent \u7684 inspect \u5FEB\u7167\u3002\u821E\u53F0\u6309\u5DE6\u6811\u4E0A\u65B9\u76D6\u4F4F\u4E0B\u65B9\u7ED8\u5236\u3002":"Use an Agent inspect snapshot for the full runtime tree. Items higher in the left tree draw over those below."," \u4E2A\u53EF\u89C1\u56FE\u5143":" visible primitives","\u25B6 \u7EE7\u7EED\u8FD0\u884C":"\u25B6 Resume"," \u4EBA":" players",\u73A9\u5BB6:"Player"," \xB7 \u73A9\u5BB6":" \xB7 Player "," \xB7 \u70B9\u51FB\u8F93\u5165":" \xB7 Click to focus","\u26A0 \u811A\u672C\u6302\u8F7D\u5931\u8D25":"\u26A0 Script attachment failed","\u2161 \u5DF2\u6682\u505C":"\u2161 Paused","\u25CF \u8BD5\u73A9\u8FD0\u884C\u4E2D":"\u25CF Playtest running","\u5DF2\u8BB0\u5F55 ":"Recorded "," \u6B65":" steps","\u26A0 \u8BD5\u73A9\u9519\u8BEF":"\u26A0 Playtest error","\u25A0 \u8BD5\u73A9\u5DF2\u7ED3\u675F\uFF0C\u53EF\u91CD\u65B0\u5F00\u59CB\u6216\u8FD4\u56DE\u7F16\u8F91":"\u25A0 Playtest stopped. Restart or return to the editor.","\u65AD\u8A00\u5FC5\u987B\u662F JSON \u6570\u7EC4":"Assertions must be a JSON array","\u5DF2\u4FDD\u5B58 ":"Saved "," \u6B65 / ":" steps / "," \u6761\u65AD\u8A00":" assertions",\u56DE\u653E\u901A\u8FC7:"Replay passed","\u56DE\u653E\u5931\u8D25 @":"Replay failed @","\u7F3A\u5C11\u4F1A\u8BDD ID":"Missing session ID","\u5343\u661F\u6A21\u62DF\u5668 \xB7 Live Preview":"Miliastra Simulator \xB7 Live Preview","\u5343\u661F\u6A21\u62DF\u5668 \xB7 \u7F16\u8F91\u5DE5\u4F5C\u53F0":"Miliastra Simulator \xB7 Editor","Web Preview \xB7 \u5B9E\u65F6\u9884\u89C8":"Web Preview \xB7 Live Preview",\u5DE5\u4F5C\u533A\u5B58\u6863:"Workspace Saves",\u91CD\u65B0\u8BFB\u53D6\u5B58\u6863:"Reload save from disk","\u7F16\u8F91\u5DE5\u4F5C\u53F0 \u2197":"Open Editor \u2197",\u6B63\u5728\u8FDE\u63A5:"Connecting",\u9884\u89C8\u6A21\u5F0F:"Preview mode",\u7F16\u8F91\u5668:"Editor",\u8D44\u4EA7:"Asset","\u670D\u52A1\u7AEF UI":"Server UI",\u5BA2\u6237\u7AEF\u6A21\u677F:"Client Templates","\u25B6 \u542F\u52A8":"\u25B6 Start","\u2161 \u6682\u505C":"\u2161 Pause","\u25B7 \u7EE7\u7EED":"\u25B7 Resume","+ 1 \u5E27":"+ 1 Frame","\u25A0 \u505C\u6B62":"\u25A0 Stop",\u6A21\u62DF\u5668\u9884\u89C8\u753B\u5E03:"Simulator preview canvas","Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.","\u6B63\u5728\u66F4\u65B0\u753B\u9762\u2026":"Updating preview\u2026",\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8:"Static Editor Preview",\u9884\u89C8\u4FE1\u606F:"Preview Details",\u5F53\u524D\u8282\u70B9:"Selected Node",\u753B\u5E03:"Canvas",\u6E05\u7A7A:"Clear",\u9884\u89C8\u8FDE\u63A5:"Preview Connection","\u6B63\u5728\u8FDE\u63A5\u670D\u52A1\u2026":"Connecting to the service\u2026","\u5F53\u524D\u5B58\u6863\u4FDD\u5B58\u540E\u81EA\u52A8\u5237\u65B0\uFF1B\u9996\u6B21\u5B58\u6863\u4F1A\u81EA\u52A8\u53D1\u73B0\u3002\u5207\u6362\u5176\u4ED6\u5B58\u6863\u8BF7\u4F7F\u7528\u9876\u90E8\u5217\u8868\u6216 MCP \u9884\u89C8\u5DE5\u5177\u3002":"Refreshes automatically when the current save changes, and discovers the first save. Switch saves using the list above or the MCP preview tool.","\u68C0\u67E5\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002":"Update check failed. Check your network connection and retry.",\u53D1\u73B0\u65B0\u7248\u672C:"A new version is available",\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C:"You are up to date",\u5F53\u524D\u7248\u672C\u6BD4\u516C\u5F00\u7248\u672C\u66F4\u65B0:"Your version is newer than the public release",\u6682\u672A\u627E\u5230\u6B64\u5B89\u88C5\u5305\u7684\u6B63\u5F0F\u7248\u672C:"No stable release found for this package",\u754C\u9762\u8BED\u8A00:"Interface language","\u81EA\u52A8\uFF08\u7CFB\u7EDF\u8BED\u8A00\uFF09":"Auto (system language)","\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026":"Checking for updates\u2026",\u68C0\u67E5\u66F4\u65B0:"Check for Updates",\u8054\u7CFB\u4F5C\u8005:"Contact Author",QQ\u7FA4\u53F71007538100:"QQ Group: 1007538100","\u4F5C\u8005\u90AE\u7BB1 ":"Email: ","\u5F00\u6E90\u4ED3\u5E93 ":"Source repository: ","\u5F53\u524D\u7248\u672C\uFF1A{0}":"Current version: {0}","\u516C\u5F00\u7248\u672C\uFF1A{0}":"Public version: {0}","\u66F4\u65B0\u540E\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u7F16\u8F91\u5668\u4E0E\u8BD5\u73A9\u9875\u3002":"After updating, restart the host and refresh the editor and playtest pages.",\u67E5\u770B\u66F4\u65B0\u8BF4\u660E:"View Release Notes",\u4E0B\u8F7D\u66F4\u65B0\u5305:"Download Update",\u91CD\u8BD5:"Retry","\u8BF7\u9009\u62E9\u81EA\u52A8\u67E5\u627E\u3001\u6307\u5B9A\u6587\u4EF6\u6216\u7CFB\u7EDF\u5B57\u4F53":"Choose automatic discovery, a local file, or the system font",\u5B57\u4F53\u8DEF\u5F84\u8FC7\u957F:"The font path is too long",\u8BF7\u586B\u5199\u5B57\u4F53\u6587\u4EF6\u7684\u7EDD\u5BF9\u8DEF\u5F84:"Enter an absolute font file path","\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u5728\u300C\u5B57\u4F53\u8BBE\u7F6E\u300D\u4E2D\u91CD\u65B0\u4FDD\u5B58":"Unable to read local font settings. Save them again in Font Settings.","\u65E0\u6CD5\u4FDD\u5B58\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u76EE\u5F55\u7684\u5199\u5165\u6743\u9650":"Unable to save local font settings. Check write permissions for the configuration directory.","\u5F53\u524D\u5B57\u4F53\u7531 QXQY_FONT_PATH \u56FA\u5B9A\uFF0C\u8BF7\u79FB\u9664\u8BE5\u73AF\u5883\u53D8\u91CF\u5E76\u91CD\u542F\u540E\u518D\u4F7F\u7528\u524D\u7AEF\u8BBE\u7F6E":"QXQY_FONT_PATH overrides font settings. Remove it and restart before editing settings here.",\u5B57\u4F53\u8BBE\u7F6E\u4EC5\u9650\u672C\u673A\u76F4\u63A5\u8BBF\u95EE:"Font settings require a direct connection from this machine",\u5B57\u4F53\u8BBE\u7F6E\u8FC7\u5927:"Font settings exceed the size limit",\u5343\u661F\u6C99\u7BB1:"Miliastra Sandbox",\u5343\u661F\u5947\u57DF:"Miliastra Wonderland",\u670D\u52A1\u7AEF\u63A7\u4EF6\u6A21\u677F:"Server Control Template",\u670D\u52A1\u7AEF\u63A7\u4EF6:"Server Controls",\u5BA2\u6237\u7AEF\u63A7\u4EF6:"Client Controls","1 \u4EBA":"1 player","{0} \u4EBA":"{0} players",\u90E8\u5206\u7EC4\u5408\u5BFC\u51FA:"Export Selected Controls","\u52FE\u9009\u5BA2\u6237\u7AEF\u63A7\u4EF6\u53CA\u5176\u5B50\u6811\uFF0C\u7EC4\u5408\u4E3A\u4E00\u4E2A GIA \u6587\u4EF6\u3002\u7236\u5B50\u540C\u65F6\u9009\u4E2D\u65F6\u53EA\u5BFC\u51FA\u4E00\u6B21\u3002":"Select client controls and their subtrees for one GIA file. Overlapping selections are exported once.",\u53EF\u5BFC\u51FA\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6:"Exportable Client Controls","\u5BFC\u51FA {0}":"Export {0}","\u9884\u89C8 {0}":"Preview {0}","{0} \u4E2A\u63A7\u4EF6":"{0} controls",\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6:"No client controls to export","\u6B63\u5728\u52A0\u8F7D\u2026":"Loading\u2026",\u5BFC\u51FA\u9884\u89C8:"Export Preview","\u9884\u89C8\u5F53\u524D\u9879\u72EC\u7ACB\u5BFC\u51FA\u540E\u7684\u5E03\u5C40\uFF0C\u4E0D\u6539\u53D8\u539F\u9879\u76EE\u3002":"Preview this item as an independent template without changing the project.",\u5305\u542B\u6302\u8F7D\u811A\u672C\u53CA\u672A\u6302\u8F7D\u6A21\u5757:"Include attached scripts and unattached modules",\u5168\u9009:"Select All",\u6E05\u9664:"Clear","\u5DF2\u9009 {0} \u9879":"{0} selected","\u6B63\u5728\u5BFC\u51FA\u2026":"Exporting\u2026","\u5BFC\u51FA GIA":"Export GIA",\u5BFC\u51FA\u5F53\u524D\u5BA2\u6237\u7AEF\u63A7\u4EF6\u53CA\u5176\u5B50\u6811:"Export this client control and its subtree","\u8BF7\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A\u5BA2\u6237\u7AEF\u63A7\u4EF6 controlIds":"Select at least one client control in controlIds","revision conflict: reload export choices":"Revision conflict: reopen the export selection","\u5DF2\u5305\u542B\u672A\u6302\u8F7D\u7684 Lua \u6A21\u5757\uFF1BLua \u52A8\u6001\u5F15\u7528\u65E0\u6CD5\u81EA\u52A8\u5224\u65AD\uFF0C\u8BF7\u6838\u5BF9\u5916\u90E8\u6A21\u677F\u548C\u811A\u672C\u4F9D\u8D56\u3002":"Unattached Lua modules are included. Check external template and script dependencies; dynamic Lua references cannot be resolved automatically.","\u672C\u6B21\u672A\u5305\u542B\u6302\u8F7D\u811A\u672C\uFF0C\u5BFC\u5165\u540E\u9700\u53E6\u884C\u5BFC\u5165\u5E76\u6302\u8F7D\u3002":"Attached scripts are excluded. Import and attach them separately.","\u672A\u77E5\u5BA2\u6237\u7AEF\u63A7\u4EF6\uFF1A{0}":"Unknown client control: {0}","{0}\uFF1A\u4EC5\u5728\u5BFC\u51FA\u526F\u672C\u4E2D\u63D0\u5347\u4E3A\u72EC\u7ACB\u6A21\u677F\uFF0C\u4FDD\u7559\u56DB\u5E73\u53F0\u5C40\u90E8\u53D8\u6362\uFF1B\u5916\u90E8\u7236\u7EA7\u7684\u7F29\u653E\u3001\u65CB\u8F6C\u3001\u906E\u7F69\u53CA\u663E\u9690\u4E0D\u5305\u542B\u5728\u5185\u3002":"{0}: Promoted to an independent template in the export copy only. Local transforms for all four platforms are retained; the parent's scale, rotation, masks and visibility are excluded.","{0}\uFF1A\u5F15\u7528 {1} \u4E0D\u5728\u672C\u6B21\u5BFC\u51FA\u4E2D\uFF0C\u8BF7\u540C\u65F6\u5BFC\u5165\u5BF9\u5E94\u6A21\u677F\u3002":"{0}: Reference {1} is outside this export. Import the referenced template separately.","{0}\uFF1A\u4E8C\u8FDB\u5236\u6A21\u677F\u5F15\u7528\u539F\u6837\u4FDD\u7559\uFF0C\u65E0\u6CD5\u81EA\u52A8\u5224\u65AD\u5916\u90E8\u4F9D\u8D56\u3002":"{0}: The binary template reference is preserved unchanged. External dependencies cannot be resolved automatically.","{0}\uFF1A\u811A\u672C\u6620\u5C04 {1} \u7684\u6E90\u7801\u672A\u767B\u8BB0\uFF0C\u8BF7\u53E6\u884C\u5BFC\u5165\u3002":"{0}: Source for script mapping {1} is not registered. Import it separately.","{0}\uFF1A\u4EC5\u767B\u8BB0\u4E86\u8DEF\u5F84\uFF0C\u6CA1\u6709\u5185\u8054\u6E90\u7801\uFF1B\u8BF7\u6838\u5BF9\u6E38\u620F\u5185\u7684\u811A\u672C\u6587\u4EF6\u3002":"{0}: Only the path is registered, without inline source. Check the script file in the game."};var Yu="qxqy-ui-language",zc="qxqy-ui-language-change",hi=new Set,wy=i=>["auto","zh","en"].includes(i);function $u(){try{let i=globalThis.localStorage?.getItem(Yu);return wy(i)?i:"auto"}catch{return"auto"}}var xo=$u(),Sy=null;function z6(i="auto",e="zh-CN",t=""){return i==="zh"||i==="en"?i:/^(?:zh|cmn|yue|wuu|hak|nan|gan|hsn)(?:[-_]|$)/i.test(t||e)?"zh":"en"}var W6=()=>xo,qu=()=>Sy||{language:typeof window>"u"?"zh-CN":globalThis.navigator?.language||globalThis.navigator?.languages?.[0]||Intl.DateTimeFormat().resolvedOptions().locale||"en",source:"browser"},Ku=()=>z6(xo,qu().language);async function V6(i,e=globalThis.fetch){try{let t=await e(i,{method:"POST",mode:"same-origin",credentials:"same-origin",cache:"no-store",headers:{"content-type":"application/json"},body:"{}",signal:AbortSignal.timeout(4e3)});if(t.ok){let r=await t.json(),s=r.ok?r.value:null;if(typeof s?.language=="string"&&s.language.length<=80){let n=Intl.getCanonicalLocales(s.language.replaceAll("_","-"))[0];if(n){Sy={language:n,source:s.source||"host"};for(let o of hi)o()}}}}catch{}return qu()}function ds(i){if(!(i?.type==="storage"&&i.key!==Yu&&i.key!==null)){xo=i?.type===zc?i.detail:$u();for(let e of hi)e()}}function j6(i){if(wy(i)){xo=i;try{globalThis.localStorage?.setItem(Yu,i)}catch{}if(typeof window<"u")window.dispatchEvent(new CustomEvent(zc,{detail:i}));else for(let e of hi)e()}}function X6(i){return!hi.size&&typeof window<"u"&&(xo=$u(),window.addEventListener("storage",ds),window.addEventListener(zc,ds),window.addEventListener("languagechange",ds)),hi.add(i),()=>{hi.delete(i),!hi.size&&typeof window<"u"&&(window.removeEventListener("storage",ds),window.removeEventListener(zc,ds),window.removeEventListener("languagechange",ds))}}var Hc=(i,e)=>i.replace(/\{(\d+)\}/g,(t,r)=>r<e.length?String(e[r]??""):t),Y6=Object.entries(Nc).filter(([i])=>/\{\d+\}/.test(i)).map(([i,e])=>{let t=[],r=i.split(/(\{\d+\})/).map(s=>{let n=s.match(/^\{(\d+)\}$/);return n?(t.push(Number(n[1])),"([\\s\\S]*?)"):s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("");return{expression:new RegExp(`^${r}$`),value:e,slots:t}});function $6(i,e,...t){if(Array.isArray(e)&&Object.hasOwn(e,"raw")&&(e=e.reduce((r,s,n)=>r+(n?`{${n-1}}`:"")+s,"")),typeof e!="string")return e;if(i!=="en")return Hc(e,t);if(Object.hasOwn(Nc,e))return Hc(Nc[e],t);if(!t.length&&/[\p{Script=Han}]/u.test(e))for(let r of Y6){let s=r.expression.exec(e);if(!s)continue;let n=[];return r.slots.forEach((o,a)=>{n[o]=s[a+1]}),Hc(r.value,n)}return Hc(e,t)}var bo=(i,...e)=>$6(Ku(),i,...e);function q6(i=document){for(let e of i.querySelectorAll("[data-i18n]"))e.textContent=bo(e.dataset.i18n);for(let e of["title","placeholder","aria-label"])for(let t of i.querySelectorAll(`[data-i18n-${e}]`))t.setAttribute(e,bo(t.getAttribute(`data-i18n-${e}`)));i===document&&(document.documentElement.lang=Ku()==="zh"?"zh-CN":"en")}var Kj=Object.freeze({aqua:"00ffff",black:"000000",blue:"0000ff",brown:"a52a2a",cyan:"00ffff",darkblue:"0000a0",fuchsia:"ff00ff",green:"008000",grey:"808080",lightblue:"add8e6",lime:"00ff00",magenta:"ff00ff",maroon:"800000",navy:"000080",olive:"808000",orange:"ffa500",purple:"800080",red:"ff0000",silver:"c0c0c0",teal:"008080",white:"ffffff",yellow:"ffff00"});function Ty(i,e){return`${i.italic?"italic ":""}${i.bold?"bold ":""}${i.fontSize}px ${e}`}function Ey(i){let e=Number(i)>>>0;return`rgba(${e>>>16&255},${e>>>8&255},${e&255},${(e>>>24)/255})`}function K6(i,e,t,r,s=di){let n=e.textLayout;if(!n?.richLines||t<=0||r<=0)return;let o=e.horizontalAlignment==="Right"?1:e.horizontalAlignment==="Middle"?.5:0,a=e.verticalAlignment==="Bottom"?1:e.verticalAlignment==="Middle"?.5:0,c=e.kind==="textwindow"?e.scroll:null,l=n.visibleLineCount??n.richLines.length,d=n.visibleContentHeight??n.contentHeight,h=e.kind==="textwindow"&&n.contentHeight>r?-(c?.offset||0):a*(r-d);i.save(),i.beginPath(),i.rect(0,0,t,r),i.clip(),i.textAlign="left",i.textBaseline="alphabetic",i.lineJoin="round",i.strokeStyle=Ey(e.outlineColor??4278190080);for(let u=0;u<l;u++){let f=n.richLines[u],m=h+f.top;if(m+f.height<0||m>r)continue;let g=2+o*(n.textWidth-f.width);for(let x of f.runs)i.font=Ty(x,s||di),i.fillStyle=Ey(x.color??e.fontColor??4294967295),e.enableOutline&&(i.lineWidth=Math.max(2,x.fontSize*.12),i.strokeText(x.text,g+x.x,m+f.baseline)),i.fillText(x.text,g+x.x,m+f.baseline)}i.restore()}function Zu(i,e,t,r,s,n=1){let o=Math.min(Math.max(1,n),4096/Math.max(1,t,r)),a=Math.max(1,Math.ceil(t*o)),c=Math.max(1,Math.ceil(r*o));i.width!==a&&(i.width=a),i.height!==c&&(i.height=c);let l=i.getContext("2d");l.setTransform(1,0,0,1,0,0),l.clearRect(0,0,a,c),l.save(),l.scale(a/(t>0?t:1),c/(r>0?r:1)),K6(l,e,t,r,s),l.restore()}var _o={version:"ct-v1",catalogSha256:"fcdd2087b0ce558f90489db6c1368211d8b110e8cc755baf1efd731814a53fd4",assets:[{id:10001001,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u96F7\u80FD\u91CF\u6EE1\u503C1",nameEn:"Electro Energy Max Value 1",video:"video/10001001.webm",icon:"icon/10001001.png",audio:[]},{id:10001002,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u706B\u80FD\u91CF\u6EE1\u503C1",nameEn:"Pyro Energy Max Value 1",video:"video/10001002.webm",icon:"icon/10001002.png",audio:[]},{id:10001003,scope:"ui",width:174,height:182,loop:!0,duration:10,name:"\u8349\u80FD\u91CF\u6EE1\u503C1",nameEn:"Dendro Energy Max Value 1",video:"video/10001003.webm",icon:"icon/10001003.png",audio:[]},{id:10001004,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u51B0\u80FD\u91CF\u6EE1\u503C1",nameEn:"Cryo Energy Max Value 1",video:"video/10001004.webm",icon:"icon/10001004.png",audio:[]},{id:10001005,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u5CA9\u80FD\u91CF\u6EE1\u503C1",nameEn:"Geo Energy Max Value 1",video:"video/10001005.webm",icon:"icon/10001005.png",audio:[]},{id:10001006,scope:"ui",width:186,height:186,loop:!0,duration:10,name:"\u6C34\u80FD\u91CF\u6EE1\u503C1",nameEn:"Hydro Energy Max Value 1",video:"video/10001006.webm",icon:"icon/10001006.png",audio:[]},{id:10001007,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u98CE\u80FD\u91CF\u6EE1\u503C1",nameEn:"Anemo Energy Max Value 1",video:"video/10001007.webm",icon:"icon/10001007.png",audio:[]},{id:10001008,scope:"ui",width:224,height:224,loop:!1,duration:1.3,name:"\u53EF\u7528\u63D0\u793A1",nameEn:"Available Hint 1",video:"video/10001008.webm",icon:"icon/10001008.png",audio:[]},{id:10001009,scope:"ui",width:224,height:224,loop:!1,duration:1.3,name:"\u53EF\u7528\u63D0\u793A2",nameEn:"Available Hint 2",video:"video/10001009.webm",icon:"icon/10001009.png",audio:[]},{id:10001010,scope:"ui",width:176,height:176,loop:!0,duration:10,name:"\u96F7\u80FD\u91CF\u6EE1\u503C2",nameEn:"Electro Energy Max Value 2",video:"video/10001010.webm",icon:"icon/10001010.png",audio:[]},{id:10001011,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u706B\u80FD\u91CF\u6EE1\u503C2",nameEn:"Pyro Energy Max Value 2",video:"video/10001011.webm",icon:"icon/10001011.png",audio:[]},{id:10001012,scope:"ui",width:162,height:162,loop:!0,duration:10,name:"\u8349\u80FD\u91CF\u6EE1\u503C2",nameEn:"Dendro Energy Max Value 2",video:"video/10001012.webm",icon:"icon/10001012.png",audio:[]},{id:10001013,scope:"ui",width:176,height:184,loop:!0,duration:10,name:"\u51B0\u80FD\u91CF\u6EE1\u503C2",nameEn:"Cryo Energy Max Value 2",video:"video/10001013.webm",icon:"icon/10001013.png",audio:[]},{id:10001014,scope:"ui",width:170,height:170,loop:!0,duration:10,name:"\u5CA9\u80FD\u91CF\u6EE1\u503C2",nameEn:"Geo Energy Max Value 2",video:"video/10001014.webm",icon:"icon/10001014.png",audio:[]},{id:10001015,scope:"ui",width:186,height:186,loop:!0,duration:10,name:"\u6C34\u80FD\u91CF\u6EE1\u503C2",nameEn:"Hydro Energy Max Value 2",video:"video/10001015.webm",icon:"icon/10001015.png",audio:[]},{id:10001016,scope:"ui",width:180,height:180,loop:!0,duration:10,name:"\u98CE\u80FD\u91CF\u6EE1\u503C2",nameEn:"Anemo Energy Max Value 2",video:"video/10001016.webm",icon:"icon/10001016.png",audio:[]},{id:10001017,scope:"ui",width:300,height:280,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C1",nameEn:"Energy Max Value 1",video:"video/10001017.webm",icon:"icon/10001017.png",audio:["audio/10001017.mp3"]},{id:10001018,scope:"ui",width:220,height:226,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C2",nameEn:"Energy Max Value 2",video:"video/10001018.webm",icon:"icon/10001018.png",audio:[]},{id:10001019,scope:"ui",width:220,height:226,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C3",nameEn:"Energy Max Value 3",video:"video/10001019.webm",icon:"icon/10001019.png",audio:[]},{id:10001020,scope:"ui",width:210,height:216,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C4",nameEn:"Energy Max Value 4",video:"video/10001020.webm",icon:"icon/10001020.png",audio:[]},{id:10001021,scope:"ui",width:216,height:220,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C5",nameEn:"Energy Max Value 5",video:"video/10001021.webm",icon:"icon/10001021.png",audio:[]},{id:10001022,scope:"ui",width:216,height:220,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C6",nameEn:"Energy Max Value 6",video:"video/10001022.webm",icon:"icon/10001022.png",audio:[]},{id:10001023,scope:"ui",width:216,height:220,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C7",nameEn:"Energy Max Value 7",video:"video/10001023.webm",icon:"icon/10001023.png",audio:[]},{id:10001024,scope:"ui",width:134,height:134,loop:!0,duration:10,name:"\u96F7\u5143\u7D20\u5171\u9E23",nameEn:"Electro Elemental Resonance",video:"video/10001024.webm",icon:"icon/10001024.png",audio:[]},{id:10001025,scope:"ui",width:130,height:134,loop:!0,duration:10,name:"\u706B\u5143\u7D20\u5171\u9E23",nameEn:"Pyro Elemental Resonance",video:"video/10001025.webm",icon:"icon/10001025.png",audio:[]},{id:10001026,scope:"ui",width:130,height:130,loop:!0,duration:10,name:"\u8349\u5143\u7D20\u5171\u9E23",nameEn:"Dendro Elemental Resonance",video:"video/10001026.webm",icon:"icon/10001026.png",audio:[]},{id:10001027,scope:"ui",width:128,height:128,loop:!0,duration:10,name:"\u51B0\u5143\u7D20\u5171\u9E23",nameEn:"Cryo Elemental Resonance",video:"video/10001027.webm",icon:"icon/10001027.png",audio:[]},{id:10001028,scope:"ui",width:130,height:130,loop:!0,duration:10,name:"\u5CA9\u5143\u7D20\u5171\u9E23",nameEn:"Geo Elemental Resonance",video:"video/10001028.webm",icon:"icon/10001028.png",audio:[]},{id:10001029,scope:"ui",width:130,height:134,loop:!0,duration:10,name:"\u6C34\u5143\u7D20\u5171\u9E23",nameEn:"Hydro Elemental Resonance",video:"video/10001029.webm",icon:"icon/10001029.png",audio:[]},{id:10001030,scope:"ui",width:130,height:130,loop:!0,duration:10,name:"\u98CE\u5143\u7D20\u5171\u9E23",nameEn:"Anemo Elemental Resonance",video:"video/10001030.webm",icon:"icon/10001030.png",audio:[]},{id:10001031,scope:"ui",width:156,height:160,loop:!1,duration:1,name:"\u6C34\u70AE\u6548\u679C1",nameEn:"Hydro Cannon Effect 1",video:"video/10001031.webm",icon:"icon/10001031.png",audio:[]},{id:10001032,scope:"ui",width:216,height:216,loop:!1,duration:.933,name:"\u6C34\u70AE\u6548\u679C2",nameEn:"Hydro Cannon Effect 2",video:"video/10001032.webm",icon:"icon/10001032.png",audio:["audio/10001032.mp3"]},{id:10001033,scope:"ui",width:488,height:488,loop:!1,duration:1.2,name:"\u97F3\u7B26\u6548\u679C1",nameEn:"Note Effect 1",video:"video/10001033.webm",icon:"icon/10001033.png",audio:[]},{id:10001034,scope:"ui",width:536,height:536,loop:!1,duration:1.4,name:"\u97F3\u7B26\u6548\u679C2",nameEn:"Note Effect 2",video:"video/10001034.webm",icon:"icon/10001034.png",audio:[]},{id:10001035,scope:"ui",width:262,height:266,loop:!0,duration:10,name:"\u97F3\u7B26\u6548\u679C3",nameEn:"Note Effect 3",video:"video/10001035.webm",icon:"icon/10001035.png",audio:[]},{id:10001036,scope:"ui",width:536,height:536,loop:!1,duration:1.4,name:"\u97F3\u7B26\u6548\u679C4",nameEn:"Note Effect 4",video:"video/10001036.webm",icon:"icon/10001036.png",audio:[]},{id:10001037,scope:"ui",width:262,height:266,loop:!0,duration:10,name:"\u97F3\u7B26\u6548\u679C5",nameEn:"Note Effect 5",video:"video/10001037.webm",icon:"icon/10001037.png",audio:[]},{id:10001038,scope:"ui",width:190,height:190,loop:!0,duration:10,name:"\u6269\u6563\u6548\u679C1",nameEn:"Swirl Effect 1",video:"video/10001038.webm",icon:"icon/10001038.png",audio:[]},{id:10001039,scope:"ui",width:208,height:208,loop:!1,duration:.766,name:"\u70B9\u51FB\u6548\u679C1",nameEn:"Press Effect 1",video:"video/10001039.webm",icon:"icon/10001039.png",audio:[]},{id:10001040,scope:"ui",width:390,height:390,loop:!1,duration:1.2,name:"\u8F6C\u6362\u6548\u679C1",nameEn:"Conversion Effect 1",video:"video/10001040.webm",icon:"icon/10001040.png",audio:["audio/10001040.mp3"]},{id:10001041,scope:"ui",width:208,height:208,loop:!0,duration:10,name:"\u8F6C\u6362\u6548\u679C2",nameEn:"Conversion Effect 2",video:"video/10001041.webm",icon:"icon/10001041.png",audio:[]},{id:10001042,scope:"ui",width:208,height:208,loop:!0,duration:10,name:"\u8F6C\u6362\u6548\u679C3",nameEn:"Conversion Effect 3",video:"video/10001042.webm",icon:"icon/10001042.png",audio:[]},{id:10001043,scope:"ui",width:168,height:180,loop:!1,duration:1.233,name:"\u70B9\u51FB\u6548\u679C2",nameEn:"Press Effect 2",video:"video/10001043.webm",icon:"icon/10001043.png",audio:["audio/10001043.mp3","audio/10001043_02.mp3"]},{id:10001044,scope:"ui",width:190,height:198,loop:!1,duration:1.566,name:"\u70B9\u51FB\u6548\u679C3",nameEn:"Press Effect 3",video:"video/10001044.webm",icon:"icon/10001044.png",audio:[]},{id:10001045,scope:"ui",width:114,height:114,loop:!1,duration:.733,name:"\u70B9\u51FB\u6548\u679C4",nameEn:"Press Effect 4",video:"video/10001045.webm",icon:"icon/10001045.png",audio:[]},{id:10001046,scope:"ui",width:106,height:122,loop:!1,duration:.8,name:"\u70B9\u51FB\u6548\u679C5",nameEn:"Press Effect 5",video:"video/10001046.webm",icon:"icon/10001046.png",audio:[]},{id:10001047,scope:"ui",width:114,height:114,loop:!1,duration:.733,name:"\u70B9\u51FB\u6548\u679C6",nameEn:"Press Effect 6",video:"video/10001047.webm",icon:"icon/10001047.png",audio:[]},{id:10001048,scope:"ui",width:114,height:114,loop:!1,duration:.733,name:"\u70B9\u51FB\u6548\u679C7",nameEn:"Press Effect 7",video:"video/10001048.webm",icon:"icon/10001048.png",audio:[]},{id:10001049,scope:"ui",width:130,height:118,loop:!1,duration:1,name:"\u70B9\u51FB\u6548\u679C8",nameEn:"Press Effect 8",video:"video/10001049.webm",icon:"icon/10001049.png",audio:[]},{id:10001050,scope:"ui",width:114,height:114,loop:!1,duration:.733,name:"\u70B9\u51FB\u6548\u679C9",nameEn:"Press Effect 9",video:"video/10001050.webm",icon:"icon/10001050.png",audio:[]},{id:10001051,scope:"ui",width:408,height:408,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C1",nameEn:"Highlight Effect 1",video:"video/10001051.webm",icon:"icon/10001051.png",audio:[]},{id:10001052,scope:"ui",width:272,height:272,loop:!1,duration:.9,name:"\u95EA\u70C1\u6548\u679C1",nameEn:"Blink Effect 1",video:"video/10001052.webm",icon:"icon/10001052.png",audio:[]},{id:10001053,scope:"ui",width:176,height:194,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C2",nameEn:"Highlight Effect 2",video:"video/10001053.webm",icon:"icon/10001053.png",audio:[]},{id:10001054,scope:"ui",width:274,height:286,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C2",nameEn:"Blink Effect 2",video:"video/10001054.webm",icon:"icon/10001054.png",audio:[]},{id:10001055,scope:"ui",width:368,height:368,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C3",nameEn:"Blink Effect 3",video:"video/10001055.webm",icon:"icon/10001055.png",audio:[]},{id:10001056,scope:"ui",width:226,height:210,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C3",nameEn:"Highlight Effect 3",video:"video/10001056.webm",icon:"icon/10001056.png",audio:[]},{id:10001057,scope:"ui",width:304,height:304,loop:!1,duration:.966,name:"\u8F6C\u6362\u6548\u679C4",nameEn:"Conversion Effect 4",video:"video/10001057.webm",icon:"icon/10001057.png",audio:["audio/10001057.mp3"]},{id:10001058,scope:"ui",width:174,height:178,loop:!1,duration:1.6,name:"\u95EA\u70C1\u6548\u679C4",nameEn:"Blink Effect 4",video:"video/10001058.webm",icon:"icon/10001058.png",audio:[]},{id:10001059,scope:"ui",width:362,height:362,loop:!1,duration:1.766,name:"\u95EA\u70C1\u6548\u679C5",nameEn:"Blink Effect 5",video:"video/10001059.webm",icon:"icon/10001059.png",audio:["audio/10001059.mp3"]},{id:10001060,scope:"ui",width:190,height:192,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C6",nameEn:"Blink Effect 6",video:"video/10001060.webm",icon:"icon/10001060.png",audio:[]},{id:10001061,scope:"ui",width:890,height:456,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C7",nameEn:"Blink Effect 7",video:"video/10001061.webm",icon:"icon/10001061.png",audio:[]},{id:10001062,scope:"ui",width:890,height:646,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C8",nameEn:"Blink Effect 8",video:"video/10001062.webm",icon:"icon/10001062.png",audio:[]},{id:10001063,scope:"ui",width:290,height:290,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C4",nameEn:"Highlight Effect 4",video:"video/10001063.webm",icon:"icon/10001063.png",audio:[]},{id:10001064,scope:"ui",width:272,height:272,loop:!1,duration:.866,name:"\u6D88\u9664\u6548\u679C1",nameEn:"Clear Effect 1",video:"video/10001064.webm",icon:"icon/10001064.png",audio:[]},{id:10001065,scope:"ui",width:272,height:272,loop:!1,duration:.9,name:"\u6D88\u9664\u6548\u679C2",nameEn:"Clear Effect 2",video:"video/10001065.webm",icon:"icon/10001065.png",audio:[]},{id:10001066,scope:"ui",width:238,height:210,loop:!1,duration:1.066,name:"\u6D88\u9664\u6548\u679C3",nameEn:"Clear Effect 3",video:"video/10001066.webm",icon:"icon/10001066.png",audio:[]},{id:10001067,scope:"ui",width:154,height:154,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C9",nameEn:"Blink Effect 9",video:"video/10001067.webm",icon:"icon/10001067.png",audio:[]},{id:10001068,scope:"ui",width:484,height:484,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C10",nameEn:"Blink Effect 10",video:"video/10001068.webm",icon:"icon/10001068.png",audio:[]},{id:10001069,scope:"ui",width:326,height:326,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C5",nameEn:"Highlight Effect 5",video:"video/10001069.webm",icon:"icon/10001069.png",audio:[]},{id:10001070,scope:"ui",width:206,height:196,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C6",nameEn:"Highlight Effect 6",video:"video/10001070.webm",icon:"icon/10001070.png",audio:[]},{id:10001071,scope:"ui",width:2236,height:2236,loop:!0,duration:10,name:"\u6C1B\u56F4\u6548\u679C1",nameEn:"Ambience Effect 1",video:"video/10001071.webm",icon:"icon/10001071.png",audio:[]},{id:10001072,scope:"ui",width:406,height:406,loop:!0,duration:10,name:"\u6C1B\u56F4\u6548\u679C2",nameEn:"Ambience Effect 2",video:"video/10001072.webm",icon:"icon/10001072.png",audio:[]},{id:10001073,scope:"ui",width:376,height:336,loop:!1,duration:2.1,name:"\u95EA\u70C1\u6548\u679C11",nameEn:"Blink Effect 11",video:"video/10001073.webm",icon:"icon/10001073.png",audio:[]},{id:10001074,scope:"ui",width:258,height:228,loop:!1,duration:1.666,name:"\u95EA\u70C1\u6548\u679C12",nameEn:"Blink Effect 12",video:"video/10001074.webm",icon:"icon/10001074.png",audio:[]},{id:10001075,scope:"ui",width:322,height:322,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C7",nameEn:"Highlight Effect 7",video:"video/10001075.webm",icon:"icon/10001075.png",audio:[]},{id:10001076,scope:"ui",width:258,height:270,loop:!1,duration:1.2,name:"\u4E92\u52A8\u6548\u679C1",nameEn:"Interaction Effect 1",video:"video/10001076.webm",icon:"icon/10001076.png",audio:[]},{id:10001077,scope:"ui",width:126,height:118,loop:!1,duration:1.1,name:"\u88C5\u9970\u6548\u679C1",nameEn:"Decoration Effect 1",video:"video/10001077.webm",icon:"icon/10001077.png",audio:[]},{id:10001078,scope:"ui",width:220,height:248,loop:!1,duration:1.133,name:"\u88C5\u9970\u6548\u679C2",nameEn:"Decoration Effect 2",video:"video/10001078.webm",icon:"icon/10001078.png",audio:[]},{id:10001079,scope:"ui",width:234,height:232,loop:!1,duration:1.166,name:"\u88C5\u9970\u6548\u679C3",nameEn:"Decoration Effect 3",video:"video/10001079.webm",icon:"icon/10001079.png",audio:[]},{id:10001080,scope:"ui",width:582,height:550,loop:!0,duration:10,name:"\u88C5\u9970\u6548\u679C4",nameEn:"Decoration Effect 4",video:"video/10001080.webm",icon:"icon/10001080.png",audio:[]},{id:10001081,scope:"ui",width:388,height:400,loop:!0,duration:10,name:"\u88C5\u9970\u6548\u679C5",nameEn:"Decoration Effect 5",video:"video/10001081.webm",icon:"icon/10001081.png",audio:[]},{id:10001082,scope:"ui",width:386,height:386,loop:!0,duration:10,name:"\u88C5\u9970\u6548\u679C6",nameEn:"Decoration Effect 6",video:"video/10001082.webm",icon:"icon/10001082.png",audio:[]},{id:10001083,scope:"ui",width:196,height:196,loop:!1,duration:1.2,name:"\u88C5\u9970\u6548\u679C7",nameEn:"Decoration Effect 7",video:"video/10001083.webm",icon:"icon/10001083.png",audio:[]},{id:10001084,scope:"ui",width:496,height:462,loop:!1,duration:.7,name:"\u95EA\u70C1\u6548\u679C13",nameEn:"Blink Effect 13",video:"video/10001084.webm",icon:"icon/10001084.png",audio:[]},{id:10001085,scope:"ui",width:426,height:336,loop:!1,duration:.566,name:"\u95EA\u70C1\u6548\u679C14",nameEn:"Blink Effect 14",video:"video/10001085.webm",icon:"icon/10001085.png",audio:[]},{id:10001086,scope:"ui",width:266,height:190,loop:!1,duration:.866,name:"\u88C5\u9970\u6548\u679C8",nameEn:"Decoration Effect 8",video:"video/10001086.webm",icon:"icon/10001086.png",audio:[]},{id:10001087,scope:"ui",width:310,height:252,loop:!1,duration:1.166,name:"\u88C5\u9970\u6548\u679C9",nameEn:"Decoration Effect 9",video:"video/10001087.webm",icon:"icon/10001087.png",audio:[]},{id:10001088,scope:"ui",width:310,height:252,loop:!1,duration:1.166,name:"\u88C5\u9970\u6548\u679C10",nameEn:"Decoration Effect 10",video:"video/10001088.webm",icon:"icon/10001088.png",audio:[]},{id:10001089,scope:"ui",width:178,height:74,loop:!1,duration:1.966,name:"\u88C5\u9970\u6548\u679C11",nameEn:"Decoration Effect 11",video:"video/10001089.webm",icon:"icon/10001089.png",audio:[]},{id:10001090,scope:"ui",width:190,height:190,loop:!1,duration:1.166,name:"\u95EA\u70C1\u6548\u679C15",nameEn:"Blink Effect 15",video:"video/10001090.webm",icon:"icon/10001090.png",audio:[]},{id:10001091,scope:"ui",width:188,height:188,loop:!1,duration:1.6,name:"\u95EA\u70C1\u6548\u679C16",nameEn:"Blink Effect 16",video:"video/10001091.webm",icon:"icon/10001091.png",audio:[]},{id:10001092,scope:"ui",width:200,height:200,loop:!0,duration:10,name:"\u88C5\u9970\u6548\u679C12",nameEn:"Decoration Effect 12",video:"video/10001092.webm",icon:"icon/10001092.png",audio:[]},{id:10001093,scope:"ui",width:294,height:302,loop:!1,duration:1.033,name:"\u88C5\u9970\u6548\u679C13",nameEn:"Decoration Effect 13",video:"video/10001093.webm",icon:"icon/10001093.png",audio:[]},{id:10001094,scope:"ui",width:310,height:310,loop:!1,duration:.833,name:"\u88C5\u9970\u6548\u679C14",nameEn:"Decoration Effect 14",video:"video/10001094.webm",icon:"icon/10001094.png",audio:[]},{id:10001095,scope:"ui",width:252,height:300,loop:!1,duration:1.8,name:"\u88C5\u9970\u6548\u679C15",nameEn:"Decoration Effect 15",video:"video/10001095.webm",icon:"icon/10001095.png",audio:[]},{id:10001096,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C16",nameEn:"Decoration Effect 16",video:"video/10001096.webm",icon:"icon/10001096.png",audio:[]},{id:10001097,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C17",nameEn:"Decoration Effect 17",video:"video/10001097.webm",icon:"icon/10001097.png",audio:[]},{id:10001098,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C18",nameEn:"Decoration Effect 18",video:"video/10001098.webm",icon:"icon/10001098.png",audio:[]},{id:10001099,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C19",nameEn:"Decoration Effect 19",video:"video/10001099.webm",icon:"icon/10001099.png",audio:[]},{id:10001100,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C20",nameEn:"Decoration Effect 20",video:"video/10001100.webm",icon:"icon/10001100.png",audio:[]},{id:10001101,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C21",nameEn:"Decoration Effect 21",video:"video/10001101.webm",icon:"icon/10001101.png",audio:[]},{id:10001102,scope:"ui",width:260,height:260,loop:!1,duration:1.133,name:"\u9AD8\u4EAE\u6548\u679C8",nameEn:"Highlight Effect 8",video:"video/10001102.webm",icon:"icon/10001102.png",audio:[]},{id:10001103,scope:"ui",width:260,height:260,loop:!1,duration:1.166,name:"\u9AD8\u4EAE\u6548\u679C9",nameEn:"Highlight Effect 9",video:"video/10001103.webm",icon:"icon/10001103.png",audio:[]},{id:10001104,scope:"ui",width:322,height:344,loop:!1,duration:1.133,name:"\u9AD8\u4EAE\u6548\u679C10",nameEn:"Highlight Effect 10",video:"video/10001104.webm",icon:"icon/10001104.png",audio:[]},{id:10001105,scope:"ui",width:380,height:394,loop:!1,duration:1.133,name:"\u9AD8\u4EAE\u6548\u679C11",nameEn:"Highlight Effect 11",video:"video/10001105.webm",icon:"icon/10001105.png",audio:[]},{id:10001106,scope:"ui",width:176,height:140,loop:!0,duration:10,name:"\u6C1B\u56F4\u6548\u679C3",nameEn:"Ambience Effect 3",video:"video/10001106.webm",icon:"icon/10001106.png",audio:[]},{id:10001107,scope:"ui",width:136,height:136,loop:!1,duration:.8,name:"\u95EA\u70C1\u6548\u679C17",nameEn:"Blink Effect 17",video:"video/10001107.webm",icon:"icon/10001107.png",audio:["audio/10001107.mp3"]},{id:10001108,scope:"ui",width:206,height:212,loop:!1,duration:1.7,name:"\u95EA\u70C1\u6548\u679C18",nameEn:"Blink Effect 18",video:"video/10001108.webm",icon:"icon/10001108.png",audio:["audio/10001108.mp3"]},{id:10001109,scope:"ui",width:182,height:182,loop:!1,duration:1.666,name:"\u95EA\u70C1\u6548\u679C19",nameEn:"Blink Effect 19",video:"video/10001109.webm",icon:"icon/10001109.png",audio:[]},{id:10001110,scope:"ui",width:650,height:306,loop:!1,duration:1.533,name:"\u95EA\u70C1\u6548\u679C20",nameEn:"Blink Effect 20",video:"video/10001110.webm",icon:"icon/10001110.png",audio:["audio/10001110.mp3"]},{id:10001111,scope:"ui",width:742,height:494,loop:!1,duration:.9,name:"\u95EA\u70C1\u6548\u679C21",nameEn:"Blink Effect 21",video:"video/10001111.webm",icon:"icon/10001111.png",audio:["audio/10001111.mp3"]},{id:10001112,scope:"ui",width:872,height:462,loop:!1,duration:.9,name:"\u95EA\u70C1\u6548\u679C22",nameEn:"Blink Effect 22",video:"video/10001112.webm",icon:"icon/10001112.png",audio:["audio/10001112.mp3"]},{id:10001113,scope:"ui",width:182,height:182,loop:!1,duration:1.166,name:"\u95EA\u70C1\u6548\u679C23",nameEn:"Blink Effect 23",video:"video/10001113.webm",icon:"icon/10001113.png",audio:[]},{id:10001114,scope:"ui",width:116,height:228,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF1",nameEn:"Progress Accumulation 1",video:"video/10001114.webm",icon:"icon/10001114.png",audio:[]},{id:10001115,scope:"ui",width:520,height:676,loop:!1,duration:1.133,name:"\u8FDB\u5EA6\u7D2F\u79EF2",nameEn:"Progress Accumulation 2",video:"video/10001115.webm",icon:"icon/10001115.png",audio:[]},{id:10001116,scope:"ui",width:88,height:88,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF3",nameEn:"Progress Accumulation 3",video:"video/10001116.webm",icon:"icon/10001116.png",audio:[]},{id:10001117,scope:"ui",width:166,height:278,loop:!1,duration:1.466,name:"\u95EA\u70C1\u6548\u679C24",nameEn:"Blink Effect 24",video:"video/10001117.webm",icon:"icon/10001117.png",audio:[]},{id:10001118,scope:"ui",width:106,height:106,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C25",nameEn:"Blink Effect 25",video:"video/10001118.webm",icon:"icon/10001118.png",audio:[]},{id:10001119,scope:"ui",width:118,height:118,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C26",nameEn:"Blink Effect 26",video:"video/10001119.webm",icon:"icon/10001119.png",audio:[]},{id:10001120,scope:"ui",width:130,height:118,loop:!1,duration:1.566,name:"\u95EA\u70C1\u6548\u679C27",nameEn:"Blink Effect 27",video:"video/10001120.webm",icon:"icon/10001120.png",audio:["audio/10001120.mp3","audio/10001120_02.mp3","audio/10001120_03.mp3","audio/10001120_04.mp3","audio/10001120_05.mp3","audio/10001120_06.mp3","audio/10001120_07.mp3","audio/10001120_08.mp3","audio/10001120_09.mp3","audio/10001120_10.mp3","audio/10001120_11.mp3"]},{id:10001121,scope:"ui",width:376,height:400,loop:!1,duration:1.333,name:"\u95EA\u70C1\u6548\u679C28",nameEn:"Blink Effect 28",video:"video/10001121.webm",icon:"icon/10001121.png",audio:[]},{id:10001122,scope:"ui",width:986,height:706,loop:!1,duration:2.6,name:"\u95EA\u70C1\u6548\u679C29",nameEn:"Blink Effect 29",video:"video/10001122.webm",icon:"icon/10001122.png",audio:[]},{id:10001124,scope:"ui",width:2334,height:2714,loop:!1,duration:1.4,name:"\u7ED3\u7B97\u6548\u679C1",nameEn:"Settlement Effect 1",video:"video/10001124.webm",icon:"icon/10001124.png",audio:[]},{id:10001125,scope:"ui",width:2214,height:2270,loop:!1,duration:1.233,name:"\u7ED3\u7B97\u6548\u679C2",nameEn:"Settlement Effect 2",video:"video/10001125.webm",icon:"icon/10001125.png",audio:[]},{id:10001126,scope:"ui",width:2574,height:1178,loop:!1,duration:3.133,name:"\u7ED3\u7B97\u6548\u679C3",nameEn:"Settlement Effect 3",video:"video/10001126.webm",icon:"icon/10001126.png",audio:[]},{id:10001127,scope:"ui",width:1918,height:1138,loop:!1,duration:3.066,name:"\u7ED3\u7B97\u6548\u679C4",nameEn:"Settlement Effect 4",video:"video/10001127.webm",icon:"icon/10001127.png",audio:[]},{id:10001128,scope:"ui",width:548,height:212,loop:!1,duration:1.966,name:"\u95EA\u70C1\u6548\u679C30",nameEn:"Blink Effect 30",video:"video/10001128.webm",icon:"icon/10001128.png",audio:[]},{id:10001129,scope:"ui",width:638,height:520,loop:!1,duration:1.133,name:"\u95EA\u70C1\u6548\u679C31",nameEn:"Blink Effect 31",video:"video/10001129.webm",icon:"icon/10001129.png",audio:["audio/10001129.mp3"]},{id:10001130,scope:"ui",width:284,height:142,loop:!1,duration:1.2,name:"\u95EA\u70C1\u6548\u679C32",nameEn:"Blink Effect 32",video:"video/10001130.webm",icon:"icon/10001130.png",audio:[]},{id:10001131,scope:"ui",width:790,height:790,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C33",nameEn:"Blink Effect 33",video:"video/10001131.webm",icon:"icon/10001131.png",audio:["audio/10001131.mp3"]},{id:10001132,scope:"ui",width:1020,height:264,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C34",nameEn:"Blink Effect 34",video:"video/10001132.webm",icon:"icon/10001132.png",audio:[]},{id:10001133,scope:"ui",width:1348,height:358,loop:!1,duration:1.5,name:"\u7ED3\u7B97\u6548\u679C5",nameEn:"Settlement Effect 5",video:"video/10001133.webm",icon:"icon/10001133.png",audio:[]},{id:10001134,scope:"ui",width:1116,height:290,loop:!1,duration:2,name:"\u95EA\u70C1\u6548\u679C35",nameEn:"Blink Effect 35",video:"video/10001134.webm",icon:"icon/10001134.png",audio:["audio/10001134.mp3"]},{id:10001135,scope:"ui",width:1116,height:290,loop:!1,duration:2,name:"\u95EA\u70C1\u6548\u679C36",nameEn:"Blink Effect 36",video:"video/10001135.webm",icon:"icon/10001135.png",audio:["audio/10001135.mp3"]},{id:10001136,scope:"ui",width:1520,height:296,loop:!1,duration:1.466,name:"\u95EA\u70C1\u6548\u679C37",nameEn:"Blink Effect 37",video:"video/10001136.webm",icon:"icon/10001136.png",audio:[]},{id:10001137,scope:"ui",width:2266,height:706,loop:!1,duration:2.066,name:"\u95EA\u70C1\u6548\u679C38",nameEn:"Blink Effect 38",video:"video/10001137.webm",icon:"icon/10001137.png",audio:[]},{id:10001138,scope:"ui",width:912,height:192,loop:!1,duration:2.033,name:"\u95EA\u70C1\u6548\u679C39",nameEn:"Blink Effect 39",video:"video/10001138.webm",icon:"icon/10001138.png",audio:[]},{id:10001139,scope:"ui",width:912,height:192,loop:!1,duration:2.033,name:"\u95EA\u70C1\u6548\u679C40",nameEn:"Blink Effect 40",video:"video/10001139.webm",icon:"icon/10001139.png",audio:[]},{id:10001140,scope:"ui",width:912,height:174,loop:!1,duration:2.033,name:"\u95EA\u70C1\u6548\u679C41",nameEn:"Blink Effect 41",video:"video/10001140.webm",icon:"icon/10001140.png",audio:[]},{id:10001141,scope:"ui",width:912,height:102,loop:!1,duration:2.033,name:"\u95EA\u70C1\u6548\u679C42",nameEn:"Blink Effect 42",video:"video/10001141.webm",icon:"icon/10001141.png",audio:[]},{id:10001142,scope:"ui",width:1766,height:1542,loop:!1,duration:3.8,name:"\u95EA\u70C1\u6548\u679C43",nameEn:"Blink Effect 43",video:"video/10001142.webm",icon:"icon/10001142.png",audio:[]},{id:10001143,scope:"ui",width:1312,height:168,loop:!1,duration:1.066,name:"\u95EA\u70C1\u6548\u679C44",nameEn:"Blink Effect 44",video:"video/10001143.webm",icon:"icon/10001143.png",audio:["audio/10001143.mp3","audio/10001143_02.mp3"]},{id:10001144,scope:"ui",width:698,height:82,loop:!1,duration:2.233,name:"\u95EA\u70C1\u6548\u679C45",nameEn:"Blink Effect 45",video:"video/10001144.webm",icon:"icon/10001144.png",audio:[]},{id:10001145,scope:"ui",width:698,height:92,loop:!1,duration:2.266,name:"\u95EA\u70C1\u6548\u679C46",nameEn:"Blink Effect 46",video:"video/10001145.webm",icon:"icon/10001145.png",audio:[]},{id:10001146,scope:"ui",width:698,height:92,loop:!1,duration:2.266,name:"\u95EA\u70C1\u6548\u679C47",nameEn:"Blink Effect 47",video:"video/10001146.webm",icon:"icon/10001146.png",audio:[]},{id:10001147,scope:"ui",width:306,height:54,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF4",nameEn:"Progress Accumulation 4",video:"video/10001147.webm",icon:"icon/10001147.png",audio:[]},{id:10001148,scope:"ui",width:934,height:194,loop:!1,duration:1.233,name:"\u8FDB\u5EA6\u7D2F\u79EF5",nameEn:"Progress Accumulation 5",video:"video/10001148.webm",icon:"icon/10001148.png",audio:[]},{id:10001149,scope:"ui",width:616,height:248,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C48",nameEn:"Blink Effect 48",video:"video/10001149.webm",icon:"icon/10001149.png",audio:[]},{id:10001150,scope:"ui",width:746,height:228,loop:!1,duration:1.366,name:"\u95EA\u70C1\u6548\u679C49",nameEn:"Blink Effect 49",video:"video/10001150.webm",icon:"icon/10001150.png",audio:[]},{id:10001151,scope:"ui",width:606,height:210,loop:!1,duration:1.233,name:"\u95EA\u70C1\u6548\u679C50",nameEn:"Blink Effect 50",video:"video/10001151.webm",icon:"icon/10001151.png",audio:[]},{id:10001152,scope:"ui",width:1674,height:346,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF6",nameEn:"Progress Accumulation 6",video:"video/10001152.webm",icon:"icon/10001152.png",audio:[]},{id:10001153,scope:"ui",width:1110,height:400,loop:!1,duration:1.2,name:"\u95EA\u70C1\u6548\u679C51",nameEn:"Blink Effect 51",video:"video/10001153.webm",icon:"icon/10001153.png",audio:["audio/10001153.mp3","audio/10001153_02.mp3"]},{id:10001154,scope:"ui",width:1178,height:506,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF7",nameEn:"Progress Accumulation 7",video:"video/10001154.webm",icon:"icon/10001154.png",audio:[]},{id:10001155,scope:"ui",width:1254,height:200,loop:!1,duration:1.2,name:"\u8FDB\u5EA6\u7D2F\u79EF8",nameEn:"Progress Accumulation 8",video:"video/10001155.webm",icon:"icon/10001155.png",audio:["audio/10001155.mp3"]},{id:10001156,scope:"ui",width:1180,height:202,loop:!1,duration:1.2,name:"\u8FDB\u5EA6\u7D2F\u79EF9",nameEn:"Progress Accumulation 9",video:"video/10001156.webm",icon:"icon/10001156.png",audio:["audio/10001156.mp3"]},{id:10001157,scope:"ui",width:654,height:118,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF10",nameEn:"Progress Accumulation 10",video:"video/10001157.webm",icon:"icon/10001157.png",audio:[]},{id:10001158,scope:"ui",width:962,height:162,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF11",nameEn:"Progress Accumulation 11",video:"video/10001158.webm",icon:"icon/10001158.png",audio:[]},{id:10001159,scope:"ui",width:1016,height:142,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF12",nameEn:"Progress Accumulation 12",video:"video/10001159.webm",icon:"icon/10001159.png",audio:[]},{id:10001160,scope:"ui",width:790,height:210,loop:!1,duration:1,name:"\u8FDB\u5EA6\u7D2F\u79EF13",nameEn:"Progress Accumulation 13",video:"video/10001160.webm",icon:"icon/10001160.png",audio:[]},{id:10002001,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F41",nameEn:"View Ambience 1",video:"video/10002001.webm",icon:"icon/10002001.png",audio:["audio/10002001.mp3"]},{id:10002002,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F42",nameEn:"View Ambience 2",video:"video/10002002.webm",icon:"icon/10002002.png",audio:[]},{id:10002003,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F43",nameEn:"View Ambience 3",video:"video/10002003.webm",icon:"icon/10002003.png",audio:[]},{id:10002004,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F44",nameEn:"View Ambience 4",video:"video/10002004.webm",icon:"icon/10002004.png",audio:[]},{id:10002005,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F45",nameEn:"View Ambience 5",video:"video/10002005.webm",icon:"icon/10002005.png",audio:[]},{id:10002006,scope:"screen",width:1280,height:720,loop:!1,duration:1.9,name:"\u89C6\u91CE\u6C1B\u56F46",nameEn:"View Ambience 6",video:"video/10002006.webm",icon:"icon/10002006.png",audio:[]},{id:10002007,scope:"screen",width:1280,height:720,loop:!1,duration:2.4,name:"\u89C6\u91CE\u6C1B\u56F47",nameEn:"View Ambience 7",video:"video/10002007.webm",icon:"icon/10002007.png",audio:[]},{id:10002008,scope:"screen",width:1280,height:720,loop:!1,duration:3.433,name:"\u89C6\u91CE\u6C1B\u56F48",nameEn:"View Ambience 8",video:"video/10002008.webm",icon:"icon/10002008.png",audio:["audio/10002008.mp3"]},{id:10002009,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F49",nameEn:"View Ambience 9",video:"video/10002009.webm",icon:"icon/10002009.png",audio:["audio/10002009.mp3"]},{id:10002010,scope:"screen",width:1280,height:720,loop:!1,duration:2.5,name:"\u89C6\u91CE\u6C1B\u56F410",nameEn:"View Ambience 10",video:"video/10002010.webm",icon:"icon/10002010.png",audio:[]},{id:10002011,scope:"screen",width:1280,height:720,loop:!1,duration:1.8,name:"\u89C6\u91CE\u6C1B\u56F411",nameEn:"View Ambience 11",video:"video/10002011.webm",icon:"icon/10002011.png",audio:[]},{id:10002012,scope:"screen",width:1280,height:720,loop:!1,duration:2.933,name:"\u89C6\u91CE\u6C1B\u56F412",nameEn:"View Ambience 12",video:"video/10002012.webm",icon:"icon/10002012.png",audio:[]},{id:10002013,scope:"screen",width:1280,height:720,loop:!1,duration:3.9,name:"\u89C6\u91CE\u6C1B\u56F413",nameEn:"View Ambience 13",video:"video/10002013.webm",icon:"icon/10002013.png",audio:[]},{id:10002014,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F414",nameEn:"View Ambience 14",video:"video/10002014.webm",icon:"icon/10002014.png",audio:[]},{id:10002015,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F415",nameEn:"View Ambience 15",video:"video/10002015.webm",icon:"icon/10002015.png",audio:["audio/10002015.mp3"]},{id:10002016,scope:"screen",width:1280,height:720,loop:!1,duration:2.5,name:"\u89C6\u91CE\u6C1B\u56F416",nameEn:"View Ambience 16",video:"video/10002016.webm",icon:"icon/10002016.png",audio:[]},{id:10002017,scope:"screen",width:1280,height:720,loop:!1,duration:.733,name:"\u89C6\u91CE\u6C1B\u56F417",nameEn:"View Ambience 17",video:"video/10002017.webm",icon:"icon/10002017.png",audio:[]},{id:10002018,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F418",nameEn:"View Ambience 18",video:"video/10002018.webm",icon:"icon/10002018.png",audio:[]},{id:10002019,scope:"screen",width:1280,height:720,loop:!1,duration:2.2,name:"\u89C6\u91CE\u6C1B\u56F419",nameEn:"View Ambience 19",video:"video/10002019.webm",icon:"icon/10002019.png",audio:[]},{id:10002020,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F420",nameEn:"View Ambience 20",video:"video/10002020.webm",icon:"icon/10002020.png",audio:[]},{id:10002021,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F421",nameEn:"View Ambience 21",video:"video/10002021.webm",icon:"icon/10002021.png",audio:[]},{id:10002022,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F422",nameEn:"View Ambience 22",video:"video/10002022.webm",icon:"icon/10002022.png",audio:[]},{id:10002023,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F423",nameEn:"View Ambience 23",video:"video/10002023.webm",icon:"icon/10002023.png",audio:[]},{id:10002024,scope:"screen",width:1280,height:720,loop:!1,duration:3.4,name:"\u89C6\u91CE\u6C1B\u56F424",nameEn:"View Ambience 24",video:"video/10002024.webm",icon:"icon/10002024.png",audio:[]},{id:10002025,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F425",nameEn:"View Ambience 25",video:"video/10002025.webm",icon:"icon/10002025.png",audio:[]},{id:10002026,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F426",nameEn:"View Ambience 26",video:"video/10002026.webm",icon:"icon/10002026.png",audio:["audio/10002026.mp3"]},{id:10002027,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F427",nameEn:"View Ambience 27",video:"video/10002027.webm",icon:"icon/10002027.png",audio:[]},{id:10002028,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F428",nameEn:"View Ambience 28",video:"video/10002028.webm",icon:"icon/10002028.png",audio:[]},{id:10002029,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F429",nameEn:"View Ambience 29",video:"video/10002029.webm",icon:"icon/10002029.png",audio:[]},{id:10002030,scope:"screen",width:1280,height:720,loop:!1,duration:1.966,name:"\u89C6\u91CE\u6C1B\u56F430",nameEn:"View Ambience 30",video:"video/10002030.webm",icon:"icon/10002030.png",audio:[]},{id:10002031,scope:"screen",width:1280,height:720,loop:!1,duration:1.166,name:"\u89C6\u91CE\u6C1B\u56F431",nameEn:"View Ambience 31",video:"video/10002031.webm",icon:"icon/10002031.png",audio:["audio/10002031.mp3","audio/10002031_02.mp3","audio/10002031_03.mp3","audio/10002031_04.mp3"]},{id:10002032,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F432",nameEn:"View Ambience 32",video:"video/10002032.webm",icon:"icon/10002032.png",audio:["audio/10002032.mp3"]},{id:10002033,scope:"screen",width:1280,height:720,loop:!1,duration:2,name:"\u89C6\u91CE\u6C1B\u56F433",nameEn:"View Ambience 33",video:"video/10002033.webm",icon:"icon/10002033.png",audio:["audio/10002033.mp3","audio/10002033_02.mp3"]},{id:10002034,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F434",nameEn:"View Ambience 34",video:"video/10002034.webm",icon:"icon/10002034.png",audio:[]},{id:10002035,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F435",nameEn:"View Ambience 35",video:"video/10002035.webm",icon:"icon/10002035.png",audio:["audio/10002035.mp3"]},{id:10002036,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u7784\u51C6\u6548\u679C1",nameEn:"Aiming Effect 1",video:"video/10002036.webm",icon:"icon/10002036.png",audio:[]},{id:10002037,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u7784\u51C6\u6548\u679C2",nameEn:"Aiming Effect 2",video:"video/10002037.webm",icon:"icon/10002037.png",audio:["audio/10002037.mp3"]}],files:{"audio/10001017.mp3":{bytes:6524,sha256:"82470dfef398dab45fb3d50134da7b49573e7189f683d2bdf0849b478f267c79",duration:.850667},"audio/10001032.mp3":{bytes:27907,sha256:"53ca71dde10d2d7b6fbf7232d2461f48e564c2d847cbb29f9aac685114634dff",duration:1.258231},"audio/10001040.mp3":{bytes:24212,sha256:"faf6a45ba3d02a6d86ba43f8fe8bf7dbadd22997f0e16ed22b990b0eeaac05c2",duration:1.202104},"audio/10001043.mp3":{bytes:15068,sha256:"ffe52807864f795fd7f8e5e235fca49537437d70a34db83d66352063fe538a52",duration:.570563},"audio/10001043_02.mp3":{bytes:12812,sha256:"b8c194027b798e504f51ae73b67ae63e0d56904ebc95d458b0065d995fa2ed58",duration:.501813},"audio/10001057.mp3":{bytes:28220,sha256:"df501138ff9ae6a43fc8b434c09a401093a5598e9366136e7071e1c57baeb238",duration:1.613042},"audio/10001059.mp3":{bytes:29516,sha256:"2d80dbec2dde2348c3c9dcf95598a79bd851aa8329c5ed68e33d40a532ee491c",duration:1.4855},"audio/10001107.mp3":{bytes:27174,sha256:"eedee79d5e4cb0282bba21e5b12a24170a07354f3285d3f50cd47e24ead5149b",duration:1.383039},"audio/10001108.mp3":{bytes:27174,sha256:"eedee79d5e4cb0282bba21e5b12a24170a07354f3285d3f50cd47e24ead5149b",duration:1.383039},"audio/10001110.mp3":{bytes:12164,sha256:"de0f6db4c8942741fa82168431e31f8b54d68260bf412266ef707506ff6f10c3",duration:.448},"audio/10001111.mp3":{bytes:12164,sha256:"de0f6db4c8942741fa82168431e31f8b54d68260bf412266ef707506ff6f10c3",duration:.448},"audio/10001112.mp3":{bytes:12164,sha256:"de0f6db4c8942741fa82168431e31f8b54d68260bf412266ef707506ff6f10c3",duration:.448},"audio/10001120.mp3":{bytes:19556,sha256:"2f7a402979dc442b4214e46d79b2dd1b7925c96c0eaebbbf0555fe3f5bb3a529",duration:1.5},"audio/10001120_02.mp3":{bytes:19772,sha256:"f1c0f5e4b3f8a550d058f14a35340f4cbf56de86b4c409dd13b1125d682e09d6",duration:1.5},"audio/10001120_03.mp3":{bytes:18572,sha256:"630975e0a80512e788648adadc6b2d96c526a6125e13ffffde83e65cf000aa5e",duration:1.5},"audio/10001120_04.mp3":{bytes:21212,sha256:"00da41febe7cf8a8491117ef820c42aa79c65172769b4a12705666e9d7f2b636",duration:1.5},"audio/10001120_05.mp3":{bytes:19220,sha256:"5d85fe103ecc1868eefc679ff676996c329e61881640ac743409899d34fc5b6b",duration:1.5},"audio/10001120_06.mp3":{bytes:24596,sha256:"ce03626d5f0a7ccaf4a6cec7bce8ed915f61d6ec57b3cd532cbfc89da5bdcc3e",duration:1.5},"audio/10001120_07.mp3":{bytes:22316,sha256:"4dadba002982494e40772cccfedce6f6405fb4abc1e81f2206c4c2e0ac2645b5",duration:1.5},"audio/10001120_08.mp3":{bytes:21548,sha256:"309625fddc0d645da062ff788100a656bd83c4ce8cb75d523ed1949387e8252e",duration:1.5},"audio/10001120_09.mp3":{bytes:23060,sha256:"2eaf460f61ae85e8e2a4c324ebb9c4bc4f460fd2489a15943b92d2fa4422d3b6",duration:1.5},"audio/10001120_10.mp3":{bytes:18668,sha256:"6242a47c96c9ce87cb00a6f2288e8209b9ef5e3dc7ecb62bdadbf8672df95714",duration:1.5},"audio/10001120_11.mp3":{bytes:21188,sha256:"880383e307f7fe7210c05c37fc04a0ac8e3c909d500215f72c7228b9c2e660a6",duration:1.5},"audio/10001129.mp3":{bytes:45188,sha256:"07198b0853f2a859c6ccb85ec4ad1e56c6131302f5145f50d39fd98efe7e5387",duration:2.130667},"audio/10001131.mp3":{bytes:45188,sha256:"07198b0853f2a859c6ccb85ec4ad1e56c6131302f5145f50d39fd98efe7e5387",duration:2.130667},"audio/10001134.mp3":{bytes:45908,sha256:"ff64e15c3144791ad9073ee4537eb21ec7cf1d41dd205b0ef051a8263784793f",duration:2.518667},"audio/10001135.mp3":{bytes:49940,sha256:"edf39fa868e9e42da6fe38c8f726bf4162c950543efdfdefb1f85d3dfaa4d72b",duration:2.758667},"audio/10001143.mp3":{bytes:20156,sha256:"740c276f344b457077bc48f627304d15bbd879d06b3d6b6108673f07d2ec0dc5",duration:.841333},"audio/10001143_02.mp3":{bytes:36524,sha256:"b70b6326344739a781ef5ba96103b349d37052102a29cf2d5cddd2517cd13dff",duration:2.298604},"audio/10001153.mp3":{bytes:20372,sha256:"5c7d6a7ee0d3fff9352071a17979c9941ab1e5322e9b5a94692077f932c71ecf",duration:1.074208},"audio/10001153_02.mp3":{bytes:21140,sha256:"34e4852a0e1bcfd46c8820d9d61a1ef5288ba2795decc8829d1cf1c4b04d1b3a",duration:1.074208},"audio/10001155.mp3":{bytes:32132,sha256:"e1b38d6f72b3b7124da2c8a6417484053e1dd2833507d03cea32175d3d8e486c",duration:1.361167},"audio/10001156.mp3":{bytes:17468,sha256:"b945a4cc1ef374343806f677e1e2ab461c452a4eed6992151575791ccae7e9b2",duration:.808958},"audio/10002001.mp3":{bytes:126284,sha256:"9bedc3f73a10d1b4205d53c2c11b22ad1fc54375a430be0f64e2e5a7ed68b35d",duration:6.018875},"audio/10002008.mp3":{bytes:58316,sha256:"e24d9e46941a40c27b0adbc06927f245cb4826445142d3d4d1ca5d4e7a6889b7",duration:2.57125},"audio/10002009.mp3":{bytes:57932,sha256:"abea73a14c14dc143ed4b1244eba7257bf38119edb13923504c00ee11f51deb1",duration:2.5},"audio/10002015.mp3":{bytes:57932,sha256:"abea73a14c14dc143ed4b1244eba7257bf38119edb13923504c00ee11f51deb1",duration:2.5},"audio/10002026.mp3":{bytes:38137,sha256:"3ce1a1df88494fb7179a6df74a9f30f14e185e16060d84daff586c2992f06c1d",duration:1.994603},"audio/10002031.mp3":{bytes:6932,sha256:"81439fcff710fdd6ce4541ddf76edc30f119c44fbf7e6d39df2c6349ffe4a347",duration:.301333},"audio/10002031_02.mp3":{bytes:5420,sha256:"f9ad4c41d670a010fb7e8acc6227e0ea8dc73dc1504972190aa513fdc0257d05",duration:.296104},"audio/10002031_03.mp3":{bytes:8012,sha256:"40c44c0ea861bd86e1bbedda8bf48dbe5c4d0b3a22f493cc2d9dfab43544d9e5",duration:.296104},"audio/10002031_04.mp3":{bytes:5948,sha256:"69c8ab1fc17a47a696e1e65d2a87613ae98377712d09a4d18cfbdf6cb06defae",duration:.296104},"audio/10002032.mp3":{bytes:111082,sha256:"0f17b84ae322621d29af50d88c3ee8d66677926429ae818579eba240e5f07a52",duration:4.90771},"audio/10002033.mp3":{bytes:59847,sha256:"0476fabf3f0d6d000758a82e467a1ff0e363d0efa3e873b60eb2d4194372aa24",duration:2.949274},"audio/10002033_02.mp3":{bytes:60791,sha256:"9f6eac53ec1f8dd02be7a532ee51ddbfc2c1f34c935616194e2c92e8ea8794bd",duration:2.928254},"audio/10002035.mp3":{bytes:93092,sha256:"360a57a535ffe34d8fdd3ef652512dac3cb46c1155791ea5992b3fd5cfde3a0c",duration:4.26},"audio/10002037.mp3":{bytes:50252,sha256:"508a7cadf5dec9f94a41570aa5d0dae7b7ee2fef4bbf42e96b7a8b46da21e51d",duration:2.246667},"icon/10001001.png":{bytes:23905,sha256:"fe51bb11c58eef524f2f6683663a58f69c4272de1d027797ccf1b283b5fcc583"},"icon/10001002.png":{bytes:22166,sha256:"36936f7678f5c5cb0a3a014a76eb9c6bdd5a9f23e72dfbef6d9523523cf9be48"},"icon/10001003.png":{bytes:22959,sha256:"77e1ca70f67b68c3a2ff8951017a95c54af43a02d37f025c4b39e299a0389820"},"icon/10001004.png":{bytes:24182,sha256:"127a9be79e7a0460bbba6f4390b83cf0137a1f50995fd4ddfdf071d0ce9aec5c"},"icon/10001005.png":{bytes:24501,sha256:"78dfe771d99b5002ef7ba93d6b2705aabf28fc8ad362becccd986de62da8b9ee"},"icon/10001006.png":{bytes:23058,sha256:"0bd296f4d2ec3fb3a46f6cbaaeaa959de21e5e94927317cc1c00f3eb767a8ab4"},"icon/10001007.png":{bytes:24384,sha256:"0d858dd1574291ff8365a64381eb7c2244e2f3ee054b89c4291d295af23cb565"},"icon/10001008.png":{bytes:25339,sha256:"60fb9e6b7b0765eb6559360a501220628f73995f20cf32bf600556ed55baebed"},"icon/10001009.png":{bytes:25470,sha256:"6eedb42ef97b243de8b3c7ce7d4ff06ecda408e333c1b67bfb0c3252ba2b71fc"},"icon/10001010.png":{bytes:17067,sha256:"3067643b0330ec446e15ff4b50eadc5c9d75597fac5b7ead544cf9f74c27c8f3"},"icon/10001011.png":{bytes:20283,sha256:"693c10ff57c4f729c5bc4bbc64aa15a7ee9ed1666ad08af11a6bf976e3608ab6"},"icon/10001012.png":{bytes:17900,sha256:"eeb4aa0a6a2e7d52983207ae143660f4cb50c1b529f7c42817112f760ef07520"},"icon/10001013.png":{bytes:20986,sha256:"273f7d86fb8e209bbd2dc06ceb3679c7f8d5d78f57fc3690bfbf83dd48a5fb4c"},"icon/10001014.png":{bytes:19083,sha256:"966cdcbd74d3e990262f5fdf1cc58704f67ca4a2ea5cd36d0118c0be2f312e0c"},"icon/10001015.png":{bytes:19533,sha256:"da2debca11cfa90e1868b966aa19f426664b968d0523ed458bc23e6a26601272"},"icon/10001016.png":{bytes:20596,sha256:"9a584e1393532cc8649512c31319bfa901fc73d557e01c3cd3c77ec80b8a6225"},"icon/10001017.png":{bytes:15766,sha256:"b2588c21a03d6c7795398e2240e527bbdd4e3f718f806f3906930bd68a4c8b85"},"icon/10001018.png":{bytes:18168,sha256:"5e9938443c22663db8434fc568362ae4d3de48cb1b6c411e703aeac07e3b5c4c"},"icon/10001019.png":{bytes:21447,sha256:"7625187d1c358b23e8ff7c38a9a4c6a9952bb0d7f9d4b6cf1256f1a0493df72f"},"icon/10001020.png":{bytes:24125,sha256:"2c07a35ade6a3d73b08d24b76153eedb6de41f1298e840dd5faee04bbf8fbcb0"},"icon/10001021.png":{bytes:19226,sha256:"06046a9387fd8ead3fbe4002c9cafbaa4189852bd683ef3b627133324fc578e9"},"icon/10001022.png":{bytes:19063,sha256:"30406afc29728bd50b1cd1704307effdca73a86db5d3b97a7fd1b2ba936e383a"},"icon/10001023.png":{bytes:19749,sha256:"29ed71483317b6d1f7fdcc4556731ca19a3828158bd70710eaaac5f7512b7aa1"},"icon/10001024.png":{bytes:7178,sha256:"1459dc8c6bba8f391e63d40dc410b0a94ba1ea346a2cc19b8fcee940010a3bd6"},"icon/10001025.png":{bytes:5758,sha256:"7fd586d94c22c9a6c4ad0248974b21d4f29b2a7e2c8c04cecf607f860bd4dd74"},"icon/10001026.png":{bytes:6248,sha256:"1829dd3720c0df86849f78fc5fb532e8412a5302bae20cd4571376c9ae06f43d"},"icon/10001027.png":{bytes:5454,sha256:"fed706b5943134d4fdb776ec35f479bf792a0b4603e23b2030e7893a3159ecd8"},"icon/10001028.png":{bytes:5275,sha256:"f0f01e125afd58d2a7cc6f850e1a69edb8e47d31a424eed21431b0b4f0e34bdd"},"icon/10001029.png":{bytes:6492,sha256:"592c905f1b364684d1004bc17739d1dd563e6aad5a0da97174d6f4d91dde0afc"},"icon/10001030.png":{bytes:5994,sha256:"816c8995dc94a724233222b3a21633d55330bad2c9879509587cfc10a20e9f50"},"icon/10001031.png":{bytes:12053,sha256:"36d3220568ee902b5cdce711946423d79edf54d70b46f7e46d9d79316a60f470"},"icon/10001032.png":{bytes:6189,sha256:"4d2f2a6a4aa56f799fa6d9b2bf112dd14754f3480951962899ed8e19f0f3d5a4"},"icon/10001033.png":{bytes:19270,sha256:"74367881fc31f13f6c8c6aa87a5da0c779d8303cda03aab1b914d03e2e243697"},"icon/10001034.png":{bytes:23429,sha256:"fdf41e7834dacd674f9d14e4db0c3a4598ae18ad7bcb0ed2f819af69decc4564"},"icon/10001035.png":{bytes:10567,sha256:"71e42a76b7d82964f609885a8fd0f4b8082dfbbc450349dd1329fac1d0f3b8d7"},"icon/10001036.png":{bytes:20003,sha256:"3ffb2d2cae852795566819b3bc65e42d6f5cfea442807813e3f110d2ae5306ab"},"icon/10001037.png":{bytes:11651,sha256:"0f2f343b4030beb38a5d03ca500b16292ee3402853a685eea33907da3166d00d"},"icon/10001038.png":{bytes:3402,sha256:"4fe6ebe2f6160b91c3c51971e4d588fa75f17dc58680c5e7525547eadb8a9922"},"icon/10001039.png":{bytes:16348,sha256:"c91c4bb5fd6c4ca331d4e47015669bd8727d2c91a3d79e97dceabba5484eed51"},"icon/10001040.png":{bytes:15606,sha256:"02c74e003d186f3c5ca4ea280312e2629faade7a3b95dc9ea320f587d411c658"},"icon/10001041.png":{bytes:7378,sha256:"dcec72b04c3096893874d605112c6c8aca2182a5d7af4231e08e279155efc6f0"},"icon/10001042.png":{bytes:9216,sha256:"4d53cec5485b07cde76ef6a459d7f30b73cbb149c7d22d70f94c9d4f08caca95"},"icon/10001043.png":{bytes:7268,sha256:"d0c2a175a0de3b1ed673ff2298cd964e93681a79b8bae03cb3a9940bf2b295b7"},"icon/10001044.png":{bytes:17785,sha256:"b166e9094cfb03ecce6eeeef4715623325ec4b86eda3236e72d34c7f1e4c7aee"},"icon/10001045.png":{bytes:20257,sha256:"dba951310f94d16e23800d78e6f15fb09753de1106fce0b6b65c869ac836ae5e"},"icon/10001046.png":{bytes:18695,sha256:"ccabfef92ec484881baade8997962077e362dde9552a0eefa4c11a063156bc61"},"icon/10001047.png":{bytes:20724,sha256:"571f24becceb229b8388a458c72bf5367c9c9b1bd2f511be9b6175f34c3fa743"},"icon/10001048.png":{bytes:19845,sha256:"3bccfb7c346d124071a2746f75d9e519d90985f07a9122cbb373347646c50d1e"},"icon/10001049.png":{bytes:26620,sha256:"62eaca8f1fa7013d5a9039864571102c640f0ad38b7fc19c34e475caf719cda5"},"icon/10001050.png":{bytes:21554,sha256:"9757b6b14968327fbd2933e4bc1df5c88e8acaa6a1654f880d0aa60557d0f012"},"icon/10001051.png":{bytes:23608,sha256:"3649049db87f65e60857124089570f03d8a87ccd367eddf1cd3189dc49318222"},"icon/10001052.png":{bytes:10144,sha256:"2939136db3eeca57cf771b6e776b0d00ef93b53d00a436b1429c8035821cb49b"},"icon/10001053.png":{bytes:16400,sha256:"29c5e8192b476e74b655b9b717ffa08b0195d5e098951a07904128b2fdfd8cd3"},"icon/10001054.png":{bytes:26202,sha256:"f73fbc019e699b109591814aae3f6d8b111b1388e6bb129ccb35edf7b526dd6d"},"icon/10001055.png":{bytes:19948,sha256:"48de3fe25bdde874eac546529417ffcc4ad395640539895293de829bc9d28fcb"},"icon/10001056.png":{bytes:9550,sha256:"a681352376be706911851bb90563ed343968c35c58c7af3a77fff4b4c16ea3a2"},"icon/10001057.png":{bytes:4530,sha256:"f855883dd19a55155968b77c238f2b5fe0cd894569959ec0f776b3c7d9c0006d"},"icon/10001058.png":{bytes:19430,sha256:"d94b796fbddaf0d63531c0b5569b26ef3e5cb42a51b06faced91b6c9fe467c94"},"icon/10001059.png":{bytes:21181,sha256:"71fe484027e51e4b7af32da4a4d3c661bef1dc5e011710aa0c8512db46237072"},"icon/10001060.png":{bytes:19537,sha256:"cb3ee2648a2b1b656e731d8b2c0cb102bc2eed1c6125b166e1867ca0129b4117"},"icon/10001061.png":{bytes:19347,sha256:"2b7bff19a05b1868e680b8d96919aa1449a7a35fb16fad62ce12d9e546f1cc8c"},"icon/10001062.png":{bytes:24195,sha256:"381bb70063fa7dcc3eda51a116bd79c44f41f32fb2abe647c3957570ca3c5257"},"icon/10001063.png":{bytes:24414,sha256:"240ad25841dcf341fc202efeb82009b52f9e99a403129b251443248f8729200d"},"icon/10001064.png":{bytes:21752,sha256:"8f37873cb51acc05c3e38534b272fc0dffaf2455e85f123fb7d1273584e9a276"},"icon/10001065.png":{bytes:22353,sha256:"082328a9b48c365b77eb4b7c7fe3461647af52da0f6f8d3a9a6aed4715ef55c9"},"icon/10001066.png":{bytes:25040,sha256:"93e8e9a1154521759b8275da6dd7813520067bdbb958fa1ef40a3e2db5d33ebd"},"icon/10001067.png":{bytes:17900,sha256:"764844d417a505af87d84c5b45ed11d8d4f6751e0bb934296354baf2c5e9b7db"},"icon/10001068.png":{bytes:27775,sha256:"f1696ad983c71560c9954d23d24e32fa79d877b7f136b115526d74002dfa13ee"},"icon/10001069.png":{bytes:27560,sha256:"14a34457ecf46a8f4a587ec4c7349a56dfa50550382dade7b3496365165b6f3c"},"icon/10001070.png":{bytes:7342,sha256:"392327cac6f05cd50cf10517e065449b3e3d63a20f2e7028cb54597341fffa1a"},"icon/10001071.png":{bytes:8292,sha256:"e35b725fd8337d3caf63550d9b3483fcc4d2e033711538db5cf792c1990760f2"},"icon/10001072.png":{bytes:2941,sha256:"92b0722a12b3370aaa2ddc69da17d1df9ded02d96e1310d9f88d22531d1e52bf"},"icon/10001073.png":{bytes:26648,sha256:"8cb0bfeb6f957c3507f9c59987440e34f9b8af8435ded2e80451c47c5e40e3ed"},"icon/10001074.png":{bytes:15602,sha256:"ade023a5bbeabcb56c1f14936c05d43a55836d9e0d530ac27a582ce5fd099cbd"},"icon/10001075.png":{bytes:29167,sha256:"d104103a60927435254c590c3d13294426f05ea81193ba5581ac1c56dbad690d"},"icon/10001076.png":{bytes:21611,sha256:"d42eff9554cf6b8010729decfe48c67f82fbe044d7174ffcf6f66ce1e0aaa776"},"icon/10001077.png":{bytes:17232,sha256:"417922105baee5e55df1ca41dec0f6ea50e5597e25e972bda5e85921ba89defa"},"icon/10001078.png":{bytes:22903,sha256:"f595cae988c1aa72bb46aaed66fbd4eb2a80b0d428e6f69279e6cc5eb8f33d43"},"icon/10001079.png":{bytes:12314,sha256:"d786c8e75869e85cd1282fedbdd7184599d467323ec627ba84fc8ac4d5b32802"},"icon/10001080.png":{bytes:21705,sha256:"40070edd6457107645f67436623734dc991b9ca443ab90f69f70dbaaea7a39ad"},"icon/10001081.png":{bytes:20562,sha256:"d56e7c2c982f3b27cd11f81799f37e59bed9c0ee33c38cb388a761faa3ff4aa7"},"icon/10001082.png":{bytes:16044,sha256:"d1a2f46512f076d4c94d595d09bd79a621823a9beb605d7550ec7c0a18063fee"},"icon/10001083.png":{bytes:20479,sha256:"fdccdda6ccfed67eac85cfa376d6f8a40ee1219ddd3cad6900b277b609e192eb"},"icon/10001084.png":{bytes:10321,sha256:"8ed3211996fe8174c1eea74b1b5187b507fda63b2d4f9c92d1a198d2560b00b3"},"icon/10001085.png":{bytes:14763,sha256:"2f965520fc95c4616a4af85f5340788038a5b4530ee2e687153ce58559c03220"},"icon/10001086.png":{bytes:18341,sha256:"060c578e663efedf5cb8516fedc4f05837fcf63a55b977d19658324708910776"},"icon/10001087.png":{bytes:4213,sha256:"769837b1d6caa5bbd3e3aa99ea416c57538b18c7c24d918e284d9c1251bbc460"},"icon/10001088.png":{bytes:4172,sha256:"5d4ea01aaec16fe631fc2383d258bba90158083c6bfcd8c1183dc22bad62fc0e"},"icon/10001089.png":{bytes:3474,sha256:"90625242ffa6ef70ba55f48bc7ecdb056c359db8381831ff22f9885d3c3f22f3"},"icon/10001090.png":{bytes:7435,sha256:"513808a1c0e913a192a113b8503698612af55c7ba9f3f341d24f50995aa7e902"},"icon/10001091.png":{bytes:22367,sha256:"7daa0d126bd8a7389720014dcb8448da8bc21eb0b381a99062bfa81d0b4d090c"},"icon/10001092.png":{bytes:12227,sha256:"9d63290e2cfa3acf8d58df425be36a101579b867c66c306986d762d7d4f422fd"},"icon/10001093.png":{bytes:26518,sha256:"bc385ef5b565fd3a9e6f923d6172155fd25472be7705b2b62569b07b8dc08cf6"},"icon/10001094.png":{bytes:25052,sha256:"e4ae56756a19592c96fe52a7a4b538c943377c2a20d921d8fecaea6a8f0c7dea"},"icon/10001095.png":{bytes:23206,sha256:"c4f38e680893ecda45e5c7e3589a2b852a15f4345abe4ec23629e1836d4db70e"},"icon/10001096.png":{bytes:22122,sha256:"f686a5ea91407ebdc08f4291b5169bd552ed5c8d8333be59db9366770cf7ff2b"},"icon/10001097.png":{bytes:12560,sha256:"f73d09781a3c85f822b0c88fa72b740cd50a15c2b8f592fa87979353ab4469dd"},"icon/10001098.png":{bytes:15059,sha256:"7e8050b1404cc16aa86a71b41dbc9d21925a9b78ad9e5254cc4e9624deb31f6c"},"icon/10001099.png":{bytes:15584,sha256:"ac80e1a8be3932dd9961cf91cbb2b177c47600b2bebe29e415bbb6fea798164c"},"icon/10001100.png":{bytes:16326,sha256:"c09dc9a07b44cf2c71c61756237422b4a0c2d2067321cd43695ce6585cffcf56"},"icon/10001101.png":{bytes:10612,sha256:"7aedce9017c7ee89d59e134d9ddd054dd907a26db6c45e7fc20b7506c51b687a"},"icon/10001102.png":{bytes:23039,sha256:"493c35fb2876f09ab03cfe98eb72b4897c8ae425650572c20fb92e71434c98ca"},"icon/10001103.png":{bytes:19364,sha256:"530857b7b8e777d3f96fda60ccb9f23007ecac339c4f752ef3c85a297b3a7966"},"icon/10001104.png":{bytes:28069,sha256:"e9eb24af2a0ba2805b54c614f10221fcb7c1d73217b5d0dc6b7e00fea2e26c33"},"icon/10001105.png":{bytes:26082,sha256:"24952154a32e5955b8503c92d6ebbd85991930130c4308e2cafe9f7c5f577230"},"icon/10001106.png":{bytes:1651,sha256:"617f1f8e08229f2678330ba3c3b6167ba865b07f93691127e870b8d6adf6641b"},"icon/10001107.png":{bytes:22485,sha256:"938d08c4bf33909d7f0895c84a91713cfd1e6f937f33ff2da5eaf2b52eb5b06d"},"icon/10001108.png":{bytes:24430,sha256:"a601101f8b16bdd131b47c8f66433bcb973d1b695d992b09e634a728dff54535"},"icon/10001109.png":{bytes:15975,sha256:"210c74315ec41a5d3c19c29a76bdd3413765f8f17ded734dc0691e76d85b2191"},"icon/10001110.png":{bytes:2344,sha256:"e655f46b6fccd2edafc4eb323d8678eb28f3c3ff117e3ac9f69c60c1827ace46"},"icon/10001111.png":{bytes:3021,sha256:"85f3c7595d26004037c41ec5303b62384a0e78b1ae06bdb99386e027de99ff54"},"icon/10001112.png":{bytes:3407,sha256:"89107889930ee230b538fbbaf11e6d0d041ab412ddf5b9d834a35c30289184e6"},"icon/10001113.png":{bytes:20006,sha256:"043f3dc850dd766a97ca36a4a6b6a4f69f6bd1a39b503a94ae7f44d24a3f9f94"},"icon/10001114.png":{bytes:13510,sha256:"00746c36384a8db4907dd246d6eefa673f5d1779ebd7411e9ce240b605129211"},"icon/10001115.png":{bytes:25840,sha256:"81c3874b31b33ff76ff5696828fc7e041acbc4e5802a159e6d7cf39623b6e4d9"},"icon/10001116.png":{bytes:26845,sha256:"e08add35bb5d9dab63eb2113db0a3f02837033f89ef5bf03d6fb6bde4b143a7e"},"icon/10001117.png":{bytes:5260,sha256:"7d5929d69cf88c4fd3aad5d0924e5501c8d6466ae8deea9dd98587bcc683ace5"},"icon/10001118.png":{bytes:2319,sha256:"4a2e00b11368da3400d0fde87af9ae0004a491f9e5166cbe9ba3e412d8c42977"},"icon/10001119.png":{bytes:9639,sha256:"69c0e0c0244fe4f9a863a749dd0697021334cf6f8a940aae48047447d07abfb5"},"icon/10001120.png":{bytes:3934,sha256:"92b3b1c0bb994c6eda4527f6b6dd2af58c3fa895d04867856d0ff59ccfd19048"},"icon/10001121.png":{bytes:20543,sha256:"2ab3a15500ca6a11e4ca65bc371d95c0af1e0563cc2c0dc4f20c8c01ab092e38"},"icon/10001122.png":{bytes:12810,sha256:"b5836c452bfa9d9a1db7a362538da5568db5824118c696eb3a2c158ae70f0cf6"},"icon/10001124.png":{bytes:35989,sha256:"619ff5c41712328cb34e98705aa8df74574a1821770a4586b22909577a4bc58e"},"icon/10001125.png":{bytes:29137,sha256:"99a9ab0501de6dba85c2abc0e1e36adf7a86f10fb37875e2680f2f6d9ca3e83f"},"icon/10001126.png":{bytes:22453,sha256:"f43f07f4c18e71b27570d8523eb3a8e029420c31ffadcb3e3aa1bbaa80a9fe4d"},"icon/10001127.png":{bytes:19714,sha256:"07781839310d272bc7aa3dad17d09224462964e4a677466697030781c8fa71ce"},"icon/10001128.png":{bytes:13908,sha256:"e1181919aa1dcf4fce455f94c43548cdc4db1eccbd1056cd9cc2dd3eb8f61d64"},"icon/10001129.png":{bytes:17401,sha256:"350f315d554986c5a522f79ce80a4f33b658317e2dfd28e765f31f1f55d9fd8b"},"icon/10001130.png":{bytes:12296,sha256:"9a43c99b2df57772c96547b0de18a8d0760d6c324c2b9d3cc3db33467dd08503"},"icon/10001131.png":{bytes:5038,sha256:"75d352f831fb2cb7f33db7514a5e8c96e1dbaedcf370955cad7783baa0845efe"},"icon/10001132.png":{bytes:7256,sha256:"b0dba588447f82e38c20eb54684a9d1f84ea83fb011287908f81cac2d9c29756"},"icon/10001133.png":{bytes:6606,sha256:"96100d356bd18b99201bde0a3196a851804f391a99e915a189d1ece883c4e349"},"icon/10001134.png":{bytes:7075,sha256:"93352721db5da92231f0b53f01f72aacc33670a820e2fa6331f402c79ab3dff3"},"icon/10001135.png":{bytes:7300,sha256:"e978e0bfac39714827cd7dd770b54fda77e5e7bc82392ce8092e9ba616ceac3c"},"icon/10001136.png":{bytes:4617,sha256:"403a83d32973ff5007759b8910d8d38f29c42d0caaee60876a29951a263008c1"},"icon/10001137.png":{bytes:6923,sha256:"e64530fb2cc4cb2e95be5481ce47d78a99d095cb4739f6c58f0269bb6c06df60"},"icon/10001138.png":{bytes:3412,sha256:"0d8839c0f16110389f079dd0cdaf32130b0d4363994cd62e51f64775a89736c6"},"icon/10001139.png":{bytes:3432,sha256:"ed8360d109e366c6a330c2806137f37d458194adcb5d7a5d61da0c168061f316"},"icon/10001140.png":{bytes:2813,sha256:"b3d6c1d80544a5327c21f9e63e452ed129e729e4ba18653013386bfe9a26d6ea"},"icon/10001141.png":{bytes:1976,sha256:"7874744cf4f00e0a676a4d76eb469e72ecd5fed016ae4b25a164f78994dedc19"},"icon/10001142.png":{bytes:15037,sha256:"14d12854b4b17da8ba54f0808be9acca2cdea82f004b047343b288fc5c442d65"},"icon/10001143.png":{bytes:5652,sha256:"5f02f7cf842d9aef4b81b784e3dce9ed4e820745c97efde3b7af2fa94cc6f2c6"},"icon/10001144.png":{bytes:3080,sha256:"ed7b8552f4dff8310e269986336dba5cbe76ccb6e065156b825bf8e0b5c8fdfc"},"icon/10001145.png":{bytes:2987,sha256:"ffa4d3452e8d0c751aec973fffe797c2e872175cd5912d0393c72b3da8cad13c"},"icon/10001146.png":{bytes:5483,sha256:"4ed80b9c3fa0d88c6cef1289f18048b9b373742348e991e23b3ac042bd71ad26"},"icon/10001147.png":{bytes:1152,sha256:"05750a2593db8d6cb0e64755e447fa2236cc5edfdd633a8ab9be8d8b5fcd7d89"},"icon/10001148.png":{bytes:2662,sha256:"421eafe1622cd73809a8b09b7a74074628a8acc9df8c4411f7ee51fb96a6cc2d"},"icon/10001149.png":{bytes:5963,sha256:"a16c6f9abbd6d866df576878a10477bb1f9c055d4ad19a050e3305b394f80058"},"icon/10001150.png":{bytes:7106,sha256:"66161334208241a31f9f5bca369733c81c6070de9b1d9f4c922c6c5a15dcc684"},"icon/10001151.png":{bytes:10932,sha256:"260a9dc36d191df0700e243e8461362605ddd759a0bd7fb382a9175ead3d9c91"},"icon/10001152.png":{bytes:5867,sha256:"e1980362d5eed82c2806a9ea5fc1b0ccdac33629f7aee398f74c5f54389ed683"},"icon/10001153.png":{bytes:9870,sha256:"e1e279e3065898eca9503c8652b74a71b4151284a733ee9293026be4d249c05d"},"icon/10001154.png":{bytes:9156,sha256:"6c6bd25805bb81659537de7814550b6b4daaddaf894645eb630ff9520a246d04"},"icon/10001155.png":{bytes:5172,sha256:"057bb0e931efc9b955b43943dcbbe5df73cc34ffd1755df8986e0f8f691b4794"},"icon/10001156.png":{bytes:4527,sha256:"5b93b62d5f786efce3b63ad62da61c67f15a65441a47fcb2df3cf92807170758"},"icon/10001157.png":{bytes:1326,sha256:"054bbfcfbb69453dfeec70ac86a3fef70f4ea818110a9a8285bd294d65972d60"},"icon/10001158.png":{bytes:4270,sha256:"dc54dad40d681aaf0f6aac8b3dd4b419e05a079d5d05bd4561a7348b9edf7927"},"icon/10001159.png":{bytes:3192,sha256:"b3962f15d41f625b1435c7d7182f2b744fa9de0ff299503dd3683171de794d2a"},"icon/10001160.png":{bytes:5158,sha256:"9e52b24f602584cc198214039c10c2bd33609b3c448ddfd2acbd565beb8bfbac"},"icon/10002001.png":{bytes:20145,sha256:"f4d95a54594309ab6deed445289097af22295f51ff5b7139acad7bb06045bcb3"},"icon/10002002.png":{bytes:21810,sha256:"af166959cddb542b83349dcc045096dae6185cd52d48a013dad78fe7ba1053ce"},"icon/10002003.png":{bytes:21958,sha256:"8bd0e7b9603ab0136ce86d8f7ace42ae23640013f07464730efd774655bd1628"},"icon/10002004.png":{bytes:23769,sha256:"4c1e6d5b3eef62b104f392bcd6cbf3ae7d2abaee06b161a1a65c6e916734945f"},"icon/10002005.png":{bytes:23898,sha256:"b30336b8be741b5a6315bf6ffffde315446e1639d9438e649f282153eec3f13b"},"icon/10002006.png":{bytes:36362,sha256:"81973c5d0fc8a86e8cec23d9d3eeb68f23ea95c302e8fefccaec90a320891427"},"icon/10002007.png":{bytes:23004,sha256:"1b42dcbd00fb4f45d6818b05e8b56c2880b0b2fbe061d17562f0c2125e6dbef6"},"icon/10002008.png":{bytes:25821,sha256:"7a6a91b0b32ef193de8601d3779c8a96b30c8994f746ecdb14920f364f434401"},"icon/10002009.png":{bytes:29951,sha256:"d736d5118775d03725093e1dd6bc51236c7fa39ed00184487db2267bae5f9f4f"},"icon/10002010.png":{bytes:26085,sha256:"6b92c88569ffcdd8b2cd4836f281b36ef5085c468fbb14923d085317e3d25c81"},"icon/10002011.png":{bytes:25715,sha256:"827cbcdb97487fefbfb801847e4acbcf298d0c10037173d612b006f615ef5ef0"},"icon/10002012.png":{bytes:26384,sha256:"e7ae9e007cddcc3c1f3a0d8206052b107ed5726276105583f4bb9015a14c5fa3"},"icon/10002013.png":{bytes:27500,sha256:"5ff084b46a5b00e83aefdba355c33bd972cad0537c08fee7bc6ffb42bc0ebdc6"},"icon/10002014.png":{bytes:20236,sha256:"c98b3528d9506c343a680e3699c3481dc0e17a7c14966b447a963c8bc0639c81"},"icon/10002015.png":{bytes:30913,sha256:"1efb63f37ed6ebcb4e28488901b4866d37204840be668a677e53fd8735b55c53"},"icon/10002016.png":{bytes:26866,sha256:"a91a05fa0e2f633e32011fc416ecc7b79096bdc531480200bc64b71ff8c05b5a"},"icon/10002017.png":{bytes:27987,sha256:"e9adecf78cac8b30edfec13604726b9e04a3bc5cc9ab2459ca09957a4300130b"},"icon/10002018.png":{bytes:25698,sha256:"2c9ce8412106fef0b68132d1bb13358b0c2953ab968f248559f1b4bfb043cc80"},"icon/10002019.png":{bytes:20846,sha256:"891a3906fc6324235cdbf4c83c7e0d58c6a7a71c423b2bb0a38e04d0de717d4b"},"icon/10002020.png":{bytes:19304,sha256:"b06d5f3d0a91dd2b49174f680d829d73260a6d4cbec4fff48a6131d4a4e89695"},"icon/10002021.png":{bytes:21812,sha256:"01dad29e897e1660646fdaa826b72fadbe822ceb13bbad6cb57fd1f9519e3139"},"icon/10002022.png":{bytes:19095,sha256:"eb571c371e8c9f6447d1567652425c43d2e6cfa9ed5f3dbd6b29fd3ff26f741e"},"icon/10002023.png":{bytes:20241,sha256:"5769cad4d0fa0effb7498b15f97ee1f45e6655275df15164e04f79ef314324e3"},"icon/10002024.png":{bytes:14546,sha256:"b823c0e0b8e4b852519254794cf219b42e02021d667528c6387a545fc2a066ac"},"icon/10002025.png":{bytes:28393,sha256:"5374e4d458ac4d8ae45419c0040c1981f12395afb984b631c48b640b8be2aebb"},"icon/10002026.png":{bytes:5243,sha256:"f97e20c0f2ea8e3c2d3b3dfaa9d3b9449e3ed559364cc2e7ab1516d0cb88bd78"},"icon/10002027.png":{bytes:4486,sha256:"cdd1376115bf45ba21b47c6e574a5b28f7c83cb36159bb1f7c60d737f9ec8ecc"},"icon/10002028.png":{bytes:3253,sha256:"41e38057943bc5dfbb24d8279c9ce23b58c871615deb28d934b0bb954bb66df2"},"icon/10002029.png":{bytes:24855,sha256:"60c949a324f60ac215dd01ea0dd4471ccff9b912717fd3b03443dea31dd87940"},"icon/10002030.png":{bytes:4435,sha256:"0a3e76f32808add9274d8e65d279b33521b655036d24cf87de3f5fa11de6dfc9"},"icon/10002031.png":{bytes:27998,sha256:"8fa5a2187292213adab843c9fbc68e8f099371a3ed74c55195998f92810e8b4f"},"icon/10002032.png":{bytes:21697,sha256:"9ece6166203932aad1a59d851258dc92e17f67f11de52b642c3abedeef571a3a"},"icon/10002033.png":{bytes:35521,sha256:"99c220eec1407ade7a0a5ff8c22a8dc6e4149ac6d0f407c005f78f8338f9bab5"},"icon/10002034.png":{bytes:6754,sha256:"b5097a0501688fe67edf17c7a993ce12323a2b86b55226db7cad7d9c2ffa016b"},"icon/10002035.png":{bytes:9625,sha256:"172106dc0c33f12daad2eee2ab1278f94c1026d0d6db70320851f2908eb9eb46"},"icon/10002036.png":{bytes:2474,sha256:"43ca13e6572a60aacfba330ac86bf5211a6901914fbd1559fffbb89ca15ccd41"},"icon/10002037.png":{bytes:23717,sha256:"d232b256c550eb85f96d5eb28f19a661f2127f383f49bf4ba4348f935f32dbe9"},"video/10001001.webm":{bytes:147646,sha256:"a72065f7abcc9387fb3dccd473d509bec7b421aa6c34c89e344dd8ee294bc2d2",duration:10},"video/10001002.webm":{bytes:171594,sha256:"b6e89b1967387bf40278b73414d90f0a3b8c61b0e4bfa63e74f67fa049ad3482",duration:10},"video/10001003.webm":{bytes:151975,sha256:"c5fa8ecbc3e6992256ee128dc400d2c93bf91fe5f7813a4d289c4b6d477fda54",duration:10},"video/10001004.webm":{bytes:164765,sha256:"d85282288b6a845d35f7ec6bfe49fc0f5d4766fe61ae30b87a9df6ff2a4961fc",duration:10},"video/10001005.webm":{bytes:189607,sha256:"0f186507b14407573ebb42da49a5749809e28819854cd46b4bf82b858ff057fd",duration:10},"video/10001006.webm":{bytes:136733,sha256:"cd11113d02047c42e3c03be3f2835f34eb52d0fe595b8e380a69fa86d9a40957",duration:10},"video/10001007.webm":{bytes:174723,sha256:"c9e65dbd73985b4ee5e716b63f5a9bf5719be8b95ea9a3a61a3aae772adaa064",duration:10},"video/10001008.webm":{bytes:13947,sha256:"d494a403015acc7700b45021ce269771edc8766e62f2bd82a7d26c9f60c63bb5",duration:1.3},"video/10001009.webm":{bytes:15895,sha256:"04d442aa0a51199be173b17a069b8365ae3205b26db275fb73355356fa1f871a",duration:1.3},"video/10001010.webm":{bytes:83391,sha256:"9bb064beb2f4622cc761ba26e5793da93c576d9c26be517912bd0d25f82763a2",duration:10},"video/10001011.webm":{bytes:107849,sha256:"d884e886fd74baba25a896921907e37675329915a90081fbcdd30e84fe4df099",duration:10},"video/10001012.webm":{bytes:84881,sha256:"c3ed5ae0813a45908906170ed6513b64c20a51f72aa0783ee55112ddb8701f80",duration:10},"video/10001013.webm":{bytes:96819,sha256:"560da96c18685b4fe4acc7b32ab940f229bc7ed1c57b0dd4511be7c22e5b6162",duration:10},"video/10001014.webm":{bytes:140840,sha256:"6ae425c9aa6d7ce1a476f18caa12ef0b124fa8b98e446696a3bba29ef6ae9a32",duration:10},"video/10001015.webm":{bytes:106513,sha256:"78e68a0cd736cf5c7a433f79f603126d0036bec8a751c937c7b96106180865c9",duration:10},"video/10001016.webm":{bytes:126160,sha256:"206ff8c1ba2836b2e58a907458b3c5a9ded69556eb4e29685725f49a90a2b481",duration:10},"video/10001017.webm":{bytes:217547,sha256:"0b1402a3ab2b0b3fa2284c33dec5b818049399a3a7cf1c2bf6b891c604905577",duration:10},"video/10001018.webm":{bytes:78212,sha256:"b5681b42272c66d918e143a63b6b4f9c044cd6b3ef1a8d2050a26f583b6b7a2c",duration:10},"video/10001019.webm":{bytes:175270,sha256:"6f493f9db0be094ab927becf8be553d416eab7ccdbac76896cd02a33ea094af3",duration:10},"video/10001020.webm":{bytes:227796,sha256:"57eb38683cf84e8abbd6319da39e08e4233baee90bac54568034fca55f7a253b",duration:10},"video/10001021.webm":{bytes:216527,sha256:"e19c751b9c36ce5d68c18a161ada9216e23f7cf8598638de9c8b4c2911d6e390",duration:10},"video/10001022.webm":{bytes:188626,sha256:"6ca2e91020c1141ee626b5dca2c7c190978562a70af2a6982f387c1e9cd9e53d",duration:10},"video/10001023.webm":{bytes:199004,sha256:"0b42968e4ac8f1152244e3821ef33d15954bfd3efba5709568b778b7ef375d23",duration:10},"video/10001024.webm":{bytes:60772,sha256:"a1a4269849425bc985f07f4e2c9e7bfd2fa5094238926b9d4096b8155bee39ce",duration:10},"video/10001025.webm":{bytes:61785,sha256:"0d7e10b6b97b5cbb5098046277b0315b0db4b5542ad8da82758adb800eb970f0",duration:10},"video/10001026.webm":{bytes:59199,sha256:"d2404c66eb3f357ae6349541a53fa713c4d81793c9b5f273cb6d5b949ded6330",duration:10},"video/10001027.webm":{bytes:37421,sha256:"c97fd7cda4cf46636757fd2913f5cdbfc44db0c183d7190499c3f54c1b007bc5",duration:10},"video/10001028.webm":{bytes:57620,sha256:"0deb4f0b933adce6785a46c2319e63721774f185532875fb4434f78eb905863d",duration:10},"video/10001029.webm":{bytes:66083,sha256:"ae3ef6d5ed1c676ce11136f98404159bbd3e847b7967c7cd76e53060df090ddd",duration:10},"video/10001030.webm":{bytes:58745,sha256:"0c7965cbed1119b1ff13e1b3381129a28468a6464279751590063f11efd8028a",duration:10},"video/10001031.webm":{bytes:8557,sha256:"5847d08b09f9f39575fba5fabada6133757231545bf08656ae145136c8d21bd9",duration:1},"video/10001032.webm":{bytes:25221,sha256:"0a401d8d73d2a838d01daecdf047b04ae98cf76cac899ae7a21fda8b9cefc2da",duration:.933},"video/10001033.webm":{bytes:34602,sha256:"896f71d3387bcf4154cec5fe67593c1982374af65cfebd5b989108adc2e07ddd",duration:1.2},"video/10001034.webm":{bytes:125134,sha256:"3804a3b13d8974702162d97a703c63a7aa5bb2690e892a6215d3a61af788fa8a",duration:1.4},"video/10001035.webm":{bytes:67308,sha256:"22651c969c1e7ad47a6aa062a7791fed498069d407dce6471afb760b83eee66c",duration:10},"video/10001036.webm":{bytes:127270,sha256:"f0dabcf3554f6aeb9a3070796760df4f5a7047e435ba94e8c3948bdae24dcc45",duration:1.4},"video/10001037.webm":{bytes:168190,sha256:"3b0423327eac86c2376f2d0e1ad08142c335e80b3bf2a35b58410e43038a39e4",duration:10},"video/10001038.webm":{bytes:131917,sha256:"3153ff561dbb204cff54001334794aff6551dc29e55dbeb0fad35bdef372033a",duration:10},"video/10001039.webm":{bytes:11634,sha256:"2bbbdddc40b1790c6ff3f4a7be9c6ad0f8a5ef521d45e4c7ca9f0a84a70dcca3",duration:.766},"video/10001040.webm":{bytes:29034,sha256:"9187e82dace372eda0441947980d8a981238b519fe8b91b3cd8983a25bc38124",duration:1.2},"video/10001041.webm":{bytes:145234,sha256:"86c73a18f5f07c18427a4f6540e94ae0488a22ba061f931c5071f4524aeb8e33",duration:10},"video/10001042.webm":{bytes:173888,sha256:"f4011ff7a3474cf2ff9cc02eee560e46d3e1ad165848dafb989907199951ac01",duration:10},"video/10001043.webm":{bytes:42182,sha256:"9bd4b77d6cb8be53aa0cb3954a124c523f076cd4b3f3ef646d1a41a272c9a058",duration:1.233},"video/10001044.webm":{bytes:32089,sha256:"789fc8b1316530b118bedf21682606096aa1f4191c1946dcd1d3262713567a84",duration:1.566},"video/10001045.webm":{bytes:9892,sha256:"d9261d0738da8852b6473a93bff97ec9f5d7e8fe130d314b44f4d870f9e2ef85",duration:.733},"video/10001046.webm":{bytes:7771,sha256:"bc5fcfa1b15638d4f4b44cea1f27e02e5c7281e5d422dd70e8945e52524f236b",duration:.8},"video/10001047.webm":{bytes:11433,sha256:"8dfb6ace018b13706517ee2511753af3606a9d646ef98f7808a1bbdf0220e23f",duration:.733},"video/10001048.webm":{bytes:9648,sha256:"d92bced2753f1ab8cd2edbab06905ac82e4b1423235bd32e9259058070d19470",duration:.733},"video/10001049.webm":{bytes:24623,sha256:"54769931e5ce88f652c63c4b190aa017a7e70e5860b046df7a2813f00cb42b59",duration:1},"video/10001050.webm":{bytes:20713,sha256:"919a6070b7e1f042e5a74f091ba8c23924f467cc1ddfdc5816feb3d638cc3acb",duration:.733},"video/10001051.webm":{bytes:317681,sha256:"a1dda360215590f4b5fb7b8a82cbe44d240211270485eae950b5535b01686d08",duration:10},"video/10001052.webm":{bytes:15091,sha256:"ff7685c63cf73e1422f07b59bf5e006b6dad8d2d80b1a8ae0997d13ef58487df",duration:.9},"video/10001053.webm":{bytes:183319,sha256:"c8c07a2deb6b4899a6d1c1b8dda72fac6ed45a11d6646c40f5c2e354a84a8d13",duration:10},"video/10001054.webm":{bytes:17094,sha256:"ca07c647725212c323dad57886c5b56a5eda2ae27909bf5ddf0f3589e99b5b5b",duration:1},"video/10001055.webm":{bytes:53469,sha256:"a8c69dd8c3c9e4836f1c3c9a4c033bc7bfacc0fab9ac2981c48e4391589c41de",duration:1},"video/10001056.webm":{bytes:225400,sha256:"60fbad9fef225e7205c0eba98951387354a8470e9a50db3921494db3dba6ba0f",duration:10},"video/10001057.webm":{bytes:7082,sha256:"0aeb94988ec8862c3bec3f357f380b675da3b0881c48640b37fa3d1215353b9b",duration:.966},"video/10001058.webm":{bytes:90245,sha256:"4bbbc44479a590344eb38e965facc757347d87c63816e0ccf8939d98d8278ecb",duration:1.6},"video/10001059.webm":{bytes:87447,sha256:"fb1b2bf01c971fcf2a69833b2728d8553f058877386c6e17947e2bc28e50f904",duration:1.766},"video/10001060.webm":{bytes:1276390,sha256:"19f135d0143a973a7ea358a64f83aacb227ddd483f200c6fc88738b3a2e1c9b5",duration:10},"video/10001061.webm":{bytes:70336,sha256:"10d1a43ee81a6fb691448a1a3165612edd96943e7188612069a13f57788c3513",duration:1},"video/10001062.webm":{bytes:102563,sha256:"79a12a7baa9ab219c27845166f613f87829073e0214ff26ac1b3239a2f8a8222",duration:1},"video/10001063.webm":{bytes:565456,sha256:"6784dd43aa64a9005df034defe99ca23eedf9a124f0a0681bb9ea531152d5656",duration:10},"video/10001064.webm":{bytes:48740,sha256:"3585e3b7579301babf2a941529d05261f7a4e7993d394be668ce3e6b34269be2",duration:.866},"video/10001065.webm":{bytes:16738,sha256:"96de617b4263a73bdb61e98d4643e8ad6488bc0cc359ee4f8da5eb6b0333c466",duration:.9},"video/10001066.webm":{bytes:12376,sha256:"ca507ca6ab20dae1d3e9ff3cf8fb0fb70763983f4b3c82fe8f05b5b011160189",duration:1.066},"video/10001067.webm":{bytes:23685,sha256:"8702ce3719d477e8a79a5321b152a804a583578aa6335aae221e238e449c4508",duration:10},"video/10001068.webm":{bytes:55734,sha256:"708b564295d3c3e1929d4f5da5af6595e9ef236e692380a838e4230ff3813381",duration:1},"video/10001069.webm":{bytes:1128088,sha256:"56b38a26aaa7913066c3336ba98f7eb1037c17fe80fb110d45e123cc46c36acc",duration:10},"video/10001070.webm":{bytes:975681,sha256:"4c762f4cc796d0a167e47ba18c6c658b9173cc8fd951b9c7537043ac1d3cab4c",duration:10},"video/10001071.webm":{bytes:815992,sha256:"e2547ebac9f4d2dba4cc455fc73cf1de2afa209f4a54473a252f3578b5882361",duration:10},"video/10001072.webm":{bytes:616757,sha256:"551e36eea20409279ac7b058f0658460e88b60c7b62189209ab219ab5ab35969",duration:10},"video/10001073.webm":{bytes:37684,sha256:"913e5eb86f0de97099bc8f1c2860dcc0ccb23af3df7b9565e46d23dcd3d5b2e4",duration:2.1},"video/10001074.webm":{bytes:12604,sha256:"7a034a81cb6b8d09507a83c42b44fa6ce5dac567aaa4dad86900772e81573fac",duration:1.666},"video/10001075.webm":{bytes:107268,sha256:"a58331fcb3c6ca07f581b3ca490eedcd4e4d486ddcf944083038198495dc8c6b",duration:10},"video/10001076.webm":{bytes:32481,sha256:"6c49036a5c3d63f3f8a554e751fde071afa7a88c69c0eb5fa8aac3ead9936c85",duration:1.2},"video/10001077.webm":{bytes:34358,sha256:"8b1cd91b4547b5c773688dc7586d02ef3505b56a6c0e5e8cfe95ac2877074fd9",duration:1.1},"video/10001078.webm":{bytes:46506,sha256:"d2b1506af78535ae8c25d12ed47f613f58c96c237aabd3a69481926279abbad2",duration:1.133},"video/10001079.webm":{bytes:73888,sha256:"14eaab31df0169c82d784132e336f21e3dbcde36e8d863e813fdbbd0cc7fe736",duration:1.166},"video/10001080.webm":{bytes:227149,sha256:"f953d8cb2c360f1a7beff3f1eb0287d2ad5b4b5021cd8add406935e7bce0f499",duration:10},"video/10001081.webm":{bytes:206185,sha256:"bd954a94b76ecb754018c8d2f5600757907fcbf5b8d8fd8c16eba98d2c77bd45",duration:10},"video/10001082.webm":{bytes:414215,sha256:"a66f150faa15b300f9d87422b83566b253c50579b8b08a83e7d5fecdeb33117a",duration:10},"video/10001083.webm":{bytes:103790,sha256:"f7619598f5fd506003b6161a7d7a9f7d13eaf3ae26a51cf560899ee50ab74850",duration:1.2},"video/10001084.webm":{bytes:49760,sha256:"075a51589f5556f125c56e3448e2b8c7fcfeec7f7981228e46991fcadb58b603",duration:.7},"video/10001085.webm":{bytes:39486,sha256:"7782a3f27d41c5b833746b6892a2074821226da33b0dfefe1173c5a45890abbc",duration:.566},"video/10001086.webm":{bytes:24420,sha256:"1e7c975fd2c3027095353ae2b7651e3b9f0104554a072579127817aa5ccdea02",duration:.866},"video/10001087.webm":{bytes:58874,sha256:"5101e1da0097fc9785131be66f411e54f427ef18f21ade4b254728e94ac568b7",duration:1.166},"video/10001088.webm":{bytes:64189,sha256:"a3c150eeaca295e70a351b250bd3554b4633a77f6704e581b72a8bd93f0ea194",duration:1.166},"video/10001089.webm":{bytes:25443,sha256:"0e5a1151fea93701ebc923211c8f5c406e895104a4afb9ba71d521ad45b39b85",duration:1.966},"video/10001090.webm":{bytes:65254,sha256:"89ad6f296294c0abf4fb08e68ebf141d1c602a659c0ec563f7058ac6d2462fd4",duration:1.166},"video/10001091.webm":{bytes:81681,sha256:"3081d901c969bc1f4a4b10a447c3a712a8b4136965c34a76119e1b6dcd5e6cd3",duration:1.6},"video/10001092.webm":{bytes:548135,sha256:"5c013b847ea4b8338927ebd2597c2bb12b9c9a7231853c3d277eba10f9dd453f",duration:10},"video/10001093.webm":{bytes:63342,sha256:"bc87982e78383167ff4c649b6603a78cff1d6cf3cb51349e73626fcb2a5a7b49",duration:1.033},"video/10001094.webm":{bytes:20050,sha256:"53e91848830acea081a4d56ab8db383627a78ebb806ecb6766a2e11ed9573c58",duration:.833},"video/10001095.webm":{bytes:84670,sha256:"172553d18635861bfe28c6f06b5c8cea5e7640287cb75242fec31c12319772d4",duration:1.8},"video/10001096.webm":{bytes:28716,sha256:"31d3f4236eb9e2f2f6cc76003284b02496bc581ab1c8e19cd5929b5828c894ef",duration:1.6},"video/10001097.webm":{bytes:25147,sha256:"2129484b7dfcc5abe518553a0841a92a6582062356acda687b942b2cb221d26f",duration:1.6},"video/10001098.webm":{bytes:76333,sha256:"ac1d85c4f336abd854fd461db4e0951c83346dd2669c38b91e537ec758e9de65",duration:1.6},"video/10001099.webm":{bytes:76173,sha256:"2fba51975dae32febc9c1a270b1b5b769d299f143c4996198c7dfca26efd1014",duration:1.6},"video/10001100.webm":{bytes:80616,sha256:"ee23d3bf91e53bf9eb93d5a7c5879daa54aaa7e7194ba3944758131ebee68c5d",duration:1.6},"video/10001101.webm":{bytes:84160,sha256:"cb606310669a2a1d2f30b0903af51eae290a4276d2d934439999bfa10bdb5604",duration:1.6},"video/10001102.webm":{bytes:82257,sha256:"01cad0b39abfc2f041df3c1e786a11d3323cd25297fbebca2f196f8f556c8d82",duration:1.133},"video/10001103.webm":{bytes:91224,sha256:"106929efba101b9ae0f76b6b637cd4e16863bf9f72f779c2474d0d6cab4fc1fc",duration:1.166},"video/10001104.webm":{bytes:89745,sha256:"0862ade9ff0001d2cb5458e3cb6998a7ac42c2336840d73532f5492e522cbb34",duration:1.133},"video/10001105.webm":{bytes:93873,sha256:"0b03b634e18bb25087af672cee8e29df618540f3ac73761dae9a854a629dcfff",duration:1.133},"video/10001106.webm":{bytes:80898,sha256:"c25414e50001dd924e75c4b9aab2aa4fca72d1765bec268344e1541c9f9734ff",duration:10},"video/10001107.webm":{bytes:14411,sha256:"faa6ad2693c69433203864414e338b8d0f322096ff6b05b826787ec3a7bf7f57",duration:.8},"video/10001108.webm":{bytes:45841,sha256:"5e3c3dbbbd11985807452e9b02a69477d018b60dcf1598ed1deb21ec82bb4a50",duration:1.7},"video/10001109.webm":{bytes:53026,sha256:"2a0c537529b94d06bac852d498825b431a2830d944e8601e752b115b68d481ac",duration:1.666},"video/10001110.webm":{bytes:28873,sha256:"b1ec1a3d0d577270b1eb3fd1dcf2ddc36df9dcea52df0249b8440db3e0ec9b6f",duration:1.533},"video/10001111.webm":{bytes:15873,sha256:"74c62d1739cb80ecfbc66b755c7332a27a53b3ff3c6d72aa75d47804b211ad36",duration:.9},"video/10001112.webm":{bytes:17381,sha256:"e3c96e5b87f26c54347abcc591e241a78ae3ccccfc2eaa0bc447f1400410ed92",duration:.9},"video/10001113.webm":{bytes:28753,sha256:"1b16a8e140a6787675a0201e4ef4dea5633076d9494cdfb6f8c16c9b2507b8ea",duration:1.166},"video/10001114.webm":{bytes:111410,sha256:"13cd5f511962912110c6ac8d6ef7e39a823fcf48477762a18123080866b43138",duration:10},"video/10001115.webm":{bytes:43777,sha256:"0000583cb60ee7e8d562e13bbf5ddd7fc3fd8c9d93d2bcc7b96df9ab524f980e",duration:1.133},"video/10001116.webm":{bytes:87365,sha256:"d96dc3d3f552ca40e77ddd55b50da8c93a7bf34f53a6ecf01802751248f2189c",duration:10},"video/10001117.webm":{bytes:15087,sha256:"9e95f50d1385083834770fa0f09ffe79fa570e93def94b52a6a7a7e64f581a0b",duration:1.466},"video/10001118.webm":{bytes:74213,sha256:"4340b8ff11f8a3795d4d2fcd5c32d112ea4bb92153880f8b3eda34e15a82738d",duration:10},"video/10001119.webm":{bytes:26934,sha256:"244f12529343f2163be2b075dafc1907662ef53ab60c4ad081b8db9d81b4abc1",duration:10},"video/10001120.webm":{bytes:15909,sha256:"77c6308d62f016d2f6a0669f5c165efab2afff3d15611afb54965bc65e3ecca4",duration:1.566},"video/10001121.webm":{bytes:14072,sha256:"d5cc8215a5d4e8499f402cf5ad34e4ed958319a559c669aef9d5507be8f31d03",duration:1.333},"video/10001122.webm":{bytes:39768,sha256:"a0c0c537e22211affdafff6d4a42fee3b6fbe1d0fcdc17adbd5854b6395c9496",duration:2.6},"video/10001124.webm":{bytes:568780,sha256:"39b58e373aa854c91dfad8af90b3b84e9b04b7cde050388152622ac2c1f9c19b",duration:1.4},"video/10001125.webm":{bytes:179690,sha256:"42591454c30e14b1a65f5c7696516edf9e690002ca6fedf5a331e3fb39e13a83",duration:1.233},"video/10001126.webm":{bytes:243266,sha256:"faf35bae68aa35a358447c791c91808872921d4794f5c90e5763d692bd807a9f",duration:3.133},"video/10001127.webm":{bytes:208681,sha256:"42fecb16b110931f78c06d61d52374f5fa74fee60b1b37dcec4c608bf240adba",duration:3.066},"video/10001128.webm":{bytes:14331,sha256:"4a57b0082c4f32309eb212ebea0d1069efb87e4c3da4d65d556ca7d4cf397954",duration:1.966},"video/10001129.webm":{bytes:34019,sha256:"4bcab75c2f7ce6e2980b13fca3f8cb95bfb3bbb46396f52b0691a3b9499b2af9",duration:1.133},"video/10001130.webm":{bytes:10181,sha256:"f9e3bd1de752007281ab2d45fddc933b4709182a765e602879c3c9402dcebef2",duration:1.2},"video/10001131.webm":{bytes:168665,sha256:"275465192460a885a738b907be135e91be2546c9596cf0d0232ffea6d06065a5",duration:10},"video/10001132.webm":{bytes:97830,sha256:"4dbe1e8d33843f8360ad246082650ae7ebd0d66ce6b133e2f12f1d748719d13d",duration:10},"video/10001133.webm":{bytes:51508,sha256:"44b562df1ae76f3a1983447107aeeb00fb439afe3eb3e1d6a67a141467673aa1",duration:1.5},"video/10001134.webm":{bytes:36767,sha256:"adf67abc9bb2872b6aae897ecdaeb281384654e3066d03b07d6616a7393708a0",duration:2},"video/10001135.webm":{bytes:26042,sha256:"c2d6215296f9e200fc75c0d36f8523c4c5b24066a0e8eda2f01b6f5daa717bec",duration:2},"video/10001136.webm":{bytes:28762,sha256:"07d2d47eb8672b958f35fe6abe9ee2dae11db9a8846f1ac8d1e7206e466bf2db",duration:1.466},"video/10001137.webm":{bytes:151972,sha256:"f94c2f584f894e56def265d016e53ebf81473677633dfded66890fe6d3e2f175",duration:2.066},"video/10001138.webm":{bytes:68031,sha256:"43929724a51e2f99d9ebf5f7ffebc51ee90712b7520e213a9457bfcbb5f9a517",duration:2.033},"video/10001139.webm":{bytes:72750,sha256:"19d626334d981b16c00b4c5cc39ddab5bca75034f497f5345f18526e7fe25250",duration:2.033},"video/10001140.webm":{bytes:70456,sha256:"8cadee838df527fbe11b4e8fc5e3b7c784fad21f61c7c214ef7dffca72f0ef58",duration:2.033},"video/10001141.webm":{bytes:42664,sha256:"34f97de7d1dc183a5fb958305424f73ea6498254804c3ad669d44dc04bef939a",duration:2.033},"video/10001142.webm":{bytes:710423,sha256:"dd2aec022ab89b4e048b4e212216e5c0862b6c8be9899970d11b1d7a2267f9be",duration:3.8},"video/10001143.webm":{bytes:14487,sha256:"c393d0afa72faccf42aefb8cf946f08725dd76e28af2cb608049ae9416dc0887",duration:1.066},"video/10001144.webm":{bytes:13412,sha256:"47692e1e22510aef145080fcf1e42d6d4594cbc1ce3ca8dd89f247d7c59fd271",duration:2.233},"video/10001145.webm":{bytes:19632,sha256:"8fa9abcbc084f7952e2dd8b1ec325e676b78e2fd2be421aadbc83137463175f4",duration:2.266},"video/10001146.webm":{bytes:13723,sha256:"bda3925d9183b351f85c8152a9a2ca36ed994e6656fb210e08e2251df70c4ddd",duration:2.266},"video/10001147.webm":{bytes:23765,sha256:"566fafa5c585eb127bb81912324486a26c12db6bce8509763eb130ca1bf4be57",duration:10},"video/10001148.webm":{bytes:48537,sha256:"d7eb086bbe4e43d1733c4b7c4683248fc9686c0d2540b15b44030050415f18e7",duration:1.233},"video/10001149.webm":{bytes:56797,sha256:"a89363c03820728fe3041217caf3daa2c6b3b18c03a38478c9fbc38013df4874",duration:10},"video/10001150.webm":{bytes:71959,sha256:"33d5db768fc90f96ad2dd81fcaa2944ad721331fdba90ebbbc76abe9c9e622ad",duration:1.366},"video/10001151.webm":{bytes:70714,sha256:"f866a0e45980bbb029df58349d1401f259e79076e5a919584eebaea9b94d451b",duration:1.233},"video/10001152.webm":{bytes:1072305,sha256:"b9200f9b1dea6f7350dfaa0d1bc4eadcc4b4f0650fe190fe22ad25bc7e3a2b7e",duration:10},"video/10001153.webm":{bytes:37507,sha256:"add87a7074d611f312fe0c43a24ae18d774ff62a4cd24db69d2526fb7a2e1736",duration:1.2},"video/10001154.webm":{bytes:755336,sha256:"cae2ff5f2dc15d639a5ea411cab50a9bea03fad5f73116764945f6d012be74b6",duration:10},"video/10001155.webm":{bytes:28588,sha256:"ee157e4e1e8452bf7f1dbb32bb5509e9b8659edc5d1bb0bbba0b70af2e6c4328",duration:1.2},"video/10001156.webm":{bytes:21193,sha256:"2655315d0fa59d136b1a77e760a5b085aeaabfe70d1130ea17e937b037160afb",duration:1.2},"video/10001157.webm":{bytes:146426,sha256:"eb48647b768bf300429f157eb570b4c0d7c9d04bb3df53768e6875b91e51931d",duration:10},"video/10001158.webm":{bytes:231389,sha256:"8ea98583d1972f176e3354b6d7c116ac6b2689c1593b02ae4fea55774ca0bf8c",duration:10},"video/10001159.webm":{bytes:69087,sha256:"8b70a7eb8e83a9230bd3b7a658633c84037ed0667b0da87b78206f48ca2f487b",duration:10},"video/10001160.webm":{bytes:46691,sha256:"11698fa6b8a4f5ffd3f289e41266a7097f0e620bbb64359e97f1bcf7430731e4",duration:1},"video/10002001.webm":{bytes:543544,sha256:"6a3509a94437899e30846d0f701e0ae3ccfa82793f51d293ed507c8efaa67099",duration:10},"video/10002002.webm":{bytes:796059,sha256:"8cdab49708511f4d42d45fe0a319d2334e4e9aa42709e946c8d00a1ff77b07fd",duration:10},"video/10002003.webm":{bytes:715230,sha256:"6b5422c889243db499114370af5a260d624180fe17991445f7e3133eee619381",duration:10},"video/10002004.webm":{bytes:693595,sha256:"24aa66de5a0649c10652bb66b70a0407210e26e18a8d2d64b0610ca29fdfb02b",duration:10},"video/10002005.webm":{bytes:815174,sha256:"5ec0b1a66bf28c7bf0b2bc61a7bbbb374be18d4b1f338217ab3d84d88cd2838f",duration:10},"video/10002006.webm":{bytes:194930,sha256:"7ef8f4e4a5ea4430ea4910b06f0dc00c71d61ed9bd54e03b4a268a4d1f3e7525",duration:1.9},"video/10002007.webm":{bytes:93264,sha256:"cbdc07ca88626c73d074eae923aac8972ce8898fd331fecb40cbb22392d32e6a",duration:2.4},"video/10002008.webm":{bytes:669120,sha256:"9299206b7cdc7fc4f319864e425be91f90b4721bcd8555f56ead4dc45f776b27",duration:3.433},"video/10002009.webm":{bytes:434158,sha256:"3db3a361cf11e9ee543dff860ba8a7aef3831d920e1e95fb6773a13f15f7ff6a",duration:10},"video/10002010.webm":{bytes:161424,sha256:"3b6e41d32df6eca2645978e8ba0f13a4aef69aa8217d38e85e5b8db058016a9a",duration:2.5},"video/10002011.webm":{bytes:73568,sha256:"86966a56aef3a2a6a263526d1efa0092044b48ce26f7f076c5bdd259131a8121",duration:1.8},"video/10002012.webm":{bytes:187942,sha256:"2b3e1b9538ddaeb62adeae52b9ea0ab38801430c76bab0f6425da9e127e0d896",duration:2.933},"video/10002013.webm":{bytes:482076,sha256:"14b90e097eebe09d3337afb0867da590081f111b5593d601963dcccf39638a4e",duration:3.9},"video/10002014.webm":{bytes:1475640,sha256:"f81e417888b1a833e254cf069f33a5ff1820bfc1599ac0f86d67a3cea44cad78",duration:10},"video/10002015.webm":{bytes:2392745,sha256:"db572d1dd4f090a104cdeea17a84aaa94c5800820ec66168ccd2eb99cb05d867",duration:10},"video/10002016.webm":{bytes:178656,sha256:"aa5dfb8ef461f168b2b64790b90f5a0e847b2a02aa3964e35a1734b37f0b69dc",duration:2.5},"video/10002017.webm":{bytes:80715,sha256:"addc2369f55de0a067937f48f40f300d123c320efc9c03ff3be6ea922581b575",duration:.733},"video/10002018.webm":{bytes:790722,sha256:"1d8d5b69fe0a5949566c216eac072f739ee0be9d0ac7ad85a809db6fe4da14c5",duration:10},"video/10002019.webm":{bytes:115786,sha256:"1a4a39ff5bd9dd26bfda75176469acca6a2aace830961c3a5e5dc164bcc1ac64",duration:2.2},"video/10002020.webm":{bytes:581822,sha256:"2ce9a04ffb641ef53d0090a22dcb394f580475c41052c5dea83ceed1dffbcd69",duration:10},"video/10002021.webm":{bytes:568208,sha256:"b3aa5b1f712c379a80767d599059adcb482bb8cd2c0f07c404b6fd862c8d7e9b",duration:10},"video/10002022.webm":{bytes:610636,sha256:"8c2663f7c031328ef06dc59aa0c0a11f5e7708b3981b4399d8bfd609573e986f",duration:10},"video/10002023.webm":{bytes:612556,sha256:"79a90a1d7d5f6a2b9a1e81738e12566f14ce96f99fa81ca102aab157b4b2664f",duration:10},"video/10002024.webm":{bytes:1453404,sha256:"7e5412973270e8e58a539c9f83304b4cd07a0faa740a4752b982333e380a1d55",duration:3.4},"video/10002025.webm":{bytes:1544749,sha256:"63af745659c7063ba0d7fff63af97eaf8972c2a5a06cd6739ad518cd4187b153",duration:10},"video/10002026.webm":{bytes:280741,sha256:"cf701673766d966c3b522749ba169622c98261501be50bb3afee3c998898486e",duration:10},"video/10002027.webm":{bytes:327918,sha256:"d59447600017e11aa42fc342833fad186af9f9d1670aba32f922d77fca63d6c6",duration:10},"video/10002028.webm":{bytes:336612,sha256:"827a91d60bf0fa75a131853e0f1fda8855cf2cfdf9b06194d195833bda026986",duration:10},"video/10002029.webm":{bytes:700863,sha256:"1a8ad0969222629d8fd89bafb174df58082aaa50755e3843ca82ad953b18e0aa",duration:10},"video/10002030.webm":{bytes:34533,sha256:"f4080af95380d8f640133b255bbe2b25b03180a3cfcd99aed1f281265c6f18cb",duration:1.966},"video/10002031.webm":{bytes:187567,sha256:"8bbdc15b123c3ac7f3cba16b04ca18571996e6556f190edd4f13d6a50ecd8c0c",duration:1.166},"video/10002032.webm":{bytes:1776997,sha256:"e3b15a717b1db503bd3d838ed9b6fdb70def2fcb4b47f51db24eb86fc03e7923",duration:10},"video/10002033.webm":{bytes:297716,sha256:"425cd20f5a5038f720e0f3c4dd65ab58c6c5ad80aa346b6c9035eb0700e69d3e",duration:2},"video/10002034.webm":{bytes:2495666,sha256:"70f377770e704850e9a2eff20fa283cbae7939fd42b66b85110b9b6eb1aa2add",duration:10},"video/10002035.webm":{bytes:183443,sha256:"a631becd1c4585ec80d91b435a5c6cda28b6b2033f2eb62f929a7580ad2ffbad",duration:10},"video/10002036.webm":{bytes:89987,sha256:"5b523e749db42145e8f3947e86d6e8d9683300b737f7775477cd94f02c1c8004",duration:10},"video/10002037.webm":{bytes:823633,sha256:"a4e7ba6ce6a6a43c31597d6b6430e86c507ab45a89910eb5010f1d058901f539",duration:10}}};var Q6=_o.version,J6="/qxqy-vfx/",ew=Object.freeze(_o.assets.map(Object.freeze)),tw=new Map(ew.map(i=>[i.id,i]));function Wc(i,e="animation"){let t=tw.get(Number(i));return t?.scope===(e==="fullscreen"?"screen":"ui")?t:null}function Qu(i){return Object.hasOwn(_o.files,i)?_o.files[i]:null}function Vc(i){return Qu(i)?`${J6}${Q6}/${i}`:null}function yo(i,e){let t=Math.max(0,e||0);return t<i.duration?t:i.loop?i.duration/2+(t-i.duration)%(i.duration/2):null}var jc=class{constructor(e,{now:t=()=>performance.now(),onStatus:r=()=>{},timeout:s=3e4}={}){Object.assign(this,{host:e,now:t,onStatus:r,timeout:s}),this.entries=new Map,this.key="",this.disposed=!1,this.snapshot=null,this.raf=null,this.lastFrame=0,this.host.style.display="contents",this.badge=e.ownerDocument.createElement("span"),this.badge.dataset.uiVfxStatus="",Object.assign(this.badge.style,{position:"absolute",left:"5px",bottom:"5px",zIndex:"3",color:"#ffc18b",background:"#1a233ddd",padding:"2px 5px",font:"11px sans-serif",pointerEvents:"none",display:"none"}),e.append(this.badge),this.errors=new Map}report(e,t){t?this.errors.set(e,String(t)):this.errors.delete(e);let r=[...this.errors.values()];this.badge.style.display=r.length?"":"none",this.badge.textContent=r.length?bo`动效加载失败(${r.length})`:"",this.badge.title=r.join(`
927
+ `),this.onStatus({errors:r})}time(){return(this.snapshot?.time||0)+(this.realtime&&!this.host.ownerDocument.hidden?Math.min(.25,Math.max(0,(this.now()-this.observedAt)/1e3)):0)}sync(e){if(this.disposed)return;let t=`${e?.audio?.sessionId||"editor"}:${e?.viewPlayerIndex||1}`;t!==this.key&&(this.reset(),this.key=t),this.snapshot=e,this.observedAt=this.now(),this.realtime=e?.running!==!1&&!e?.paused&&e?.clockMode!=="manual";let r=e?.running===!1?[]:e?.effects||[],s=new Set(r.map(a=>String(a.id)));for(let a of this.entries.keys())s.has(a)||this.remove(a);for(let a of this.errors.keys())s.has(a)||this.report(a,"");let n=0,o=0;for(let a of r){let c=String(a.id),l=Wc(a.animationId,a.kind),d=this.entries.get(c);if(d&&(d.row.generation!==a.generation||d.asset!==l)&&this.remove(c),!l){this.report(c,`Unknown UI effect: ${a.animationId??""}`);continue}if(yo(l,this.time()-a.startedAt)===null){this.remove(c),this.report(c,"");continue}let h=l.width*l.height*2;if(n+h>24*1024*1024||o>=12){this.remove(c),this.report(c,`UI effect ${l.id}: preview budget exceeded`);continue}n+=h,o++;let u=this.entries.get(c);if(!u)try{this.report(c,""),u=this.create(c,a,l)}catch(f){this.report(c,`UI effect ${l.id}: ${f.message}`);continue}u.row=a;try{this.position(u),this.advance(u)}catch(f){this.fail(u,f)}}this.schedule()}create(e,t,r){let s=this.host.ownerDocument;if(!globalThis.CSS?.supports("mix-blend-mode","plus-lighter"))throw new Error("C/T blending is unavailable");let n=s.createElement("video");n.muted=!0,n.playsInline=!0,n.preload="auto";let o=Math.min(1,1536/Math.max(r.width,r.height),Math.sqrt(1024*1024/(r.width*r.height))),a=["multiply","plus-lighter"].map(l=>{let d=s.createElement("canvas");return d.width=Math.max(1,Math.round(r.width*o)),d.height=Math.max(1,Math.round(r.height*o)),d.dataset.uiVfx=`${e}:${l}`,Object.assign(d.style,{position:"absolute",pointerEvents:"none",transformOrigin:"center",mixBlendMode:l,display:"none"}),d}),c={id:e,row:t,asset:r,video:n,planes:a,failed:!1,ready:!1,playing:!1,maskKey:"",mask:null};c.fail=()=>this.fail(c,new Error(`media load/decode failed (${n.error?.code||"unknown"})`)),c.loaded=()=>{if(!(this.disposed||c.failed||this.entries.get(e)!==c))try{if(n.videoWidth!==r.width*2||n.videoHeight!==r.height)throw new Error("Unexpected packed C/T dimensions");c.ready=!0,clearTimeout(c.timer),this.advance(c)}catch(l){this.fail(c,l)}},c.seeked=()=>{if(!c.failed&&this.entries.get(e)===c)try{this.draw(c)}catch(l){this.fail(c,l)}},n.addEventListener("error",c.fail),n.addEventListener("loadeddata",c.loaded),n.addEventListener("seeked",c.seeked),c.timer=setTimeout(()=>this.fail(c,new Error("media loading timed out")),this.timeout),this.entries.set(e,c),this.host.append(...a);try{n.src=Vc(r.video)+(t.generation>1?"?retry=1":""),n.load()}catch(l){this.fail(c,l)}return c}position(e){let{asset:t,row:r,planes:s}=e,n=this.snapshot.canvasWidth,o=this.snapshot.canvasHeight,a=r.matrix;if(r.kind==="fullscreen"){let f=Math.max(n/t.width,o/t.height);a={a:f,b:0,c:0,d:f,tx:n/2,ty:o/2}}if(!a||![n,o,a.a,a.b,a.c,a.d,a.tx,a.ty].every(Number.isFinite)||n<=0||o<=0)throw new Error("Invalid effect geometry");for(let f of s)Object.assign(f.style,{left:`${(a.tx-t.width/2)/n*100}%`,top:`${(o-a.ty-t.height/2)/o*100}%`,width:`${t.width/n*100}%`,height:`${t.height/o*100}%`,transform:`matrix(${a.a},${-a.b},${-a.c},${a.d},0,0)`,zIndex:r.kind==="fullscreen"||r.layer==="BelowAllControls"?"-1":"1"});this.host.append(...s);let c=JSON.stringify([r.masks,a]);if(c===e.maskKey||(e.maskKey=c,e.mask=null,!r.masks?.length))return;let l=this.host.ownerDocument.createElement("canvas");l.width=s[0].width,l.height=s[0].height;let d=l.getContext("2d"),h=d.createImageData(l.width,l.height),u=r.masks.map(f=>({spec:f,inverse:po(f.matrix)}));for(let f=0;f<l.height;f++)for(let m=0;m<l.width;m++){let g=fo(a,(m+.5)*t.width/l.width-t.width/2,t.height/2-(f+.5)*t.height/l.height),x=1;for(let{spec:b,inverse:y}of u){if(!y){x=0;break}let v=fo(y,g.x,g.y);x*=Ou(v.x,v.y,b)}h.data[(f*l.width+m)*4+3]=Math.round(255*x)}d.putImageData(h,0,0),e.mask=l}advance(e){if(e.failed||!e.ready)return;let t=yo(e.asset,this.time()-e.row.startedAt);if(t===null){e.video.pause();for(let n of e.planes)n.style.display="none";return}let r=e.video,s=this.realtime&&!this.host.ownerDocument.hidden;s||(r.pause(),e.playing=!1),!r.seeking&&Math.abs(r.currentTime-t)>(s?.18:1/60)&&(r.currentTime=t),s&&r.paused&&!e.playing&&(e.playing=!0,Promise.resolve(r.play()).then(()=>{e.playing=!1},n=>{e.playing=!1,n.name!=="AbortError"&&this.fail(e,n)})),r.seeking||this.draw(e)}draw(e){if(!(!e.ready||e.failed||e.video.readyState<2||yo(e.asset,this.time()-e.row.startedAt)===null))for(let r=0;r<2;r++){let s=e.planes[r],n=s.getContext("2d");n.globalCompositeOperation="source-over",n.clearRect(0,0,s.width,s.height),n.drawImage(e.video,r===0?e.asset.width:0,0,e.asset.width,e.asset.height,0,0,s.width,s.height),e.mask&&(n.globalCompositeOperation="destination-in",n.drawImage(e.mask,0,0),n.globalCompositeOperation="source-over"),s.style.display=""}}fail(e,t){if(!(this.disposed||e.failed||this.entries.get(e.id)!==e)){e.failed=!0,this.releaseMedia(e);for(let r of e.planes)r.style.display="none";this.report(e.id,`UI effect ${e.asset.id}: ${t.message}`)}}schedule(){this.raf!==null||this.disposed||!this.entries.size||(this.raf=requestAnimationFrame(()=>{if(this.raf=null,this.now()-this.lastFrame>=1e3/30){this.lastFrame=this.now();for(let e of this.entries.values())try{this.advance(e)}catch(t){this.fail(e,t)}}this.realtime&&[...this.entries.values()].some(e=>!e.failed&&yo(e.asset,this.time()-e.row.startedAt)!==null)&&this.schedule()}))}releaseMedia(e){clearTimeout(e.timer);let t=e.video;t.removeEventListener("error",e.fail),t.removeEventListener("loadeddata",e.loaded),t.removeEventListener("seeked",e.seeked),t.pause(),t.removeAttribute("src"),t.load()}remove(e){let t=this.entries.get(e);if(t){this.entries.delete(e),this.releaseMedia(t);for(let r of t.planes)r.remove(),r.width=r.height=1;t.mask=null,this.report(e,"")}}reset(){this.raf!==null&&cancelAnimationFrame(this.raf),this.raf=null;for(let e of this.entries.keys())this.remove(e);this.errors.clear(),this.report("",""),this.snapshot=null}destroy(){this.disposed=!0,this.reset(),this.badge.remove()}};kh();Lh();Oh();_h();ja();jr();mr();var Cy={aVertex:(i,e,t,r,s)=>{let n=0,o=0,a=0,c=0;for(let l=0;l<i.length;++l){let d=i[l],h=d.texture,u=d.scaleX,f=d.scaleY,m=d.anchorX,g=d.anchorY,x=h.trim,b=h.orig;x?(o=x.x-m*b.width,n=o+x.width,c=x.y-g*b.height,a=c+x.height):(n=b.width*(1-m),o=b.width*-m,a=b.height*(1-g),c=b.height*-g),e[r]=o*u,e[r+1]=c*f,e[r+s]=n*u,e[r+s+1]=c*f,e[r+s*2]=n*u,e[r+s*2+1]=a*f,e[r+s*3]=o*u,e[r+s*3+1]=a*f,r+=s*4}},aPosition:(i,e,t,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n],a=o.x,c=o.y;e[r]=a,e[r+1]=c,e[r+s]=a,e[r+s+1]=c,e[r+s*2]=a,e[r+s*2+1]=c,e[r+s*3]=a,e[r+s*3+1]=c,r+=s*4}},aRotation:(i,e,t,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].rotation;e[r]=o,e[r+s]=o,e[r+s*2]=o,e[r+s*3]=o,r+=s*4}},aUV:(i,e,t,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].texture.uvs;e[r]=o.x0,e[r+1]=o.y0,e[r+s]=o.x1,e[r+s+1]=o.y1,e[r+s*2]=o.x2,e[r+s*2+1]=o.y2,e[r+s*3]=o.x3,e[r+s*3+1]=o.y3,r+=s*4}},aColor:(i,e,t,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].color;t[r]=o,t[r+s]=o,t[r+s*2]=o,t[r+s*3]=o,r+=s*4}}};function My(i){let e=Object.values(i),t=e.filter(s=>s.dynamic),r=e.filter(s=>!s.dynamic);return{dynamicUpdate:Py(t),staticUpdate:Py(r)}}function Py(i){let e=0,t=[];for(let r=0;r<i.length;r++){let s=i[r],n=qe(s.format).stride/4;e+=n,t.push({stride:n,updateFunction:s.updateFunction||Cy[s.attributeName]})}return(r,s,n)=>{let o=0;for(let a=0;a<t.length;a++){let c=t[a];c.updateFunction(r,s,n,o,e),o+=c.stride}}}Tn();mt();je();Rr();Bh();function Ay(){return rw}function rw(i,e,t){let r=i.gl,s=i.shader,n=s._getProgramData(e.glProgram);for(let o in e.groups){let a=e.groups[o];for(let c in a.resources){let l=a.resources[c];if(l instanceof Te)l.ubo?s.bindUniformBlock(l,e._uniformBindMap[o][c],t.blockIndex++):s.updateUniformGroup(l);else if(l instanceof Vt)s.bindUniformBlock(l,e._uniformBindMap[o][c],t.blockIndex++);else if(l instanceof oe||l instanceof es){i.texture.bind(l,t.textureCount);let d=e._uniformBindMap[o][c],h=n.uniformData[d];h&&(h.value!==t.textureCount&&r.uniform1i(h.location,t.textureCount),t.textureCount++)}else l instanceof ot}}}ic();Xa();Sn();var Ry=[(i,e,t,r,s)=>{let n=r[i].toArray(!0);e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+4]=n[3],e[t+5]=n[4],e[t+6]=n[5],e[t+8]=n[6],e[t+9]=n[7],e[t+10]=n[8]},(i,e,t,r,s)=>{s=r[i],e[t]=s.x,e[t+1]=s.y,e[t+2]=s.width,e[t+3]=s.height},(i,e,t,r,s)=>{s=r[i],e[t]=s.x,e[t+1]=s.y},(i,e,t,r,s)=>{s=r[i],e[t]=s.red,e[t+1]=s.green,e[t+2]=s.blue,e[t+3]=s.alpha},(i,e,t,r,s)=>{s=r[i],e[t]=s.red,e[t+1]=s.green,e[t+2]=s.blue}],ky={f32:(i,e,t,r,s)=>{e[t]=s},i32:(i,e,t,r,s)=>{e[t]=s},"vec2<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1]},"vec3<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2]},"vec4<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+3]=s[3]},"mat2x2<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+3]=s[3]},"mat3x3<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+4]=s[3],e[t+5]=s[4],e[t+6]=s[5],e[t+8]=s[6],e[t+9]=s[7],e[t+10]=s[8]},"mat4x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<16;n++)e[t+n]=s[n]},"mat3x2<f32>":(i,e,t,r,s)=>{for(let n=0;n<6;n++)e[t+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,e,t,r,s)=>{for(let n=0;n<8;n++)e[t+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,e,t,r,s)=>{for(let n=0;n<6;n++)e[t+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,e,t,r,s)=>{for(let n=0;n<12;n++)e[t+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<8;n++)e[t+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<12;n++)e[t+(n/3|0)*4+n%3]=s[n]}},By={f32:(i,e,t,r,s)=>{e[t]=s},i32:(i,e,t,r,s)=>{e[t]=s},"vec2<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1]},"vec3<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2]},"vec4<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+3]=s[3]},"mat2x2<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+4]=s[2],e[t+5]=s[3]},"mat3x3<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+4]=s[3],e[t+5]=s[4],e[t+6]=s[5],e[t+8]=s[6],e[t+9]=s[7],e[t+10]=s[8]},"mat4x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<16;n++)e[t+n]=s[n]},"mat3x2<f32>":(i,e,t,r,s)=>{for(let n=0;n<6;n++)e[t+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,e,t,r,s)=>{for(let n=0;n<8;n++)e[t+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,e,t,r,s)=>{for(let n=0;n<6;n++)e[t+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,e,t,r,s)=>{for(let n=0;n<12;n++)e[t+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<8;n++)e[t+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<12;n++)e[t+(n/3|0)*4+n%3]=s[n]}};function Iy(i){return Fy(i,By,e=>{let t=Math.max(zn[e.data.type]/16,1),r=e.data.value.length/e.data.size,s=(4-r%4)%4;return(n,o,a,c,l)=>{let d=0;for(let h=0;h<e.data.size*t;h++){for(let u=0;u<r;u++)o[a++]=l[d++];a+=s}}})}function Gy(i){return Fy(i,ky,e=>{let{size:t,align:r}=Qr[e.data.type],s=(t-r)/4;return(n,o,a,c,l)=>{let d=0;for(let h=0;h<e.data.size*(t/4);h++){for(let u=0;u<t/4;u++)o[a++]=l[d++];a+=s}}})}function Fy(i,e,t){let r={};for(let s in i){let n=i[s],o=n.data,a=!1;r[o.name]={offset:n.offset/4,func:null};for(let c=0;c<lt.length;c++){let l=lt[c];if(o.type===l.type&&l.test(o)){r[o.name].func=Ry[c],a=!0;break}}a||(o.size===1?r[o.name].func=e[o.type]:r[o.name].func=t(n))}return(s,n,o)=>{for(let a in r)r[a].func(a,n,o+r[a].offset,s,s[a])}}Sn();var Uy={f32(i,e,t,r,s,n,o){t!==r&&(e.value=r,o.uniform1f(s[i].location,r))},"vec2<f32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1])&&(t[0]=r[0],t[1]=r[1],o.uniform2f(s[i].location,r[0],r[1]))},"vec3<f32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],o.uniform3f(s[i].location,r[0],r[1],r[2]))},"vec4<f32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2]||t[3]!==r[3])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],o.uniform4f(s[i].location,r[0],r[1],r[2],r[3]))},i32(i,e,t,r,s,n,o){t!==r&&(e.value=r,o.uniform1i(s[i].location,r))},"vec2<i32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1])&&(t[0]=r[0],t[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<i32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<i32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2]||t[3]!==r[3])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},u32(i,e,t,r,s,n,o){t!==r&&(e.value=r,o.uniform1ui(s[i].location,r))},"vec2<u32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1])&&(t[0]=r[0],t[1]=r[1],o.uniform2ui(s[i].location,r[0],r[1]))},"vec3<u32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],o.uniform3ui(s[i].location,r[0],r[1],r[2]))},"vec4<u32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2]||t[3]!==r[3])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],o.uniform4ui(s[i].location,r[0],r[1],r[2],r[3]))},bool(i,e,t,r,s,n,o){t!==r&&(e.value=r,o.uniform1i(s[i].location,r))},"vec2<bool>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1])&&(t[0]=r[0],t[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<bool>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<bool>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2]||t[3]!==r[3])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},"mat2x2<f32>"(i,e,t,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,e,t,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,e,t,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)}},Dy={f32(i,e,t,r,s,n,o){o.uniform1fv(s[i].location,r)},"vec2<f32>"(i,e,t,r,s,n,o){o.uniform2fv(s[i].location,r)},"vec3<f32>"(i,e,t,r,s,n,o){o.uniform3fv(s[i].location,r)},"vec4<f32>"(i,e,t,r,s,n,o){o.uniform4fv(s[i].location,r)},"mat2x2<f32>"(i,e,t,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,e,t,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,e,t,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)},i32(i,e,t,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<i32>"(i,e,t,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<i32>"(i,e,t,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<i32>"(i,e,t,r,s,n,o){o.uniform4iv(s[i].location,r)},u32(i,e,t,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<u32>"(i,e,t,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<u32>"(i,e,t,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<u32>"(i,e,t,r,s,n,o){o.uniform4iv(s[i].location,r)},bool(i,e,t,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<bool>"(i,e,t,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<bool>"(i,e,t,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<bool>"(i,e,t,r,s,n,o){o.uniform4iv(s[i].location,r)}},Ly=[(i,e,t,r,s,n,o)=>{o.uniformMatrix3fv(s[i].location,!1,n[i].toArray(!0))},(i,e,t,r,s,n,o)=>{t=s[i].value,r=n[i],(t[0]!==r.x||t[1]!==r.y||t[2]!==r.width||t[3]!==r.height)&&(t[0]=r.x,t[1]=r.y,t[2]=r.width,t[3]=r.height,o.uniform4f(s[i].location,r.x,r.y,r.width,r.height))},(i,e,t,r,s,n,o)=>{t=s[i].value,r=n[i],(t[0]!==r.x||t[1]!==r.y)&&(t[0]=r.x,t[1]=r.y,o.uniform2f(s[i].location,r.x,r.y))},(i,e,t,r,s,n,o)=>{t=s[i].value,r=n[i],(t[0]!==r.red||t[1]!==r.green||t[2]!==r.blue||t[3]!==r.alpha)&&(t[0]=r.red,t[1]=r.green,t[2]=r.blue,t[3]=r.alpha,o.uniform4f(s[i].location,r.red,r.green,r.blue,r.alpha))},(i,e,t,r,s,n,o)=>{t=s[i].value,r=n[i],(t[0]!==r.red||t[1]!==r.green||t[2]!==r.blue)&&(t[0]=r.red,t[1]=r.green,t[2]=r.blue,o.uniform3f(s[i].location,r.red,r.green,r.blue))}];function Oy(i,e){let t={};for(let r in i.uniformStructures){if(!e[r])continue;let s=i.uniformStructures[r],n=!1;for(let o=0;o<lt.length;o++){let a=lt[o];if(s.type===a.type&&a.test(s)){t[r]=Ly[o],n=!0;break}}if(!n){let o=s.size===1?Uy:Dy;t[r]=o[s.type]}}return(r,s,n)=>{let o=n.gl;for(let a in t){let c=s[a],l=r[a],d=r[a].value;t[a](a,l,d,c,r,s,o)}}}function iw(){Object.assign(St.prototype,{_unsafeEvalCheck(){}}),Object.assign(vr.prototype,{_systemCheck(){}}),Object.assign(ri.prototype,{_generateUniformsSync:Oy}),Object.assign(ei.prototype,{_generateUboSync:Iy}),Object.assign(Jr.prototype,{_generateUboSync:Gy}),Object.assign(ti.prototype,{_generateShaderSync:Ay}),Object.assign(Dc.prototype,{generateParticleUpdate:My})}iw();var sw="mp3-v1",nw="/qxqy-audio/",ow=[[10001,"ura.1ht4.2ag9.1hh5.jbb.k02.jcw.2tv.2wn.2xk.2r3.d5s.94l.ebv.kcr.b40.77k.9gp.97w.1hb5.jag.btu.jc9.hp5.bmj.blq.blq.ff9.ffk.o74.1owl.rp.mg.l3.lf.lh.qy.1a3z.2xk.2xk.2xk.2xk.2xk.17dc.1f2b.2bc.2bc.2bc.2bc.2bc.ffo.ffo.126.1fk.4mo.4mo.15e.1h2.237.2ba.2kd.2bc.4mo.4mo.4mo.4mo.1mc.1n6.2cu.1ud.2b1.2ee.1tj.1tk"],[20001,"o6.fh.kb.cr.og.sm.6x.8c.87.o7.vz.kt.qo.lg.ob.9w.mg.1kz.zc.1ex.1d5.ps.uu.su.qs.ys.zp.10k.15a.xc.uk.mx.1ax.nt.tu.19m.uj.1ku.tt.100.ie.d3.fp.ie.ie.d3.fp.ie.8p.7k.fw.h0.qc.ot.uc.ot.rk.gb.1c2.ff.cl.9v.wg.1ir.1lr.1b8.1ri.1p0.104.10n.mw.j6.jb.f1.dv.84.a0.cp.bx.1ko.1au.1ia.rs.rt.rs.t7.x6.wi.zc.16f.1i6.2jh.28d.qh.k8.1gz.1ko.2iv.1xp.1l4.1gk.10j.yo.1jk.1jk.xv.104.15o.1xg.1xg.1xi.25i.p1.t1.yh.1ak.1i6.1y2.xt.32u.3g6.1bz.2mn.14l.14c.1e1.op.s8.p2.v5.2ix.1a0.ry.16m.17n.13c.134.ys.yu.xr.sl.sr.sd.yh.z5.gd.gl.hx.h2.g8.fj.iy.hz.jj.th.12n.16r.d3.j9.dg.lj.fl.a7.f9.iw.el.27f.1dh.1rh.2ph.yd.w5.x5.tr.pq.zf.16h.1a5.17t.wy.vn.y8.wl.yv.2ye.2qt.1ah.163.19t.uf.119.2vv.1bm.13h.14p.1so.c3.as.9z.19w.1l4.1nl.rj.we"],[30001,"jo.my.ss.dw.c1.b4.hl.hl.hl.cz.dw.dw.b4.dw.fr.kd.qv.px.px.74.6u.8h.60.8q.8b.eo.eo.eo.8k.a5.99.12v.13y.lg.m4.qr.dw.ex.g0.ef.cd.br.11n.17h.1b8.1c9.9p.ag.9z.l9.m8.m8.lw.m8.cz.99.b4.8c.63.7f.6h.99.re.pp.pi.cq.c9.cp.ck.c6.b0.bd.al.f6.gl.ed.fs.lc.k6.kh.i6.cx.j1.hk.gb.d7.h7.g2.em.kj.kn.k4.j5.rh.t0.qt.mj.i7.ih.i2.hd.3r.8d.6u.6z.by.de.dg.cr.1a5.1ab.16c.18g.n2.ly.no.nt.f9.de.lr.fe.f0.fj.el.fo.t1.g9.ly.h3.g6.de.2ak.2f3.wf.kg.qn.11p.rg.uj.u6.11c.22o.2cs.3dp.3dq.3d5.3d6.1zx.18v"],[40001,"19x.215.2zt.1ex.2pj.7hy.1ur.1gn.1g7.1b1.u9.1tw.108.1ew.rs.1qu.w9.lk.244.qi.b6.tk.jg.jg.jg.y4.c1.b4.iv.hi.r4.n7.gy.ev.qe.12z.18n.dw.1l6.ou.wz.1un.19t.18k.yy.1hs.sl.dw.1vl.100.14k.1q8.209.1jk.1xr.ua.1j2.pr.26h.1gs.s9.px.15v.pf.1jk.xc.1hb.111.172.ut.285.1oh.149.zj.22r.2l9.14a.ok.23y.1eh.xe.1j0.1rp.1cz.wf.1mh.22k.334.1z2.1xo.1br.4ji.5nq.5nf.2za.18r.h3.eo.ia.1kn.dc.ss.s0.1bl.1oc.is.km.177.1ec.1ao.h4.hp.dx.l9.iw.i3.12w.n1.yq.12w.1ju.yx.14s.18b.22t.u3.my.2rb.36w.13u.z8.20r.18g.19r.2x9.w4.q2.1d2.wo.13a.v6.17w.ur.288.1b6.14m.1fi.1xx.1ee.kj.121.j2.1d2.2ad.1ri.2lc.1vk.138.12r.xj.1h5.1c5.2qx.1gj.t2.lv.rf.18q.1kz.dw.2aq.ia.1i9.k5.199.f4.10y.18a.xf.rk.1g9.1q3.10h.sj.15o.e3.dz.sv.135.w9.yg.aw.2a2.19m.22w.1c8.272.13o.104.1sr.rs.1pb.d5.df.kp.jq.1a7.s8.1ao.ba.rb.in.pz.q8.140.ij.1e7.jl.yk.117.10i.1tn.1oj.1sv.sj.1e3.2so.1c7.1gv.178.107.10n.1dx.1qi.1wp.2bc.218.16r.105.xc.z6.11w.1mc.1y9.17p.1cs.2ij.18c.1ie.nn.16c.1ce.xb.1ei.3j0.ve.14x.1sx.285.1b8.1at.v4.rv.rs.10z.xq.11o.15k.xq.u1.i2.pu.i4.l3.9u.oh.mc.nm.pw.1i3.1h4.pj.111.l4.lb.qq.qf.u0.h4.nk.yf.6h.ij.ds.oy.re.m8.1gl.cz.16z.a1.1f8.1x6.vp.dz.gp.g6.fr.vl.fr.gg.qc.aj.99.go.ij.fz.11a.x5.mo.1u9.h0.m8.10m.1an.2bc.3uw.2gk.124.xb.1uk.1b6.2xj.1os.11a.vs.1i9.1lr.2gv.265.668.1xg.45j.404.2x1.1io.3om.4q2.4mo.1d4.2bp.1pr.166.2y6.2bv.361.2nc.2bc.3g0.7g4.334.2bc.2xo.3uw.6ic.4ig.3uw.23v.1la.2zr.1jt.1cq.27a.1n1.19x.1qg.1jn.1ca.26y.2d6.4v4.4mo.4mo.7ps.1jk.153.1fo.1dm.1s2.1w1.oe.1lb.319.2eg.58p.4mo.3dw.2y2.2xm.1u8.1ko.12n.1e0.2sd.1md.2cl.1q2.372.4mo.48s.b14.3fu.334.334.34i.4nf.4ji.5eg.3uw.2u8.1g1.110.37x.2jo.su.334.3aj.3uw.63f.2bc.2bc.8v4.1ts.ax5.5du.34d.3oc.34j.4si.174.rt.1rp.2b0.37d.1ta.2gh.28a.22z.1nc.1a5.1pa.4dd.3ha.2cs.5mv.4mq.5c2.3uw.1gf.4md.113.10x.21o.2hj.1b3.1cx.1ol.3ar.1fv.17t.1a7.2uj.2we.1jk"],[50001,"1o8.1k1.mo.1wu.2c9.22d.1kb.23n.1b8.1ic.24c.2wz.1mq.1mu.1jx.1z1.o3.190.vp.1h7.th.4mo.1rp.4mo.4mo.7ps.zz.143.21v.1nf.34s.1s3.r9.18t.s1.r9.21w.277.ls.25k.5v1.2bc.1kh.wt.14i.1eq.15o.668.sh.rl.3wi.3vc.43c.3yn.17c.f5.xu.jg.176.19v.1xy.23m.18x.30c.10l.13k.v8.vp.17t.qj.17m.1wr.1la.8t.s7.18d.1l2.152.mx.1c8.1l4.1f5.1xe.rz.2hz.1et.13t.xb.14r.15o.z0.1zo.ur.257.1gb.li.12d.15a.132.1m1.3vu.296.1mg.11m.z0.159.mp.hd.x4.1go.ns.xh.2a7.tt.2vb.1bx.1kh.u3.11i.1y1.24e.2hp.2mn.1w6.3zm.166.14g.1mo.2v9.2rg.2f9.1r0.139.m1.k3.ys.1dy.29k.1mm.22m.3zx.4dr.2h7.22o.tv.rm.1et.2wv.2ar.1t7.ku.12s.10b.1v9.1gu.12m.1b3.tv.1c8.tk.10s.ul.1tt.ka.oi.qb.13f.13f.13k.17h.1uh.ez.en.2x7.2ln.2h8.3h8.ig.n9.27o.18b.hl.nm.uk.11a.1ta.1k4.1eh.wv.1go.1gg.sc.18u.1dz.2aq.vt.2l7.25h.1l5.1kn.1vc.1b4.28i.17t.1d6.1k2.18z.jy.jw.dh.1mx.fr.vp.35w.34z.35w.34z.4so.vf.yx.1bg.1d3.2yc.1tg.8q3.99g.am.2du.rm.rg.xa.2cw.xc.1j6.1if.18z.13a.yz.142.1z5.262.1bj.1y8.ur.u5.16j.1pf.1bi.l8.1il.3vz.2dr.jo.ls.18s.16l.18c.141.219.1yz.1fc.24t.27e.481.1vp.25h.1yq.1zn.1uw.11u.1jp.1pz.39o.t6.1mj.1u5.11l.1vd.1dk.1zb.1ic.3ql.14p.1wq.25x.267.zn.zn.1pf.13z.1j7.r9.1hb.4yp.1lt.1cw.1z4.19z.1og.1j4.1cl.1eg.u8.16s.1en.zu.1hr.1js.19g.303.22j.2oa.180.1v7.2ud.2d7.21s.3g9.vh.v1.284.3lg.3lg.17q.1h3.4mo.1cm.1rv.22i.2mc.2j3.27o.333.1q8.237.2ll.23b.2sp.2ll.2ox.2cf.2f8.2hz.1uo.y4.s9.w6.2dg.2q9.up.1m1.1vz.2n8.192.1eb.z7.2em.2q3.1sd.1gj.348.3vf.2iu.29x.1dc.7oj.4pq.5vb.4mx.5me.5sf.5yf.7ps.yj.q0.10w.13p.18b.2wd.11q.2vx.dd.iv.12p.jh.u9.1uy.w0.3f0.3bj.126.qo.1gj.11k.pu.22h.1z6.rp.y4.y0.xl.1d0.11s.wa.1a6.127.10m.12r.1nh.1fy.yo.1js.162.n4.174.1aj.y4.o8.qz.rh.qa.18s.mr.j3.ii.sr.sx.1jk.17l.mj.zr.uy.wa.19t.2bt.xe.1od.hs.xr.5b.12c.1ab.we.gz.mz.4y.sf.11s.e0.1l7.ew.h6.jz.l0.e8.1cx.p6.17u.bw.1ah.10r.10e.o9.1bc.uv.lq.tl.zb.100.jy.b8.bj.336.10n.na.sq.14r.yr.nm.123.tf.l1.zp.1xc.1vk.31l.zl.2bj.2b9.2fv.17p.y0.so.1ln.29c.1eh.nh.xn.131.qc.186.ff.fc.xq.1bm.la.l8.14f.243.111.xi.qw.1qn.11v.1ur.1jx.1ks.s9.nz.269.1zj.2zd.1pv.18n.2vk.p3.1fh.13v.1lf.1lu.2db.1sr.1k3.26o.1dl.1f3.187.2lh.166.v9.xh.1e3.119.s2.mt.1iu.1k6.1o2.12s.u4.2br.1q3.qv.1e4.1zu.1v4.1vk.1t3.3p7.1ob.14d.1ns.1ef.1e4.12w.2kk.1ba.2jx.1e0.1s5.12w.17r.14s.wz.1qp.183.3fb.188.1gr.2ot.168.1u7.w8.28o.1zd.32z.230.w7.vq.x8.1qh.19f.14o.2r9.qg.1ey.1qr.1p6.3a3.1ov.13d.tz.wk.22v.1qa.2l9.yw.yf.nw.p6.1ly.1jk.1nh.x9.q0.17r.17h.ux.uw.12y.p7.g7.kt.14c.ze.1kh.1eo.18a.1d8.26j.15k.19f.1ym.1j5.1c6.11k.1sd.1jp.1ws.13s.1o5.214.sx.px.20x.14h.1ja.s6.1q8.w8.1ks.so.ub.121.202.1ej.1g1.1s8.2bc.4t1.bih.3uw.3pb.avp.6c7.bko.5eg.79c.6wh.3wd.4pn.55j.4a5.3gg.bko.5ei.52p.578.bcv.6gr.2bc.4j9.5y7.9d2.2bb.2bc.668.73z.5pg.50f.5m7.788.267.642.8h2.8h2.49s.64g.5e8.5e8.2bb.3ih.5ur.6bk.578.4ck.3sg.5fe.23i.e9w.2b8.5oj.6bw.2al.2rk.2rk.5pj.n6e.350.6v9.70t.639.3uw.3uw.2bg.639.2bb.2bd.6gj.2bh.660.578.3bk.65e.359.3o0.44i.4tn.1zq.5ee.4a5.3zu.rs.639.33q.5eg.1k1.15o.dw.3uw.b7p.7qd.898.4l4.5uu.5uu.b4g.2yh.2yh.3uw.51a.51a.5kk.66f.iq9.3n7.4nb.46a.1wb.20p.bih.8xa.7ps.70t.70t.4rv.5p1.6aq.ts.63z.668.5v2.5nu.563.55s.55s.5p3.2ga.32x.42x.5cr.4c2.71b.5zp.5c2.66t.4c8.2bc.2bc.2gn.3ea.2kp.fz6.8hz.3e8.4an.bko.j7e.jag.7sr.2bc.3zx.7qd.5ut.5jp.2wk.5q7.3uw.334.4i3.3uw.4bd.5eu.46h.4i2.6t4.446.5s7.5cg.4bk.5nd.7bf.4rt.23b.2bc.2bc.2bc.2bc.2ba.4mo.4dv.3wn.2bc.1we.4he.2bc.4gz.3wn.3km.4xy.4hi.4mr.2bc.247.3yj.2c6.2bc.3aj.446.4ub.3uw.51.e0.86.is.i1.hg.mn.m4.2c.7h.sg.e3.jb.7r.eq.nf.u0.60.4o.ke.47.47.47.47.b8.4x.dr.dy.rw.rw.59.8j.5z.a5.l3.c0.ik.f7.li.lr.7x.dv.du.dd.5e.91.1b.ce.cc.59.bh.e6.8m.9n.cl.lt.7ip.4mr.4si.4kf.vo.we.13e.17n.1iw.2pi.lp.r6.gw.7x.xz.qt.bq.ls.q1.eh.bx.cr.3c.j7.b8.fz.4k.8p.bg.5w.iy.j3.12o.rs.cz.dp.yz.jk.63.63.7ps.7ps.7ps.40g.3jp.4tw.89k.88a.7s0.83d.668.7ps.2fw.2ev.2fp.7ps.2jb.2dh.2ud.25i.24c.2bt.1pa.17r.1a7.7ps.7pt.5rg.4nl.3vv.7qo.31a.2p0.2k0.49a.3v4.3nl.1ug.1ug.1l6.7s1.7ps.2cp.2f8.2i7.7ps.28q.2be.275.1ma.1oz.1q7.16s.1iq.1e0.78m.7ps.2bc.2bc.2bc.bko.2wu.2wu.2wu.3b4.38f.3uw.3uw.3uw.3uw.7ps.7qa.32n.2gg.2wk.7rv.1v3.1qq.1rb.1zk.1my.1zp.1yn.1oh.1uh.7st.9q.9q.9q.9q.9q.kk.kk.kk.kk.kk.dw.dp.dw.rs.rs.rs.rs.s4.sd.54j.5n8.2n6.21r.1nu.1o5.14u.t6.3f7.2j0.32c.304.189.1gf.18w.18j.1st.1vq.116.kw.3uw.3uw.vr.zx.xc.tc.7d.7r.9d.9w.8s.9p.3b.3b"]].map(([i,e])=>[i,e.split(".").map(t=>parseInt(t,36)/1e3)]);function Ny(i){if(!Number.isSafeInteger(i))return null;for(let[e,t]of ow)if(i>=e&&i<e+t.length)return t[i-e];return null}function Hy(i){return`${nw}${sw}/${i}.mp3`}var Xc=class{constructor({contextFactory:e=()=>new(globalThis.AudioContext||globalThis.webkitAudioContext),fetch:t=(...o)=>globalThis.fetch(...o),onStatus:r=()=>{},now:s=()=>performance.now(),muted:n=!1}={}){Object.assign(this,{contextFactory:e,fetcher:t,onStatus:r,now:s}),this.context=null,this.output=null,this.buffers=new Map,this.voices=new Map,this.key="",this.sequence=0,this.paused=!1,this.muted=!!n,this.audioChoice=null,this.disposed=!1,this.error="",this.revision=-1,this.unlockHandlers=[],this.muted&&this.publish()}status(){return{unlocked:this.context?.state==="running",muted:this.muted,error:this.error,voices:this.voices.size}}publish(){this.onStatus(this.status())}ensureContext(){return this.context||(this.context=this.contextFactory(),this.output=this.context.createGain(),this.output.gain.value=this.muted?0:1,this.output.connect(this.context.destination),this.context.onstatechange=()=>this.publish()),this.context}unlock(){if(!this.disposed)try{this.ensureContext().resume().then(()=>{if(!this.disposed){for(let t of this.voices.values())this.playVoice(t);this.publish()}}).catch(t=>{this.error=t.message,this.publish()});for(let t of this.voices.values())this.playVoice(t)}catch(e){this.error=e.message,this.publish()}}bindUnlock(e){let t=s=>{s.target?.closest?.("[data-audio-toggle]")||this.unlock()};for(let s of["pointerdown","keydown"])e.addEventListener(s,t,{capture:!0});let r=()=>{for(let s of["pointerdown","keydown"])e.removeEventListener(s,t,{capture:!0})};return this.unlockHandlers.push(r),r}toggle(){if(this.muted){this.audioChoice="on",this.setMuted(!1),this.unlock();return}if(this.context?.state!=="running"){this.unlock();return}this.audioChoice="off",this.setMuted(!0)}setMuted(e){this.muted=!!e,this.output&&(this.output.gain.value=this.muted?0:1),this.publish()}buffer(e,{retry:t=!1}={}){let r=this.buffers.get(e);if(r&&(!r.failed||!t&&this.now()<r.retryAt))return this.buffers.delete(e),this.buffers.set(e,r),r.promise;let s={bytes:0,failed:!1,abort:new AbortController},n=setTimeout(()=>s.abort.abort(),3e4);return s.promise=(async()=>{let o=typeof e=="string"&&e.startsWith("audio/")?Vc(e)+(t?"?retry=1":""):Hy(e),a=await this.fetcher(o,{signal:s.abort.signal});if(!a.ok)throw new Error(`\u97F3\u6548 ${e} \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${a.status}`);let c=await a.arrayBuffer();if(this.disposed)throw new Error("audio player disposed");let l=await this.ensureContext().decodeAudioData(c);s.bytes=l.length*l.numberOfChannels*4;let d=[...this.buffers.values()].reduce((h,u)=>h+u.bytes,0);for(let[h,u]of this.buffers){if(d<=32*1024*1024&&this.buffers.size<=64)break;h===e||!u.bytes&&!u.failed||(this.buffers.delete(h),d-=u.bytes)}return l})().catch(o=>{throw s.failed=!0,s.retryAt=this.now()+6e4,o}).finally(()=>clearTimeout(n)),this.buffers.set(e,s),s.promise}stopSource(e){let t=e.source;if(e.source=null,!!t){t.onended=null;try{t.stop()}catch{}t.disconnect()}}removeVoice(e){let t=this.voices.get(e);t&&(this.stopSource(t),this.voices.delete(e))}playVoice(e){if(!(this.disposed||this.voices.get(e.row.instanceId)!==e||this.paused||e.suspended||e.source||e.loading||e.done)){if(!e.buffer){e.loading=!0,this.buffer(e.row.audioId,{retry:e.row.retry}).then(t=>{e.loading=!1,!(this.disposed||this.voices.get(e.row.instanceId)!==e)&&(e.buffer=t,this.playVoice(e))}).catch(t=>{this.disposed||this.voices.get(e.row.instanceId)!==e||(e.row.effect?e.done=!0:this.removeVoice(e.row.instanceId),this.error=t.message,this.publish())});return}if(this.context?.state!=="running"){this.publish();return}if(e.offset>=e.buffer.duration){e.done=!0;return}try{let t=this.context.createBufferSource();t.buffer=e.buffer,e.source=t,t.connect(this.output),e.beganAt=this.context.currentTime,t.onended=()=>{e.source===t&&(t.disconnect(),e.source=null,e.done=!0,this.publish())},t.start(0,e.offset)}catch(t){this.stopSource(e),e.done=!0,this.error=t.message}this.publish()}}sync(e,{fresh:t=!1}={}){if(this.disposed)return;if(this.audioChoice==null&&e?.audioMuted===!0&&this.setMuted(!0),e?.running===!1){this.reset();return}let r=e?.audio;if(!r)return;let s=`${r.sessionId}:${r.playerIndex}`,n=s!==this.key;if(n&&(this.reset(),this.key=s),!n&&(r.sequence<this.sequence||r.revision<this.revision))return;this.revision=r.revision;let o=this.paused;this.paused=!!e.paused;let a=new Map(r.active.map(d=>[d.instanceId,d])),c=new Map(r.recent.map(d=>[d.instanceId,d]));for(let[d,h]of this.voices){if(h.row.effect)continue;let u=c.get(d)||a.get(d);if(u?.stopped||h.done&&!a.has(d)||!u){this.removeVoice(d);continue}this.paused&&!o&&h.source&&(h.offset+=Math.max(0,this.context.currentTime-h.beganAt),this.stopSource(h))}let l=n&&!t?r.active:r.recent;for(let d of l){if(!n&&d.instanceId<=this.sequence||d.stopped||Ny(d.audioId)===null||d.duration<=0)continue;this.voices.size>=64&&this.removeVoice(this.voices.keys().next().value);let h={row:d,offset:n&&!t?Math.max(0,e.time-d.startedAt):0,source:null,buffer:null,loading:!1,done:!1};this.voices.set(d.instanceId,h)}this.sequence=r.sequence,this.syncEffects(e,o);for(let d of this.voices.values())this.playVoice(d);this.publish()}syncEffects(e,t){let r=new Set;for(let s of e.effects||[]){let n=Wc(s.animationId,s.kind),o=s.audioPath,a=n?.audio.includes(o)?Qu(o)?.duration:0,c=Math.max(0,e.time-s.startedAt);if(!s.playSoundEffect||!a||c>=a)continue;let l=`vfx:${s.id}:${s.generation}`;r.add(l);let d=this.voices.get(l);if(!d){if(this.voices.size>=64)continue;d={row:{instanceId:l,audioId:o,effect:!0,retry:s.generation>1},offset:c,source:null,buffer:null,loading:!1,done:!1},this.voices.set(l,d)}let h=e.clockMode==="manual";(this.paused&&!t||h)&&d.source&&this.stopSource(d),d.suspended=h,d.source||(d.offset=c)}for(let[s,n]of this.voices)n.row.effect&&!r.has(s)&&this.removeVoice(s)}reset(){for(let e of this.voices.keys())this.removeVoice(e);this.key="",this.sequence=0,this.revision=-1,this.paused=!1,this.publish()}destroy(){this.disposed=!0,this.reset();for(let e of this.buffers.values())e.abort.abort();this.buffers.clear();for(let e of this.unlockHandlers)e();this.unlockHandlers.length=0,this.context&&(this.context.onstatechange=null,this.context.close().catch(()=>{}))}};function aw({webdriver:i=!1,userAgent:e="",search:t=""}={}){let r=String(t||"");return new URLSearchParams(r.startsWith("?")?r.slice(1):r).get("audio")==="0"?!0:i===!0||/\bOpenCode\//.test(e)||/HeadlessChrome/i.test(e)}function zy(i=globalThis){let e=i.navigator;if(!e)return!1;let t="";try{t=i.location?.search||""}catch{}return aw({webdriver:e.webdriver===!0,userAgent:e.userAgent||"",search:t})}var cw=["Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Digit0","KeyU","KeyZ","KeyY","KeyG","KeyH","KeyI","KeyO","KeyP","KeyJ","KeyK","KeyL","KeyV","F5","F6","F7","F8","F9","F10","Backquote","Minus","Equal","BracketLeft","Comma","Period","Slash","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","ControlRight","ShiftRight","Backspace","CapsLock"],Wy=new Map(cw.map((i,e)=>[i,`CraftspersonKey${e+1}`]));for(let[i,e]of Object.entries({KeyW:"MoveForwardKey",KeyS:"MoveBackwardKey",KeyA:"MoveLeftKey",KeyD:"MoveRightKey",ControlLeft:"SwitchToWalkOrRunKey",Space:"JumpKey",KeyX:"DropKey",Tab:"OpenShortcutWheelKey",KeyF:"InteractKey",KeyE:"CharacterSkill1Key",KeyQ:"CharacterSkill2Key",KeyR:"CharacterSkill3Key",KeyT:"CharacterSkill4Key"}))Wy.set(i,e);function Yc(i,e){if(e!=="Down"&&e!=="Up"||i.isComposing||i.keyCode===229||i.key==="Process"||i.key==="Dead")return"";let t=String(i.key||""),r=/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:i.code,s=Wy.get(r);return s?`Keyboard${s}${e}`:""}function Vy(i,e){if(e!=="Down"&&e!=="Up")return"";let t=i===0?"NormalAttackKey":i===2?"SprintKey":"";return t?`Keyboard${t}${e}`:""}var jy=33,Xy=60;function Yy(i,e,t,r){return{x:(i.clientX-e.left)*t/e.width,y:(e.bottom-i.clientY)*r/e.height}}function lw({renderer:i,api:e,onSnapshot:t,onStatus:r,onError:s,onAudioStatus:n,audio:o,audioMuted:a,isActive:c,isInputActive:l,keyInputEnabled:d=!0}={}){let h=a??(typeof window<"u"&&zy());o||=typeof window<"u"?new Xc({onStatus:n,muted:h}):null,typeof window<"u"&&o?.bindUnlock(window);let u=0,f=null,m=!1,g=!1,x=null,b=null,y=0,v=null,w=null,S=null,T=!1,C=[],B=new Set,R=Promise.resolve();function M(I,K,ne){let ke=u;return R=R.then(()=>ke===u&&m?ue(I,K,ne):null),R}let E=I=>M("key",{key:I},{allowInactive:!0}),A=I=>M("pointer",I);function L(I=!0){return Promise.all([...B].map(K=>K(I))).then(()=>R)}function W(I){d=!!I,d||L()}function ee(I){s&&s(I)}async function G(I,{freshAudio:K=!1}={}){let ne=u;f=I,m=I?.running!==!1,o?.sync(I,{fresh:K}),I?.scene&&I.scene.format==="tree-v1"?(I.scene.reset&&(y=0),await i.applyScene(I.scene,I.canvasWidth,I.canvasHeight),y=I.scene.revision||y):Array.isArray(I?.paint)&&await i.render(I.paint,I.canvasWidth,I.canvasHeight),ne===u&&((!c||c())&&i.syncEffects?.(I),t&&await t(I))}async function D(){if(!m||g)return;if(c&&!c()){o?.reset(),i.resetEffects?.();return}g=!0;let I=u;try{let K=await e("get",{view:!0,sceneRev:y,compact:!0});if(I!==u)return;await G(K)}catch(K){if(I!==u)return;m=!1,F(),o?.reset(),i.resetEffects?.(),ee(K)}finally{g=!1}}function j(){x||(x=setInterval(()=>{D()},jy))}function F(){x&&clearInterval(x),x=null,b&&clearTimeout(b),b=null,c&&!c()&&(o?.reset(),i.resetEffects?.())}function te(I=30){b||(b=setTimeout(()=>{b=null,D()},I))}function de(){v&&clearTimeout(v),v=null}function we(){v&&(de(),A({type:"move",...w}))}function se(){L(!1),u++,o?.reset(),i.resetEffects?.(),de(),S=null,T=!1,m=!1,y=0,F()}async function ue(I,K,{allowInactive:ne=!1}={}){if(!ne&&c&&!c())return null;let ke=u;try{let We=await e(I,{light:!0,...K||{}});return ke!==u||!m||(We&&typeof We=="object"&&We.frame!==void 0&&r&&r(We),te(30)),We}catch(We){return ke===u&&ee(We),null}}function $(I={}){return!o||I.muteAudio!=null?I:o.audioChoice==="on"?{...I,muteAudio:!1}:o.audioChoice==="off"||o.muted?{...I,muteAudio:!0}:I}async function dt(I={}){se(),I=$(I),o?.unlock();let K=u;y=0;let ne=await e("start",{view:!0,compact:!0,...I});return K!==u||(await G({...ne,running:!0},{freshAudio:!0}),K!==u)||(m=!0,F(),j()),ne}async function ui(){await L(),se();let I=u;y=0,F();let K=await e("get",{view:!0,compact:!0,sceneRev:0});return I!==u||(await G(K),I!==u)||m&&j(),K}async function Cr(I={}){se(),I=$(I);let K=u;y=0,F();let ne=await e("device",{view:!0,compact:!0,...I});return K!==u||(await G({...ne,running:!0},{freshAudio:!0}),K!==u)||(m=!0,j()),ne}async function Pr(I={}){T=!0;let K=u;try{if(await L(),K!==u)return null;K=++u,o?.reset(),i.resetEffects?.(),y=0;let ne=await e("view",{view:!0,compact:!0,...I});return K!==u||await G({...ne,running:!0}),ne}finally{K===u&&(T=!1)}}async function Et(){return se(),e("stop")}function ht(I,K){return Yy(I,K.getBoundingClientRect(),f.canvasWidth,f.canvasHeight)}function ut(I,{keysOn:K}={}){let ne=K||I,ke=I.ownerDocument||ne.ownerDocument,We=ke?.defaultView||ne,fi=ke||ne,bt=new Map,pi="",Dt=()=>f&&m&&!T&&(!c||c())&&(!l||l()),mi=()=>d&&Dt(),vo=V=>V.target?.isContentEditable||V.target?.closest?.('input,textarea,select,button,a[href],[role="textbox"],[contenteditable]:not([contenteditable="false"])'),us=(V,Oe)=>{if(!Oe||bt.has(V))return;let $c=[...bt.values()].includes(Oe);bt.set(V,Oe),$c||E(Oe)},dr=V=>{let Oe=bt.get(V);return Oe?(bt.delete(V),m&&![...bt.values()].includes(Oe)?E(Oe.replace(/Down$/,"Up")):null):null},gi=(V=!0)=>V?Promise.all([...bt.keys()].map(dr)):(bt.clear(),Promise.resolve());B.add(gi);let wo=V=>{pi=V.pointerType||"",Dt()&&(S!==null||V.button!=null&&V.button!==0||(S=V.pointerId,I.setPointerCapture?.(V.pointerId),we(),A({type:"down",...ht(V,I)})))},bi=V=>{Dt()&&S===V.pointerId&&(we(),A({type:"up",...ht(V,I)}),S=null)},xi=V=>{Dt()&&(S!==null&&S!==V.pointerId||(w=ht(V,I),!v&&(v=setTimeout(()=>{v=null,Dt()&&A({type:"move",...w})},Xy))))},ef=()=>{S===null&&(de(),Dt()&&A({type:"move",x:-1,y:-1}))},So=V=>{V.pointerType==="mouse"&&(dr("mouse:0"),dr("mouse:2")),S===V.pointerId&&(de(),S=null,f&&m&&A({type:"cancel",...ht(V,I)}))},tf=V=>{if(!Dt())return;V.preventDefault();let Oe=I.getBoundingClientRect(),$c=V.deltaMode===2?Oe.width:V.deltaMode===1?16:1,Qy=V.deltaMode===2?Oe.height:V.deltaMode===1?16:1;A({type:"wheel",...ht(V,I),deltaX:V.deltaX*$c*f.canvasWidth/Oe.width,deltaY:V.deltaY*Qy*f.canvasHeight/Oe.height})},rf=V=>{if(!mi()||vo(V))return;let Oe=Yc(V,"Down");Oe&&(V.preventDefault(),V.repeat||us(`key:${V.code||V.key}`,Oe))},sf=V=>{let Oe=`key:${V.code||V.key}`;bt.has(Oe)&&(V.preventDefault(),dr(Oe))},nf=V=>{!mi()||pi&&pi!=="mouse"||V.sourceCapabilities?.firesTouchEvents||us(`mouse:${V.button}`,Vy(V.button,"Down"))},of=V=>{dr(`mouse:${V.button}`)},fs=()=>{gi()},af=()=>{ke?.hidden&&fs()},cf=V=>{mi()&&V.preventDefault()};I.addEventListener("pointerdown",wo),I.addEventListener("pointerup",bi),I.addEventListener("pointermove",xi),I.addEventListener("pointerleave",ef),I.addEventListener("pointercancel",So),I.addEventListener("lostpointercapture",So),I.addEventListener("wheel",tf,{passive:!1}),I.addEventListener("mousedown",nf),I.addEventListener("contextmenu",cf),fi.addEventListener("mouseup",of),ne.addEventListener("keydown",rf),ne.addEventListener("keyup",sf),ne.addEventListener("focusout",fs),We.addEventListener("blur",fs),ke?.addEventListener("visibilitychange",af);let lf=()=>{gi(),B.delete(gi),I.removeEventListener("pointerdown",wo),I.removeEventListener("pointerup",bi),I.removeEventListener("pointermove",xi),I.removeEventListener("pointerleave",ef),I.removeEventListener("pointercancel",So),I.removeEventListener("lostpointercapture",So),I.removeEventListener("wheel",tf),I.removeEventListener("mousedown",nf),I.removeEventListener("contextmenu",cf),fi.removeEventListener("mouseup",of),ne.removeEventListener("keydown",rf),ne.removeEventListener("keyup",sf),ne.removeEventListener("focusout",fs),We.removeEventListener("blur",fs),ke?.removeEventListener("visibilitychange",af),de()};return C.push(lf),lf}function Qe(){for(se();C.length;)C.pop()();i?.destroy?.(),o?.destroy()}return{audio:o,get snapshot(){return f},get running(){return m},get sceneRev(){return y},get keyInputEnabled(){return d},setKeyInputEnabled:W,releaseKeys:L,applyScene:G,poll:D,pollSoon:te,startPolling:j,stopPolling:F,reset:se,act:ue,start:dt,attach:ui,device:Cr,view:Pr,stop:Et,bindInput:ut,destroy:Qe}}var dw=[0,-.5,.5,.5,-.5,.5],hw=[0,-.5,.12,-.12,.5,0,.12,.12,0,.5,-.12,.12,-.5,0,-.12,-.12],uw=[0,-.5,.11,-.15,.48,-.15,.18,.07,.29,.41,0,.2,-.29,.41,-.18,.07,-.48,-.15,-.11,-.15],fw=new Set(["image","textbox","textwindow","button","grid"]);function hs(i,e=4294967295){let t=Number(i??e)>>>0;return{color:t&16777215,alpha:(t>>>24&255)/255}}function nt(i,e=0){let t=Number(i);return Number.isFinite(t)?t:e}function $y(i){let e=i?.matrix;if(!e||typeof e!="object")return null;let t=[e.a,e.b,e.c,e.d,e.tx,e.ty].map(Number);return t.every(Number.isFinite)?t:null}function pw(i){let e=i.horizontalAlignment==="Right"?1:i.horizontalAlignment==="Middle"?.5:0,t=i.verticalAlignment==="Bottom"?1:i.verticalAlignment==="Middle"?.5:0;return{x:e,y:t}}function qy(i,e,t,r){let s=i.textLayout,n=s?.fontSize??Math.max(1,nt(i.fontSize,12)),o=pw(i),a=i.kind==="textwindow"?i.scroll:null,c=a?hy(a,t):null,l={fontFamily:r||di,fontSize:n,fill:hs(i.fontColor,4294967295),stroke:i.enableOutline?{...hs(i.outlineColor,4278190080),width:Math.max(2,n*.12),join:"round"}:void 0,wordWrap:!a&&!s,wordWrapWidth:Math.max(4,e-4),breakWords:!0,align:o.x===1?"right":o.x===.5?"center":"left",lineHeight:s?.lineHeight??n*1.2};return{text:c?c.text:s?s.lines.slice(0,s.visibleLineCount??s.lines.length).join(`
928
+ `):String(i.text||""),style:l,anchorX:o.x,anchorY:a?0:o.y,x:a?-e/2+2+o.x*a.textWidth:o.x===0?-e/2+2:o.x===1?e/2-2:0,y:a?-t/2-a.offset+c.y+(a.max>0?0:o.y*(t-a.contentLength)):o.y===0?-t/2:o.y===1?t/2:0}}function Ju(i,e,t){return JSON.stringify([i.kind,e,t,i.bgColor,Hu(i.scroll,e,t)])}function mw(i,e,t){let r=i.primitive==="triangle"?dw:i.primitive==="fourstar"?hw:uw,s=[];for(let n=0;n<r.length;n+=2)s.push(r[n]*e,r[n+1]*t);return s}function gw(i,e,t){return Zy(i)?[i.kind,i.primitive,i.imageId,cr(i.imageSource),"sprite"].join(" "):[i.kind,i.primitive,e,t,i.imageColor,i.imageId,cr(i.imageSource),i.imageType,i.fillType,i.fillHorizontalType,i.fillVerticalType,i.fillAmount,i.text,i.fontSize,i.fontColor,i.bgColor,i.enableOutline,i.adaptiveFontSize,i.minimumFontSize,JSON.stringify(i.textLayout),i.outlineColor,i.horizontalAlignment,i.verticalAlignment,i.pressed,JSON.stringify(i.scroll)].join(" ")}function Zy(i){return i.kind==="image"&&i.primitive==="circle"&&(!i.fillType||i.fillType==="Unused")}function bw(i){let e=z.get().createCanvas(i,i);e.width=e.height=i;let t=e.getContext("2d");return t.fillStyle="#ffffff",t.beginPath(),t.arc(i/2,i/2,i/2,0,Math.PI*2),t.fill(),new U({source:new Se({resource:e,width:i,height:i,resolution:1})})}var Ky=class{constructor(e,{fontReady:t=null}={}){this.canvas=e,e?.parentElement&&typeof document<"u"&&(this.effectHost=document.createElement("div"),e.parentElement.style.isolation="isolate",e.parentElement.append(this.effectHost),this.effects=new jc(this.effectHost)),this.app=null,this.nodes=new Map,this.circleTextures=new Map,this.imageTextures=new Map,this.disposed=!1,this.unsubscribeImages=gy(r=>this.invalidateImage(r)),this.canvasWidth=0,this.canvasHeight=0,this.scratch=new k,this.ready=this.initialize(t)}async initialize(e){this.fontFamily=await e;let t=new Cc;await t.init({canvas:this.canvas,width:1,height:1,autoStart:!1,autoDensity:!1,resolution:Math.min(2,window.devicePixelRatio||1),antialias:!0,backgroundAlpha:0,preference:"webgl",powerPreference:"high-performance"}),t.ticker.stop(),t.stage.eventMode="none",t.stage.sortableChildren=!0,this.app=t}resize(e,t){let r=Math.max(1,Math.round(nt(e,1))),s=Math.max(1,Math.round(nt(t,1)));r===this.canvasWidth&&s===this.canvasHeight||(this.canvasWidth=r,this.canvasHeight=s,this.app.renderer.resize(r,s))}syncEffects(e){this.effects?.sync(e)}resetEffects(){this.effects?.reset()}createNode(e,{group:t=!1}={}){let r=new me({isRenderGroup:!!t});return r.label=`runtime:${e.id}`,r.eventMode="none",r.sortableChildren=!0,r.__runtimeId=e.id,r.__group=!!t,this.nodes.set(e.id,r),this.app.stage.addChild(r),r}clearVisual(e){if(!e.__visual)return;let t=e.__visual.__text,r=this.app?.renderer,s=r?.renderPipes?.text?._managedTexts?.items,n=t?._gpuData?.[r?.uid]?.currentKey,o=t?.uid;e.__visual.parent?.removeChild(e.__visual);let a=e.__visual.__sliceGeometry,c=e.__visual.__richText?.texture;e.__visual.destroy({children:!0,context:!0,style:!0}),c?.destroy(!0),s&&o!==void 0&&s[o]===null&&delete s[o],n&&this.retireTextKey(n),a?.destroy(!0),e.__visual=null,e.__visualKey=""}retireTextKey(e){e&&(this.retiredTextKeys||=new Set,this.retiredTextKeys.add(e))}pruneTextKeys(){let e=this.app?.renderer?.canvasText?._activeTextures;for(let t of this.retiredTextKeys||[])e?.[t]===null&&delete e[t],e?.[t]||this.retiredTextKeys.delete(t)}updateTextVisual(e,t,r,s){let n=e.__visual;if(t.kind!=="textbox"&&t.kind!=="textwindow")return!1;if(n?.__richText){if(!t.textLayout?.richLines||n.__textChromeKey!==Ju(t,r,s))return!1;let l=n.__richText;return Zu(l.texture.source.resource,t,r,s,this.fontFamily,this.app?.renderer?.resolution||1),l.texture.source.update(),!0}if(t.textLayout?.richLines||!n?.__text||n.__textChromeKey!==Ju(t,r,s))return!1;let o=n.__text,a=qy(t,r,s,this.fontFamily),c=JSON.stringify(a.style);if(o.text!==a.text||n.__textStyleKey!==c){if(this.retireTextKey(o._gpuData?.[this.app?.renderer?.uid]?.currentKey),n.__textStyleKey!==c){let l=o.style;o.style=new $t(a.style),l.destroy(),n.__textStyleKey=c}o.text=a.text}return o.anchor.set(a.anchorX,a.anchorY),o.position.set(a.x,a.y),!0}circleTexture(e){let t=this.app?.renderer.resolution||2,r=Math.min(4096,Math.max(256,2**Math.ceil(Math.log2(Math.max(1,e*t)))));this.circleTextures||=new Map;let s=this.circleTextures.get(r);return s||(s=bw(r),this.circleTextures.set(r,s)),s}imageTexture(e,t){this.imageTextures||=new Map;let r=qt(e,t);if(this.imageTextures.has(r))return this.imageTextures.get(r);let s={texture:null,error:""};return this.imageTextures.set(r,s),s.promise=by(e,t).then(({image:n,meta:o,error:a})=>{if(!(this.disposed||this.imageTextures.get(r)!==s)){s.texture=new U({source:new kt({resource:n})}),s.meta=o,s.error=a;for(let c of this.nodes.values()){let l=c.__sceneItem;l?.kind!=="image"||qt(l.imageId,l.imageSource)!==r||(c.__visualKey="",this.updateNode(c,l,{nested:!c.__flat&&l.parent!=null}))}this.app?.render()}}).catch(n=>{s.error=n.message}),s}invalidateImage(e){let t=this.imageTextures.get(e);this.imageTextures.delete(e);for(let r of this.nodes.values()){let s=r.__sceneItem;s?.kind!=="image"||qt(s.imageId,s.imageSource)!==e||(r.__visualKey="",this.updateNode(r,s,{nested:!r.__flat&&s.parent!=null}))}t?.texture?.destroy(!0),this.app?.render()}pruneImageTextures(){if(!this.imageTextures?.size)return;let e=new Set([...this.nodes.values()].filter(t=>t.__sceneItem?.primitive==="sprite").map(t=>qt(t.__sceneItem.imageId,t.__sceneItem.imageSource)));for(let[t,r]of this.imageTextures||[])e.has(t)||(this.imageTextures.delete(t),r.texture?.destroy(!0))}replaceVisual(e,t,r,s){if(this.clearVisual(e),!fw.has(t.kind))return;let n=new me;if(n.eventMode="none",n.label=`visual:${t.id}`,n.zIndex=t.kind==="grid"?Number.MAX_SAFE_INTEGER:-Number.MAX_SAFE_INTEGER,t.kind==="textbox"||t.kind==="textwindow"){let c=new it,l=hs(t.bgColor,16777215);if(c.rect(-r/2,-s/2,r,s).fill(l),n.addChild(c),t.textLayout?.richLines){let d=z.get().createCanvas(1,1);Zu(d,t,r,s,this.fontFamily,this.app?.renderer?.resolution||1);let h=new at({texture:new U({source:new Se({resource:d})}),anchor:.5});h.width=r,h.height=s,n.__richText=h,n.addChild(h)}else{let d=qy(t,r,s,this.fontFamily),h=new uo({text:d.text,style:new $t(d.style)});h.anchor.set(d.anchorX,d.anchorY),h.position.set(d.x,d.y),n.__text=h,n.__textStyleKey=JSON.stringify(d.style);let u=new it().rect(-r/2,-s/2,r,s).fill({color:16777215,alpha:1});h.mask=u,n.addChild(u,h)}n.__textChromeKey=Ju(t,r,s)}else if(t.kind==="button"){let c=new it;c.roundRect(-r/2,-s/2,r,s,6).fill({color:3303631,alpha:1}),c.roundRect(-r/2,-s/2,r,s,6).stroke({color:7381247,alpha:.8,width:1}),t.pressed&&c.roundRect(-r/2,-s/2,r,s,6).fill({color:0,alpha:.28}),n.addChild(c)}else if(t.kind==="image"&&t.primitive==="sprite"&&this.imageTexture(t.imageId,t.imageSource).texture){let c=this.imageTextures.get(qt(t.imageId,t.imageSource)),l;if(r>0&&s>0&&_y(c.meta,t.imageType)==="Stretch"){let u=[],f=[],m=[];for(let{source:[x,b,y,v],target:[w,S,T,C]}of yy(c.meta,r,s)){let B=u.length/2,R=w-r/2,M=S-s/2;u.push(R,M,R+T,M,R+T,M+C,R,M+C);let E=x/c.meta.width,A=(x+y)/c.meta.width,L=b/c.meta.height,W=(b+v)/c.meta.height;f.push(E,L,A,L,A,W,E,W),m.push(B,B+1,B+2,B,B+2,B+3)}let g=new io({positions:new Float32Array(u),uvs:new Float32Array(f),indices:new Uint32Array(m)});n.__sliceGeometry=g,l=new no({geometry:g,texture:c.texture})}else l=new at({texture:c.texture,anchor:.5}),l.width=r,l.height=s;let d=hs(t.imageColor,4294967295);l.tint=d.color,l.alpha=d.alpha;let h=Du(t,r,s);if(l.visible=r>0&&s>0&&(!h||h.width>0&&h.height>0),h&&l.visible){let u=new it().rect(h.x,h.y,h.width,h.height).fill(16777215);l.mask=u,n.addChild(u)}n.addChild(l)}else if(Zy(t)){let c=new at({texture:this.circleTexture(Math.max(r,s)),anchor:.5});n.__circle=c,n.addChild(c)}else if(t.kind!=="grid"){let c=new it,l=hs(t.imageColor,4294967295);t.primitive==="missing"||t.primitive==="sprite"?(c.rect(-r/2,-s/2,r,s).fill({color:4727336,alpha:.36}),c.rect(-r/2+.5,-s/2+.5,Math.max(0,r-1),Math.max(0,s-1)).stroke({color:16741505,alpha:1,width:1})):t.primitive==="circle"?c.ellipse(0,0,r/2,s/2).fill(l):t.primitive==="ring"?c.ellipse(0,0,Math.max(1,r/2-3.5),Math.max(1,s/2-3.5)).stroke({...l,width:7}):t.primitive==="triangle"||t.primitive==="fourstar"||t.primitive==="fivestar"?c.poly(mw(t,r,s)).fill(l):c.rect(-r/2,-s/2,r,s).fill(l);let d=Du(t,r,s);if(d&&(c.visible=d.width>0&&d.height>0,c.visible)){let h=new it().rect(d.x,d.y,d.width,d.height).fill({color:16777215,alpha:1});c.mask=h,n.addChild(h)}n.addChild(c)}let o=Hu(t.scroll,r,s);if(o){let c=new it;c.label="scrollbar";for(let[l,d]of[[o.track,2503751],[o.thumb,9481931]])c.rect(l.x,l.y,l.width,l.height).fill({color:d,alpha:1});n.addChild(c)}n.scale.set(t.pressed?.98:1),(e.__imageContent||e).addChildAt(n,0),e.__visual=n}applyMatrix(e,t,r){let s=$y(t);if(!s){let h=Math.max(0,nt(t.sourceWidth,nt(t.width))),u=Math.max(0,nt(t.sourceHeight,nt(t.height)));e.x=nt(t.left)+h/2,e.y=this.canvasHeight-nt(t.bottom)-u/2,e.rotation=-nt(t.rotationZ)*Math.PI/180,e.scale.set(1);return}let[n,o,a,c,l,d]=s;this.scratch.set(n,-o,-a,c,l,r?-d:this.canvasHeight-d),e.setFromMatrix(this.scratch)}updateNode(e,t,{nested:r=!1}={}){let s=Math.max(0,nt(t.sourceWidth,nt(t.width))),n=Math.max(0,nt(t.sourceHeight,nt(t.height))),o=gw(t,s,n);e.__visualKey!==o&&(this.updateTextVisual(e,t,s,n)||this.replaceVisual(e,t,s,n),e.__visualKey=o),e.__visual&&e.__visual.scale.set(t.pressed?.98:1);let a=e.__visual?.__circle;if(a){let c=Math.max(s,n),l=hs(t.imageColor,4294967295);a.texture=this.circleTexture(c),a.width=s,a.height=n,a.tint=l.color,a.alpha=l.alpha,a.visible=s>0&&n>0}this.applyMatrix(e,t,r),this.updateImageMask(e,t,s,n)}updateImageMask(e,t,r,s){let n=t.kind==="image"?cy({...t,sourceWidth:r,sourceHeight:s},{a:1,b:0,c:0,d:1,tx:0,ty:0}):null,o=n?[n.width,n.height,n.featherX,n.featherY].join(":"):"";if(e.__maskKey===o)return;if(e.__maskKey=o,!e.__imageContent&&n){let f=new me;f.sortableChildren=!0,f.eventMode="none";for(let m of[...e.children])m!==e.__viewportClip&&f.addChild(m);e.addChildAt(f,0),e.__imageContent=f}let a=e.__imageContent;if(!a)return;a.visible=!n||r>0&&s>0;let c=n&&(n.featherX>0||n.featherY>0),l=Math.min(2048,Math.max(1,Math.ceil(r))),d=Math.min(2048,Math.max(1,Math.ceil(s))),h=e.__imageMask;if(c&&a.visible&&h instanceof at&&h.texture.source.resource.width===l&&h.texture.source.resource.height===d){Nu(h.texture.source.resource,n),h.texture.source.update(),h.width=r,h.height=s;return}if(a.mask=null,h?.destroy({context:!0,texture:!0,textureSource:!0}),e.__imageMask=null,!n||!a.visible)return;let u;if(c){let f=z.get().createCanvas(l,d);Nu(f,n),u=new at({texture:new U({source:new Se({resource:f})}),anchor:.5}),u.width=r,u.height=s}else u=new it().rect(-r/2,-s/2,r,s).fill(16777215);u.eventMode="none",a.addChild(u),a.setMask({mask:u,channel:"alpha"}),e.__imageMask=u}attachNode(e,t){let r=t.parent,s=r==null?this.app.stage:this.nodes.get(r),n=s?.__imageContent||s||this.app.stage;e.parent!==n&&n.addChild(e),n.sortableChildren=!0,e.zIndex=-nt(t.z)}upsertSceneNode(e){if(!e||e.id===void 0||e.id===null)return;let t=e.group===!0,r=this.nodes.get(e.id);r?r.__group!==t&&(t?r.enableRenderGroup?.():r.disableRenderGroup?.(),r.__group=t):r=this.createNode(e,{group:t}),this.updateNode(r,e,{nested:e.parent!=null}),this.attachNode(r,e),r.__sceneItem=e,r.__flat=!1}updateViewportClip(e){let t=e.__sceneItem,r=this.nodes.get(t?.parent)?.__sceneItem,s=t?.clipPolygons||[];if(!e.__flat&&t?.clipToParent&&r){let d=r.sourceWidth/2,h=r.sourceHeight/2;s=[[[-d,-h],[d,-h],[d,h],[-d,h]].map(([u,f])=>({x:u,y:f}))]}let n=JSON.stringify([s,t?.matrix]);if(e.__clipKey===n||(e.__clipKey=n,e.mask=null,e.__viewportClip?.destroy({context:!0}),e.__viewportClip=null,e.visible=!0,!s.length))return;let o=$y(t);if(!o||Math.abs(o[0]*o[3]-o[1]*o[2])<1e-8){e.visible=!1;return}let a=new k(...o).invert(),c=uy(s).flatMap(d=>{let h=a.apply(d);return[h.x,-h.y]});if(c.length<6||!c.every(Number.isFinite)){e.visible=!1;return}let l=new it().poly(c).fill({color:16777215,alpha:1});e.addChild(l),e.mask=l,e.__viewportClip=l}removeNode(e){let t=this.nodes.get(e);if(t){for(let r of[...t.children,...t.__imageContent?.children||[]])r.__runtimeId!=null&&r.parent?.removeChild(r);t.parent?.removeChild(t),this.clearVisual(t),t.mask=null,t.__imageContent&&(t.__imageContent.mask=null),t.__imageMask?.destroy({context:!0,texture:!0,textureSource:!0}),t.__imageMask=null,t.__viewportClip?.destroy({context:!0}),t.__imageContent?.destroy({children:!1}),t.destroy({children:!1}),this.nodes.delete(e)}}clearNodes(){for(let e of[...this.nodes.keys()])this.removeNode(e);this.pruneTextKeys()}async applyScene(e,t,r){if(await this.ready,this.resize(t,r),!e||e.format!=="tree-v1"){this.app.render();return}e.reset&&this.clearNodes();for(let n of e.removed||[])this.removeNode(n);let s=e.reset?e.nodes:e.changed;for(let n=0;n<(s||[]).length;n+=1){let o=s[n];!o||o.id===void 0||o.id===null||this.nodes.has(o.id)||this.createNode(o,{group:o.group===!0})}for(let n=0;n<(s||[]).length;n+=1)this.upsertSceneNode(s[n]);for(let n of this.nodes.values())(n.__sceneItem?.clipToParent||n.__sceneItem?.clipPolygons?.length||n.__clipKey!==void 0)&&this.updateViewportClip(n);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}async render(e,t,r){if(e?.some(o=>o?.masks?.length))return this.__maskedPaint=!0,this.applyScene(dy(e),t,r);await this.ready,this.__maskedPaint&&(this.clearNodes(),this.__maskedPaint=!1),this.resize(t,r);let s=new Set,n=Array.isArray(e)?e:[];for(let o=0;o<n.length;o+=1){let a=n[o];if(!a||a.id===void 0||a.id===null)continue;s.add(a.id);let c=this.nodes.get(a.id)||this.createNode(a);this.updateNode(c,a),c.__sceneItem=a,c.__flat=!0,this.updateViewportClip(c),c.zIndex=o,c.parent!==this.app.stage&&this.app.stage.addChild(c)}for(let[o]of this.nodes)s.has(o)||this.removeNode(o);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}destroy(){this.effects?.destroy(),this.effectHost?.remove(),this.disposed=!0,this.unsubscribeImages?.(),this.clearNodes();for(let e of this.imageTextures?.values()||[])e.texture?.destroy(!0);this.imageTextures?.clear();for(let e of this.circleTextures.values())e.destroy(!0);this.circleTextures.clear(),this.app?.destroy({removeView:!1},{children:!0,texture:!0,textureSource:!0}),this.app=null}};export{Xy as PLAY_MOVE_THROTTLE_MS,jy as PLAY_POLL_INTERVAL_MS,Ky as PixiPlayRenderer,bw as createCircleTexture,lw as createPlaySession,W6 as getLanguagePreference,Ku as getLocale,qu as getSystemLanguage,Yc as keyEventName,N6 as loadBrowserFont,V6 as loadSystemLanguage,q6 as localizePage,j6 as setLanguagePreference,Yy as stagePoint,X6 as subscribeLocale,bo as t};
928
929
  /*! Bundled license information:
929
930
 
930
931
  tiny-lru/dist/tiny-lru.js: