From a070b95542ca6ac9d7180b496faf218438b35119 Mon Sep 17 00:00:00 2001 From: remarkablemark Date: Wed, 17 Jan 2024 03:23:53 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20remarkab?= =?UTF-8?q?legames/kaboom-template@c95250fc9f6f145505a5cb652a4654596eadbea?= =?UTF-8?q?6=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/{index-yU_Jk_Ar.js => index-P-Sq9Nvu.js} | 2 +- index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename assets/{index-yU_Jk_Ar.js => index-P-Sq9Nvu.js} (99%) diff --git a/assets/index-yU_Jk_Ar.js b/assets/index-P-Sq9Nvu.js similarity index 99% rename from assets/index-yU_Jk_Ar.js rename to assets/index-P-Sq9Nvu.js index 1eb3efd..1bb1c1e 100644 --- a/assets/index-yU_Jk_Ar.js +++ b/assets/index-P-Sq9Nvu.js @@ -52,4 +52,4 @@ vec4 frag(vec2 pos, vec2 uv, vec4 color, sampler2D tex) { `;var Io=new Set(["id","require"]);var Co=new Set(["add","update","draw","destroy","inspect","drawInspect"]);function at(i){switch(i){case"topleft":return new b(-1,-1);case"top":return new b(0,-1);case"topright":return new b(1,-1);case"left":return new b(-1,0);case"center":return new b(0,0);case"right":return new b(1,0);case"botleft":return new b(-1,1);case"bot":return new b(0,1);case"botright":return new b(1,1);default:return i}}o(at,"anchorPt");function kn(i){switch(i){case"left":return 0;case"center":return .5;case"right":return 1;default:return 0}}o(kn,"alignPt");function Nn(i){return i.createBuffer(1,1,44100)}o(Nn,"createEmptyAudioBuffer");var ko=o((i={})=>{let e=i.root??document.body;e===document.body&&(document.body.style.width="100%",document.body.style.height="100%",document.body.style.margin="0px",document.documentElement.style.width="100%",document.documentElement.style.height="100%");let n=i.canvas??(()=>{let t=document.createElement("canvas");return e.appendChild(t),t})(),u=i.scale??1,f=i.width&&i.height&&!i.stretch&&!i.letterbox;f?(n.width=i.width*u,n.height=i.height*u):(n.width=n.parentElement.offsetWidth,n.height=n.parentElement.offsetHeight);let p=["outline: none","cursor: default"];if(f){let t=n.width,r=n.height;p.push(`width: ${t}px`),p.push(`height: ${r}px`)}else p.push("width: 100%"),p.push("height: 100%");i.crisp&&(p.push("image-rendering: pixelated"),p.push("image-rendering: crisp-edges")),n.style.cssText=p.join(";");let T=i.pixelDensity||window.devicePixelRatio;n.width*=T,n.height*=T,n.tabIndex=0;let k=document.createElement("canvas");k.width=Yr,k.height=Yr;let q=k.getContext("2d",{willReadFrequently:true}),v=fo({canvas:n,touchToMouse:i.touchToMouse,gamepads:i.gamepads,pixelDensity:i.pixelDensity,maxFPS:i.maxFPS}),X=[],S=v.canvas.getContext("webgl",{antialias:true,depth:true,stencil:true,alpha:true,preserveDrawingBuffer:true}),Q=Fn(S,{texFilter:i.texFilter}),x=(()=>{let t=et(yi,xi),r=ht.fromImage(Q,new ImageData(new Uint8ClampedArray([255,255,255,255]),1,1)),s=i.width&&i.height?new Lr(Q,i.width*T*u,i.height*T*u):new Lr(Q,S.drawingBufferWidth,S.drawingBufferHeight),a=null,h=1;i.background&&(a=Z(i.background),h=Array.isArray(i.background)?i.background[3]:1,S.clearColor(a.r/255,a.g/255,a.b/255,h??1)),S.enable(S.BLEND),S.blendFuncSeparate(S.SRC_ALPHA,S.ONE_MINUS_SRC_ALPHA,S.ONE,S.ONE_MINUS_SRC_ALPHA);let l=new mo(Q,Mi,Bo,To),g=ht.fromImage(Q,new ImageData(new Uint8ClampedArray([128,128,128,255,190,190,190,255,190,190,190,255,128,128,128,255]),2,2),{wrap:"repeat",filter:"nearest"});return{lastDrawCalls:0,defShader:t,defTex:r,frameBuffer:s,postShader:null,postShaderUniform:null,renderer:l,transform:new Ue,transformStack:[],bgTex:g,bgColor:a,bgAlpha:h,width:i.width??S.drawingBufferWidth/T/u,height:i.height??S.drawingBufferHeight/T/u,viewport:{x:0,y:0,width:S.drawingBufferWidth,height:S.drawingBufferHeight},fixed:false}})();const nt=class nt{constructor(r,s,a={},h=null){E(this,"tex");E(this,"frames",[new ge(0,0,1,1)]);E(this,"anims",{});E(this,"slice9",null);this.tex=r,s&&(this.frames=s),this.anims=a,this.slice9=h}get width(){return this.tex.width*this.frames[0].w}get height(){return this.tex.height*this.frames[0].h}static from(r,s={}){return typeof r=="string"?nt.fromURL(r,s):Promise.resolve(nt.fromImage(r,s))}static fromImage(r,s={}){let[a,h]=L.packer.add(r),l=s.frames?s.frames.map(g=>new ge(h.x+g.x*h.w,h.y+g.y*h.h,g.w*h.w,g.h*h.h)):gt(s.sliceX||1,s.sliceY||1,h.x,h.y,h.w,h.h);return new nt(a,l,s.anims,s.slice9)}static fromURL(r,s={}){return lr(r).then(a=>nt.fromImage(a,s))}};o(nt,"SpriteData");let W=nt;const Mt=class Mt{constructor(r){E(this,"buf");this.buf=r}static fromArrayBuffer(r){return new Promise((s,a)=>te.ctx.decodeAudioData(r,s,a)).then(s=>new Mt(s))}static fromURL(r){return zs(r)?Mt.fromArrayBuffer(Vn(r)):In(r).then(s=>Mt.fromArrayBuffer(s))}};o(Mt,"SoundData");let me=Mt;let te=(()=>{let t=new(window.AudioContext||window.webkitAudioContext),r=t.createGain();r.connect(t.destination);let s=new me(Nn(t));return t.decodeAudioData(Vo.buffer.slice(0)).then(a=>{s.buf=a}).catch(a=>{console.error("Failed to load burp: ",a)}),{ctx:t,masterNode:r,burpSnd:s}})(),L={urlPrefix:"",sprites:new Pt,fonts:new Pt,bitmapFonts:new Pt,sounds:new Pt,shaders:new Pt,custom:new Pt,packer:new wo(Q,rn,sn),loaded:false};function fe(t){return typeof t!="string"||zs(t)?t:L.urlPrefix+t}o(fe,"fixURL");let R={events:new ar,objEvents:new ar,root:Fr([]),gravity:0,scenes:{},logs:[],cam:{pos:null,scale:new b(1),angle:0,shake:0,transform:new Ue}};R.root.use(Cr());function Be(t){return L.custom.add(null,t)}o(Be,"load");function K(){let t=[L.sprites,L.sounds,L.shaders,L.fonts,L.bitmapFonts,L.custom];return t.reduce((r,s)=>r+s.progress(),0)/t.length}o(K,"loadProgress");function Ee(t){return t!==void 0&&(L.urlPrefix=t),L.urlPrefix}o(Ee,"loadRoot");function we(t,r){return L.custom.add(t,hr(r))}o(we,"loadJSON");const mi=class mi{constructor(r,s={}){E(this,"fontface");E(this,"filter",vi);E(this,"outline",null);E(this,"size",Kr);if(this.fontface=r,this.filter=s.filter??vi,this.size=s.size??Kr,this.size>Yr)throw new Error(`Max font size: ${Yr}`);s.outline&&(this.outline={width:1,color:Z(0,0,0)},typeof s.outline=="number"?this.outline.width=s.outline:typeof s.outline=="object"&&(s.outline.width&&(this.outline.width=s.outline.width),s.outline.color&&(this.outline.color=s.outline.color)))}};o(mi,"FontData");let Ae=mi;function je(t,r,s={}){let a=new FontFace(t,typeof r=="string"?`url(${r})`:r);return document.fonts.add(a),L.fonts.add(t,a.load().catch(h=>{throw new Error(`Failed to load font from "${r}": ${h}`)}).then(h=>new Ae(h,s)))}o(je,"loadFont");function Ut(t,r,s,a,h={}){return L.bitmapFonts.add(t,lr(r).then(l=>Jt(ht.fromImage(Q,l,h),s,a,h.chars??_s)))}o(Ut,"loadBitmapFont");function gt(t=1,r=1,s=0,a=0,h=1,l=1){let g=[],V=h/t,m=l/r;for(let d=0;d{hr(r).then(h=>{mt(t,h).then(s).catch(a)})}):W.from(t).then(s=>{let a={};for(let h in r){let l=r[h],g=s.frames[0],V=rn*g.w,m=sn*g.h,d=l.frames?l.frames.map(B=>new ge(g.x+(l.x+B.x)/V*g.w,g.y+(l.y+B.y)/m*g.h,B.w/V*g.w,B.h/m*g.h)):gt(l.sliceX||1,l.sliceY||1,g.x+l.x/V*g.w,g.y+l.y/m*g.h,l.width/V*g.w,l.height/m*g.h),w=new W(s.tex,d,l.anims);L.sprites.addLoaded(h,w),a[h]=w}return a}))}o(mt,"loadSpriteAtlas");function wt(t,r={}){let s=document.createElement("canvas"),a=t[0].width,h=t[0].height;s.width=a*t.length,s.height=h;let l=s.getContext("2d");t.forEach((V,m)=>{V instanceof ImageData?l.putImageData(V,m*a,0):l.drawImage(V,m*a,0)});let g=l.getImageData(0,0,t.length*a,h);return W.fromImage(g,{...r,sliceX:t.length,sliceY:1})}o(wt,"createSpriteSheet");function Ge(t,r,s={sliceX:1,sliceY:1,anims:{}}){return r=fe(r),Array.isArray(r)?r.some(a=>typeof a=="string")?L.sprites.add(t,Promise.all(r.map(a=>typeof a=="string"?lr(a):Promise.resolve(a))).then(a=>wt(a,s))):L.sprites.addLoaded(t,wt(r,s)):typeof r=="string"?L.sprites.add(t,W.from(r,s)):L.sprites.addLoaded(t,W.fromImage(r,s))}o(Ge,"loadSprite");function Lt(t,r){return r=fe(r),L.sprites.add(t,new Promise(async s=>{let a=typeof r=="string"?await hr(r):r,h=await Promise.all(a.frames.map(lr)),l=document.createElement("canvas");l.width=a.width,l.height=a.height*a.frames.length;let g=l.getContext("2d");h.forEach((m,d)=>{g.drawImage(m,0,d*a.height)});let V=await Ge(null,l,{sliceY:a.frames.length,anims:a.anims});s(V)}))}o(Lt,"loadPedit");function Gt(t,r,s){r=fe(r),s=fe(s),typeof r=="string"&&!s&&(s=no(r)+".json");let a=typeof s=="string"?hr(s):Promise.resolve(s);return L.sprites.add(t,a.then(h=>{let l=h.meta.size,g=h.frames.map(m=>new ge(m.frame.x/l.w,m.frame.y/l.h,m.frame.w/l.w,m.frame.h/l.h)),V={};for(let m of h.meta.frameTags)m.from===m.to?V[m.name]=m.from:V[m.name]={from:m.from,to:m.to,speed:10,loop:true,pingpong:m.direction==="pingpong"};return W.from(r,{frames:g,anims:V})}))}o(Gt,"loadAseprite");function Rr(t,r,s){return L.shaders.addLoaded(t,et(r,s))}o(Rr,"loadShader");function Mr(t,r,s){r=fe(r),s=fe(s);let a=o(l=>l?Dn(l):Promise.resolve(null),"resolveUrl"),h=Promise.all([a(r),a(s)]).then(([l,g])=>et(l,g));return L.shaders.add(t,h)}o(Mr,"loadShaderURL");function Pr(t,r){return r=fe(r),L.sounds.add(t,typeof r=="string"?me.fromURL(r):me.fromArrayBuffer(r))}o(Pr,"loadSound");function Br(t="bean"){return Ge(t,Ao)}o(Br,"loadBean");function Ot(t){return L.sprites.get(t)}o(Ot,"getSprite");function qt(t){return L.sounds.get(t)}o(qt,"getSound");function Ht(t){return L.fonts.get(t)}o(Ht,"getFont");function At(t){return L.bitmapFonts.get(t)}o(At,"getBitmapFont");function Vt(t){return L.shaders.get(t)}o(Vt,"getShader");function Kt(t){return L.custom.get(t)}o(Kt,"getAsset");function $e(t){if(typeof t=="string"){let r=Ot(t);if(r)return r;if(K()<1)return null;throw new Error(`Sprite not found: ${t}`)}else{if(t instanceof W)return Fe.loaded(t);if(t instanceof Fe)return t;throw new Error(`Invalid sprite: ${t}`)}}o($e,"resolveSprite");function Yt(t){if(typeof t=="string"){let r=qt(t);if(r)return r;if(K()<1)return null;throw new Error(`Sound not found: ${t}`)}else{if(t instanceof me)return Fe.loaded(t);if(t instanceof Fe)return t;throw new Error(`Invalid sound: ${t}`)}}o(Yt,"resolveSound");function jt(t){if(!t)return x.defShader;if(typeof t=="string"){let r=Vt(t);if(r)return r.data??r;if(K()<1)return null;throw new Error(`Shader not found: ${t}`)}else if(t instanceof Fe)return t.data?t.data:t;return t}o(jt,"resolveShader");function vt(t){if(!t)return vt(i.font??Eo);if(typeof t=="string"){let r=At(t),s=Ht(t);if(r)return r.data??r;if(s)return s.data??s;if(document.fonts.check(`${Kr}px ${t}`))return t;if(K()<1)return null;throw new Error(`Font not found: ${t}`)}else if(t instanceof Fe)return t.data?t.data:t;return t}o(vt,"resolveFont");function Qt(t){return t!==void 0&&(te.masterNode.gain.value=t),te.masterNode.gain.value}o(Qt,"volume");function yt(t,r={}){let s=te.ctx,a=r.paused??false,h=s.createBufferSource(),l=new Ce,g=s.createGain(),V=r.seek??0,m=0,d=0,w=false;h.loop=!!r.loop,h.detune.value=r.detune??0,h.playbackRate.value=r.speed??1,h.connect(g),h.onended=()=>{var D;G()>=((D=h.buffer)==null?void 0:D.duration)&&l.trigger()},g.connect(te.masterNode),g.gain.value=r.volume??1;let B=o(D=>{h.buffer=D.buf,a||(m=s.currentTime,h.start(0,V),w=true)},"start"),C=Yt(t);C instanceof Fe&&C.onLoad(B);let G=o(()=>{if(!h.buffer)return 0;let D=a?d-m:s.currentTime-m,U=h.buffer.duration;return h.loop?D%U:Math.min(D,U)},"getTime"),O=o(D=>{let U=s.createBufferSource();return U.buffer=D.buffer,U.loop=D.loop,U.playbackRate.value=D.playbackRate.value,U.detune.value=D.detune.value,U.onended=D.onended,U.connect(g),U},"cloneNode");return{stop(){this.paused=true,this.seek(0)},set paused(D){if(a!==D)if(a=D,D)w&&(h.stop(),w=false),d=s.currentTime;else{h=O(h);let U=d-m;h.start(0,U),w=true,m=s.currentTime-U,d=0}},get paused(){return a},play(D=0){this.seek(D),this.paused=false},seek(D){var U;((U=h.buffer)==null?void 0:U.duration)&&(D>h.buffer.duration||(a?(h=O(h),m=d-D):(h.stop(),h=O(h),m=s.currentTime-D,h.start(0,D),w=true,d=0)))},set speed(D){h.playbackRate.value=D},get speed(){return h.playbackRate.value},set detune(D){h.detune.value=D},get detune(){return h.detune.value},set volume(D){g.gain.value=Math.max(D,0)},get volume(){return g.gain.value},set loop(D){h.loop=D},get loop(){return h.loop},duration(){var D;return((D=h.buffer)==null?void 0:D.duration)??0},time(){return G()%this.duration()},onEnd(D){return l.add(D)},then(D){return this.onEnd(D)}}}o(yt,"play");function xt(t){return yt(te.burpSnd,t)}o(xt,"burp");function zt(t,r){return new Lr(Q,t,r)}o(zt,"makeCanvas");function et(t=yi,r=xi){let s=Fo.replace("{{user}}",t??yi),a=Do.replace("{{user}}",r??xi);try{return new po(Q,s,a,Mi.map(h=>h.name))}catch(h){let l=/(?^\w+) SHADER ERROR: 0:(?\d+): (?.+)/,g=ao(h).match(l),V=Number(g.groups.line)-14,m=g.groups.msg.trim(),d=g.groups.type.toLowerCase();throw new Error(`${d} shader line ${V}: ${m}`)}}o(et,"makeShader");function Jt(t,r,s,a){let h=t.width/r,l={},g=a.split("").entries();for(let[V,m]of g)l[m]=new ge(V%h*r,Math.floor(V/h)*s,r,s);return{tex:t,map:l,size:s}}o(Jt,"makeFont");function tt(t,r,s,a=x.defTex,h=x.defShader,l={}){let g=jt(h);if(!g||g instanceof Fe)return;let V=x.fixed||s?x.transform:R.cam.transform.mult(x.transform),m=[];for(let d of t){let w=Xt(V.multVec2(d.pos));m.push(w.x,w.y,d.uv.x,d.uv.y,d.color.r/255,d.color.g/255,d.color.b/255,d.opacity)}x.renderer.push(S.TRIANGLES,m,r,g,a,l)}o(tt,"drawRaw");function Te(){x.renderer.flush()}o(Te,"flush");function rt(){S.clear(S.COLOR_BUFFER_BIT),x.frameBuffer.bind(),S.clear(S.COLOR_BUFFER_BIT),x.bgColor||Se(()=>{Ne({width:ve(),height:ye(),quad:new ge(0,0,ve()/$s,ye()/$s),tex:x.bgTex,fixed:true})}),x.renderer.numDraws=0,x.fixed=false,x.transformStack.length=0,x.transform=new Ue}o(rt,"frameStart");function Et(t,r){x.postShader=t,x.postShaderUniform=r??null}o(Et,"usePostEffect");function it(){Te(),x.lastDrawCalls=x.renderer.numDraws,x.frameBuffer.unbind(),S.viewport(0,0,S.drawingBufferWidth,S.drawingBufferHeight);let t=x.width,r=x.height;x.width=S.drawingBufferWidth/T,x.height=S.drawingBufferHeight/T,Qe({flipY:true,tex:x.frameBuffer.tex,pos:new b(x.viewport.x,x.viewport.y),width:x.viewport.width,height:x.viewport.height,shader:x.postShader,uniform:typeof x.postShaderUniform=="function"?x.postShaderUniform():x.postShaderUniform,fixed:true}),Te(),x.width=t,x.height=r}o(it,"frameEnd");function Xt(t){return new b(t.x/ve()*2-1,-t.y/ye()*2+1)}o(Xt,"screen2ndc");function bt(t){x.transform=t.clone()}o(bt,"pushMatrix");function _(...t){if(t[0]===void 0)return;let r=P(...t);r.x===0&&r.y===0||x.transform.translate(r)}o(_,"pushTranslate");function ke(...t){if(t[0]===void 0)return;let r=P(...t);r.x===1&&r.y===1||x.transform.scale(r)}o(ke,"pushScale");function ie(t){t&&x.transform.rotate(t)}o(ie,"pushRotate");function le(){x.transformStack.push(x.transform.clone())}o(le,"pushTransform");function ae(){x.transformStack.length>0&&(x.transform=x.transformStack.pop())}o(ae,"popTransform");function Ne(t){if(t.width===void 0||t.height===void 0)throw new Error('drawUVQuad() requires property "width" and "height".');if(t.width<=0||t.height<=0)return;let r=t.width,s=t.height,a=at(t.anchor||qr).scale(new b(r,s).scale(-.5)),h=t.quad||new ge(0,0,1,1),l=t.color||Z(255,255,255),g=t.opacity??1,V=t.tex?nn/t.tex.width:0,m=t.tex?nn/t.tex.height:0,d=h.x+V,w=h.y+m,B=h.w-V*2,C=h.h-m*2;le(),_(t.pos),ie(t.angle),ke(t.scale),_(a),tt([{pos:new b(-r/2,s/2),uv:new b(t.flipX?d+B:d,t.flipY?w:w+C),color:l,opacity:g},{pos:new b(-r/2,-s/2),uv:new b(t.flipX?d+B:d,t.flipY?w+C:w),color:l,opacity:g},{pos:new b(r/2,-s/2),uv:new b(t.flipX?d:d+B,t.flipY?w+C:w),color:l,opacity:g},{pos:new b(r/2,s/2),uv:new b(t.flipX?d:d+B,t.flipY?w:w+C),color:l,opacity:g}],[0,1,3,1,2,3],t.fixed,t.tex,t.shader,t.uniform),ae()}o(Ne,"drawUVQuad");function Qe(t){if(!t.tex)throw new Error('drawTexture() requires property "tex".');let r=t.quad??new ge(0,0,1,1),s=t.tex.width*r.w,a=t.tex.height*r.h,h=new b(1);if(t.tiled){let l=Math.ceil((t.width||s)/s),g=Math.ceil((t.height||a)/a),V=at(t.anchor||qr).add(new b(1,1)).scale(.5).scale(l*s,g*a);for(let m=0;m({pos:new b(g.x,g.y),uv:new b(0),color:t.color??ee.WHITE,opacity:t.opacity??1}));tt(l,[0,1,3,1,2,3],t.fixed,x.defTex,t.shader,t.uniform)}o(c,"drawLine");function y(t){let r=t.pts;if(!r)throw new Error('drawLines() requires property "pts".');if(!(r.length<2))if(t.radius&&r.length>=3){let s=r[0].sdist(r[1]);for(let a=1;a=360&&t.outline){t.fill!==false&&de(Object.assign(l,{outline:null})),de(Object.assign(l,{pts:h.slice(1),fill:false}));return}de(l)}o(z,"drawEllipse");function de(t){if(!t.pts)throw new Error('drawPolygon() requires property "pts".');let r=t.pts.length;if(!(r<3)){if(le(),_(t.pos),ke(t.scale),ie(t.angle),_(t.offset),t.fill!==false){let s=t.color??ee.WHITE,a=t.pts.map((l,g)=>({pos:new b(l.x,l.y),uv:new b(0,0),color:t.colors&&t.colors[g]?t.colors[g].mult(s):s,opacity:t.opacity??1})),h=[...Array(r-2).keys()].map(l=>[0,l+1,l+2]).flat();tt(a,t.indices??h,t.fixed,x.defTex,t.shader,t.uniform)}t.outline&&y({pts:[...t.pts,t.pts[0]],radius:t.radius,width:t.outline.width,color:t.outline.color,join:t.outline.join,uniform:t.uniform,fixed:t.fixed,opacity:t.opacity}),ae()}}o(de,"drawPolygon");function be(t,r,s){Te(),S.clear(S.STENCIL_BUFFER_BIT),S.enable(S.STENCIL_TEST),S.stencilFunc(S.NEVER,1,255),S.stencilOp(S.REPLACE,S.REPLACE,S.REPLACE),r(),Te(),S.stencilFunc(s,1,255),S.stencilOp(S.KEEP,S.KEEP,S.KEEP),t(),Te(),S.disable(S.STENCIL_TEST)}o(be,"drawStenciled");function Wt(t,r){be(t,r,S.EQUAL)}o(Wt,"drawMasked");function Zt(t,r){be(t,r,S.NOTEQUAL)}o(Zt,"drawSubtracted");function De(){return(x.viewport.width+x.viewport.height)/(x.width+x.height)}o(De,"getViewportScale");function Se(t){Te();let r=x.width,s=x.height;x.width=x.viewport.width,x.height=x.viewport.height,t(),Te(),x.width=r,x.height=s}o(Se,"drawUnscaled");function _r(t,r){r.pos&&(t.pos=t.pos.add(r.pos)),r.scale&&(t.scale=t.scale.scale(P(r.scale))),r.angle&&(t.angle+=r.angle),r.color&&t.ch.length===1&&(t.color=t.color.mult(r.color)),r.opacity&&(t.opacity*=r.opacity)}o(_r,"applyCharTransform");let Ii=/\[(?Kaboom Template | remarkablegames \ No newline at end of file +Kaboom Template | remarkablegames \ No newline at end of file