From cd190051bda230a24f0264c5cb63536713c0abfc Mon Sep 17 00:00:00 2001 From: da-in Date: Wed, 3 Apr 2024 11:27:17 +0000 Subject: [PATCH] deploy: 49f9c50c7d575b886327299a4ea81702003ef9b4 --- 404.html | 2 +- .../{index-kNriiQ26.js => index-hu_6JyrI.js} | 18 +++++++++--------- ...x-kNriiQ26.js.map => index-hu_6JyrI.js.map} | 2 +- index.html | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) rename assets/{index-kNriiQ26.js => index-hu_6JyrI.js} (64%) rename assets/{index-kNriiQ26.js.map => index-hu_6JyrI.js.map} (55%) diff --git a/404.html b/404.html index f926810..d61c44d 100644 --- a/404.html +++ b/404.html @@ -22,7 +22,7 @@ - + diff --git a/assets/index-kNriiQ26.js b/assets/index-hu_6JyrI.js similarity index 64% rename from assets/index-kNriiQ26.js rename to assets/index-hu_6JyrI.js index 3dd5b79..3d98732 100644 --- a/assets/index-kNriiQ26.js +++ b/assets/index-hu_6JyrI.js @@ -1,17 +1,17 @@ -var qr=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var F=(e,t,n)=>(qr(e,t,"read from private field"),n?n.call(e):t.get(e)),_=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},Z=(e,t,n,r)=>(qr(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);var Zs=(e,t,n,r)=>({set _(i){Z(e,t,i,n)},get _(){return F(e,t,r)}}),le=(e,t,n)=>(qr(e,t,"access private method"),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function Zi(e,t){const n=Object.create(null),r=e.split(",");for(let i=0;i!!n[i.toLowerCase()]:i=>!!n[i]}const ke={},Fn=[],Rt=()=>{},cu=()=>!1,br=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gi=e=>e.startsWith("onUpdate:"),We=Object.assign,Xi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},uu=Object.prototype.hasOwnProperty,ve=(e,t)=>uu.call(e,t),ae=Array.isArray,Mn=e=>wr(e)==="[object Map]",ol=e=>wr(e)==="[object Set]",fe=e=>typeof e=="function",De=e=>typeof e=="string",rs=e=>typeof e=="symbol",Te=e=>e!==null&&typeof e=="object",al=e=>(Te(e)||fe(e))&&fe(e.then)&&fe(e.catch),ll=Object.prototype.toString,wr=e=>ll.call(e),fu=e=>wr(e).slice(8,-1),cl=e=>wr(e)==="[object Object]",_i=e=>De(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,nr=Zi(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Sr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},hu=/-(\w)/g,Xn=Sr(e=>e.replace(hu,(t,n)=>n?n.toUpperCase():"")),du=/\B([A-Z])/g,is=Sr(e=>e.replace(du,"-$1").toLowerCase()),ul=Sr(e=>e.charAt(0).toUpperCase()+e.slice(1)),zr=Sr(e=>e?`on${ul(e)}`:""),Cn=(e,t)=>!Object.is(e,t),Yr=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},pu=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Uo;const ci=()=>Uo||(Uo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function $i(e){if(ae(e)){const t={};for(let n=0;n{if(n){const r=n.split(gu);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function wn(e){let t="";if(De(e))t=e;else if(ae(e))for(let n=0;nDe(e)?e:e==null?"":ae(e)||Te(e)&&(e.toString===ll||!fe(e.toString))?JSON.stringify(e,hl,2):String(e),hl=(e,t)=>t&&t.__v_isRef?hl(e,t.value):Mn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i],s)=>(n[Zr(r,s)+" =>"]=i,n),{})}:ol(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Zr(n))}:rs(t)?Zr(t):Te(t)&&!ae(t)&&!cl(t)?String(t):t,Zr=(e,t="")=>{var n;return rs(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let st;class dl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=st,!t&&st&&(this.index=(st.scopes||(st.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=st;try{return st=this,t()}finally{st=n}}}on(){st=this}off(){st=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},gl=e=>(e.w&sn)>0,vl=e=>(e.n&sn)>0,bu=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(u==="length"||!rs(u)&&u>=c)&&l.push(h)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":ae(e)?_i(n)&&l.push(o.get("length")):(l.push(o.get(yn)),Mn(e)&&l.push(o.get(fi)));break;case"delete":ae(e)||(l.push(o.get(yn)),Mn(e)&&l.push(o.get(fi)));break;case"set":Mn(e)&&l.push(o.get(yn));break}if(l.length===1)l[0]&&hi(l[0]);else{const c=[];for(const h of l)h&&c.push(...h);hi(to(c))}}function hi(e,t){const n=ae(e)?e:[...e];for(const r of n)r.computed&&Do(r);for(const r of n)r.computed||Do(r)}function Do(e,t){(e!==ht||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Su(e,t){var n;return(n=hr.get(e))==null?void 0:n.get(t)}const Eu=Zi("__proto__,__v_isRef,__isVue"),Cl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rs)),Ho=Ru();function Ru(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=ye(this);for(let s=0,o=this.length;s{e[t]=function(...n){os();const r=ye(this)[t].apply(this,n);return as(),r}}),e}function Pu(e){const t=ye(this);return $e(t,"has",e),t.hasOwnProperty(e)}class Al{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,r){const i=this._isReadonly,s=this._shallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(i?s?Vu:El:s?Sl:wl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=ae(t);if(!i){if(o&&ve(Ho,n))return Reflect.get(Ho,n,r);if(n==="hasOwnProperty")return Pu}const l=Reflect.get(t,n,r);return(rs(n)?Cl.has(n):Eu(n))||(i||$e(t,"get",n),s)?l:Fe(l)?o&&_i(n)?l:l.value:Te(l)?i?Rr(l):Sn(l):l}}class bl extends Al{constructor(t=!1){super(!1,t)}set(t,n,r,i){let s=t[n];if(_n(s)&&Fe(s)&&!Fe(r))return!1;if(!this._shallow&&(!dr(r)&&!_n(r)&&(s=ye(s),r=ye(r)),!ae(t)&&Fe(s)&&!Fe(r)))return s.value=r,!0;const o=ae(t)&&_i(n)?Number(n)e,Er=e=>Reflect.getPrototypeOf(e);function Gs(e,t,n=!1,r=!1){e=e.__v_raw;const i=ye(e),s=ye(t);n||(Cn(t,s)&&$e(i,"get",t),$e(i,"get",s));const{has:o}=Er(i),l=r?so:n?oo:Es;if(o.call(i,t))return l(e.get(t));if(o.call(i,s))return l(e.get(s));e!==i&&e.get(t)}function Xs(e,t=!1){const n=this.__v_raw,r=ye(n),i=ye(e);return t||(Cn(e,i)&&$e(r,"has",e),$e(r,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function _s(e,t=!1){return e=e.__v_raw,!t&&$e(ye(e),"iterate",yn),Reflect.get(e,"size",e)}function Vo(e){e=ye(e);const t=ye(this);return Er(t).has.call(t,e)||(t.add(e),Bt(t,"add",e,e)),this}function jo(e,t){t=ye(t);const n=ye(this),{has:r,get:i}=Er(n);let s=r.call(n,e);s||(e=ye(e),s=r.call(n,e));const o=i.call(n,e);return n.set(e,t),s?Cn(t,o)&&Bt(n,"set",e,t):Bt(n,"add",e,t),this}function Qo(e){const t=ye(this),{has:n,get:r}=Er(t);let i=n.call(t,e);i||(e=ye(e),i=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return i&&Bt(t,"delete",e,void 0),s}function Wo(){const e=ye(this),t=e.size!==0,n=e.clear();return t&&Bt(e,"clear",void 0,void 0),n}function $s(e,t){return function(r,i){const s=this,o=s.__v_raw,l=ye(o),c=t?so:e?oo:Es;return!e&&$e(l,"iterate",yn),o.forEach((h,u)=>r.call(i,c(h),c(u),s))}}function er(e,t,n){return function(...r){const i=this.__v_raw,s=ye(i),o=Mn(s),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,h=i[e](...r),u=n?so:t?oo:Es;return!t&&$e(s,"iterate",c?fi:yn),{next(){const{value:d,done:f}=h.next();return f?{value:d,done:f}:{value:l?[u(d[0]),u(d[1])]:u(d),done:f}},[Symbol.iterator](){return this}}}}function Lt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Mu(){const e={get(s){return Gs(this,s)},get size(){return _s(this)},has:Xs,add:Vo,set:jo,delete:Qo,clear:Wo,forEach:$s(!1,!1)},t={get(s){return Gs(this,s,!1,!0)},get size(){return _s(this)},has:Xs,add:Vo,set:jo,delete:Qo,clear:Wo,forEach:$s(!1,!0)},n={get(s){return Gs(this,s,!0)},get size(){return _s(this,!0)},has(s){return Xs.call(this,s,!0)},add:Lt("add"),set:Lt("set"),delete:Lt("delete"),clear:Lt("clear"),forEach:$s(!0,!1)},r={get(s){return Gs(this,s,!0,!0)},get size(){return _s(this,!0)},has(s){return Xs.call(this,s,!0)},add:Lt("add"),set:Lt("set"),delete:Lt("delete"),clear:Lt("clear"),forEach:$s(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=er(s,!1,!1),n[s]=er(s,!0,!1),t[s]=er(s,!1,!0),r[s]=er(s,!0,!0)}),[e,n,t,r]}const[Bu,Iu,Nu,Uu]=Mu();function ro(e,t){const n=t?e?Uu:Nu:e?Iu:Bu;return(r,i,s)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(ve(n,i)&&i in r?n:r,i,s)}const Lu={get:ro(!1,!1)},Du={get:ro(!1,!0)},Hu={get:ro(!0,!1)},wl=new WeakMap,Sl=new WeakMap,El=new WeakMap,Vu=new WeakMap;function ju(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Qu(e){return e.__v_skip||!Object.isExtensible(e)?0:ju(fu(e))}function Sn(e){return _n(e)?e:io(e,!1,ku,Lu,wl)}function Rl(e){return io(e,!1,Fu,Du,Sl)}function Rr(e){return io(e,!0,Tu,Hu,El)}function io(e,t,n,r,i){if(!Te(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=i.get(e);if(s)return s;const o=Qu(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return i.set(e,l),l}function en(e){return _n(e)?en(e.__v_raw):!!(e&&e.__v_isReactive)}function _n(e){return!!(e&&e.__v_isReadonly)}function dr(e){return!!(e&&e.__v_isShallow)}function Pl(e){return en(e)||_n(e)}function ye(e){const t=e&&e.__v_raw;return t?ye(t):e}function Pr(e){return fr(e,"__v_skip",!0),e}const Es=e=>Te(e)?Sn(e):e,oo=e=>Te(e)?Rr(e):e;function Ol(e){$t&&ht&&(e=ye(e),xl(e.dep||(e.dep=to())))}function kl(e,t){e=ye(e);const n=e.dep;n&&hi(n)}function Fe(e){return!!(e&&e.__v_isRef===!0)}function Ze(e){return Tl(e,!1)}function Wu(e){return Tl(e,!0)}function Tl(e,t){return Fe(e)?e:new Ju(e,t)}class Ju{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ye(t),this._value=n?t:Es(t)}get value(){return Ol(this),this._value}set value(t){const n=this.__v_isShallow||dr(t)||_n(t);t=n?t:ye(t),Cn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Es(t),kl(this))}}function ee(e){return Fe(e)?e.value:e}const Ku={get:(e,t,n)=>ee(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return Fe(i)&&!Fe(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Fl(e){return en(e)?e:new Proxy(e,Ku)}function ao(e){const t=ae(e)?new Array(e.length):{};for(const n in e)t[n]=zu(e,n);return t}class qu{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Su(ye(this._object),this._key)}}function zu(e,t,n){const r=e[t];return Fe(r)?r:new qu(e,t,n)}class Yu{constructor(t,n,r,i){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new no(t,()=>{this._dirty||(this._dirty=!0,kl(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=r}get value(){const t=ye(this);return Ol(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Zu(e,t,n=!1){let r,i;const s=fe(e);return s?(r=e,i=Rt):(r=e.get,i=e.set),new Yu(r,i,s||!i,n)}function tn(e,t,n,r){let i;try{i=r?e(...r):e()}catch(s){Or(s,t,n)}return i}function mt(e,t,n,r){if(fe(e)){const s=tn(e,t,n,r);return s&&al(s)&&s.catch(o=>{Or(o,t,n)}),s}const i=[];for(let s=0;s>>1,i=Ke[r],s=Ps(i);sSt&&Ke.splice(t,1)}function $u(e){ae(e)?Bn.push(...e):(!Tt||!Tt.includes(e,e.allowRecurse?ln+1:ln))&&Bn.push(e),Bl()}function Jo(e,t,n=Rs?St+1:0){for(;nPs(n)-Ps(r)),ln=0;lne.id==null?1/0:e.id,e0=(e,t)=>{const n=Ps(e)-Ps(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Nl(e){di=!1,Rs=!0,Ke.sort(e0);try{for(St=0;StDe(a)?a.trim():a)),d&&(i=n.map(pu))}let l,c=r[l=zr(t)]||r[l=zr(Xn(t))];!c&&s&&(c=r[l=zr(is(t))]),c&&mt(c,e,6,i);const h=r[l+"Once"];if(h){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,mt(h,e,6,i)}}function Ul(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const s=e.emits;let o={},l=!1;if(!fe(e)){const c=h=>{const u=Ul(h,t,!0);u&&(l=!0,We(o,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!s&&!l?(Te(e)&&r.set(e,null),null):(ae(s)?s.forEach(c=>o[c]=null):We(o,s),Te(e)&&r.set(e,o),o)}function kr(e,t){return!e||!br(t)?!1:(t=t.slice(2).replace(/Once$/,""),ve(e,t[0].toLowerCase()+t.slice(1))||ve(e,is(t))||ve(e,t))}let qe=null,Ll=null;function pr(e){const t=qe;return qe=e,Ll=e&&e.type.__scopeId||null,t}function Ge(e,t=qe,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&ea(-1);const s=pr(t);let o;try{o=e(...i)}finally{pr(s),r._d&&ea(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Gr(e){const{type:t,vnode:n,proxy:r,withProxy:i,props:s,propsOptions:[o],slots:l,attrs:c,emit:h,render:u,renderCache:d,data:f,setupState:a,ctx:p,inheritAttrs:m}=e;let g,y;const C=pr(e);try{if(n.shapeFlag&4){const w=i||r,v=w;g=wt(u.call(v,w,d,s,a,f,p)),y=c}else{const w=t;g=wt(w.length>1?w(s,{attrs:c,slots:l,emit:h}):w(s,null)),y=t.props?c:n0(c)}}catch(w){Cs.length=0,Or(w,e,1),g=he(rn)}let b=g;if(y&&m!==!1){const w=Object.keys(y),{shapeFlag:v}=b;w.length&&v&7&&(o&&w.some(Gi)&&(y=s0(y,o)),b=$n(b,y))}return n.dirs&&(b=$n(b),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&(b.transition=n.transition),g=b,pr(C),g}const n0=e=>{let t;for(const n in e)(n==="class"||n==="style"||br(n))&&((t||(t={}))[n]=e[n]);return t},s0=(e,t)=>{const n={};for(const r in e)(!Gi(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function r0(e,t,n){const{props:r,children:i,component:s}=e,{props:o,children:l,patchFlag:c}=t,h=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ko(r,o,h):!!o;if(c&8){const u=t.dynamicProps;for(let d=0;de.__isSuspense;function l0(e,t){t&&t.pendingBranch?ae(e)?t.effects.push(...e):t.effects.push(e):$u(e)}function c0(e,t){return fo(e,null,{flush:"post"})}const tr={};function dt(e,t,n){return fo(e,t,n)}function fo(e,t,{immediate:n,deep:r,flush:i,onTrack:s,onTrigger:o}=ke){var l;const c=ml()===((l=Ve)==null?void 0:l.scope)?Ve:null;let h,u=!1,d=!1;if(Fe(e)?(h=()=>e.value,u=dr(e)):en(e)?(h=()=>e,r=!0):ae(e)?(d=!0,u=e.some(w=>en(w)||dr(w)),h=()=>e.map(w=>{if(Fe(w))return w.value;if(en(w))return Tn(w);if(fe(w))return tn(w,c,2)})):fe(e)?t?h=()=>tn(e,c,2):h=()=>{if(!(c&&c.isUnmounted))return f&&f(),mt(e,c,3,[a])}:h=Rt,t&&r){const w=h;h=()=>Tn(w())}let f,a=w=>{f=C.onStop=()=>{tn(w,c,4),f=C.onStop=void 0}},p;if(Ts)if(a=Rt,t?n&&mt(t,c,3,[h(),d?[]:void 0,a]):h(),i==="sync"){const w=$0();p=w.__watcherHandles||(w.__watcherHandles=[])}else return Rt;let m=d?new Array(e.length).fill(tr):tr;const g=()=>{if(C.active)if(t){const w=C.run();(r||u||(d?w.some((v,A)=>Cn(v,m[A])):Cn(w,m)))&&(f&&f(),mt(t,c,3,[w,m===tr?void 0:d&&m[0]===tr?[]:m,a]),m=w)}else C.run()};g.allowRecurse=!!t;let y;i==="sync"?y=g:i==="post"?y=()=>Xe(g,c&&c.suspense):(g.pre=!0,c&&(g.id=c.uid),y=()=>uo(g));const C=new no(h,y);t?n?g():m=C.run():i==="post"?Xe(C.run.bind(C),c&&c.suspense):C.run();const b=()=>{C.stop(),c&&c.scope&&Xi(c.scope.effects,C)};return p&&p.push(b),b}function u0(e,t,n){const r=this.proxy,i=De(e)?e.includes(".")?Dl(r,e):()=>r[e]:e.bind(r,r);let s;fe(t)?s=t:(s=t.handler,n=t);const o=Ve;es(this);const l=fo(i,s.bind(r),n);return o?es(o):xn(),l}function Dl(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i{Tn(n,t)});else if(cl(e))for(const n in e)Tn(e[n],t);return e}function on(e,t,n,r){const i=e.dirs,s=t&&t.dirs;for(let o=0;o!!e.type.__asyncLoader,Hl=e=>e.type.__isKeepAlive;function f0(e,t){Vl(e,"a",t)}function h0(e,t){Vl(e,"da",t)}function Vl(e,t,n=Ve){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Tr(t,r,n),n){let i=n.parent;for(;i&&i.parent;)Hl(i.parent.vnode)&&d0(r,t,n,i),i=i.parent}}function d0(e,t,n,r){const i=Tr(t,e,r,!0);ho(()=>{Xi(r[t],i)},n)}function Tr(e,t,n=Ve,r=!1){if(n){const i=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;os(),es(n);const l=mt(t,n,e,o);return xn(),as(),l});return r?i.unshift(s):i.push(s),s}}const Ut=e=>(t,n=Ve)=>(!Ts||e==="sp")&&Tr(e,(...r)=>t(...r),n),p0=Ut("bm"),En=Ut("m"),m0=Ut("bu"),g0=Ut("u"),Fr=Ut("bum"),ho=Ut("um"),v0=Ut("sp"),y0=Ut("rtg"),x0=Ut("rtc");function C0(e,t=Ve){Tr("ec",e,t)}function po(e,t,n,r){let i;const s=n&&n[r];if(ae(e)||De(e)){i=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,s&&s[l]));else{const o=Object.keys(e);i=new Array(o.length);for(let l=0,c=o.length;lgr(t)?!(t.type===rn||t.type===Be&&!jl(t.children)):!0)?e:null}const pi=e=>e?$l(e)?xo(e)||e.proxy:pi(e.parent):null,xs=We(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>pi(e.parent),$root:e=>pi(e.root),$emit:e=>e.emit,$options:e=>mo(e),$forceUpdate:e=>e.f||(e.f=()=>uo(e.update)),$nextTick:e=>e.n||(e.n=co.bind(e.proxy)),$watch:e=>u0.bind(e)}),Xr=(e,t)=>e!==ke&&!e.__isScriptSetup&&ve(e,t),A0={get({_:e},t){const{ctx:n,setupState:r,data:i,props:s,accessCache:o,type:l,appContext:c}=e;let h;if(t[0]!=="$"){const a=o[t];if(a!==void 0)switch(a){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(Xr(r,t))return o[t]=1,r[t];if(i!==ke&&ve(i,t))return o[t]=2,i[t];if((h=e.propsOptions[0])&&ve(h,t))return o[t]=3,s[t];if(n!==ke&&ve(n,t))return o[t]=4,n[t];mi&&(o[t]=0)}}const u=xs[t];let d,f;if(u)return t==="$attrs"&&$e(e,"get",t),u(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==ke&&ve(n,t))return o[t]=4,n[t];if(f=c.config.globalProperties,ve(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:s}=e;return Xr(i,t)?(i[t]=n,!0):r!==ke&&ve(r,t)?(r[t]=n,!0):ve(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:s}},o){let l;return!!n[o]||e!==ke&&ve(e,o)||Xr(t,o)||(l=s[0])&&ve(l,o)||ve(r,o)||ve(xs,o)||ve(i.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ve(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function qo(e){return ae(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let mi=!0;function b0(e){const t=mo(e),n=e.proxy,r=e.ctx;mi=!1,t.beforeCreate&&zo(t.beforeCreate,e,"bc");const{data:i,computed:s,methods:o,watch:l,provide:c,inject:h,created:u,beforeMount:d,mounted:f,beforeUpdate:a,updated:p,activated:m,deactivated:g,beforeDestroy:y,beforeUnmount:C,destroyed:b,unmounted:w,render:v,renderTracked:A,renderTriggered:S,errorCaptured:x,serverPrefetch:E,expose:R,inheritAttrs:k,components:T,directives:B,filters:V}=t;if(h&&w0(h,r,null),o)for(const Q in o){const X=o[Q];fe(X)&&(r[Q]=X.bind(n))}if(i){const Q=i.call(n,n);Te(Q)&&(e.data=Sn(Q))}if(mi=!0,s)for(const Q in s){const X=s[Q],de=fe(X)?X.bind(n,n):fe(X.get)?X.get.bind(n,n):Rt,xe=!fe(X)&&fe(X.set)?X.set.bind(n):Rt,Se=Ae({get:de,set:xe});Object.defineProperty(r,Q,{enumerable:!0,configurable:!0,get:()=>Se.value,set:ie=>Se.value=ie})}if(l)for(const Q in l)Ql(l[Q],r,n,Q);if(c){const Q=fe(c)?c.call(n):c;Reflect.ownKeys(Q).forEach(X=>{sr(X,Q[X])})}u&&zo(u,e,"c");function W(Q,X){ae(X)?X.forEach(de=>Q(de.bind(n))):X&&Q(X.bind(n))}if(W(p0,d),W(En,f),W(m0,a),W(g0,p),W(f0,m),W(h0,g),W(C0,x),W(x0,A),W(y0,S),W(Fr,C),W(ho,w),W(v0,E),ae(R))if(R.length){const Q=e.exposed||(e.exposed={});R.forEach(X=>{Object.defineProperty(Q,X,{get:()=>n[X],set:de=>n[X]=de})})}else e.exposed||(e.exposed={});v&&e.render===Rt&&(e.render=v),k!=null&&(e.inheritAttrs=k),T&&(e.components=T),B&&(e.directives=B)}function w0(e,t,n=Rt){ae(e)&&(e=gi(e));for(const r in e){const i=e[r];let s;Te(i)?"default"in i?s=lt(i.from||r,i.default,!0):s=lt(i.from||r):s=lt(i),Fe(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):t[r]=s}}function zo(e,t,n){mt(ae(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ql(e,t,n,r){const i=r.includes(".")?Dl(n,r):()=>n[r];if(De(e)){const s=t[e];fe(s)&&dt(i,s)}else if(fe(e))dt(i,e.bind(n));else if(Te(e))if(ae(e))e.forEach(s=>Ql(s,t,n,r));else{const s=fe(e.handler)?e.handler.bind(n):t[e.handler];fe(s)&&dt(i,s,e)}}function mo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,l=s.get(t);let c;return l?c=l:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(h=>mr(c,h,o,!0)),mr(c,t,o)),Te(t)&&s.set(t,c),c}function mr(e,t,n,r=!1){const{mixins:i,extends:s}=t;s&&mr(e,s,n,!0),i&&i.forEach(o=>mr(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=S0[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const S0={data:Yo,props:Zo,emits:Zo,methods:gs,computed:gs,beforeCreate:ze,created:ze,beforeMount:ze,mounted:ze,beforeUpdate:ze,updated:ze,beforeDestroy:ze,beforeUnmount:ze,destroyed:ze,unmounted:ze,activated:ze,deactivated:ze,errorCaptured:ze,serverPrefetch:ze,components:gs,directives:gs,watch:R0,provide:Yo,inject:E0};function Yo(e,t){return t?e?function(){return We(fe(e)?e.call(this,this):e,fe(t)?t.call(this,this):t)}:t:e}function E0(e,t){return gs(gi(e),gi(t))}function gi(e){if(ae(e)){const t={};for(let n=0;n1)return n&&fe(t)?t.call(r&&r.proxy):t}}function Jl(){return!!(Ve||qe||Os)}function k0(e,t,n,r=!1){const i={},s={};fr(s,Br,1),e.propsDefaults=Object.create(null),Kl(e,t,i,s);for(const o in e.propsOptions[0])o in i||(i[o]=void 0);n?e.props=r?i:Rl(i):e.type.props?e.props=i:e.props=s,e.attrs=s}function T0(e,t,n,r){const{props:i,attrs:s,vnode:{patchFlag:o}}=e,l=ye(i),[c]=e.propsOptions;let h=!1;if((r||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let d=0;d{c=!0;const[f,a]=ql(d,t,!0);We(o,f),a&&l.push(...a)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!c)return Te(e)&&r.set(e,Fn),Fn;if(ae(s))for(let u=0;u-1,a[1]=m<0||p-1||ve(a,"default"))&&l.push(d)}}}const h=[o,l];return Te(e)&&r.set(e,h),h}function Go(e){return e[0]!=="$"}function Xo(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function _o(e,t){return Xo(e)===Xo(t)}function $o(e,t){return ae(t)?t.findIndex(n=>_o(n,e)):fe(t)&&_o(t,e)?0:-1}const zl=e=>e[0]==="_"||e==="$stable",go=e=>ae(e)?e.map(wt):[wt(e)],F0=(e,t,n)=>{if(t._n)return t;const r=Ge((...i)=>go(t(...i)),n);return r._c=!1,r},Yl=(e,t,n)=>{const r=e._ctx;for(const i in e){if(zl(i))continue;const s=e[i];if(fe(s))t[i]=F0(i,s,r);else if(s!=null){const o=go(s);t[i]=()=>o}}},Zl=(e,t)=>{const n=go(t);e.slots.default=()=>n},M0=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ye(t),fr(t,"_",n)):Yl(t,e.slots={})}else e.slots={},t&&Zl(e,t);fr(e.slots,Br,1)},B0=(e,t,n)=>{const{vnode:r,slots:i}=e;let s=!0,o=ke;if(r.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:(We(i,t),!n&&l===1&&delete i._):(s=!t.$stable,Yl(t,i)),o=t}else t&&(Zl(e,t),o={default:1});if(s)for(const l in i)!zl(l)&&o[l]==null&&delete i[l]};function yi(e,t,n,r,i=!1){if(ae(e)){e.forEach((f,a)=>yi(f,t&&(ae(t)?t[a]:t),n,r,i));return}if(ys(r)&&!i)return;const s=r.shapeFlag&4?xo(r.component)||r.component.proxy:r.el,o=i?null:s,{i:l,r:c}=e,h=t&&t.r,u=l.refs===ke?l.refs={}:l.refs,d=l.setupState;if(h!=null&&h!==c&&(De(h)?(u[h]=null,ve(d,h)&&(d[h]=null)):Fe(h)&&(h.value=null)),fe(c))tn(c,l,12,[o,u]);else{const f=De(c),a=Fe(c);if(f||a){const p=()=>{if(e.f){const m=f?ve(d,c)?d[c]:u[c]:c.value;i?ae(m)&&Xi(m,s):ae(m)?m.includes(s)||m.push(s):f?(u[c]=[s],ve(d,c)&&(d[c]=u[c])):(c.value=[s],e.k&&(u[e.k]=c.value))}else f?(u[c]=o,ve(d,c)&&(d[c]=o)):a&&(c.value=o,e.k&&(u[e.k]=o))};o?(p.id=-1,Xe(p,n)):p()}}}const Xe=l0;function I0(e){return N0(e)}function N0(e,t){const n=ci();n.__VUE__=!0;const{insert:r,remove:i,patchProp:s,createElement:o,createText:l,createComment:c,setText:h,setElementText:u,parentNode:d,nextSibling:f,setScopeId:a=Rt,insertStaticContent:p}=e,m=(P,O,M,I=null,L=null,H=null,G=!1,J=null,q=!!O.dynamicChildren)=>{if(P===O)return;P&&!hs(P,O)&&(I=N(P),ie(P,L,H,!0),P=null),O.patchFlag===-2&&(q=!1,O.dynamicChildren=null);const{type:j,ref:te,shapeFlag:$}=O;switch(j){case Mr:g(P,O,M,I);break;case rn:y(P,O,M,I);break;case rr:P==null&&C(O,M,I,G);break;case Be:T(P,O,M,I,L,H,G,J,q);break;default:$&1?v(P,O,M,I,L,H,G,J,q):$&6?B(P,O,M,I,L,H,G,J,q):($&64||$&128)&&j.process(P,O,M,I,L,H,G,J,q,Y)}te!=null&&L&&yi(te,P&&P.ref,H,O||P,!O)},g=(P,O,M,I)=>{if(P==null)r(O.el=l(O.children),M,I);else{const L=O.el=P.el;O.children!==P.children&&h(L,O.children)}},y=(P,O,M,I)=>{P==null?r(O.el=c(O.children||""),M,I):O.el=P.el},C=(P,O,M,I)=>{[P.el,P.anchor]=p(P.children,O,M,I,P.el,P.anchor)},b=({el:P,anchor:O},M,I)=>{let L;for(;P&&P!==O;)L=f(P),r(P,M,I),P=L;r(O,M,I)},w=({el:P,anchor:O})=>{let M;for(;P&&P!==O;)M=f(P),i(P),P=M;i(O)},v=(P,O,M,I,L,H,G,J,q)=>{G=G||O.type==="svg",P==null?A(O,M,I,L,H,G,J,q):E(P,O,L,H,G,J,q)},A=(P,O,M,I,L,H,G,J)=>{let q,j;const{type:te,props:$,shapeFlag:se,transition:oe,dirs:ue}=P;if(q=P.el=o(P.type,H,$&&$.is,$),se&8?u(q,P.children):se&16&&x(P.children,q,null,I,L,H&&te!=="foreignObject",G,J),ue&&on(P,null,I,"created"),S(q,P,P.scopeId,G,I),$){for(const we in $)we!=="value"&&!nr(we)&&s(q,we,null,$[we],H,P.children,I,L,me);"value"in $&&s(q,"value",null,$.value),(j=$.onVnodeBeforeMount)&&yt(j,I,P)}ue&&on(P,null,I,"beforeMount");const Re=U0(L,oe);Re&&oe.beforeEnter(q),r(q,O,M),((j=$&&$.onVnodeMounted)||Re||ue)&&Xe(()=>{j&&yt(j,I,P),Re&&oe.enter(q),ue&&on(P,null,I,"mounted")},L)},S=(P,O,M,I,L)=>{if(M&&a(P,M),I)for(let H=0;H{for(let j=q;j{const J=O.el=P.el;let{patchFlag:q,dynamicChildren:j,dirs:te}=O;q|=P.patchFlag&16;const $=P.props||ke,se=O.props||ke;let oe;M&&an(M,!1),(oe=se.onVnodeBeforeUpdate)&&yt(oe,M,O,P),te&&on(O,P,M,"beforeUpdate"),M&&an(M,!0);const ue=L&&O.type!=="foreignObject";if(j?R(P.dynamicChildren,j,J,M,I,ue,H):G||X(P,O,J,null,M,I,ue,H,!1),q>0){if(q&16)k(J,O,$,se,M,I,L);else if(q&2&&$.class!==se.class&&s(J,"class",null,se.class,L),q&4&&s(J,"style",$.style,se.style,L),q&8){const Re=O.dynamicProps;for(let we=0;we{oe&&yt(oe,M,O,P),te&&on(O,P,M,"updated")},I)},R=(P,O,M,I,L,H,G)=>{for(let J=0;J{if(M!==I){if(M!==ke)for(const J in M)!nr(J)&&!(J in I)&&s(P,J,M[J],null,G,O.children,L,H,me);for(const J in I){if(nr(J))continue;const q=I[J],j=M[J];q!==j&&J!=="value"&&s(P,J,j,q,G,O.children,L,H,me)}"value"in I&&s(P,"value",M.value,I.value)}},T=(P,O,M,I,L,H,G,J,q)=>{const j=O.el=P?P.el:l(""),te=O.anchor=P?P.anchor:l("");let{patchFlag:$,dynamicChildren:se,slotScopeIds:oe}=O;oe&&(J=J?J.concat(oe):oe),P==null?(r(j,M,I),r(te,M,I),x(O.children,M,te,L,H,G,J,q)):$>0&&$&64&&se&&P.dynamicChildren?(R(P.dynamicChildren,se,M,L,H,G,J),(O.key!=null||L&&O===L.subTree)&&Gl(P,O,!0)):X(P,O,M,te,L,H,G,J,q)},B=(P,O,M,I,L,H,G,J,q)=>{O.slotScopeIds=J,P==null?O.shapeFlag&512?L.ctx.activate(O,M,I,G,q):V(O,M,I,L,H,G,q):D(P,O,q)},V=(P,O,M,I,L,H,G)=>{const J=P.component=K0(P,I,L);if(Hl(P)&&(J.ctx.renderer=Y),z0(J),J.asyncDep){if(L&&L.registerDep(J,W),!P.el){const q=J.subTree=he(rn);y(null,q,O,M)}return}W(J,P,O,M,L,H,G)},D=(P,O,M)=>{const I=O.component=P.component;if(r0(P,O,M))if(I.asyncDep&&!I.asyncResolved){Q(I,O,M);return}else I.next=O,_u(I.update),I.update();else O.el=P.el,I.vnode=O},W=(P,O,M,I,L,H,G)=>{const J=()=>{if(P.isMounted){let{next:te,bu:$,u:se,parent:oe,vnode:ue}=P,Re=te,we;an(P,!1),te?(te.el=ue.el,Q(P,te,G)):te=ue,$&&Yr($),(we=te.props&&te.props.onVnodeBeforeUpdate)&&yt(we,oe,te,ue),an(P,!0);const Ie=Gr(P),ut=P.subTree;P.subTree=Ie,m(ut,Ie,d(ut.el),N(ut),P,L,H),te.el=Ie.el,Re===null&&i0(P,Ie.el),se&&Xe(se,L),(we=te.props&&te.props.onVnodeUpdated)&&Xe(()=>yt(we,oe,te,ue),L)}else{let te;const{el:$,props:se}=O,{bm:oe,m:ue,parent:Re}=P,we=ys(O);if(an(P,!1),oe&&Yr(oe),!we&&(te=se&&se.onVnodeBeforeMount)&&yt(te,Re,O),an(P,!0),$&&Ce){const Ie=()=>{P.subTree=Gr(P),Ce($,P.subTree,P,L,null)};we?O.type.__asyncLoader().then(()=>!P.isUnmounted&&Ie()):Ie()}else{const Ie=P.subTree=Gr(P);m(null,Ie,M,I,P,L,H),O.el=Ie.el}if(ue&&Xe(ue,L),!we&&(te=se&&se.onVnodeMounted)){const Ie=O;Xe(()=>yt(te,Re,Ie),L)}(O.shapeFlag&256||Re&&ys(Re.vnode)&&Re.vnode.shapeFlag&256)&&P.a&&Xe(P.a,L),P.isMounted=!0,O=M=I=null}},q=P.effect=new no(J,()=>uo(j),P.scope),j=P.update=()=>q.run();j.id=P.uid,an(P,!0),j()},Q=(P,O,M)=>{O.component=P;const I=P.vnode.props;P.vnode=O,P.next=null,T0(P,O.props,I,M),B0(P,O.children,M),os(),Jo(P),as()},X=(P,O,M,I,L,H,G,J,q=!1)=>{const j=P&&P.children,te=P?P.shapeFlag:0,$=O.children,{patchFlag:se,shapeFlag:oe}=O;if(se>0){if(se&128){xe(j,$,M,I,L,H,G,J,q);return}else if(se&256){de(j,$,M,I,L,H,G,J,q);return}}oe&8?(te&16&&me(j,L,H),$!==j&&u(M,$)):te&16?oe&16?xe(j,$,M,I,L,H,G,J,q):me(j,L,H,!0):(te&8&&u(M,""),oe&16&&x($,M,I,L,H,G,J,q))},de=(P,O,M,I,L,H,G,J,q)=>{P=P||Fn,O=O||Fn;const j=P.length,te=O.length,$=Math.min(j,te);let se;for(se=0;se<$;se++){const oe=O[se]=q?Qt(O[se]):wt(O[se]);m(P[se],oe,M,null,L,H,G,J,q)}j>te?me(P,L,H,!0,!1,$):x(O,M,I,L,H,G,J,q,$)},xe=(P,O,M,I,L,H,G,J,q)=>{let j=0;const te=O.length;let $=P.length-1,se=te-1;for(;j<=$&&j<=se;){const oe=P[j],ue=O[j]=q?Qt(O[j]):wt(O[j]);if(hs(oe,ue))m(oe,ue,M,null,L,H,G,J,q);else break;j++}for(;j<=$&&j<=se;){const oe=P[$],ue=O[se]=q?Qt(O[se]):wt(O[se]);if(hs(oe,ue))m(oe,ue,M,null,L,H,G,J,q);else break;$--,se--}if(j>$){if(j<=se){const oe=se+1,ue=oese)for(;j<=$;)ie(P[j],L,H,!0),j++;else{const oe=j,ue=j,Re=new Map;for(j=ue;j<=se;j++){const et=O[j]=q?Qt(O[j]):wt(O[j]);et.key!=null&&Re.set(et.key,j)}let we,Ie=0;const ut=se-ue+1;let Rn=!1,Bo=0;const fs=new Array(ut);for(j=0;j=ut){ie(et,L,H,!0);continue}let vt;if(et.key!=null)vt=Re.get(et.key);else for(we=ue;we<=se;we++)if(fs[we-ue]===0&&hs(et,O[we])){vt=we;break}vt===void 0?ie(et,L,H,!0):(fs[vt-ue]=j+1,vt>=Bo?Bo=vt:Rn=!0,m(et,O[vt],M,null,L,H,G,J,q),Ie++)}const Io=Rn?L0(fs):Fn;for(we=Io.length-1,j=ut-1;j>=0;j--){const et=ue+j,vt=O[et],No=et+1{const{el:H,type:G,transition:J,children:q,shapeFlag:j}=P;if(j&6){Se(P.component.subTree,O,M,I);return}if(j&128){P.suspense.move(O,M,I);return}if(j&64){G.move(P,O,M,Y);return}if(G===Be){r(H,O,M);for(let $=0;$J.enter(H),L);else{const{leave:$,delayLeave:se,afterLeave:oe}=J,ue=()=>r(H,O,M),Re=()=>{$(H,()=>{ue(),oe&&oe()})};se?se(H,ue,Re):Re()}else r(H,O,M)},ie=(P,O,M,I=!1,L=!1)=>{const{type:H,props:G,ref:J,children:q,dynamicChildren:j,shapeFlag:te,patchFlag:$,dirs:se}=P;if(J!=null&&yi(J,null,M,P,!0),te&256){O.ctx.deactivate(P);return}const oe=te&1&&se,ue=!ys(P);let Re;if(ue&&(Re=G&&G.onVnodeBeforeUnmount)&&yt(Re,O,P),te&6)Je(P.component,M,I);else{if(te&128){P.suspense.unmount(M,I);return}oe&&on(P,null,O,"beforeUnmount"),te&64?P.type.remove(P,O,M,L,Y,I):j&&(H!==Be||$>0&&$&64)?me(j,O,M,!1,!0):(H===Be&&$&384||!L&&te&16)&&me(q,O,M),I&&Pe(P)}(ue&&(Re=G&&G.onVnodeUnmounted)||oe)&&Xe(()=>{Re&&yt(Re,O,P),oe&&on(P,null,O,"unmounted")},M)},Pe=P=>{const{type:O,el:M,anchor:I,transition:L}=P;if(O===Be){Ee(M,I);return}if(O===rr){w(P);return}const H=()=>{i(M),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(P.shapeFlag&1&&L&&!L.persisted){const{leave:G,delayLeave:J}=L,q=()=>G(M,H);J?J(P.el,H,q):q()}else H()},Ee=(P,O)=>{let M;for(;P!==O;)M=f(P),i(P),P=M;i(O)},Je=(P,O,M)=>{const{bum:I,scope:L,update:H,subTree:G,um:J}=P;I&&Yr(I),L.stop(),H&&(H.active=!1,ie(G,P,O,M)),J&&Xe(J,O),Xe(()=>{P.isUnmounted=!0},O),O&&O.pendingBranch&&!O.isUnmounted&&P.asyncDep&&!P.asyncResolved&&P.suspenseId===O.pendingId&&(O.deps--,O.deps===0&&O.resolve())},me=(P,O,M,I=!1,L=!1,H=0)=>{for(let G=H;GP.shapeFlag&6?N(P.component.subTree):P.shapeFlag&128?P.suspense.next():f(P.anchor||P.el),z=(P,O,M)=>{P==null?O._vnode&&ie(O._vnode,null,null,!0):m(O._vnode||null,P,O,null,null,null,M),Jo(),Il(),O._vnode=P},Y={p:m,um:ie,m:Se,r:Pe,mt:V,mc:x,pc:X,pbc:R,n:N,o:e};let ne,Ce;return t&&([ne,Ce]=t(Y)),{render:z,hydrate:ne,createApp:O0(z,ne)}}function an({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function U0(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gl(e,t,n=!1){const r=e.children,i=t.children;if(ae(r)&&ae(i))for(let s=0;s>1,e[n[l]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,o=n[s-1];s-- >0;)n[s]=o,o=t[o];return n}const D0=e=>e.__isTeleport,Be=Symbol.for("v-fgt"),Mr=Symbol.for("v-txt"),rn=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),Cs=[];let pt=null;function re(e=!1){Cs.push(pt=e?null:[])}function H0(){Cs.pop(),pt=Cs[Cs.length-1]||null}let ks=1;function ea(e){ks+=e}function Xl(e){return e.dynamicChildren=ks>0?pt||Fn:null,H0(),ks>0&&pt&&pt.push(e),e}function ce(e,t,n,r,i,s){return Xl(K(e,t,n,r,i,s,!0))}function It(e,t,n,r,i){return Xl(he(e,t,n,r,i,!0))}function gr(e){return e?e.__v_isVNode===!0:!1}function hs(e,t){return e.type===t.type&&e.key===t.key}const Br="__vInternal",_l=({key:e})=>e??null,ir=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?De(e)||Fe(e)||fe(e)?{i:qe,r:e,k:t,f:!!n}:e:null);function K(e,t=null,n=null,r=0,i=null,s=e===Be?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_l(t),ref:t&&ir(t),scopeId:Ll,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:qe};return l?(vo(c,n),s&128&&e.normalize(c)):n&&(c.shapeFlag|=De(n)?8:16),ks>0&&!o&&pt&&(c.patchFlag>0||s&6)&&c.patchFlag!==32&&pt.push(c),c}const he=V0;function V0(e,t=null,n=null,r=0,i=null,s=!1){if((!e||e===o0)&&(e=rn),gr(e)){const l=$n(e,t,!0);return n&&vo(l,n),ks>0&&!s&&pt&&(l.shapeFlag&6?pt[pt.indexOf(e)]=l:pt.push(l)),l.patchFlag|=-2,l}if(X0(e)&&(e=e.__vccOpts),t){t=j0(t);let{class:l,style:c}=t;l&&!De(l)&&(t.class=wn(l)),Te(c)&&(Pl(c)&&!ae(c)&&(c=We({},c)),t.style=$i(c))}const o=De(e)?1:a0(e)?128:D0(e)?64:Te(e)?4:fe(e)?2:0;return K(e,t,n,r,i,o,s,!0)}function j0(e){return e?Pl(e)||Br in e?We({},e):e:null}function $n(e,t,n=!1){const{props:r,ref:i,patchFlag:s,children:o}=e,l=t?Q0(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&_l(l),ref:t&&t.ref?n&&i?ae(i)?i.concat(ir(t)):[i,ir(t)]:ir(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Be?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&$n(e.ssContent),ssFallback:e.ssFallback&&$n(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function nn(e=" ",t=0){return he(Mr,null,e,t)}function Mt(e="",t=!1){return t?(re(),It(rn,null,e)):he(rn,null,e)}function wt(e){return e==null||typeof e=="boolean"?he(rn):ae(e)?he(Be,null,e.slice()):typeof e=="object"?Qt(e):he(Mr,null,String(e))}function Qt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:$n(e)}function vo(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(ae(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),vo(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!(Br in t)?t._ctx=qe:i===3&&qe&&(qe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else fe(t)?(t={default:t,_ctx:qe},n=32):(t=String(t),r&64?(n=16,t=[nn(t)]):n=8);e.children=t,e.shapeFlag|=n}function Q0(...e){const t={};for(let n=0;nVe||qe;let yo,Pn,ta="__VUE_INSTANCE_SETTERS__";(Pn=ci()[ta])||(Pn=ci()[ta]=[]),Pn.push(e=>Ve=e),yo=e=>{Pn.length>1?Pn.forEach(t=>t(e)):Pn[0](e)};const es=e=>{yo(e),e.scope.on()},xn=()=>{Ve&&Ve.scope.off(),yo(null)};function $l(e){return e.vnode.shapeFlag&4}let Ts=!1;function z0(e,t=!1){Ts=t;const{props:n,children:r}=e.vnode,i=$l(e);k0(e,n,i,t),M0(e,r);const s=i?Y0(e,t):void 0;return Ts=!1,s}function Y0(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Pr(new Proxy(e.ctx,A0));const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?G0(e):null;es(e),os();const s=tn(r,e,0,[e.props,i]);if(as(),xn(),al(s)){if(s.then(xn,xn),t)return s.then(o=>{na(e,o,t)}).catch(o=>{Or(o,e,0)});e.asyncDep=s}else na(e,s,t)}else ec(e,t)}function na(e,t,n){fe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Te(t)&&(e.setupState=Fl(t)),ec(e,n)}let sa;function ec(e,t,n){const r=e.type;if(!e.render){if(!t&&sa&&!r.render){const i=r.template||mo(e).template;if(i){const{isCustomElement:s,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,h=We(We({isCustomElement:s,delimiters:l},o),c);r.render=sa(i,h)}}e.render=r.render||Rt}{es(e),os();try{b0(e)}finally{as(),xn()}}}function Z0(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return $e(e,"get","$attrs"),t[n]}}))}function G0(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return Z0(e)},slots:e.slots,emit:e.emit,expose:t}}function xo(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Fl(Pr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in xs)return xs[n](e)},has(t,n){return n in t||n in xs}}))}function X0(e){return fe(e)&&"__vccOpts"in e}const Ae=(e,t)=>Zu(e,t,Ts);function tc(e,t,n){const r=arguments.length;return r===2?Te(t)&&!ae(t)?gr(t)?he(e,null,[t]):he(e,t):he(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&gr(n)&&(n=[n]),he(e,t,n))}const _0=Symbol.for("v-scx"),$0=()=>lt(_0),e2="3.3.11",t2="http://www.w3.org/2000/svg",cn=typeof document<"u"?document:null,ra=cn&&cn.createElement("template"),n2={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t?cn.createElementNS(t2,e):cn.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>cn.createTextNode(e),createComment:e=>cn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>cn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,s){const o=n?n.previousSibling:t.lastChild;if(i&&(i===s||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===s||!(i=i.nextSibling)););else{ra.innerHTML=r?`${e}`:e;const l=ra.content;if(r){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},s2=Symbol("_vtc");function r2(e,t,n){const r=e[s2];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const i2=Symbol("_vod");function o2(e,t,n){const r=e.style,i=De(n);if(n&&!i){if(t&&!De(t))for(const s in t)n[s]==null&&xi(r,s,"");for(const s in n)xi(r,s,n[s])}else{const s=r.display;i?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),i2 in e&&(r.display=s)}}const ia=/\s*!important$/;function xi(e,t,n){if(ae(n))n.forEach(r=>xi(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=a2(e,t);ia.test(n)?e.setProperty(is(r),n.replace(ia,""),"important"):e[r]=n}}const oa=["Webkit","Moz","ms"],_r={};function a2(e,t){const n=_r[t];if(n)return n;let r=Xn(t);if(r!=="filter"&&r in e)return _r[t]=r;r=ul(r);for(let i=0;i$r||(p2.then(()=>$r=0),$r=Date.now());function g2(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;mt(v2(r,n.value),t,5,[r])};return n.value=e,n.attached=m2(),n}function v2(e,t){if(ae(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const ua=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,y2=(e,t,n,r,i=!1,s,o,l,c)=>{t==="class"?r2(e,r,i):t==="style"?o2(e,n,r):br(t)?Gi(t)||h2(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):x2(e,t,r,i))?c2(e,t,r,s,o,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),l2(e,t,r,i))};function x2(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ua(t)&&fe(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return ua(t)&&De(n)?!1:t in e}function C2(e){const t=q0();if(!t)return;const n=t.ut=(i=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(s=>Ai(s,i))},r=()=>{const i=e(t.proxy);Ci(t.subTree,i),n(i)};c0(r),En(()=>{const i=new MutationObserver(r);i.observe(t.subTree.el.parentNode,{childList:!0}),ho(()=>i.disconnect())})}function Ci(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Ci(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Ai(e.el,t);else if(e.type===Be)e.children.forEach(n=>Ci(n,t));else if(e.type===rr){let{el:n,anchor:r}=e;for(;n&&(Ai(n,t),n!==r);)n=n.nextSibling}}function Ai(e,t){if(e.nodeType===1){const n=e.style;for(const r in t)n.setProperty(`--${r}`,t[r])}}const A2=We({patchProp:y2},n2);let fa;function b2(){return fa||(fa=I0(A2))}const w2=(...e)=>{const t=b2().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=S2(r);if(!i)return;const s=t._component;!fe(s)&&!s.render&&!s.template&&(s.template=i.innerHTML),i.innerHTML="";const o=n(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function S2(e){return De(e)?document.querySelector(e):e}var E2=!1;/*! +var zr=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var F=(e,t,n)=>(zr(e,t,"read from private field"),n?n.call(e):t.get(e)),_=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},Z=(e,t,n,r)=>(zr(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);var Zs=(e,t,n,r)=>({set _(i){Z(e,t,i,n)},get _(){return F(e,t,r)}}),le=(e,t,n)=>(zr(e,t,"access private method"),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function Gi(e,t){const n=Object.create(null),r=e.split(",");for(let i=0;i!!n[i.toLowerCase()]:i=>!!n[i]}const ke={},Fn=[],Rt=()=>{},cu=()=>!1,br=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Xi=e=>e.startsWith("onUpdate:"),We=Object.assign,_i=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},uu=Object.prototype.hasOwnProperty,ve=(e,t)=>uu.call(e,t),ae=Array.isArray,Mn=e=>wr(e)==="[object Map]",ol=e=>wr(e)==="[object Set]",fe=e=>typeof e=="function",De=e=>typeof e=="string",rs=e=>typeof e=="symbol",Te=e=>e!==null&&typeof e=="object",al=e=>(Te(e)||fe(e))&&fe(e.then)&&fe(e.catch),ll=Object.prototype.toString,wr=e=>ll.call(e),fu=e=>wr(e).slice(8,-1),cl=e=>wr(e)==="[object Object]",$i=e=>De(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,nr=Gi(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Sr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},hu=/-(\w)/g,Xn=Sr(e=>e.replace(hu,(t,n)=>n?n.toUpperCase():"")),du=/\B([A-Z])/g,is=Sr(e=>e.replace(du,"-$1").toLowerCase()),ul=Sr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Yr=Sr(e=>e?`on${ul(e)}`:""),Cn=(e,t)=>!Object.is(e,t),Zr=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},pu=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Uo;const ui=()=>Uo||(Uo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function eo(e){if(ae(e)){const t={};for(let n=0;n{if(n){const r=n.split(gu);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function wn(e){let t="";if(De(e))t=e;else if(ae(e))for(let n=0;nDe(e)?e:e==null?"":ae(e)||Te(e)&&(e.toString===ll||!fe(e.toString))?JSON.stringify(e,hl,2):String(e),hl=(e,t)=>t&&t.__v_isRef?hl(e,t.value):Mn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i],s)=>(n[Gr(r,s)+" =>"]=i,n),{})}:ol(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Gr(n))}:rs(t)?Gr(t):Te(t)&&!ae(t)&&!cl(t)?String(t):t,Gr=(e,t="")=>{var n;return rs(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let st;class dl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=st,!t&&st&&(this.index=(st.scopes||(st.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=st;try{return st=this,t()}finally{st=n}}}on(){st=this}off(){st=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},gl=e=>(e.w&sn)>0,vl=e=>(e.n&sn)>0,bu=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(u==="length"||!rs(u)&&u>=c)&&l.push(f)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":ae(e)?$i(n)&&l.push(o.get("length")):(l.push(o.get(yn)),Mn(e)&&l.push(o.get(hi)));break;case"delete":ae(e)||(l.push(o.get(yn)),Mn(e)&&l.push(o.get(hi)));break;case"set":Mn(e)&&l.push(o.get(yn));break}if(l.length===1)l[0]&&di(l[0]);else{const c=[];for(const f of l)f&&c.push(...f);di(no(c))}}function di(e,t){const n=ae(e)?e:[...e];for(const r of n)r.computed&&Do(r);for(const r of n)r.computed||Do(r)}function Do(e,t){(e!==ht||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Su(e,t){var n;return(n=hr.get(e))==null?void 0:n.get(t)}const Eu=Gi("__proto__,__v_isRef,__isVue"),Cl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rs)),Ho=Ru();function Ru(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=ye(this);for(let s=0,o=this.length;s{e[t]=function(...n){os();const r=ye(this)[t].apply(this,n);return as(),r}}),e}function Pu(e){const t=ye(this);return $e(t,"has",e),t.hasOwnProperty(e)}class Al{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,r){const i=this._isReadonly,s=this._shallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(i?s?Vu:El:s?Sl:wl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=ae(t);if(!i){if(o&&ve(Ho,n))return Reflect.get(Ho,n,r);if(n==="hasOwnProperty")return Pu}const l=Reflect.get(t,n,r);return(rs(n)?Cl.has(n):Eu(n))||(i||$e(t,"get",n),s)?l:Fe(l)?o&&$i(n)?l:l.value:Te(l)?i?Rr(l):Sn(l):l}}class bl extends Al{constructor(t=!1){super(!1,t)}set(t,n,r,i){let s=t[n];if(_n(s)&&Fe(s)&&!Fe(r))return!1;if(!this._shallow&&(!dr(r)&&!_n(r)&&(s=ye(s),r=ye(r)),!ae(t)&&Fe(s)&&!Fe(r)))return s.value=r,!0;const o=ae(t)&&$i(n)?Number(n)e,Er=e=>Reflect.getPrototypeOf(e);function Gs(e,t,n=!1,r=!1){e=e.__v_raw;const i=ye(e),s=ye(t);n||(Cn(t,s)&&$e(i,"get",t),$e(i,"get",s));const{has:o}=Er(i),l=r?ro:n?ao:Es;if(o.call(i,t))return l(e.get(t));if(o.call(i,s))return l(e.get(s));e!==i&&e.get(t)}function Xs(e,t=!1){const n=this.__v_raw,r=ye(n),i=ye(e);return t||(Cn(e,i)&&$e(r,"has",e),$e(r,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function _s(e,t=!1){return e=e.__v_raw,!t&&$e(ye(e),"iterate",yn),Reflect.get(e,"size",e)}function Vo(e){e=ye(e);const t=ye(this);return Er(t).has.call(t,e)||(t.add(e),Bt(t,"add",e,e)),this}function jo(e,t){t=ye(t);const n=ye(this),{has:r,get:i}=Er(n);let s=r.call(n,e);s||(e=ye(e),s=r.call(n,e));const o=i.call(n,e);return n.set(e,t),s?Cn(t,o)&&Bt(n,"set",e,t):Bt(n,"add",e,t),this}function Qo(e){const t=ye(this),{has:n,get:r}=Er(t);let i=n.call(t,e);i||(e=ye(e),i=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return i&&Bt(t,"delete",e,void 0),s}function Wo(){const e=ye(this),t=e.size!==0,n=e.clear();return t&&Bt(e,"clear",void 0,void 0),n}function $s(e,t){return function(r,i){const s=this,o=s.__v_raw,l=ye(o),c=t?ro:e?ao:Es;return!e&&$e(l,"iterate",yn),o.forEach((f,u)=>r.call(i,c(f),c(u),s))}}function er(e,t,n){return function(...r){const i=this.__v_raw,s=ye(i),o=Mn(s),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=i[e](...r),u=n?ro:t?ao:Es;return!t&&$e(s,"iterate",c?hi:yn),{next(){const{value:d,done:h}=f.next();return h?{value:d,done:h}:{value:l?[u(d[0]),u(d[1])]:u(d),done:h}},[Symbol.iterator](){return this}}}}function Lt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Mu(){const e={get(s){return Gs(this,s)},get size(){return _s(this)},has:Xs,add:Vo,set:jo,delete:Qo,clear:Wo,forEach:$s(!1,!1)},t={get(s){return Gs(this,s,!1,!0)},get size(){return _s(this)},has:Xs,add:Vo,set:jo,delete:Qo,clear:Wo,forEach:$s(!1,!0)},n={get(s){return Gs(this,s,!0)},get size(){return _s(this,!0)},has(s){return Xs.call(this,s,!0)},add:Lt("add"),set:Lt("set"),delete:Lt("delete"),clear:Lt("clear"),forEach:$s(!0,!1)},r={get(s){return Gs(this,s,!0,!0)},get size(){return _s(this,!0)},has(s){return Xs.call(this,s,!0)},add:Lt("add"),set:Lt("set"),delete:Lt("delete"),clear:Lt("clear"),forEach:$s(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=er(s,!1,!1),n[s]=er(s,!0,!1),t[s]=er(s,!1,!0),r[s]=er(s,!0,!0)}),[e,n,t,r]}const[Bu,Iu,Nu,Uu]=Mu();function io(e,t){const n=t?e?Uu:Nu:e?Iu:Bu;return(r,i,s)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(ve(n,i)&&i in r?n:r,i,s)}const Lu={get:io(!1,!1)},Du={get:io(!1,!0)},Hu={get:io(!0,!1)},wl=new WeakMap,Sl=new WeakMap,El=new WeakMap,Vu=new WeakMap;function ju(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Qu(e){return e.__v_skip||!Object.isExtensible(e)?0:ju(fu(e))}function Sn(e){return _n(e)?e:oo(e,!1,ku,Lu,wl)}function Rl(e){return oo(e,!1,Fu,Du,Sl)}function Rr(e){return oo(e,!0,Tu,Hu,El)}function oo(e,t,n,r,i){if(!Te(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=i.get(e);if(s)return s;const o=Qu(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return i.set(e,l),l}function en(e){return _n(e)?en(e.__v_raw):!!(e&&e.__v_isReactive)}function _n(e){return!!(e&&e.__v_isReadonly)}function dr(e){return!!(e&&e.__v_isShallow)}function Pl(e){return en(e)||_n(e)}function ye(e){const t=e&&e.__v_raw;return t?ye(t):e}function Pr(e){return fr(e,"__v_skip",!0),e}const Es=e=>Te(e)?Sn(e):e,ao=e=>Te(e)?Rr(e):e;function Ol(e){$t&&ht&&(e=ye(e),xl(e.dep||(e.dep=no())))}function kl(e,t){e=ye(e);const n=e.dep;n&&di(n)}function Fe(e){return!!(e&&e.__v_isRef===!0)}function Ze(e){return Tl(e,!1)}function Wu(e){return Tl(e,!0)}function Tl(e,t){return Fe(e)?e:new Ju(e,t)}class Ju{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ye(t),this._value=n?t:Es(t)}get value(){return Ol(this),this._value}set value(t){const n=this.__v_isShallow||dr(t)||_n(t);t=n?t:ye(t),Cn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Es(t),kl(this))}}function ee(e){return Fe(e)?e.value:e}const Ku={get:(e,t,n)=>ee(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return Fe(i)&&!Fe(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Fl(e){return en(e)?e:new Proxy(e,Ku)}function lo(e){const t=ae(e)?new Array(e.length):{};for(const n in e)t[n]=zu(e,n);return t}class qu{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Su(ye(this._object),this._key)}}function zu(e,t,n){const r=e[t];return Fe(r)?r:new qu(e,t,n)}class Yu{constructor(t,n,r,i){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new so(t,()=>{this._dirty||(this._dirty=!0,kl(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=r}get value(){const t=ye(this);return Ol(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Zu(e,t,n=!1){let r,i;const s=fe(e);return s?(r=e,i=Rt):(r=e.get,i=e.set),new Yu(r,i,s||!i,n)}function tn(e,t,n,r){let i;try{i=r?e(...r):e()}catch(s){Or(s,t,n)}return i}function mt(e,t,n,r){if(fe(e)){const s=tn(e,t,n,r);return s&&al(s)&&s.catch(o=>{Or(o,t,n)}),s}const i=[];for(let s=0;s>>1,i=Ke[r],s=Ps(i);sSt&&Ke.splice(t,1)}function $u(e){ae(e)?Bn.push(...e):(!Tt||!Tt.includes(e,e.allowRecurse?ln+1:ln))&&Bn.push(e),Bl()}function Jo(e,t,n=Rs?St+1:0){for(;nPs(n)-Ps(r)),ln=0;lne.id==null?1/0:e.id,e0=(e,t)=>{const n=Ps(e)-Ps(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Nl(e){pi=!1,Rs=!0,Ke.sort(e0);try{for(St=0;StDe(a)?a.trim():a)),d&&(i=n.map(pu))}let l,c=r[l=Yr(t)]||r[l=Yr(Xn(t))];!c&&s&&(c=r[l=Yr(is(t))]),c&&mt(c,e,6,i);const f=r[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,mt(f,e,6,i)}}function Ul(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const s=e.emits;let o={},l=!1;if(!fe(e)){const c=f=>{const u=Ul(f,t,!0);u&&(l=!0,We(o,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!s&&!l?(Te(e)&&r.set(e,null),null):(ae(s)?s.forEach(c=>o[c]=null):We(o,s),Te(e)&&r.set(e,o),o)}function kr(e,t){return!e||!br(t)?!1:(t=t.slice(2).replace(/Once$/,""),ve(e,t[0].toLowerCase()+t.slice(1))||ve(e,is(t))||ve(e,t))}let qe=null,Ll=null;function pr(e){const t=qe;return qe=e,Ll=e&&e.type.__scopeId||null,t}function Ge(e,t=qe,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&ea(-1);const s=pr(t);let o;try{o=e(...i)}finally{pr(s),r._d&&ea(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Xr(e){const{type:t,vnode:n,proxy:r,withProxy:i,props:s,propsOptions:[o],slots:l,attrs:c,emit:f,render:u,renderCache:d,data:h,setupState:a,ctx:p,inheritAttrs:m}=e;let g,y;const C=pr(e);try{if(n.shapeFlag&4){const w=i||r,v=w;g=wt(u.call(v,w,d,s,a,h,p)),y=c}else{const w=t;g=wt(w.length>1?w(s,{attrs:c,slots:l,emit:f}):w(s,null)),y=t.props?c:n0(c)}}catch(w){Cs.length=0,Or(w,e,1),g=he(rn)}let b=g;if(y&&m!==!1){const w=Object.keys(y),{shapeFlag:v}=b;w.length&&v&7&&(o&&w.some(Xi)&&(y=s0(y,o)),b=$n(b,y))}return n.dirs&&(b=$n(b),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&(b.transition=n.transition),g=b,pr(C),g}const n0=e=>{let t;for(const n in e)(n==="class"||n==="style"||br(n))&&((t||(t={}))[n]=e[n]);return t},s0=(e,t)=>{const n={};for(const r in e)(!Xi(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function r0(e,t,n){const{props:r,children:i,component:s}=e,{props:o,children:l,patchFlag:c}=t,f=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ko(r,o,f):!!o;if(c&8){const u=t.dynamicProps;for(let d=0;de.__isSuspense;function l0(e,t){t&&t.pendingBranch?ae(e)?t.effects.push(...e):t.effects.push(e):$u(e)}function c0(e,t){return Tr(e,null,t)}function u0(e,t){return Tr(e,null,{flush:"post"})}const tr={};function dt(e,t,n){return Tr(e,t,n)}function Tr(e,t,{immediate:n,deep:r,flush:i,onTrack:s,onTrigger:o}=ke){var l;const c=ml()===((l=Ve)==null?void 0:l.scope)?Ve:null;let f,u=!1,d=!1;if(Fe(e)?(f=()=>e.value,u=dr(e)):en(e)?(f=()=>e,r=!0):ae(e)?(d=!0,u=e.some(w=>en(w)||dr(w)),f=()=>e.map(w=>{if(Fe(w))return w.value;if(en(w))return Tn(w);if(fe(w))return tn(w,c,2)})):fe(e)?t?f=()=>tn(e,c,2):f=()=>{if(!(c&&c.isUnmounted))return h&&h(),mt(e,c,3,[a])}:f=Rt,t&&r){const w=f;f=()=>Tn(w())}let h,a=w=>{h=C.onStop=()=>{tn(w,c,4),h=C.onStop=void 0}},p;if(Ts)if(a=Rt,t?n&&mt(t,c,3,[f(),d?[]:void 0,a]):f(),i==="sync"){const w=e2();p=w.__watcherHandles||(w.__watcherHandles=[])}else return Rt;let m=d?new Array(e.length).fill(tr):tr;const g=()=>{if(C.active)if(t){const w=C.run();(r||u||(d?w.some((v,A)=>Cn(v,m[A])):Cn(w,m)))&&(h&&h(),mt(t,c,3,[w,m===tr?void 0:d&&m[0]===tr?[]:m,a]),m=w)}else C.run()};g.allowRecurse=!!t;let y;i==="sync"?y=g:i==="post"?y=()=>Xe(g,c&&c.suspense):(g.pre=!0,c&&(g.id=c.uid),y=()=>fo(g));const C=new so(f,y);t?n?g():m=C.run():i==="post"?Xe(C.run.bind(C),c&&c.suspense):C.run();const b=()=>{C.stop(),c&&c.scope&&_i(c.scope.effects,C)};return p&&p.push(b),b}function f0(e,t,n){const r=this.proxy,i=De(e)?e.includes(".")?Dl(r,e):()=>r[e]:e.bind(r,r);let s;fe(t)?s=t:(s=t.handler,n=t);const o=Ve;es(this);const l=Tr(i,s.bind(r),n);return o?es(o):xn(),l}function Dl(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i{Tn(n,t)});else if(cl(e))for(const n in e)Tn(e[n],t);return e}function on(e,t,n,r){const i=e.dirs,s=t&&t.dirs;for(let o=0;o!!e.type.__asyncLoader,Hl=e=>e.type.__isKeepAlive;function h0(e,t){Vl(e,"a",t)}function d0(e,t){Vl(e,"da",t)}function Vl(e,t,n=Ve){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Fr(t,r,n),n){let i=n.parent;for(;i&&i.parent;)Hl(i.parent.vnode)&&p0(r,t,n,i),i=i.parent}}function p0(e,t,n,r){const i=Fr(t,e,r,!0);ho(()=>{_i(r[t],i)},n)}function Fr(e,t,n=Ve,r=!1){if(n){const i=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;os(),es(n);const l=mt(t,n,e,o);return xn(),as(),l});return r?i.unshift(s):i.push(s),s}}const Ut=e=>(t,n=Ve)=>(!Ts||e==="sp")&&Fr(e,(...r)=>t(...r),n),m0=Ut("bm"),En=Ut("m"),g0=Ut("bu"),v0=Ut("u"),Mr=Ut("bum"),ho=Ut("um"),y0=Ut("sp"),x0=Ut("rtg"),C0=Ut("rtc");function A0(e,t=Ve){Fr("ec",e,t)}function po(e,t,n,r){let i;const s=n&&n[r];if(ae(e)||De(e)){i=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,s&&s[l]));else{const o=Object.keys(e);i=new Array(o.length);for(let l=0,c=o.length;lgr(t)?!(t.type===rn||t.type===Be&&!jl(t.children)):!0)?e:null}const mi=e=>e?$l(e)?xo(e)||e.proxy:mi(e.parent):null,xs=We(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>mi(e.parent),$root:e=>mi(e.root),$emit:e=>e.emit,$options:e=>mo(e),$forceUpdate:e=>e.f||(e.f=()=>fo(e.update)),$nextTick:e=>e.n||(e.n=uo.bind(e.proxy)),$watch:e=>f0.bind(e)}),_r=(e,t)=>e!==ke&&!e.__isScriptSetup&&ve(e,t),b0={get({_:e},t){const{ctx:n,setupState:r,data:i,props:s,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const a=o[t];if(a!==void 0)switch(a){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(_r(r,t))return o[t]=1,r[t];if(i!==ke&&ve(i,t))return o[t]=2,i[t];if((f=e.propsOptions[0])&&ve(f,t))return o[t]=3,s[t];if(n!==ke&&ve(n,t))return o[t]=4,n[t];gi&&(o[t]=0)}}const u=xs[t];let d,h;if(u)return t==="$attrs"&&$e(e,"get",t),u(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==ke&&ve(n,t))return o[t]=4,n[t];if(h=c.config.globalProperties,ve(h,t))return h[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:s}=e;return _r(i,t)?(i[t]=n,!0):r!==ke&&ve(r,t)?(r[t]=n,!0):ve(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:s}},o){let l;return!!n[o]||e!==ke&&ve(e,o)||_r(t,o)||(l=s[0])&&ve(l,o)||ve(r,o)||ve(xs,o)||ve(i.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ve(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function qo(e){return ae(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let gi=!0;function w0(e){const t=mo(e),n=e.proxy,r=e.ctx;gi=!1,t.beforeCreate&&zo(t.beforeCreate,e,"bc");const{data:i,computed:s,methods:o,watch:l,provide:c,inject:f,created:u,beforeMount:d,mounted:h,beforeUpdate:a,updated:p,activated:m,deactivated:g,beforeDestroy:y,beforeUnmount:C,destroyed:b,unmounted:w,render:v,renderTracked:A,renderTriggered:S,errorCaptured:x,serverPrefetch:E,expose:R,inheritAttrs:k,components:T,directives:B,filters:V}=t;if(f&&S0(f,r,null),o)for(const Q in o){const X=o[Q];fe(X)&&(r[Q]=X.bind(n))}if(i){const Q=i.call(n,n);Te(Q)&&(e.data=Sn(Q))}if(gi=!0,s)for(const Q in s){const X=s[Q],de=fe(X)?X.bind(n,n):fe(X.get)?X.get.bind(n,n):Rt,xe=!fe(X)&&fe(X.set)?X.set.bind(n):Rt,Se=Ae({get:de,set:xe});Object.defineProperty(r,Q,{enumerable:!0,configurable:!0,get:()=>Se.value,set:ie=>Se.value=ie})}if(l)for(const Q in l)Ql(l[Q],r,n,Q);if(c){const Q=fe(c)?c.call(n):c;Reflect.ownKeys(Q).forEach(X=>{sr(X,Q[X])})}u&&zo(u,e,"c");function W(Q,X){ae(X)?X.forEach(de=>Q(de.bind(n))):X&&Q(X.bind(n))}if(W(m0,d),W(En,h),W(g0,a),W(v0,p),W(h0,m),W(d0,g),W(A0,x),W(C0,A),W(x0,S),W(Mr,C),W(ho,w),W(y0,E),ae(R))if(R.length){const Q=e.exposed||(e.exposed={});R.forEach(X=>{Object.defineProperty(Q,X,{get:()=>n[X],set:de=>n[X]=de})})}else e.exposed||(e.exposed={});v&&e.render===Rt&&(e.render=v),k!=null&&(e.inheritAttrs=k),T&&(e.components=T),B&&(e.directives=B)}function S0(e,t,n=Rt){ae(e)&&(e=vi(e));for(const r in e){const i=e[r];let s;Te(i)?"default"in i?s=lt(i.from||r,i.default,!0):s=lt(i.from||r):s=lt(i),Fe(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):t[r]=s}}function zo(e,t,n){mt(ae(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ql(e,t,n,r){const i=r.includes(".")?Dl(n,r):()=>n[r];if(De(e)){const s=t[e];fe(s)&&dt(i,s)}else if(fe(e))dt(i,e.bind(n));else if(Te(e))if(ae(e))e.forEach(s=>Ql(s,t,n,r));else{const s=fe(e.handler)?e.handler.bind(n):t[e.handler];fe(s)&&dt(i,s,e)}}function mo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,l=s.get(t);let c;return l?c=l:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(f=>mr(c,f,o,!0)),mr(c,t,o)),Te(t)&&s.set(t,c),c}function mr(e,t,n,r=!1){const{mixins:i,extends:s}=t;s&&mr(e,s,n,!0),i&&i.forEach(o=>mr(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=E0[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const E0={data:Yo,props:Zo,emits:Zo,methods:gs,computed:gs,beforeCreate:ze,created:ze,beforeMount:ze,mounted:ze,beforeUpdate:ze,updated:ze,beforeDestroy:ze,beforeUnmount:ze,destroyed:ze,unmounted:ze,activated:ze,deactivated:ze,errorCaptured:ze,serverPrefetch:ze,components:gs,directives:gs,watch:P0,provide:Yo,inject:R0};function Yo(e,t){return t?e?function(){return We(fe(e)?e.call(this,this):e,fe(t)?t.call(this,this):t)}:t:e}function R0(e,t){return gs(vi(e),vi(t))}function vi(e){if(ae(e)){const t={};for(let n=0;n1)return n&&fe(t)?t.call(r&&r.proxy):t}}function Jl(){return!!(Ve||qe||Os)}function T0(e,t,n,r=!1){const i={},s={};fr(s,Ir,1),e.propsDefaults=Object.create(null),Kl(e,t,i,s);for(const o in e.propsOptions[0])o in i||(i[o]=void 0);n?e.props=r?i:Rl(i):e.type.props?e.props=i:e.props=s,e.attrs=s}function F0(e,t,n,r){const{props:i,attrs:s,vnode:{patchFlag:o}}=e,l=ye(i),[c]=e.propsOptions;let f=!1;if((r||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let d=0;d{c=!0;const[h,a]=ql(d,t,!0);We(o,h),a&&l.push(...a)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!c)return Te(e)&&r.set(e,Fn),Fn;if(ae(s))for(let u=0;u-1,a[1]=m<0||p-1||ve(a,"default"))&&l.push(d)}}}const f=[o,l];return Te(e)&&r.set(e,f),f}function Go(e){return e[0]!=="$"}function Xo(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function _o(e,t){return Xo(e)===Xo(t)}function $o(e,t){return ae(t)?t.findIndex(n=>_o(n,e)):fe(t)&&_o(t,e)?0:-1}const zl=e=>e[0]==="_"||e==="$stable",go=e=>ae(e)?e.map(wt):[wt(e)],M0=(e,t,n)=>{if(t._n)return t;const r=Ge((...i)=>go(t(...i)),n);return r._c=!1,r},Yl=(e,t,n)=>{const r=e._ctx;for(const i in e){if(zl(i))continue;const s=e[i];if(fe(s))t[i]=M0(i,s,r);else if(s!=null){const o=go(s);t[i]=()=>o}}},Zl=(e,t)=>{const n=go(t);e.slots.default=()=>n},B0=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ye(t),fr(t,"_",n)):Yl(t,e.slots={})}else e.slots={},t&&Zl(e,t);fr(e.slots,Ir,1)},I0=(e,t,n)=>{const{vnode:r,slots:i}=e;let s=!0,o=ke;if(r.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:(We(i,t),!n&&l===1&&delete i._):(s=!t.$stable,Yl(t,i)),o=t}else t&&(Zl(e,t),o={default:1});if(s)for(const l in i)!zl(l)&&o[l]==null&&delete i[l]};function xi(e,t,n,r,i=!1){if(ae(e)){e.forEach((h,a)=>xi(h,t&&(ae(t)?t[a]:t),n,r,i));return}if(ys(r)&&!i)return;const s=r.shapeFlag&4?xo(r.component)||r.component.proxy:r.el,o=i?null:s,{i:l,r:c}=e,f=t&&t.r,u=l.refs===ke?l.refs={}:l.refs,d=l.setupState;if(f!=null&&f!==c&&(De(f)?(u[f]=null,ve(d,f)&&(d[f]=null)):Fe(f)&&(f.value=null)),fe(c))tn(c,l,12,[o,u]);else{const h=De(c),a=Fe(c);if(h||a){const p=()=>{if(e.f){const m=h?ve(d,c)?d[c]:u[c]:c.value;i?ae(m)&&_i(m,s):ae(m)?m.includes(s)||m.push(s):h?(u[c]=[s],ve(d,c)&&(d[c]=u[c])):(c.value=[s],e.k&&(u[e.k]=c.value))}else h?(u[c]=o,ve(d,c)&&(d[c]=o)):a&&(c.value=o,e.k&&(u[e.k]=o))};o?(p.id=-1,Xe(p,n)):p()}}}const Xe=l0;function N0(e){return U0(e)}function U0(e,t){const n=ui();n.__VUE__=!0;const{insert:r,remove:i,patchProp:s,createElement:o,createText:l,createComment:c,setText:f,setElementText:u,parentNode:d,nextSibling:h,setScopeId:a=Rt,insertStaticContent:p}=e,m=(P,O,M,I=null,L=null,H=null,G=!1,J=null,q=!!O.dynamicChildren)=>{if(P===O)return;P&&!hs(P,O)&&(I=N(P),ie(P,L,H,!0),P=null),O.patchFlag===-2&&(q=!1,O.dynamicChildren=null);const{type:j,ref:te,shapeFlag:$}=O;switch(j){case Br:g(P,O,M,I);break;case rn:y(P,O,M,I);break;case rr:P==null&&C(O,M,I,G);break;case Be:T(P,O,M,I,L,H,G,J,q);break;default:$&1?v(P,O,M,I,L,H,G,J,q):$&6?B(P,O,M,I,L,H,G,J,q):($&64||$&128)&&j.process(P,O,M,I,L,H,G,J,q,Y)}te!=null&&L&&xi(te,P&&P.ref,H,O||P,!O)},g=(P,O,M,I)=>{if(P==null)r(O.el=l(O.children),M,I);else{const L=O.el=P.el;O.children!==P.children&&f(L,O.children)}},y=(P,O,M,I)=>{P==null?r(O.el=c(O.children||""),M,I):O.el=P.el},C=(P,O,M,I)=>{[P.el,P.anchor]=p(P.children,O,M,I,P.el,P.anchor)},b=({el:P,anchor:O},M,I)=>{let L;for(;P&&P!==O;)L=h(P),r(P,M,I),P=L;r(O,M,I)},w=({el:P,anchor:O})=>{let M;for(;P&&P!==O;)M=h(P),i(P),P=M;i(O)},v=(P,O,M,I,L,H,G,J,q)=>{G=G||O.type==="svg",P==null?A(O,M,I,L,H,G,J,q):E(P,O,L,H,G,J,q)},A=(P,O,M,I,L,H,G,J)=>{let q,j;const{type:te,props:$,shapeFlag:se,transition:oe,dirs:ue}=P;if(q=P.el=o(P.type,H,$&&$.is,$),se&8?u(q,P.children):se&16&&x(P.children,q,null,I,L,H&&te!=="foreignObject",G,J),ue&&on(P,null,I,"created"),S(q,P,P.scopeId,G,I),$){for(const we in $)we!=="value"&&!nr(we)&&s(q,we,null,$[we],H,P.children,I,L,me);"value"in $&&s(q,"value",null,$.value),(j=$.onVnodeBeforeMount)&&yt(j,I,P)}ue&&on(P,null,I,"beforeMount");const Re=L0(L,oe);Re&&oe.beforeEnter(q),r(q,O,M),((j=$&&$.onVnodeMounted)||Re||ue)&&Xe(()=>{j&&yt(j,I,P),Re&&oe.enter(q),ue&&on(P,null,I,"mounted")},L)},S=(P,O,M,I,L)=>{if(M&&a(P,M),I)for(let H=0;H{for(let j=q;j{const J=O.el=P.el;let{patchFlag:q,dynamicChildren:j,dirs:te}=O;q|=P.patchFlag&16;const $=P.props||ke,se=O.props||ke;let oe;M&&an(M,!1),(oe=se.onVnodeBeforeUpdate)&&yt(oe,M,O,P),te&&on(O,P,M,"beforeUpdate"),M&&an(M,!0);const ue=L&&O.type!=="foreignObject";if(j?R(P.dynamicChildren,j,J,M,I,ue,H):G||X(P,O,J,null,M,I,ue,H,!1),q>0){if(q&16)k(J,O,$,se,M,I,L);else if(q&2&&$.class!==se.class&&s(J,"class",null,se.class,L),q&4&&s(J,"style",$.style,se.style,L),q&8){const Re=O.dynamicProps;for(let we=0;we{oe&&yt(oe,M,O,P),te&&on(O,P,M,"updated")},I)},R=(P,O,M,I,L,H,G)=>{for(let J=0;J{if(M!==I){if(M!==ke)for(const J in M)!nr(J)&&!(J in I)&&s(P,J,M[J],null,G,O.children,L,H,me);for(const J in I){if(nr(J))continue;const q=I[J],j=M[J];q!==j&&J!=="value"&&s(P,J,j,q,G,O.children,L,H,me)}"value"in I&&s(P,"value",M.value,I.value)}},T=(P,O,M,I,L,H,G,J,q)=>{const j=O.el=P?P.el:l(""),te=O.anchor=P?P.anchor:l("");let{patchFlag:$,dynamicChildren:se,slotScopeIds:oe}=O;oe&&(J=J?J.concat(oe):oe),P==null?(r(j,M,I),r(te,M,I),x(O.children,M,te,L,H,G,J,q)):$>0&&$&64&&se&&P.dynamicChildren?(R(P.dynamicChildren,se,M,L,H,G,J),(O.key!=null||L&&O===L.subTree)&&Gl(P,O,!0)):X(P,O,M,te,L,H,G,J,q)},B=(P,O,M,I,L,H,G,J,q)=>{O.slotScopeIds=J,P==null?O.shapeFlag&512?L.ctx.activate(O,M,I,G,q):V(O,M,I,L,H,G,q):D(P,O,q)},V=(P,O,M,I,L,H,G)=>{const J=P.component=q0(P,I,L);if(Hl(P)&&(J.ctx.renderer=Y),Y0(J),J.asyncDep){if(L&&L.registerDep(J,W),!P.el){const q=J.subTree=he(rn);y(null,q,O,M)}return}W(J,P,O,M,L,H,G)},D=(P,O,M)=>{const I=O.component=P.component;if(r0(P,O,M))if(I.asyncDep&&!I.asyncResolved){Q(I,O,M);return}else I.next=O,_u(I.update),I.update();else O.el=P.el,I.vnode=O},W=(P,O,M,I,L,H,G)=>{const J=()=>{if(P.isMounted){let{next:te,bu:$,u:se,parent:oe,vnode:ue}=P,Re=te,we;an(P,!1),te?(te.el=ue.el,Q(P,te,G)):te=ue,$&&Zr($),(we=te.props&&te.props.onVnodeBeforeUpdate)&&yt(we,oe,te,ue),an(P,!0);const Ie=Xr(P),ut=P.subTree;P.subTree=Ie,m(ut,Ie,d(ut.el),N(ut),P,L,H),te.el=Ie.el,Re===null&&i0(P,Ie.el),se&&Xe(se,L),(we=te.props&&te.props.onVnodeUpdated)&&Xe(()=>yt(we,oe,te,ue),L)}else{let te;const{el:$,props:se}=O,{bm:oe,m:ue,parent:Re}=P,we=ys(O);if(an(P,!1),oe&&Zr(oe),!we&&(te=se&&se.onVnodeBeforeMount)&&yt(te,Re,O),an(P,!0),$&&Ce){const Ie=()=>{P.subTree=Xr(P),Ce($,P.subTree,P,L,null)};we?O.type.__asyncLoader().then(()=>!P.isUnmounted&&Ie()):Ie()}else{const Ie=P.subTree=Xr(P);m(null,Ie,M,I,P,L,H),O.el=Ie.el}if(ue&&Xe(ue,L),!we&&(te=se&&se.onVnodeMounted)){const Ie=O;Xe(()=>yt(te,Re,Ie),L)}(O.shapeFlag&256||Re&&ys(Re.vnode)&&Re.vnode.shapeFlag&256)&&P.a&&Xe(P.a,L),P.isMounted=!0,O=M=I=null}},q=P.effect=new so(J,()=>fo(j),P.scope),j=P.update=()=>q.run();j.id=P.uid,an(P,!0),j()},Q=(P,O,M)=>{O.component=P;const I=P.vnode.props;P.vnode=O,P.next=null,F0(P,O.props,I,M),I0(P,O.children,M),os(),Jo(P),as()},X=(P,O,M,I,L,H,G,J,q=!1)=>{const j=P&&P.children,te=P?P.shapeFlag:0,$=O.children,{patchFlag:se,shapeFlag:oe}=O;if(se>0){if(se&128){xe(j,$,M,I,L,H,G,J,q);return}else if(se&256){de(j,$,M,I,L,H,G,J,q);return}}oe&8?(te&16&&me(j,L,H),$!==j&&u(M,$)):te&16?oe&16?xe(j,$,M,I,L,H,G,J,q):me(j,L,H,!0):(te&8&&u(M,""),oe&16&&x($,M,I,L,H,G,J,q))},de=(P,O,M,I,L,H,G,J,q)=>{P=P||Fn,O=O||Fn;const j=P.length,te=O.length,$=Math.min(j,te);let se;for(se=0;se<$;se++){const oe=O[se]=q?Qt(O[se]):wt(O[se]);m(P[se],oe,M,null,L,H,G,J,q)}j>te?me(P,L,H,!0,!1,$):x(O,M,I,L,H,G,J,q,$)},xe=(P,O,M,I,L,H,G,J,q)=>{let j=0;const te=O.length;let $=P.length-1,se=te-1;for(;j<=$&&j<=se;){const oe=P[j],ue=O[j]=q?Qt(O[j]):wt(O[j]);if(hs(oe,ue))m(oe,ue,M,null,L,H,G,J,q);else break;j++}for(;j<=$&&j<=se;){const oe=P[$],ue=O[se]=q?Qt(O[se]):wt(O[se]);if(hs(oe,ue))m(oe,ue,M,null,L,H,G,J,q);else break;$--,se--}if(j>$){if(j<=se){const oe=se+1,ue=oese)for(;j<=$;)ie(P[j],L,H,!0),j++;else{const oe=j,ue=j,Re=new Map;for(j=ue;j<=se;j++){const et=O[j]=q?Qt(O[j]):wt(O[j]);et.key!=null&&Re.set(et.key,j)}let we,Ie=0;const ut=se-ue+1;let Rn=!1,Bo=0;const fs=new Array(ut);for(j=0;j=ut){ie(et,L,H,!0);continue}let vt;if(et.key!=null)vt=Re.get(et.key);else for(we=ue;we<=se;we++)if(fs[we-ue]===0&&hs(et,O[we])){vt=we;break}vt===void 0?ie(et,L,H,!0):(fs[vt-ue]=j+1,vt>=Bo?Bo=vt:Rn=!0,m(et,O[vt],M,null,L,H,G,J,q),Ie++)}const Io=Rn?D0(fs):Fn;for(we=Io.length-1,j=ut-1;j>=0;j--){const et=ue+j,vt=O[et],No=et+1{const{el:H,type:G,transition:J,children:q,shapeFlag:j}=P;if(j&6){Se(P.component.subTree,O,M,I);return}if(j&128){P.suspense.move(O,M,I);return}if(j&64){G.move(P,O,M,Y);return}if(G===Be){r(H,O,M);for(let $=0;$J.enter(H),L);else{const{leave:$,delayLeave:se,afterLeave:oe}=J,ue=()=>r(H,O,M),Re=()=>{$(H,()=>{ue(),oe&&oe()})};se?se(H,ue,Re):Re()}else r(H,O,M)},ie=(P,O,M,I=!1,L=!1)=>{const{type:H,props:G,ref:J,children:q,dynamicChildren:j,shapeFlag:te,patchFlag:$,dirs:se}=P;if(J!=null&&xi(J,null,M,P,!0),te&256){O.ctx.deactivate(P);return}const oe=te&1&&se,ue=!ys(P);let Re;if(ue&&(Re=G&&G.onVnodeBeforeUnmount)&&yt(Re,O,P),te&6)Je(P.component,M,I);else{if(te&128){P.suspense.unmount(M,I);return}oe&&on(P,null,O,"beforeUnmount"),te&64?P.type.remove(P,O,M,L,Y,I):j&&(H!==Be||$>0&&$&64)?me(j,O,M,!1,!0):(H===Be&&$&384||!L&&te&16)&&me(q,O,M),I&&Pe(P)}(ue&&(Re=G&&G.onVnodeUnmounted)||oe)&&Xe(()=>{Re&&yt(Re,O,P),oe&&on(P,null,O,"unmounted")},M)},Pe=P=>{const{type:O,el:M,anchor:I,transition:L}=P;if(O===Be){Ee(M,I);return}if(O===rr){w(P);return}const H=()=>{i(M),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(P.shapeFlag&1&&L&&!L.persisted){const{leave:G,delayLeave:J}=L,q=()=>G(M,H);J?J(P.el,H,q):q()}else H()},Ee=(P,O)=>{let M;for(;P!==O;)M=h(P),i(P),P=M;i(O)},Je=(P,O,M)=>{const{bum:I,scope:L,update:H,subTree:G,um:J}=P;I&&Zr(I),L.stop(),H&&(H.active=!1,ie(G,P,O,M)),J&&Xe(J,O),Xe(()=>{P.isUnmounted=!0},O),O&&O.pendingBranch&&!O.isUnmounted&&P.asyncDep&&!P.asyncResolved&&P.suspenseId===O.pendingId&&(O.deps--,O.deps===0&&O.resolve())},me=(P,O,M,I=!1,L=!1,H=0)=>{for(let G=H;GP.shapeFlag&6?N(P.component.subTree):P.shapeFlag&128?P.suspense.next():h(P.anchor||P.el),z=(P,O,M)=>{P==null?O._vnode&&ie(O._vnode,null,null,!0):m(O._vnode||null,P,O,null,null,null,M),Jo(),Il(),O._vnode=P},Y={p:m,um:ie,m:Se,r:Pe,mt:V,mc:x,pc:X,pbc:R,n:N,o:e};let ne,Ce;return t&&([ne,Ce]=t(Y)),{render:z,hydrate:ne,createApp:k0(z,ne)}}function an({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function L0(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gl(e,t,n=!1){const r=e.children,i=t.children;if(ae(r)&&ae(i))for(let s=0;s>1,e[n[l]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,o=n[s-1];s-- >0;)n[s]=o,o=t[o];return n}const H0=e=>e.__isTeleport,Be=Symbol.for("v-fgt"),Br=Symbol.for("v-txt"),rn=Symbol.for("v-cmt"),rr=Symbol.for("v-stc"),Cs=[];let pt=null;function re(e=!1){Cs.push(pt=e?null:[])}function V0(){Cs.pop(),pt=Cs[Cs.length-1]||null}let ks=1;function ea(e){ks+=e}function Xl(e){return e.dynamicChildren=ks>0?pt||Fn:null,V0(),ks>0&&pt&&pt.push(e),e}function ce(e,t,n,r,i,s){return Xl(K(e,t,n,r,i,s,!0))}function It(e,t,n,r,i){return Xl(he(e,t,n,r,i,!0))}function gr(e){return e?e.__v_isVNode===!0:!1}function hs(e,t){return e.type===t.type&&e.key===t.key}const Ir="__vInternal",_l=({key:e})=>e??null,ir=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?De(e)||Fe(e)||fe(e)?{i:qe,r:e,k:t,f:!!n}:e:null);function K(e,t=null,n=null,r=0,i=null,s=e===Be?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_l(t),ref:t&&ir(t),scopeId:Ll,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:qe};return l?(vo(c,n),s&128&&e.normalize(c)):n&&(c.shapeFlag|=De(n)?8:16),ks>0&&!o&&pt&&(c.patchFlag>0||s&6)&&c.patchFlag!==32&&pt.push(c),c}const he=j0;function j0(e,t=null,n=null,r=0,i=null,s=!1){if((!e||e===o0)&&(e=rn),gr(e)){const l=$n(e,t,!0);return n&&vo(l,n),ks>0&&!s&&pt&&(l.shapeFlag&6?pt[pt.indexOf(e)]=l:pt.push(l)),l.patchFlag|=-2,l}if(_0(e)&&(e=e.__vccOpts),t){t=Q0(t);let{class:l,style:c}=t;l&&!De(l)&&(t.class=wn(l)),Te(c)&&(Pl(c)&&!ae(c)&&(c=We({},c)),t.style=eo(c))}const o=De(e)?1:a0(e)?128:H0(e)?64:Te(e)?4:fe(e)?2:0;return K(e,t,n,r,i,o,s,!0)}function Q0(e){return e?Pl(e)||Ir in e?We({},e):e:null}function $n(e,t,n=!1){const{props:r,ref:i,patchFlag:s,children:o}=e,l=t?W0(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&_l(l),ref:t&&t.ref?n&&i?ae(i)?i.concat(ir(t)):[i,ir(t)]:ir(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Be?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&$n(e.ssContent),ssFallback:e.ssFallback&&$n(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function nn(e=" ",t=0){return he(Br,null,e,t)}function Mt(e="",t=!1){return t?(re(),It(rn,null,e)):he(rn,null,e)}function wt(e){return e==null||typeof e=="boolean"?he(rn):ae(e)?he(Be,null,e.slice()):typeof e=="object"?Qt(e):he(Br,null,String(e))}function Qt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:$n(e)}function vo(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(ae(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),vo(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!(Ir in t)?t._ctx=qe:i===3&&qe&&(qe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else fe(t)?(t={default:t,_ctx:qe},n=32):(t=String(t),r&64?(n=16,t=[nn(t)]):n=8);e.children=t,e.shapeFlag|=n}function W0(...e){const t={};for(let n=0;nVe||qe;let yo,Pn,ta="__VUE_INSTANCE_SETTERS__";(Pn=ui()[ta])||(Pn=ui()[ta]=[]),Pn.push(e=>Ve=e),yo=e=>{Pn.length>1?Pn.forEach(t=>t(e)):Pn[0](e)};const es=e=>{yo(e),e.scope.on()},xn=()=>{Ve&&Ve.scope.off(),yo(null)};function $l(e){return e.vnode.shapeFlag&4}let Ts=!1;function Y0(e,t=!1){Ts=t;const{props:n,children:r}=e.vnode,i=$l(e);T0(e,n,i,t),B0(e,r);const s=i?Z0(e,t):void 0;return Ts=!1,s}function Z0(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Pr(new Proxy(e.ctx,b0));const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?X0(e):null;es(e),os();const s=tn(r,e,0,[e.props,i]);if(as(),xn(),al(s)){if(s.then(xn,xn),t)return s.then(o=>{na(e,o,t)}).catch(o=>{Or(o,e,0)});e.asyncDep=s}else na(e,s,t)}else ec(e,t)}function na(e,t,n){fe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Te(t)&&(e.setupState=Fl(t)),ec(e,n)}let sa;function ec(e,t,n){const r=e.type;if(!e.render){if(!t&&sa&&!r.render){const i=r.template||mo(e).template;if(i){const{isCustomElement:s,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,f=We(We({isCustomElement:s,delimiters:l},o),c);r.render=sa(i,f)}}e.render=r.render||Rt}{es(e),os();try{w0(e)}finally{as(),xn()}}}function G0(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return $e(e,"get","$attrs"),t[n]}}))}function X0(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return G0(e)},slots:e.slots,emit:e.emit,expose:t}}function xo(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Fl(Pr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in xs)return xs[n](e)},has(t,n){return n in t||n in xs}}))}function _0(e){return fe(e)&&"__vccOpts"in e}const Ae=(e,t)=>Zu(e,t,Ts);function tc(e,t,n){const r=arguments.length;return r===2?Te(t)&&!ae(t)?gr(t)?he(e,null,[t]):he(e,t):he(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&gr(n)&&(n=[n]),he(e,t,n))}const $0=Symbol.for("v-scx"),e2=()=>lt($0),t2="3.3.11",n2="http://www.w3.org/2000/svg",cn=typeof document<"u"?document:null,ra=cn&&cn.createElement("template"),s2={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t?cn.createElementNS(n2,e):cn.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>cn.createTextNode(e),createComment:e=>cn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>cn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,s){const o=n?n.previousSibling:t.lastChild;if(i&&(i===s||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===s||!(i=i.nextSibling)););else{ra.innerHTML=r?`${e}`:e;const l=ra.content;if(r){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},r2=Symbol("_vtc");function i2(e,t,n){const r=e[r2];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const o2=Symbol("_vod");function a2(e,t,n){const r=e.style,i=De(n);if(n&&!i){if(t&&!De(t))for(const s in t)n[s]==null&&Ci(r,s,"");for(const s in n)Ci(r,s,n[s])}else{const s=r.display;i?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),o2 in e&&(r.display=s)}}const ia=/\s*!important$/;function Ci(e,t,n){if(ae(n))n.forEach(r=>Ci(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=l2(e,t);ia.test(n)?e.setProperty(is(r),n.replace(ia,""),"important"):e[r]=n}}const oa=["Webkit","Moz","ms"],$r={};function l2(e,t){const n=$r[t];if(n)return n;let r=Xn(t);if(r!=="filter"&&r in e)return $r[t]=r;r=ul(r);for(let i=0;iei||(m2.then(()=>ei=0),ei=Date.now());function v2(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;mt(y2(r,n.value),t,5,[r])};return n.value=e,n.attached=g2(),n}function y2(e,t){if(ae(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const ua=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,x2=(e,t,n,r,i=!1,s,o,l,c)=>{t==="class"?i2(e,r,i):t==="style"?a2(e,n,r):br(t)?Xi(t)||d2(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):C2(e,t,r,i))?u2(e,t,r,s,o,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),c2(e,t,r,i))};function C2(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ua(t)&&fe(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return ua(t)&&De(n)?!1:t in e}function A2(e){const t=z0();if(!t)return;const n=t.ut=(i=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(s=>bi(s,i))},r=()=>{const i=e(t.proxy);Ai(t.subTree,i),n(i)};u0(r),En(()=>{const i=new MutationObserver(r);i.observe(t.subTree.el.parentNode,{childList:!0}),ho(()=>i.disconnect())})}function Ai(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Ai(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)bi(e.el,t);else if(e.type===Be)e.children.forEach(n=>Ai(n,t));else if(e.type===rr){let{el:n,anchor:r}=e;for(;n&&(bi(n,t),n!==r);)n=n.nextSibling}}function bi(e,t){if(e.nodeType===1){const n=e.style;for(const r in t)n.setProperty(`--${r}`,t[r])}}const b2=We({patchProp:x2},s2);let fa;function w2(){return fa||(fa=N0(b2))}const S2=(...e)=>{const t=w2().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=E2(r);if(!i)return;const s=t._component;!fe(s)&&!s.render&&!s.template&&(s.template=i.innerHTML),i.innerHTML="";const o=n(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function E2(e){return De(e)?document.querySelector(e):e}var R2=!1;/*! * pinia v2.1.7 * (c) 2023 Eduardo San Martin Morote * @license MIT - */let nc;const Ir=e=>nc=e,sc=Symbol();function bi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var As;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(As||(As={}));function R2(){const e=pl(!0),t=e.run(()=>Ze({}));let n=[],r=[];const i=Pr({install(s){Ir(i),i._a=s,s.provide(sc,i),s.config.globalProperties.$pinia=i,r.forEach(o=>n.push(o)),r=[]},use(s){return!this._a&&!E2?r.push(s):n.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}const rc=()=>{};function ha(e,t,n,r=rc){e.push(t);const i=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),r())};return!n&&ml()&&eo(i),i}function On(e,...t){e.slice().forEach(n=>{n(...t)})}const P2=e=>e();function wi(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,r)=>e.set(r,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],i=e[n];bi(i)&&bi(r)&&e.hasOwnProperty(n)&&!Fe(r)&&!en(r)?e[n]=wi(i,r):e[n]=r}return e}const O2=Symbol();function k2(e){return!bi(e)||!e.hasOwnProperty(O2)}const{assign:Vt}=Object;function T2(e){return!!(Fe(e)&&e.effect)}function F2(e,t,n,r){const{state:i,actions:s,getters:o}=t,l=n.state.value[e];let c;function h(){l||(n.state.value[e]=i?i():{});const u=ao(n.state.value[e]);return Vt(u,s,Object.keys(o||{}).reduce((d,f)=>(d[f]=Pr(Ae(()=>{Ir(n);const a=n._s.get(e);return o[f].call(a,a)})),d),{}))}return c=ic(e,h,t,n,r,!0),c}function ic(e,t,n={},r,i,s){let o;const l=Vt({actions:{}},n),c={deep:!0};let h,u,d=[],f=[],a;const p=r.state.value[e];!s&&!p&&(r.state.value[e]={}),Ze({});let m;function g(x){let E;h=u=!1,typeof x=="function"?(x(r.state.value[e]),E={type:As.patchFunction,storeId:e,events:a}):(wi(r.state.value[e],x),E={type:As.patchObject,payload:x,storeId:e,events:a});const R=m=Symbol();co().then(()=>{m===R&&(h=!0)}),u=!0,On(d,E,r.state.value[e])}const y=s?function(){const{state:E}=n,R=E?E():{};this.$patch(k=>{Vt(k,R)})}:rc;function C(){o.stop(),d=[],f=[],r._s.delete(e)}function b(x,E){return function(){Ir(r);const R=Array.from(arguments),k=[],T=[];function B(W){k.push(W)}function V(W){T.push(W)}On(f,{args:R,name:x,store:v,after:B,onError:V});let D;try{D=E.apply(this&&this.$id===e?this:v,R)}catch(W){throw On(T,W),W}return D instanceof Promise?D.then(W=>(On(k,W),W)).catch(W=>(On(T,W),Promise.reject(W))):(On(k,D),D)}}const w={_p:r,$id:e,$onAction:ha.bind(null,f),$patch:g,$reset:y,$subscribe(x,E={}){const R=ha(d,x,E.detached,()=>k()),k=o.run(()=>dt(()=>r.state.value[e],T=>{(E.flush==="sync"?u:h)&&x({storeId:e,type:As.direct,events:a},T)},Vt({},c,E)));return R},$dispose:C},v=Sn(w);r._s.set(e,v);const S=(r._a&&r._a.runWithContext||P2)(()=>r._e.run(()=>(o=pl()).run(t)));for(const x in S){const E=S[x];if(Fe(E)&&!T2(E)||en(E))s||(p&&k2(E)&&(Fe(E)?E.value=p[x]:wi(E,p[x])),r.state.value[e][x]=E);else if(typeof E=="function"){const R=b(x,E);S[x]=R,l.actions[x]=E}}return Vt(v,S),Vt(ye(v),S),Object.defineProperty(v,"$state",{get:()=>r.state.value[e],set:x=>{g(E=>{Vt(E,x)})}}),r._p.forEach(x=>{Vt(v,o.run(()=>x({store:v,app:r._a,pinia:r,options:l})))}),p&&s&&n.hydrate&&n.hydrate(v.$state,p),h=!0,u=!0,v}function M2(e,t,n){let r,i;const s=typeof t=="function";typeof e=="string"?(r=e,i=s?n:t):(i=e,r=e.id);function o(l,c){const h=Jl();return l=l||(h?lt(sc,null):null),l&&Ir(l),l=nc,l._s.has(r)||(s?ic(r,t,i,l):F2(r,i,l)),l._s.get(r)}return o.$id=r,o}var ls=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},An=typeof window>"u"||"Deno"in window;function at(){}function B2(e,t){return typeof e=="function"?e(t):e}function Si(e){return typeof e=="number"&&e>=0&&e!==1/0}function oc(e,t){return Math.max(e+(t||0)-Date.now(),0)}function da(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:s,queryKey:o,stale:l}=e;if(o){if(r){if(t.queryHash!==Co(o,t.options))return!1}else if(!Fs(t.queryKey,o))return!1}if(n!=="all"){const c=t.isActive();if(n==="active"&&!c||n==="inactive"&&c)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||i&&i!==t.state.fetchStatus||s&&!s(t))}function pa(e,t){const{exact:n,status:r,predicate:i,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(n){if(bn(t.options.mutationKey)!==bn(s))return!1}else if(!Fs(t.options.mutationKey,s))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Co(e,t){return((t==null?void 0:t.queryKeyHashFn)||bn)(e)}function bn(e){return JSON.stringify(e,(t,n)=>Ei(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function Fs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(n=>!Fs(e[n],t[n])):!1}function ac(e,t){if(e===t)return e;const n=ma(e)&&ma(t);if(n||Ei(e)&&Ei(t)){const r=n?e:Object.keys(e),i=r.length,s=n?t:Object.keys(t),o=s.length,l=n?[]:{};let c=0;for(let h=0;h{setTimeout(t,e)})}function Ri(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?ac(e,t):t}function N2(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function U2(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var Ao=Symbol(),un,Jt,Nn,Ga,L2=(Ga=class extends ls{constructor(){super();_(this,un,void 0);_(this,Jt,void 0);_(this,Nn,void 0);Z(this,Nn,t=>{if(!An&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){F(this,Jt)||this.setEventListener(F(this,Nn))}onUnsubscribe(){var t;this.hasListeners()||((t=F(this,Jt))==null||t.call(this),Z(this,Jt,void 0))}setEventListener(t){var n;Z(this,Nn,t),(n=F(this,Jt))==null||n.call(this),Z(this,Jt,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){F(this,un)!==t&&(Z(this,un,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof F(this,un)=="boolean"?F(this,un):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},un=new WeakMap,Jt=new WeakMap,Nn=new WeakMap,Ga),bo=new L2,Un,Kt,Ln,Xa,D2=(Xa=class extends ls{constructor(){super();_(this,Un,!0);_(this,Kt,void 0);_(this,Ln,void 0);Z(this,Ln,t=>{if(!An&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){F(this,Kt)||this.setEventListener(F(this,Ln))}onUnsubscribe(){var t;this.hasListeners()||((t=F(this,Kt))==null||t.call(this),Z(this,Kt,void 0))}setEventListener(t){var n;Z(this,Ln,t),(n=F(this,Kt))==null||n.call(this),Z(this,Kt,t(this.setOnline.bind(this)))}setOnline(t){F(this,Un)!==t&&(Z(this,Un,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return F(this,Un)}},Un=new WeakMap,Kt=new WeakMap,Ln=new WeakMap,Xa),yr=new D2;function H2(e){return Math.min(1e3*2**e,3e4)}function Nr(e){return(e??"online")==="online"?yr.isOnline():!0}var lc=class{constructor(e){this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function ei(e){return e instanceof lc}function cc(e){let t=!1,n=0,r=!1,i,s,o;const l=new Promise((g,y)=>{s=g,o=y}),c=g=>{var y;r||(a(new lc(g)),(y=e.abort)==null||y.call(e))},h=()=>{t=!0},u=()=>{t=!1},d=()=>!bo.isFocused()||e.networkMode!=="always"&&!yr.isOnline(),f=g=>{var y;r||(r=!0,(y=e.onSuccess)==null||y.call(e,g),i==null||i(),s(g))},a=g=>{var y;r||(r=!0,(y=e.onError)==null||y.call(e,g),i==null||i(),o(g))},p=()=>new Promise(g=>{var y;i=C=>{const b=r||!d();return b&&g(C),b},(y=e.onPause)==null||y.call(e)}).then(()=>{var g;i=void 0,r||(g=e.onContinue)==null||g.call(e)}),m=()=>{if(r)return;let g;try{g=e.fn()}catch(y){g=Promise.reject(y)}Promise.resolve(g).then(f).catch(y=>{var A;if(r)return;const C=e.retry??(An?0:3),b=e.retryDelay??H2,w=typeof b=="function"?b(n,y):b,v=C===!0||typeof C=="number"&&n{if(d())return p()}).then(()=>{t?a(y):m()})})};return Nr(e.networkMode)?m():p().then(m),{promise:l,cancel:c,continue:()=>(i==null?void 0:i())?l:Promise.resolve(),cancelRetry:h,continueRetry:u}}function V2(){let e=[],t=0,n=f=>{f()},r=f=>{f()},i=f=>setTimeout(f,0);const s=f=>{i=f},o=f=>{let a;t++;try{a=f()}finally{t--,t||h()}return a},l=f=>{t?e.push(f):i(()=>{n(f)})},c=f=>(...a)=>{l(()=>{f(...a)})},h=()=>{const f=e;e=[],f.length&&i(()=>{r(()=>{f.forEach(a=>{n(a)})})})};return{batch:o,batchCalls:c,schedule:l,setNotifyFunction:f=>{n=f},setBatchNotifyFunction:f=>{r=f},setScheduler:s}}var Qe=V2(),fn,_a,uc=(_a=class{constructor(){_(this,fn,void 0)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Si(this.gcTime)&&Z(this,fn,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(An?1/0:5*60*1e3))}clearGcTimeout(){F(this,fn)&&(clearTimeout(F(this,fn)),Z(this,fn,void 0))}},fn=new WeakMap,_a),Dn,Hn,rt,qt,it,He,Is,hn,Vn,or,ft,kt,$a,j2=($a=class extends uc{constructor(t){super();_(this,Vn);_(this,ft);_(this,Dn,void 0);_(this,Hn,void 0);_(this,rt,void 0);_(this,qt,void 0);_(this,it,void 0);_(this,He,void 0);_(this,Is,void 0);_(this,hn,void 0);Z(this,hn,!1),Z(this,Is,t.defaultOptions),le(this,Vn,or).call(this,t.options),Z(this,He,[]),Z(this,rt,t.cache),this.queryKey=t.queryKey,this.queryHash=t.queryHash,Z(this,Dn,t.state||Q2(this.options)),this.state=F(this,Dn),this.scheduleGc()}get meta(){return this.options.meta}optionalRemove(){!F(this,He).length&&this.state.fetchStatus==="idle"&&F(this,rt).remove(this)}setData(t,n){const r=Ri(this.state.data,t,this.options);return le(this,ft,kt).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){le(this,ft,kt).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r;const n=F(this,qt);return(r=F(this,it))==null||r.cancel(t),n?n.then(at).catch(at):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(F(this,Dn))}isActive(){return F(this,He).some(t=>t.options.enabled!==!1)}isDisabled(){return this.getObserversCount()>0&&!this.isActive()}isStale(){return this.state.isInvalidated||this.state.data===void 0||F(this,He).some(t=>t.getCurrentResult().isStale)}isStaleByTime(t=0){return this.state.isInvalidated||this.state.data===void 0||!oc(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=F(this,He).find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=F(this,it))==null||n.continue()}onOnline(){var n;const t=F(this,He).find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=F(this,it))==null||n.continue()}addObserver(t){F(this,He).includes(t)||(F(this,He).push(t),this.clearGcTimeout(),F(this,rt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){F(this,He).includes(t)&&(Z(this,He,F(this,He).filter(n=>n!==t)),F(this,He).length||(F(this,it)&&(F(this,hn)?F(this,it).cancel({revert:!0}):F(this,it).cancelRetry()),this.scheduleGc()),F(this,rt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return F(this,He).length}invalidate(){this.state.isInvalidated||le(this,ft,kt).call(this,{type:"invalidate"})}fetch(t,n){var h,u,d,f;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(F(this,qt))return(h=F(this,it))==null||h.continueRetry(),F(this,qt)}if(t&&le(this,Vn,or).call(this,t),!this.options.queryFn){const a=F(this,He).find(p=>p.options.queryFn);a&&le(this,Vn,or).call(this,a.options)}const r=new AbortController,i={queryKey:this.queryKey,meta:this.meta},s=a=>{Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(Z(this,hn,!0),r.signal)})};s(i);const o=()=>!this.options.queryFn||this.options.queryFn===Ao?Promise.reject(new Error(`Missing queryFn: '${this.options.queryHash}'`)):(Z(this,hn,!1),this.options.persister?this.options.persister(this.options.queryFn,i,this):this.options.queryFn(i)),l={fetchOptions:n,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:o};s(l),(u=this.options.behavior)==null||u.onFetch(l,this),Z(this,Hn,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=l.fetchOptions)==null?void 0:d.meta))&&le(this,ft,kt).call(this,{type:"fetch",meta:(f=l.fetchOptions)==null?void 0:f.meta});const c=a=>{var p,m,g,y;ei(a)&&a.silent||le(this,ft,kt).call(this,{type:"error",error:a}),ei(a)||((m=(p=F(this,rt).config).onError)==null||m.call(p,a,this),(y=(g=F(this,rt).config).onSettled)==null||y.call(g,this.state.data,a,this)),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1};return Z(this,it,cc({fn:l.fetchFn,abort:r.abort.bind(r),onSuccess:a=>{var p,m,g,y;if(a===void 0){c(new Error(`${this.queryHash} data is undefined`));return}this.setData(a),(m=(p=F(this,rt).config).onSuccess)==null||m.call(p,a,this),(y=(g=F(this,rt).config).onSettled)==null||y.call(g,a,this.state.error,this),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1},onError:c,onFail:(a,p)=>{le(this,ft,kt).call(this,{type:"failed",failureCount:a,error:p})},onPause:()=>{le(this,ft,kt).call(this,{type:"pause"})},onContinue:()=>{le(this,ft,kt).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode})),Z(this,qt,F(this,it).promise),F(this,qt)}},Dn=new WeakMap,Hn=new WeakMap,rt=new WeakMap,qt=new WeakMap,it=new WeakMap,He=new WeakMap,Is=new WeakMap,hn=new WeakMap,Vn=new WeakSet,or=function(t){this.options={...F(this,Is),...t},this.updateGcTime(this.options.gcTime)},ft=new WeakSet,kt=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:t.meta??null,fetchStatus:Nr(this.options.networkMode)?"fetching":"paused",...r.data===void 0&&{error:null,status:"pending"}};case"success":return{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const i=t.error;return ei(i)&&i.revert&&F(this,Hn)?{...F(this,Hn),fetchStatus:"idle"}:{...r,error:i,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),Qe.batch(()=>{F(this,He).forEach(r=>{r.onQueryUpdate()}),F(this,rt).notify({query:this,type:"updated",action:t})})},$a);function Q2(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var xt,el,fc=(el=class extends ls{constructor(n={}){super();_(this,xt,void 0);this.config=n,Z(this,xt,new Map)}build(n,r,i){const s=r.queryKey,o=r.queryHash??Co(s,r);let l=this.get(o);return l||(l=new j2({cache:this,queryKey:s,queryHash:o,options:n.defaultQueryOptions(r),state:i,defaultOptions:n.getQueryDefaults(s)}),this.add(l)),l}add(n){F(this,xt).has(n.queryHash)||(F(this,xt).set(n.queryHash,n),this.notify({type:"added",query:n}))}remove(n){const r=F(this,xt).get(n.queryHash);r&&(n.destroy(),r===n&&F(this,xt).delete(n.queryHash),this.notify({type:"removed",query:n}))}clear(){Qe.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}get(n){return F(this,xt).get(n)}getAll(){return[...F(this,xt).values()]}find(n){const r={exact:!0,...n};return this.getAll().find(i=>da(r,i))}findAll(n={}){const r=this.getAll();return Object.keys(n).length>0?r.filter(i=>da(n,i)):r}notify(n){Qe.batch(()=>{this.listeners.forEach(r=>{r(n)})})}onFocus(){Qe.batch(()=>{this.getAll().forEach(n=>{n.onFocus()})})}onOnline(){Qe.batch(()=>{this.getAll().forEach(n=>{n.onOnline()})})}},xt=new WeakMap,el),Ct,Ns,tt,jn,At,jt,tl,W2=(tl=class extends uc{constructor(t){super();_(this,At);_(this,Ct,void 0);_(this,Ns,void 0);_(this,tt,void 0);_(this,jn,void 0);this.mutationId=t.mutationId,Z(this,Ns,t.defaultOptions),Z(this,tt,t.mutationCache),Z(this,Ct,[]),this.state=t.state||hc(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options={...F(this,Ns),...t},this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){F(this,Ct).includes(t)||(F(this,Ct).push(t),this.clearGcTimeout(),F(this,tt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){Z(this,Ct,F(this,Ct).filter(n=>n!==t)),this.scheduleGc(),F(this,tt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){F(this,Ct).length||(this.state.status==="pending"?this.scheduleGc():F(this,tt).remove(this))}continue(){var t;return((t=F(this,jn))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,s,o,l,c,h,u,d,f,a,p,m,g,y,C,b,w,v,A,S;const n=()=>(Z(this,jn,cc({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(x,E)=>{le(this,At,jt).call(this,{type:"failed",failureCount:x,error:E})},onPause:()=>{le(this,At,jt).call(this,{type:"pause"})},onContinue:()=>{le(this,At,jt).call(this,{type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode})),F(this,jn).promise),r=this.state.status==="pending";try{if(!r){le(this,At,jt).call(this,{type:"pending",variables:t}),await((s=(i=F(this,tt).config).onMutate)==null?void 0:s.call(i,t,this));const E=await((l=(o=this.options).onMutate)==null?void 0:l.call(o,t));E!==this.state.context&&le(this,At,jt).call(this,{type:"pending",context:E,variables:t})}const x=await n();return await((h=(c=F(this,tt).config).onSuccess)==null?void 0:h.call(c,x,t,this.state.context,this)),await((d=(u=this.options).onSuccess)==null?void 0:d.call(u,x,t,this.state.context)),await((a=(f=F(this,tt).config).onSettled)==null?void 0:a.call(f,x,null,this.state.variables,this.state.context,this)),await((m=(p=this.options).onSettled)==null?void 0:m.call(p,x,null,t,this.state.context)),le(this,At,jt).call(this,{type:"success",data:x}),x}catch(x){try{throw await((y=(g=F(this,tt).config).onError)==null?void 0:y.call(g,x,t,this.state.context,this)),await((b=(C=this.options).onError)==null?void 0:b.call(C,x,t,this.state.context)),await((v=(w=F(this,tt).config).onSettled)==null?void 0:v.call(w,void 0,x,this.state.variables,this.state.context,this)),await((S=(A=this.options).onSettled)==null?void 0:S.call(A,void 0,x,t,this.state.context)),x}finally{le(this,At,jt).call(this,{type:"error",error:x})}}}},Ct=new WeakMap,Ns=new WeakMap,tt=new WeakMap,jn=new WeakMap,At=new WeakSet,jt=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:!Nr(this.options.networkMode),status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Qe.batch(()=>{F(this,Ct).forEach(r=>{r.onMutationUpdate(t)}),F(this,tt).notify({mutation:this,type:"updated",action:t})})},tl);function hc(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ot,Us,dn,nl,dc=(nl=class extends ls{constructor(n={}){super();_(this,ot,void 0);_(this,Us,void 0);_(this,dn,void 0);this.config=n,Z(this,ot,[]),Z(this,Us,0)}build(n,r,i){const s=new W2({mutationCache:this,mutationId:++Zs(this,Us)._,options:n.defaultMutationOptions(r),state:i});return this.add(s),s}add(n){F(this,ot).push(n),this.notify({type:"added",mutation:n})}remove(n){Z(this,ot,F(this,ot).filter(r=>r!==n)),this.notify({type:"removed",mutation:n})}clear(){Qe.batch(()=>{F(this,ot).forEach(n=>{this.remove(n)})})}getAll(){return F(this,ot)}find(n){const r={exact:!0,...n};return F(this,ot).find(i=>pa(r,i))}findAll(n={}){return F(this,ot).filter(r=>pa(n,r))}notify(n){Qe.batch(()=>{this.listeners.forEach(r=>{r(n)})})}resumePausedMutations(){return Z(this,dn,(F(this,dn)??Promise.resolve()).then(()=>{const n=F(this,ot).filter(r=>r.state.isPaused);return Qe.batch(()=>n.reduce((r,i)=>r.then(()=>i.continue().catch(at)),Promise.resolve()))}).then(()=>{Z(this,dn,void 0)})),F(this,dn)}},ot=new WeakMap,Us=new WeakMap,dn=new WeakMap,nl);function Pi(e){return{onFetch:(t,n)=>{const r=async()=>{var p,m,g,y,C;const i=t.options,s=(g=(m=(p=t.fetchOptions)==null?void 0:p.meta)==null?void 0:m.fetchMore)==null?void 0:g.direction,o=((y=t.state.data)==null?void 0:y.pages)||[],l=((C=t.state.data)==null?void 0:C.pageParams)||[],c={pages:[],pageParams:[]};let h=!1;const u=b=>{Object.defineProperty(b,"signal",{enumerable:!0,get:()=>(t.signal.aborted?h=!0:t.signal.addEventListener("abort",()=>{h=!0}),t.signal)})},d=t.options.queryFn&&t.options.queryFn!==Ao?t.options.queryFn:()=>Promise.reject(new Error(`Missing queryFn: '${t.options.queryHash}'`)),f=async(b,w,v)=>{if(h)return Promise.reject();if(w==null&&b.pages.length)return Promise.resolve(b);const A={queryKey:t.queryKey,pageParam:w,direction:v?"backward":"forward",meta:t.options.meta};u(A);const S=await d(A),{maxPages:x}=t.options,E=v?U2:N2;return{pages:E(b.pages,S,x),pageParams:E(b.pageParams,w,x)}};let a;if(s&&o.length){const b=s==="backward",w=b?pc:Oi,v={pages:o,pageParams:l},A=w(i,v);a=await f(v,A,b)}else{a=await f(c,l[0]??i.initialPageParam);const b=e??o.length;for(let w=1;w{var i,s;return(s=(i=t.options).persister)==null?void 0:s.call(i,r,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=r}}}function Oi(e,{pages:t,pageParams:n}){const r=t.length-1;return e.getNextPageParam(t[r],t,n[r],n)}function pc(e,{pages:t,pageParams:n}){var r;return(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n)}function J2(e,t){return t?Oi(e,t)!=null:!1}function K2(e,t){return!t||!e.getPreviousPageParam?!1:pc(e,t)!=null}var Ue,zt,Yt,Qn,Wn,Zt,Jn,Kn,sl,q2=(sl=class{constructor(t={}){_(this,Ue,void 0);_(this,zt,void 0);_(this,Yt,void 0);_(this,Qn,void 0);_(this,Wn,void 0);_(this,Zt,void 0);_(this,Jn,void 0);_(this,Kn,void 0);Z(this,Ue,t.queryCache||new fc),Z(this,zt,t.mutationCache||new dc),Z(this,Yt,t.defaultOptions||{}),Z(this,Qn,new Map),Z(this,Wn,new Map),Z(this,Zt,0)}mount(){Zs(this,Zt)._++,F(this,Zt)===1&&(Z(this,Jn,bo.subscribe(t=>{t&&(this.resumePausedMutations(),F(this,Ue).onFocus())})),Z(this,Kn,yr.subscribe(t=>{t&&(this.resumePausedMutations(),F(this,Ue).onOnline())})))}unmount(){var t,n;Zs(this,Zt)._--,F(this,Zt)===0&&((t=F(this,Jn))==null||t.call(this),Z(this,Jn,void 0),(n=F(this,Kn))==null||n.call(this),Z(this,Kn,void 0))}isFetching(t){return F(this,Ue).findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return F(this,zt).findAll({...t,status:"pending"}).length}getQueryData(t){var r;const n=this.defaultQueryOptions({queryKey:t});return(r=F(this,Ue).get(n.queryHash))==null?void 0:r.state.data}ensureQueryData(t){const n=this.getQueryData(t.queryKey);return n!==void 0?Promise.resolve(n):this.fetchQuery(t)}getQueriesData(t){return this.getQueryCache().findAll(t).map(({queryKey:n,state:r})=>{const i=r.data;return[n,i]})}setQueryData(t,n,r){const i=this.defaultQueryOptions({queryKey:t}),s=F(this,Ue).get(i.queryHash),o=s==null?void 0:s.state.data,l=B2(n,o);if(l!==void 0)return F(this,Ue).build(this,i).setData(l,{...r,manual:!0})}setQueriesData(t,n,r){return Qe.batch(()=>this.getQueryCache().findAll(t).map(({queryKey:i})=>[i,this.setQueryData(i,n,r)]))}getQueryState(t){var r;const n=this.defaultQueryOptions({queryKey:t});return(r=F(this,Ue).get(n.queryHash))==null?void 0:r.state}removeQueries(t){const n=F(this,Ue);Qe.batch(()=>{n.findAll(t).forEach(r=>{n.remove(r)})})}resetQueries(t,n){const r=F(this,Ue),i={type:"active",...t};return Qe.batch(()=>(r.findAll(t).forEach(s=>{s.reset()}),this.refetchQueries(i,n)))}cancelQueries(t={},n={}){const r={revert:!0,...n},i=Qe.batch(()=>F(this,Ue).findAll(t).map(s=>s.cancel(r)));return Promise.all(i).then(at).catch(at)}invalidateQueries(t={},n={}){return Qe.batch(()=>{if(F(this,Ue).findAll(t).forEach(i=>{i.invalidate()}),t.refetchType==="none")return Promise.resolve();const r={...t,type:t.refetchType??t.type??"active"};return this.refetchQueries(r,n)})}refetchQueries(t={},n){const r={...n,cancelRefetch:(n==null?void 0:n.cancelRefetch)??!0},i=Qe.batch(()=>F(this,Ue).findAll(t).filter(s=>!s.isDisabled()).map(s=>{let o=s.fetch(void 0,r);return r.throwOnError||(o=o.catch(at)),s.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(i).then(at)}fetchQuery(t){const n=this.defaultQueryOptions(t);n.retry===void 0&&(n.retry=!1);const r=F(this,Ue).build(this,n);return r.isStaleByTime(n.staleTime)?r.fetch(n):Promise.resolve(r.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(at).catch(at)}fetchInfiniteQuery(t){return t.behavior=Pi(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(at).catch(at)}resumePausedMutations(){return yr.isOnline()?F(this,zt).resumePausedMutations():Promise.resolve()}getQueryCache(){return F(this,Ue)}getMutationCache(){return F(this,zt)}getDefaultOptions(){return F(this,Yt)}setDefaultOptions(t){Z(this,Yt,t)}setQueryDefaults(t,n){F(this,Qn).set(bn(t),{queryKey:t,defaultOptions:n})}getQueryDefaults(t){const n=[...F(this,Qn).values()];let r={};return n.forEach(i=>{Fs(t,i.queryKey)&&(r={...r,...i.defaultOptions})}),r}setMutationDefaults(t,n){F(this,Wn).set(bn(t),{mutationKey:t,defaultOptions:n})}getMutationDefaults(t){const n=[...F(this,Wn).values()];let r={};return n.forEach(i=>{Fs(t,i.mutationKey)&&(r={...r,...i.defaultOptions})}),r}defaultQueryOptions(t){if(t._defaulted)return t;const n={...F(this,Yt).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return n.queryHash||(n.queryHash=Co(n.queryKey,n)),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!=="always"),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode="offlineFirst"),n.enabled!==!0&&n.queryFn===Ao&&(n.enabled=!1),n}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...F(this,Yt).mutations,...(t==null?void 0:t.mutationKey)&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){F(this,Ue).clear(),F(this,zt).clear()}},Ue=new WeakMap,zt=new WeakMap,Yt=new WeakMap,Qn=new WeakMap,Wn=new WeakMap,Zt=new WeakMap,Jn=new WeakMap,Kn=new WeakMap,sl),_e,Oe,Ls,Ye,pn,qn,bt,Ds,zn,Yn,mn,gn,Gt,Zn,vn,vs,Hs,ki,Vs,Ti,js,Fi,Qs,Mi,Ws,Bi,Js,Ii,Ks,Ni,Ar,mc,rl,z2=(rl=class extends ls{constructor(t,n){super();_(this,vn);_(this,Hs);_(this,Vs);_(this,js);_(this,Qs);_(this,Ws);_(this,Js);_(this,Ks);_(this,Ar);_(this,_e,void 0);_(this,Oe,void 0);_(this,Ls,void 0);_(this,Ye,void 0);_(this,pn,void 0);_(this,qn,void 0);_(this,bt,void 0);_(this,Ds,void 0);_(this,zn,void 0);_(this,Yn,void 0);_(this,mn,void 0);_(this,gn,void 0);_(this,Gt,void 0);_(this,Zn,new Set);this.options=n,Z(this,_e,t),Z(this,bt,null),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(F(this,Oe).addObserver(this),va(F(this,Oe),this.options)?le(this,vn,vs).call(this):this.updateResult(),le(this,Qs,Mi).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Ui(F(this,Oe),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Ui(F(this,Oe),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,le(this,Ws,Bi).call(this),le(this,Js,Ii).call(this),F(this,Oe).removeObserver(this)}setOptions(t,n){const r=this.options,i=F(this,Oe);if(this.options=F(this,_e).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean")throw new Error("Expected enabled to be a boolean");le(this,Ks,Ni).call(this),vr(this.options,r)||F(this,_e).getQueryCache().notify({type:"observerOptionsUpdated",query:F(this,Oe),observer:this});const s=this.hasListeners();s&&ya(F(this,Oe),i,this.options,r)&&le(this,vn,vs).call(this),this.updateResult(n),s&&(F(this,Oe)!==i||this.options.enabled!==r.enabled||this.options.staleTime!==r.staleTime)&&le(this,Hs,ki).call(this);const o=le(this,Vs,Ti).call(this);s&&(F(this,Oe)!==i||this.options.enabled!==r.enabled||o!==F(this,Gt))&&le(this,js,Fi).call(this,o)}getOptimisticResult(t){const n=F(this,_e).getQueryCache().build(F(this,_e),t),r=this.createResult(n,t);return Z2(this,r)&&(Z(this,Ye,r),Z(this,qn,this.options),Z(this,pn,F(this,Oe).state)),r}getCurrentResult(){return F(this,Ye)}trackResult(t,n){const r={};return Object.keys(t).forEach(i=>{Object.defineProperty(r,i,{configurable:!1,enumerable:!0,get:()=>(this.trackProp(i),n==null||n(i),t[i])})}),r}trackProp(t){F(this,Zn).add(t)}getCurrentQuery(){return F(this,Oe)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=F(this,_e).defaultQueryOptions(t),r=F(this,_e).getQueryCache().build(F(this,_e),n);return r.isFetchingOptimistic=!0,r.fetch().then(()=>this.createResult(r,n))}fetch(t){return le(this,vn,vs).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),F(this,Ye)))}createResult(t,n){var S;const r=F(this,Oe),i=this.options,s=F(this,Ye),o=F(this,pn),l=F(this,qn),h=t!==r?t.state:F(this,Ls),{state:u}=t;let{error:d,errorUpdatedAt:f,fetchStatus:a,status:p}=u,m=!1,g;if(n._optimisticResults){const x=this.hasListeners(),E=!x&&va(t,n),R=x&&ya(t,r,n,i);(E||R)&&(a=Nr(t.options.networkMode)?"fetching":"paused",u.data===void 0&&(p="pending")),n._optimisticResults==="isRestoring"&&(a="idle")}if(n.select&&u.data!==void 0)if(s&&u.data===(o==null?void 0:o.data)&&n.select===F(this,Ds))g=F(this,zn);else try{Z(this,Ds,n.select),g=n.select(u.data),g=Ri(s==null?void 0:s.data,g,n),Z(this,zn,g),Z(this,bt,null)}catch(x){Z(this,bt,x)}else g=u.data;if(n.placeholderData!==void 0&&g===void 0&&p==="pending"){let x;if(s!=null&&s.isPlaceholderData&&n.placeholderData===(l==null?void 0:l.placeholderData))x=s.data;else if(x=typeof n.placeholderData=="function"?n.placeholderData((S=F(this,Yn))==null?void 0:S.state.data,F(this,Yn)):n.placeholderData,n.select&&x!==void 0)try{x=n.select(x),Z(this,bt,null)}catch(E){Z(this,bt,E)}x!==void 0&&(p="success",g=Ri(s==null?void 0:s.data,x,n),m=!0)}F(this,bt)&&(d=F(this,bt),g=F(this,zn),f=Date.now(),p="error");const y=a==="fetching",C=p==="pending",b=p==="error",w=C&&y,v=u.data!==void 0;return{status:p,fetchStatus:a,isPending:C,isSuccess:p==="success",isError:b,isInitialLoading:w,isLoading:w,data:g,dataUpdatedAt:u.dataUpdatedAt,error:d,errorUpdatedAt:f,failureCount:u.fetchFailureCount,failureReason:u.fetchFailureReason,errorUpdateCount:u.errorUpdateCount,isFetched:u.dataUpdateCount>0||u.errorUpdateCount>0,isFetchedAfterMount:u.dataUpdateCount>h.dataUpdateCount||u.errorUpdateCount>h.errorUpdateCount,isFetching:y,isRefetching:y&&!C,isLoadingError:b&&!v,isPaused:a==="paused",isPlaceholderData:m,isRefetchError:b&&v,isStale:wo(t,n),refetch:this.refetch}}updateResult(t){const n=F(this,Ye),r=this.createResult(F(this,Oe),this.options);if(Z(this,pn,F(this,Oe).state),Z(this,qn,this.options),F(this,pn).data!==void 0&&Z(this,Yn,F(this,Oe)),vr(r,n))return;Z(this,Ye,r);const i={},s=()=>{if(!n)return!0;const{notifyOnChangeProps:o}=this.options,l=typeof o=="function"?o():o;if(l==="all"||!l&&!F(this,Zn).size)return!0;const c=new Set(l??F(this,Zn));return this.options.throwOnError&&c.add("error"),Object.keys(F(this,Ye)).some(h=>{const u=h;return F(this,Ye)[u]!==n[u]&&c.has(u)})};(t==null?void 0:t.listeners)!==!1&&s()&&(i.listeners=!0),le(this,Ar,mc).call(this,{...i,...t})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&le(this,Qs,Mi).call(this)}},_e=new WeakMap,Oe=new WeakMap,Ls=new WeakMap,Ye=new WeakMap,pn=new WeakMap,qn=new WeakMap,bt=new WeakMap,Ds=new WeakMap,zn=new WeakMap,Yn=new WeakMap,mn=new WeakMap,gn=new WeakMap,Gt=new WeakMap,Zn=new WeakMap,vn=new WeakSet,vs=function(t){le(this,Ks,Ni).call(this);let n=F(this,Oe).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(at)),n},Hs=new WeakSet,ki=function(){if(le(this,Ws,Bi).call(this),An||F(this,Ye).isStale||!Si(this.options.staleTime))return;const n=oc(F(this,Ye).dataUpdatedAt,this.options.staleTime)+1;Z(this,mn,setTimeout(()=>{F(this,Ye).isStale||this.updateResult()},n))},Vs=new WeakSet,Ti=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(F(this,Oe)):this.options.refetchInterval)??!1},js=new WeakSet,Fi=function(t){le(this,Js,Ii).call(this),Z(this,Gt,t),!(An||this.options.enabled===!1||!Si(F(this,Gt))||F(this,Gt)===0)&&Z(this,gn,setInterval(()=>{(this.options.refetchIntervalInBackground||bo.isFocused())&&le(this,vn,vs).call(this)},F(this,Gt)))},Qs=new WeakSet,Mi=function(){le(this,Hs,ki).call(this),le(this,js,Fi).call(this,le(this,Vs,Ti).call(this))},Ws=new WeakSet,Bi=function(){F(this,mn)&&(clearTimeout(F(this,mn)),Z(this,mn,void 0))},Js=new WeakSet,Ii=function(){F(this,gn)&&(clearInterval(F(this,gn)),Z(this,gn,void 0))},Ks=new WeakSet,Ni=function(){const t=F(this,_e).getQueryCache().build(F(this,_e),this.options);if(t===F(this,Oe))return;const n=F(this,Oe);Z(this,Oe,t),Z(this,Ls,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},Ar=new WeakSet,mc=function(t){Qe.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(F(this,Ye))}),F(this,_e).getQueryCache().notify({query:F(this,Oe),type:"observerResultsUpdated"})})},rl);function Y2(e,t){return t.enabled!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function va(e,t){return Y2(e,t)||e.state.data!==void 0&&Ui(e,t,t.refetchOnMount)}function Ui(e,t,n){if(t.enabled!==!1){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&wo(e,t)}return!1}function ya(e,t,n,r){return n.enabled!==!1&&(e!==t||r.enabled===!1)&&(!n.suspense||e.state.status!=="error")&&wo(e,n)}function wo(e,t){return e.isStaleByTime(t.staleTime)}function Z2(e,t){return!vr(e.getCurrentResult(),t)}var G2=class extends z2{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e,t){super.setOptions({...e,behavior:Pi()},t)}getOptimisticResult(e){return e.behavior=Pi(),super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){var c,h,u,d;const{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:s}=r,o=i&&((h=(c=n.fetchMeta)==null?void 0:c.fetchMore)==null?void 0:h.direction)==="forward",l=i&&((d=(u=n.fetchMeta)==null?void 0:u.fetchMore)==null?void 0:d.direction)==="backward";return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:J2(t,n.data),hasPreviousPage:K2(t,n.data),isFetchingNextPage:o,isFetchingPreviousPage:l,isRefetching:s&&!o&&!l}}},Xt,_t,nt,Ft,Gn,ar,qs,Li,il,X2=(il=class extends ls{constructor(n,r){super();_(this,Gn);_(this,qs);_(this,Xt,void 0);_(this,_t,void 0);_(this,nt,void 0);_(this,Ft,void 0);Z(this,Xt,n),this.setOptions(r),this.bindMethods(),le(this,Gn,ar).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(n){var i;const r=this.options;this.options=F(this,Xt).defaultMutationOptions(n),vr(this.options,r)||F(this,Xt).getMutationCache().notify({type:"observerOptionsUpdated",mutation:F(this,nt),observer:this}),r!=null&&r.mutationKey&&this.options.mutationKey&&bn(r.mutationKey)!==bn(this.options.mutationKey)?this.reset():(i=F(this,nt))==null||i.setOptions(this.options)}onUnsubscribe(){var n;this.hasListeners()||(n=F(this,nt))==null||n.removeObserver(this)}onMutationUpdate(n){le(this,Gn,ar).call(this),le(this,qs,Li).call(this,n)}getCurrentResult(){return F(this,_t)}reset(){var n;(n=F(this,nt))==null||n.removeObserver(this),Z(this,nt,void 0),le(this,Gn,ar).call(this),le(this,qs,Li).call(this)}mutate(n,r){var i;return Z(this,Ft,r),(i=F(this,nt))==null||i.removeObserver(this),Z(this,nt,F(this,Xt).getMutationCache().build(F(this,Xt),this.options)),F(this,nt).addObserver(this),F(this,nt).execute(n)}},Xt=new WeakMap,_t=new WeakMap,nt=new WeakMap,Ft=new WeakMap,Gn=new WeakSet,ar=function(){var r;const n=((r=F(this,nt))==null?void 0:r.state)??hc();Z(this,_t,{...n,isPending:n.status==="pending",isSuccess:n.status==="success",isError:n.status==="error",isIdle:n.status==="idle",mutate:this.mutate,reset:this.reset})},qs=new WeakSet,Li=function(n){Qe.batch(()=>{var r,i,s,o,l,c,h,u;if(F(this,Ft)&&this.hasListeners()){const d=F(this,_t).variables,f=F(this,_t).context;(n==null?void 0:n.type)==="success"?((i=(r=F(this,Ft)).onSuccess)==null||i.call(r,n.data,d,f),(o=(s=F(this,Ft)).onSettled)==null||o.call(s,n.data,null,d,f)):(n==null?void 0:n.type)==="error"&&((c=(l=F(this,Ft)).onError)==null||c.call(l,n.error,d,f),(u=(h=F(this,Ft)).onSettled)==null||u.call(h,void 0,n.error,d,f))}this.listeners.forEach(d=>{d(F(this,_t))})})},il),_2="VUE_QUERY_CLIENT";function gc(e){const t=e?`:${e}`:"";return`${_2}${t}`}function Di(e,t){Object.keys(e).forEach(n=>{e[n]=t[n]})}function Hi(e,t){if(t){const n=t(e);if(n===void 0&&Fe(e)||n!==void 0)return n}if(Array.isArray(e))return e.map(n=>Hi(n,t));if(typeof e=="object"&&$2(e)){const n=Object.entries(e).map(([r,i])=>[r,Hi(i,t)]);return Object.fromEntries(n)}return e}function pe(e){return Hi(e,t=>{if(Fe(t))return pe(ee(t))})}function $2(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function vc(e,t){return typeof e=="function"?e(...t):!!e}function yc(e=""){if(!Jl())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const t=gc(e),n=lt(t);if(!n)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return n}var ef=class extends fc{find(e){return super.find(pe(e))}findAll(e={}){return super.findAll(pe(e))}},tf=class extends dc{find(e){return super.find(pe(e))}findAll(e={}){return super.findAll(pe(e))}},nf=class extends q2{constructor(e={}){const t={defaultOptions:e.defaultOptions,queryCache:e.queryCache||new ef,mutationCache:e.mutationCache||new tf};super(t),this.isRestoring=Ze(!1)}isFetching(e={}){return super.isFetching(pe(e))}isMutating(e={}){return super.isMutating(pe(e))}getQueryData(e){return super.getQueryData(pe(e))}ensureQueryData(e){return super.ensureQueryData(pe(e))}getQueriesData(e){return super.getQueriesData(pe(e))}setQueryData(e,t,n={}){return super.setQueryData(pe(e),t,pe(n))}setQueriesData(e,t,n={}){return super.setQueriesData(pe(e),t,pe(n))}getQueryState(e){return super.getQueryState(pe(e))}removeQueries(e={}){return super.removeQueries(pe(e))}resetQueries(e={},t={}){return super.resetQueries(pe(e),pe(t))}cancelQueries(e={},t={}){return super.cancelQueries(pe(e),pe(t))}invalidateQueries(e={},t={}){return new Promise(n=>{setTimeout(async()=>{await super.invalidateQueries(pe(e),pe(t)),n()},0)})}refetchQueries(e={},t={}){return super.refetchQueries(pe(e),pe(t))}fetchQuery(e){return super.fetchQuery(pe(e))}prefetchQuery(e){return super.prefetchQuery(pe(e))}fetchInfiniteQuery(e){return super.fetchInfiniteQuery(pe(e))}prefetchInfiniteQuery(e){return super.prefetchInfiniteQuery(pe(e))}setDefaultOptions(e){super.setDefaultOptions(pe(e))}setQueryDefaults(e,t){super.setQueryDefaults(pe(e),pe(t))}getQueryDefaults(e){return super.getQueryDefaults(pe(e))}setMutationDefaults(e,t){super.setMutationDefaults(pe(e),pe(t))}getMutationDefaults(e){return super.getMutationDefaults(pe(e))}},sf={install:(e,t={})=>{const n=gc(t.queryClientKey);let r;if("queryClient"in t&&t.queryClient)r=t.queryClient;else{const o="queryClientConfig"in t?t.queryClientConfig:void 0;r=new nf(o)}An||r.mount();let i=()=>{};if(t.clientPersister){r.isRestoring.value=!0;const[o,l]=t.clientPersister(r);i=o,l.then(()=>{var c;r.isRestoring.value=!1,(c=t.clientPersisterOnSuccess)==null||c.call(t,r)})}const s=()=>{r.unmount(),i()};if(e.onUnmount)e.onUnmount(s);else{const o=e.unmount;e.unmount=function(){s(),o()}}e.provide(n,r)}};function rf(e,t,n){const r=n||yc(),i=Ae(()=>{const f=pe(t);typeof f.enabled=="function"&&(f.enabled=f.enabled());const a=r.defaultQueryOptions(f);return a._optimisticResults=r.isRestoring.value?"isRestoring":"optimistic",a}),s=new e(r,i.value),o=Sn(s.getCurrentResult());let l=()=>{};dt(r.isRestoring,f=>{f||(l(),l=s.subscribe(a=>{Di(o,a)}))},{immediate:!0});const c=()=>{s.setOptions(i.value),Di(o,s.getCurrentResult())};dt(i,c),eo(()=>{l()});const h=(...f)=>(c(),o.refetch(...f)),u=()=>new Promise((f,a)=>{let p=()=>{};const m=()=>{if(i.value.enabled!==!1){s.setOptions(i.value);const g=s.getOptimisticResult(i.value);g.isStale?(p(),s.fetchOptimistic(i.value).then(f,a)):(p(),f(g))}};m(),p=dt(i,m)});dt(()=>o.error,f=>{if(o.isError&&!o.isFetching&&vc(i.value.throwOnError,[f,s.getCurrentQuery()]))throw f});const d=ao(Rr(o));for(const f in o)typeof o[f]=="function"&&(d[f]=o[f]);return d.suspense=u,d.refetch=h,d}function of(e,t){return rf(G2,e,t)}function af(e,t){const n=t||yc(),r=Ae(()=>n.defaultMutationOptions(pe(e))),i=new X2(n,r.value),s=Sn(i.getCurrentResult()),o=i.subscribe(h=>{Di(s,h)}),l=(h,u)=>{i.mutate(h,u).catch(()=>{})};dt(r,()=>{i.setOptions(r.value)}),eo(()=>{o()});const c=ao(Rr(s));return dt(()=>s.error,h=>{if(h&&vc(r.value.throwOnError,[h]))throw h}),{...c,mutate:l,mutateAsync:s.mutate,reset:s.reset}}/*! + */let nc;const Nr=e=>nc=e,sc=Symbol();function wi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var As;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(As||(As={}));function P2(){const e=pl(!0),t=e.run(()=>Ze({}));let n=[],r=[];const i=Pr({install(s){Nr(i),i._a=s,s.provide(sc,i),s.config.globalProperties.$pinia=i,r.forEach(o=>n.push(o)),r=[]},use(s){return!this._a&&!R2?r.push(s):n.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}const rc=()=>{};function ha(e,t,n,r=rc){e.push(t);const i=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),r())};return!n&&ml()&&to(i),i}function On(e,...t){e.slice().forEach(n=>{n(...t)})}const O2=e=>e();function Si(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,r)=>e.set(r,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],i=e[n];wi(i)&&wi(r)&&e.hasOwnProperty(n)&&!Fe(r)&&!en(r)?e[n]=Si(i,r):e[n]=r}return e}const k2=Symbol();function T2(e){return!wi(e)||!e.hasOwnProperty(k2)}const{assign:Vt}=Object;function F2(e){return!!(Fe(e)&&e.effect)}function M2(e,t,n,r){const{state:i,actions:s,getters:o}=t,l=n.state.value[e];let c;function f(){l||(n.state.value[e]=i?i():{});const u=lo(n.state.value[e]);return Vt(u,s,Object.keys(o||{}).reduce((d,h)=>(d[h]=Pr(Ae(()=>{Nr(n);const a=n._s.get(e);return o[h].call(a,a)})),d),{}))}return c=ic(e,f,t,n,r,!0),c}function ic(e,t,n={},r,i,s){let o;const l=Vt({actions:{}},n),c={deep:!0};let f,u,d=[],h=[],a;const p=r.state.value[e];!s&&!p&&(r.state.value[e]={}),Ze({});let m;function g(x){let E;f=u=!1,typeof x=="function"?(x(r.state.value[e]),E={type:As.patchFunction,storeId:e,events:a}):(Si(r.state.value[e],x),E={type:As.patchObject,payload:x,storeId:e,events:a});const R=m=Symbol();uo().then(()=>{m===R&&(f=!0)}),u=!0,On(d,E,r.state.value[e])}const y=s?function(){const{state:E}=n,R=E?E():{};this.$patch(k=>{Vt(k,R)})}:rc;function C(){o.stop(),d=[],h=[],r._s.delete(e)}function b(x,E){return function(){Nr(r);const R=Array.from(arguments),k=[],T=[];function B(W){k.push(W)}function V(W){T.push(W)}On(h,{args:R,name:x,store:v,after:B,onError:V});let D;try{D=E.apply(this&&this.$id===e?this:v,R)}catch(W){throw On(T,W),W}return D instanceof Promise?D.then(W=>(On(k,W),W)).catch(W=>(On(T,W),Promise.reject(W))):(On(k,D),D)}}const w={_p:r,$id:e,$onAction:ha.bind(null,h),$patch:g,$reset:y,$subscribe(x,E={}){const R=ha(d,x,E.detached,()=>k()),k=o.run(()=>dt(()=>r.state.value[e],T=>{(E.flush==="sync"?u:f)&&x({storeId:e,type:As.direct,events:a},T)},Vt({},c,E)));return R},$dispose:C},v=Sn(w);r._s.set(e,v);const S=(r._a&&r._a.runWithContext||O2)(()=>r._e.run(()=>(o=pl()).run(t)));for(const x in S){const E=S[x];if(Fe(E)&&!F2(E)||en(E))s||(p&&T2(E)&&(Fe(E)?E.value=p[x]:Si(E,p[x])),r.state.value[e][x]=E);else if(typeof E=="function"){const R=b(x,E);S[x]=R,l.actions[x]=E}}return Vt(v,S),Vt(ye(v),S),Object.defineProperty(v,"$state",{get:()=>r.state.value[e],set:x=>{g(E=>{Vt(E,x)})}}),r._p.forEach(x=>{Vt(v,o.run(()=>x({store:v,app:r._a,pinia:r,options:l})))}),p&&s&&n.hydrate&&n.hydrate(v.$state,p),f=!0,u=!0,v}function B2(e,t,n){let r,i;const s=typeof t=="function";typeof e=="string"?(r=e,i=s?n:t):(i=e,r=e.id);function o(l,c){const f=Jl();return l=l||(f?lt(sc,null):null),l&&Nr(l),l=nc,l._s.has(r)||(s?ic(r,t,i,l):M2(r,i,l)),l._s.get(r)}return o.$id=r,o}var ls=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},An=typeof window>"u"||"Deno"in window;function at(){}function I2(e,t){return typeof e=="function"?e(t):e}function Ei(e){return typeof e=="number"&&e>=0&&e!==1/0}function oc(e,t){return Math.max(e+(t||0)-Date.now(),0)}function da(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:s,queryKey:o,stale:l}=e;if(o){if(r){if(t.queryHash!==Co(o,t.options))return!1}else if(!Fs(t.queryKey,o))return!1}if(n!=="all"){const c=t.isActive();if(n==="active"&&!c||n==="inactive"&&c)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||i&&i!==t.state.fetchStatus||s&&!s(t))}function pa(e,t){const{exact:n,status:r,predicate:i,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(n){if(bn(t.options.mutationKey)!==bn(s))return!1}else if(!Fs(t.options.mutationKey,s))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Co(e,t){return((t==null?void 0:t.queryKeyHashFn)||bn)(e)}function bn(e){return JSON.stringify(e,(t,n)=>Ri(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function Fs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(n=>!Fs(e[n],t[n])):!1}function ac(e,t){if(e===t)return e;const n=ma(e)&&ma(t);if(n||Ri(e)&&Ri(t)){const r=n?e:Object.keys(e),i=r.length,s=n?t:Object.keys(t),o=s.length,l=n?[]:{};let c=0;for(let f=0;f{setTimeout(t,e)})}function Pi(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?ac(e,t):t}function U2(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function L2(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var Ao=Symbol(),un,Jt,Nn,Ga,D2=(Ga=class extends ls{constructor(){super();_(this,un,void 0);_(this,Jt,void 0);_(this,Nn,void 0);Z(this,Nn,t=>{if(!An&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){F(this,Jt)||this.setEventListener(F(this,Nn))}onUnsubscribe(){var t;this.hasListeners()||((t=F(this,Jt))==null||t.call(this),Z(this,Jt,void 0))}setEventListener(t){var n;Z(this,Nn,t),(n=F(this,Jt))==null||n.call(this),Z(this,Jt,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){F(this,un)!==t&&(Z(this,un,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof F(this,un)=="boolean"?F(this,un):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},un=new WeakMap,Jt=new WeakMap,Nn=new WeakMap,Ga),bo=new D2,Un,Kt,Ln,Xa,H2=(Xa=class extends ls{constructor(){super();_(this,Un,!0);_(this,Kt,void 0);_(this,Ln,void 0);Z(this,Ln,t=>{if(!An&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){F(this,Kt)||this.setEventListener(F(this,Ln))}onUnsubscribe(){var t;this.hasListeners()||((t=F(this,Kt))==null||t.call(this),Z(this,Kt,void 0))}setEventListener(t){var n;Z(this,Ln,t),(n=F(this,Kt))==null||n.call(this),Z(this,Kt,t(this.setOnline.bind(this)))}setOnline(t){F(this,Un)!==t&&(Z(this,Un,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return F(this,Un)}},Un=new WeakMap,Kt=new WeakMap,Ln=new WeakMap,Xa),yr=new H2;function V2(e){return Math.min(1e3*2**e,3e4)}function Ur(e){return(e??"online")==="online"?yr.isOnline():!0}var lc=class{constructor(e){this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function ti(e){return e instanceof lc}function cc(e){let t=!1,n=0,r=!1,i,s,o;const l=new Promise((g,y)=>{s=g,o=y}),c=g=>{var y;r||(a(new lc(g)),(y=e.abort)==null||y.call(e))},f=()=>{t=!0},u=()=>{t=!1},d=()=>!bo.isFocused()||e.networkMode!=="always"&&!yr.isOnline(),h=g=>{var y;r||(r=!0,(y=e.onSuccess)==null||y.call(e,g),i==null||i(),s(g))},a=g=>{var y;r||(r=!0,(y=e.onError)==null||y.call(e,g),i==null||i(),o(g))},p=()=>new Promise(g=>{var y;i=C=>{const b=r||!d();return b&&g(C),b},(y=e.onPause)==null||y.call(e)}).then(()=>{var g;i=void 0,r||(g=e.onContinue)==null||g.call(e)}),m=()=>{if(r)return;let g;try{g=e.fn()}catch(y){g=Promise.reject(y)}Promise.resolve(g).then(h).catch(y=>{var A;if(r)return;const C=e.retry??(An?0:3),b=e.retryDelay??V2,w=typeof b=="function"?b(n,y):b,v=C===!0||typeof C=="number"&&n{if(d())return p()}).then(()=>{t?a(y):m()})})};return Ur(e.networkMode)?m():p().then(m),{promise:l,cancel:c,continue:()=>(i==null?void 0:i())?l:Promise.resolve(),cancelRetry:f,continueRetry:u}}function j2(){let e=[],t=0,n=h=>{h()},r=h=>{h()},i=h=>setTimeout(h,0);const s=h=>{i=h},o=h=>{let a;t++;try{a=h()}finally{t--,t||f()}return a},l=h=>{t?e.push(h):i(()=>{n(h)})},c=h=>(...a)=>{l(()=>{h(...a)})},f=()=>{const h=e;e=[],h.length&&i(()=>{r(()=>{h.forEach(a=>{n(a)})})})};return{batch:o,batchCalls:c,schedule:l,setNotifyFunction:h=>{n=h},setBatchNotifyFunction:h=>{r=h},setScheduler:s}}var Qe=j2(),fn,_a,uc=(_a=class{constructor(){_(this,fn,void 0)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Ei(this.gcTime)&&Z(this,fn,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(An?1/0:5*60*1e3))}clearGcTimeout(){F(this,fn)&&(clearTimeout(F(this,fn)),Z(this,fn,void 0))}},fn=new WeakMap,_a),Dn,Hn,rt,qt,it,He,Is,hn,Vn,or,ft,kt,$a,Q2=($a=class extends uc{constructor(t){super();_(this,Vn);_(this,ft);_(this,Dn,void 0);_(this,Hn,void 0);_(this,rt,void 0);_(this,qt,void 0);_(this,it,void 0);_(this,He,void 0);_(this,Is,void 0);_(this,hn,void 0);Z(this,hn,!1),Z(this,Is,t.defaultOptions),le(this,Vn,or).call(this,t.options),Z(this,He,[]),Z(this,rt,t.cache),this.queryKey=t.queryKey,this.queryHash=t.queryHash,Z(this,Dn,t.state||W2(this.options)),this.state=F(this,Dn),this.scheduleGc()}get meta(){return this.options.meta}optionalRemove(){!F(this,He).length&&this.state.fetchStatus==="idle"&&F(this,rt).remove(this)}setData(t,n){const r=Pi(this.state.data,t,this.options);return le(this,ft,kt).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){le(this,ft,kt).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r;const n=F(this,qt);return(r=F(this,it))==null||r.cancel(t),n?n.then(at).catch(at):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(F(this,Dn))}isActive(){return F(this,He).some(t=>t.options.enabled!==!1)}isDisabled(){return this.getObserversCount()>0&&!this.isActive()}isStale(){return this.state.isInvalidated||this.state.data===void 0||F(this,He).some(t=>t.getCurrentResult().isStale)}isStaleByTime(t=0){return this.state.isInvalidated||this.state.data===void 0||!oc(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=F(this,He).find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=F(this,it))==null||n.continue()}onOnline(){var n;const t=F(this,He).find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=F(this,it))==null||n.continue()}addObserver(t){F(this,He).includes(t)||(F(this,He).push(t),this.clearGcTimeout(),F(this,rt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){F(this,He).includes(t)&&(Z(this,He,F(this,He).filter(n=>n!==t)),F(this,He).length||(F(this,it)&&(F(this,hn)?F(this,it).cancel({revert:!0}):F(this,it).cancelRetry()),this.scheduleGc()),F(this,rt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return F(this,He).length}invalidate(){this.state.isInvalidated||le(this,ft,kt).call(this,{type:"invalidate"})}fetch(t,n){var f,u,d,h;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(F(this,qt))return(f=F(this,it))==null||f.continueRetry(),F(this,qt)}if(t&&le(this,Vn,or).call(this,t),!this.options.queryFn){const a=F(this,He).find(p=>p.options.queryFn);a&&le(this,Vn,or).call(this,a.options)}const r=new AbortController,i={queryKey:this.queryKey,meta:this.meta},s=a=>{Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(Z(this,hn,!0),r.signal)})};s(i);const o=()=>!this.options.queryFn||this.options.queryFn===Ao?Promise.reject(new Error(`Missing queryFn: '${this.options.queryHash}'`)):(Z(this,hn,!1),this.options.persister?this.options.persister(this.options.queryFn,i,this):this.options.queryFn(i)),l={fetchOptions:n,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:o};s(l),(u=this.options.behavior)==null||u.onFetch(l,this),Z(this,Hn,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=l.fetchOptions)==null?void 0:d.meta))&&le(this,ft,kt).call(this,{type:"fetch",meta:(h=l.fetchOptions)==null?void 0:h.meta});const c=a=>{var p,m,g,y;ti(a)&&a.silent||le(this,ft,kt).call(this,{type:"error",error:a}),ti(a)||((m=(p=F(this,rt).config).onError)==null||m.call(p,a,this),(y=(g=F(this,rt).config).onSettled)==null||y.call(g,this.state.data,a,this)),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1};return Z(this,it,cc({fn:l.fetchFn,abort:r.abort.bind(r),onSuccess:a=>{var p,m,g,y;if(a===void 0){c(new Error(`${this.queryHash} data is undefined`));return}this.setData(a),(m=(p=F(this,rt).config).onSuccess)==null||m.call(p,a,this),(y=(g=F(this,rt).config).onSettled)==null||y.call(g,a,this.state.error,this),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1},onError:c,onFail:(a,p)=>{le(this,ft,kt).call(this,{type:"failed",failureCount:a,error:p})},onPause:()=>{le(this,ft,kt).call(this,{type:"pause"})},onContinue:()=>{le(this,ft,kt).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode})),Z(this,qt,F(this,it).promise),F(this,qt)}},Dn=new WeakMap,Hn=new WeakMap,rt=new WeakMap,qt=new WeakMap,it=new WeakMap,He=new WeakMap,Is=new WeakMap,hn=new WeakMap,Vn=new WeakSet,or=function(t){this.options={...F(this,Is),...t},this.updateGcTime(this.options.gcTime)},ft=new WeakSet,kt=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:t.meta??null,fetchStatus:Ur(this.options.networkMode)?"fetching":"paused",...r.data===void 0&&{error:null,status:"pending"}};case"success":return{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const i=t.error;return ti(i)&&i.revert&&F(this,Hn)?{...F(this,Hn),fetchStatus:"idle"}:{...r,error:i,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),Qe.batch(()=>{F(this,He).forEach(r=>{r.onQueryUpdate()}),F(this,rt).notify({query:this,type:"updated",action:t})})},$a);function W2(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var xt,el,fc=(el=class extends ls{constructor(n={}){super();_(this,xt,void 0);this.config=n,Z(this,xt,new Map)}build(n,r,i){const s=r.queryKey,o=r.queryHash??Co(s,r);let l=this.get(o);return l||(l=new Q2({cache:this,queryKey:s,queryHash:o,options:n.defaultQueryOptions(r),state:i,defaultOptions:n.getQueryDefaults(s)}),this.add(l)),l}add(n){F(this,xt).has(n.queryHash)||(F(this,xt).set(n.queryHash,n),this.notify({type:"added",query:n}))}remove(n){const r=F(this,xt).get(n.queryHash);r&&(n.destroy(),r===n&&F(this,xt).delete(n.queryHash),this.notify({type:"removed",query:n}))}clear(){Qe.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}get(n){return F(this,xt).get(n)}getAll(){return[...F(this,xt).values()]}find(n){const r={exact:!0,...n};return this.getAll().find(i=>da(r,i))}findAll(n={}){const r=this.getAll();return Object.keys(n).length>0?r.filter(i=>da(n,i)):r}notify(n){Qe.batch(()=>{this.listeners.forEach(r=>{r(n)})})}onFocus(){Qe.batch(()=>{this.getAll().forEach(n=>{n.onFocus()})})}onOnline(){Qe.batch(()=>{this.getAll().forEach(n=>{n.onOnline()})})}},xt=new WeakMap,el),Ct,Ns,tt,jn,At,jt,tl,J2=(tl=class extends uc{constructor(t){super();_(this,At);_(this,Ct,void 0);_(this,Ns,void 0);_(this,tt,void 0);_(this,jn,void 0);this.mutationId=t.mutationId,Z(this,Ns,t.defaultOptions),Z(this,tt,t.mutationCache),Z(this,Ct,[]),this.state=t.state||hc(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options={...F(this,Ns),...t},this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){F(this,Ct).includes(t)||(F(this,Ct).push(t),this.clearGcTimeout(),F(this,tt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){Z(this,Ct,F(this,Ct).filter(n=>n!==t)),this.scheduleGc(),F(this,tt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){F(this,Ct).length||(this.state.status==="pending"?this.scheduleGc():F(this,tt).remove(this))}continue(){var t;return((t=F(this,jn))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,s,o,l,c,f,u,d,h,a,p,m,g,y,C,b,w,v,A,S;const n=()=>(Z(this,jn,cc({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(x,E)=>{le(this,At,jt).call(this,{type:"failed",failureCount:x,error:E})},onPause:()=>{le(this,At,jt).call(this,{type:"pause"})},onContinue:()=>{le(this,At,jt).call(this,{type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode})),F(this,jn).promise),r=this.state.status==="pending";try{if(!r){le(this,At,jt).call(this,{type:"pending",variables:t}),await((s=(i=F(this,tt).config).onMutate)==null?void 0:s.call(i,t,this));const E=await((l=(o=this.options).onMutate)==null?void 0:l.call(o,t));E!==this.state.context&&le(this,At,jt).call(this,{type:"pending",context:E,variables:t})}const x=await n();return await((f=(c=F(this,tt).config).onSuccess)==null?void 0:f.call(c,x,t,this.state.context,this)),await((d=(u=this.options).onSuccess)==null?void 0:d.call(u,x,t,this.state.context)),await((a=(h=F(this,tt).config).onSettled)==null?void 0:a.call(h,x,null,this.state.variables,this.state.context,this)),await((m=(p=this.options).onSettled)==null?void 0:m.call(p,x,null,t,this.state.context)),le(this,At,jt).call(this,{type:"success",data:x}),x}catch(x){try{throw await((y=(g=F(this,tt).config).onError)==null?void 0:y.call(g,x,t,this.state.context,this)),await((b=(C=this.options).onError)==null?void 0:b.call(C,x,t,this.state.context)),await((v=(w=F(this,tt).config).onSettled)==null?void 0:v.call(w,void 0,x,this.state.variables,this.state.context,this)),await((S=(A=this.options).onSettled)==null?void 0:S.call(A,void 0,x,t,this.state.context)),x}finally{le(this,At,jt).call(this,{type:"error",error:x})}}}},Ct=new WeakMap,Ns=new WeakMap,tt=new WeakMap,jn=new WeakMap,At=new WeakSet,jt=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:!Ur(this.options.networkMode),status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Qe.batch(()=>{F(this,Ct).forEach(r=>{r.onMutationUpdate(t)}),F(this,tt).notify({mutation:this,type:"updated",action:t})})},tl);function hc(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ot,Us,dn,nl,dc=(nl=class extends ls{constructor(n={}){super();_(this,ot,void 0);_(this,Us,void 0);_(this,dn,void 0);this.config=n,Z(this,ot,[]),Z(this,Us,0)}build(n,r,i){const s=new J2({mutationCache:this,mutationId:++Zs(this,Us)._,options:n.defaultMutationOptions(r),state:i});return this.add(s),s}add(n){F(this,ot).push(n),this.notify({type:"added",mutation:n})}remove(n){Z(this,ot,F(this,ot).filter(r=>r!==n)),this.notify({type:"removed",mutation:n})}clear(){Qe.batch(()=>{F(this,ot).forEach(n=>{this.remove(n)})})}getAll(){return F(this,ot)}find(n){const r={exact:!0,...n};return F(this,ot).find(i=>pa(r,i))}findAll(n={}){return F(this,ot).filter(r=>pa(n,r))}notify(n){Qe.batch(()=>{this.listeners.forEach(r=>{r(n)})})}resumePausedMutations(){return Z(this,dn,(F(this,dn)??Promise.resolve()).then(()=>{const n=F(this,ot).filter(r=>r.state.isPaused);return Qe.batch(()=>n.reduce((r,i)=>r.then(()=>i.continue().catch(at)),Promise.resolve()))}).then(()=>{Z(this,dn,void 0)})),F(this,dn)}},ot=new WeakMap,Us=new WeakMap,dn=new WeakMap,nl);function Oi(e){return{onFetch:(t,n)=>{const r=async()=>{var p,m,g,y,C;const i=t.options,s=(g=(m=(p=t.fetchOptions)==null?void 0:p.meta)==null?void 0:m.fetchMore)==null?void 0:g.direction,o=((y=t.state.data)==null?void 0:y.pages)||[],l=((C=t.state.data)==null?void 0:C.pageParams)||[],c={pages:[],pageParams:[]};let f=!1;const u=b=>{Object.defineProperty(b,"signal",{enumerable:!0,get:()=>(t.signal.aborted?f=!0:t.signal.addEventListener("abort",()=>{f=!0}),t.signal)})},d=t.options.queryFn&&t.options.queryFn!==Ao?t.options.queryFn:()=>Promise.reject(new Error(`Missing queryFn: '${t.options.queryHash}'`)),h=async(b,w,v)=>{if(f)return Promise.reject();if(w==null&&b.pages.length)return Promise.resolve(b);const A={queryKey:t.queryKey,pageParam:w,direction:v?"backward":"forward",meta:t.options.meta};u(A);const S=await d(A),{maxPages:x}=t.options,E=v?L2:U2;return{pages:E(b.pages,S,x),pageParams:E(b.pageParams,w,x)}};let a;if(s&&o.length){const b=s==="backward",w=b?pc:ki,v={pages:o,pageParams:l},A=w(i,v);a=await h(v,A,b)}else{a=await h(c,l[0]??i.initialPageParam);const b=e??o.length;for(let w=1;w{var i,s;return(s=(i=t.options).persister)==null?void 0:s.call(i,r,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=r}}}function ki(e,{pages:t,pageParams:n}){const r=t.length-1;return e.getNextPageParam(t[r],t,n[r],n)}function pc(e,{pages:t,pageParams:n}){var r;return(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n)}function K2(e,t){return t?ki(e,t)!=null:!1}function q2(e,t){return!t||!e.getPreviousPageParam?!1:pc(e,t)!=null}var Ue,zt,Yt,Qn,Wn,Zt,Jn,Kn,sl,z2=(sl=class{constructor(t={}){_(this,Ue,void 0);_(this,zt,void 0);_(this,Yt,void 0);_(this,Qn,void 0);_(this,Wn,void 0);_(this,Zt,void 0);_(this,Jn,void 0);_(this,Kn,void 0);Z(this,Ue,t.queryCache||new fc),Z(this,zt,t.mutationCache||new dc),Z(this,Yt,t.defaultOptions||{}),Z(this,Qn,new Map),Z(this,Wn,new Map),Z(this,Zt,0)}mount(){Zs(this,Zt)._++,F(this,Zt)===1&&(Z(this,Jn,bo.subscribe(t=>{t&&(this.resumePausedMutations(),F(this,Ue).onFocus())})),Z(this,Kn,yr.subscribe(t=>{t&&(this.resumePausedMutations(),F(this,Ue).onOnline())})))}unmount(){var t,n;Zs(this,Zt)._--,F(this,Zt)===0&&((t=F(this,Jn))==null||t.call(this),Z(this,Jn,void 0),(n=F(this,Kn))==null||n.call(this),Z(this,Kn,void 0))}isFetching(t){return F(this,Ue).findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return F(this,zt).findAll({...t,status:"pending"}).length}getQueryData(t){var r;const n=this.defaultQueryOptions({queryKey:t});return(r=F(this,Ue).get(n.queryHash))==null?void 0:r.state.data}ensureQueryData(t){const n=this.getQueryData(t.queryKey);return n!==void 0?Promise.resolve(n):this.fetchQuery(t)}getQueriesData(t){return this.getQueryCache().findAll(t).map(({queryKey:n,state:r})=>{const i=r.data;return[n,i]})}setQueryData(t,n,r){const i=this.defaultQueryOptions({queryKey:t}),s=F(this,Ue).get(i.queryHash),o=s==null?void 0:s.state.data,l=I2(n,o);if(l!==void 0)return F(this,Ue).build(this,i).setData(l,{...r,manual:!0})}setQueriesData(t,n,r){return Qe.batch(()=>this.getQueryCache().findAll(t).map(({queryKey:i})=>[i,this.setQueryData(i,n,r)]))}getQueryState(t){var r;const n=this.defaultQueryOptions({queryKey:t});return(r=F(this,Ue).get(n.queryHash))==null?void 0:r.state}removeQueries(t){const n=F(this,Ue);Qe.batch(()=>{n.findAll(t).forEach(r=>{n.remove(r)})})}resetQueries(t,n){const r=F(this,Ue),i={type:"active",...t};return Qe.batch(()=>(r.findAll(t).forEach(s=>{s.reset()}),this.refetchQueries(i,n)))}cancelQueries(t={},n={}){const r={revert:!0,...n},i=Qe.batch(()=>F(this,Ue).findAll(t).map(s=>s.cancel(r)));return Promise.all(i).then(at).catch(at)}invalidateQueries(t={},n={}){return Qe.batch(()=>{if(F(this,Ue).findAll(t).forEach(i=>{i.invalidate()}),t.refetchType==="none")return Promise.resolve();const r={...t,type:t.refetchType??t.type??"active"};return this.refetchQueries(r,n)})}refetchQueries(t={},n){const r={...n,cancelRefetch:(n==null?void 0:n.cancelRefetch)??!0},i=Qe.batch(()=>F(this,Ue).findAll(t).filter(s=>!s.isDisabled()).map(s=>{let o=s.fetch(void 0,r);return r.throwOnError||(o=o.catch(at)),s.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(i).then(at)}fetchQuery(t){const n=this.defaultQueryOptions(t);n.retry===void 0&&(n.retry=!1);const r=F(this,Ue).build(this,n);return r.isStaleByTime(n.staleTime)?r.fetch(n):Promise.resolve(r.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(at).catch(at)}fetchInfiniteQuery(t){return t.behavior=Oi(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(at).catch(at)}resumePausedMutations(){return yr.isOnline()?F(this,zt).resumePausedMutations():Promise.resolve()}getQueryCache(){return F(this,Ue)}getMutationCache(){return F(this,zt)}getDefaultOptions(){return F(this,Yt)}setDefaultOptions(t){Z(this,Yt,t)}setQueryDefaults(t,n){F(this,Qn).set(bn(t),{queryKey:t,defaultOptions:n})}getQueryDefaults(t){const n=[...F(this,Qn).values()];let r={};return n.forEach(i=>{Fs(t,i.queryKey)&&(r={...r,...i.defaultOptions})}),r}setMutationDefaults(t,n){F(this,Wn).set(bn(t),{mutationKey:t,defaultOptions:n})}getMutationDefaults(t){const n=[...F(this,Wn).values()];let r={};return n.forEach(i=>{Fs(t,i.mutationKey)&&(r={...r,...i.defaultOptions})}),r}defaultQueryOptions(t){if(t._defaulted)return t;const n={...F(this,Yt).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return n.queryHash||(n.queryHash=Co(n.queryKey,n)),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!=="always"),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode="offlineFirst"),n.enabled!==!0&&n.queryFn===Ao&&(n.enabled=!1),n}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...F(this,Yt).mutations,...(t==null?void 0:t.mutationKey)&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){F(this,Ue).clear(),F(this,zt).clear()}},Ue=new WeakMap,zt=new WeakMap,Yt=new WeakMap,Qn=new WeakMap,Wn=new WeakMap,Zt=new WeakMap,Jn=new WeakMap,Kn=new WeakMap,sl),_e,Oe,Ls,Ye,pn,qn,bt,Ds,zn,Yn,mn,gn,Gt,Zn,vn,vs,Hs,Ti,Vs,Fi,js,Mi,Qs,Bi,Ws,Ii,Js,Ni,Ks,Ui,Ar,mc,rl,Y2=(rl=class extends ls{constructor(t,n){super();_(this,vn);_(this,Hs);_(this,Vs);_(this,js);_(this,Qs);_(this,Ws);_(this,Js);_(this,Ks);_(this,Ar);_(this,_e,void 0);_(this,Oe,void 0);_(this,Ls,void 0);_(this,Ye,void 0);_(this,pn,void 0);_(this,qn,void 0);_(this,bt,void 0);_(this,Ds,void 0);_(this,zn,void 0);_(this,Yn,void 0);_(this,mn,void 0);_(this,gn,void 0);_(this,Gt,void 0);_(this,Zn,new Set);this.options=n,Z(this,_e,t),Z(this,bt,null),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(F(this,Oe).addObserver(this),va(F(this,Oe),this.options)?le(this,vn,vs).call(this):this.updateResult(),le(this,Qs,Bi).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Li(F(this,Oe),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Li(F(this,Oe),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,le(this,Ws,Ii).call(this),le(this,Js,Ni).call(this),F(this,Oe).removeObserver(this)}setOptions(t,n){const r=this.options,i=F(this,Oe);if(this.options=F(this,_e).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean")throw new Error("Expected enabled to be a boolean");le(this,Ks,Ui).call(this),vr(this.options,r)||F(this,_e).getQueryCache().notify({type:"observerOptionsUpdated",query:F(this,Oe),observer:this});const s=this.hasListeners();s&&ya(F(this,Oe),i,this.options,r)&&le(this,vn,vs).call(this),this.updateResult(n),s&&(F(this,Oe)!==i||this.options.enabled!==r.enabled||this.options.staleTime!==r.staleTime)&&le(this,Hs,Ti).call(this);const o=le(this,Vs,Fi).call(this);s&&(F(this,Oe)!==i||this.options.enabled!==r.enabled||o!==F(this,Gt))&&le(this,js,Mi).call(this,o)}getOptimisticResult(t){const n=F(this,_e).getQueryCache().build(F(this,_e),t),r=this.createResult(n,t);return G2(this,r)&&(Z(this,Ye,r),Z(this,qn,this.options),Z(this,pn,F(this,Oe).state)),r}getCurrentResult(){return F(this,Ye)}trackResult(t,n){const r={};return Object.keys(t).forEach(i=>{Object.defineProperty(r,i,{configurable:!1,enumerable:!0,get:()=>(this.trackProp(i),n==null||n(i),t[i])})}),r}trackProp(t){F(this,Zn).add(t)}getCurrentQuery(){return F(this,Oe)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=F(this,_e).defaultQueryOptions(t),r=F(this,_e).getQueryCache().build(F(this,_e),n);return r.isFetchingOptimistic=!0,r.fetch().then(()=>this.createResult(r,n))}fetch(t){return le(this,vn,vs).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),F(this,Ye)))}createResult(t,n){var S;const r=F(this,Oe),i=this.options,s=F(this,Ye),o=F(this,pn),l=F(this,qn),f=t!==r?t.state:F(this,Ls),{state:u}=t;let{error:d,errorUpdatedAt:h,fetchStatus:a,status:p}=u,m=!1,g;if(n._optimisticResults){const x=this.hasListeners(),E=!x&&va(t,n),R=x&&ya(t,r,n,i);(E||R)&&(a=Ur(t.options.networkMode)?"fetching":"paused",u.data===void 0&&(p="pending")),n._optimisticResults==="isRestoring"&&(a="idle")}if(n.select&&u.data!==void 0)if(s&&u.data===(o==null?void 0:o.data)&&n.select===F(this,Ds))g=F(this,zn);else try{Z(this,Ds,n.select),g=n.select(u.data),g=Pi(s==null?void 0:s.data,g,n),Z(this,zn,g),Z(this,bt,null)}catch(x){Z(this,bt,x)}else g=u.data;if(n.placeholderData!==void 0&&g===void 0&&p==="pending"){let x;if(s!=null&&s.isPlaceholderData&&n.placeholderData===(l==null?void 0:l.placeholderData))x=s.data;else if(x=typeof n.placeholderData=="function"?n.placeholderData((S=F(this,Yn))==null?void 0:S.state.data,F(this,Yn)):n.placeholderData,n.select&&x!==void 0)try{x=n.select(x),Z(this,bt,null)}catch(E){Z(this,bt,E)}x!==void 0&&(p="success",g=Pi(s==null?void 0:s.data,x,n),m=!0)}F(this,bt)&&(d=F(this,bt),g=F(this,zn),h=Date.now(),p="error");const y=a==="fetching",C=p==="pending",b=p==="error",w=C&&y,v=u.data!==void 0;return{status:p,fetchStatus:a,isPending:C,isSuccess:p==="success",isError:b,isInitialLoading:w,isLoading:w,data:g,dataUpdatedAt:u.dataUpdatedAt,error:d,errorUpdatedAt:h,failureCount:u.fetchFailureCount,failureReason:u.fetchFailureReason,errorUpdateCount:u.errorUpdateCount,isFetched:u.dataUpdateCount>0||u.errorUpdateCount>0,isFetchedAfterMount:u.dataUpdateCount>f.dataUpdateCount||u.errorUpdateCount>f.errorUpdateCount,isFetching:y,isRefetching:y&&!C,isLoadingError:b&&!v,isPaused:a==="paused",isPlaceholderData:m,isRefetchError:b&&v,isStale:wo(t,n),refetch:this.refetch}}updateResult(t){const n=F(this,Ye),r=this.createResult(F(this,Oe),this.options);if(Z(this,pn,F(this,Oe).state),Z(this,qn,this.options),F(this,pn).data!==void 0&&Z(this,Yn,F(this,Oe)),vr(r,n))return;Z(this,Ye,r);const i={},s=()=>{if(!n)return!0;const{notifyOnChangeProps:o}=this.options,l=typeof o=="function"?o():o;if(l==="all"||!l&&!F(this,Zn).size)return!0;const c=new Set(l??F(this,Zn));return this.options.throwOnError&&c.add("error"),Object.keys(F(this,Ye)).some(f=>{const u=f;return F(this,Ye)[u]!==n[u]&&c.has(u)})};(t==null?void 0:t.listeners)!==!1&&s()&&(i.listeners=!0),le(this,Ar,mc).call(this,{...i,...t})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&le(this,Qs,Bi).call(this)}},_e=new WeakMap,Oe=new WeakMap,Ls=new WeakMap,Ye=new WeakMap,pn=new WeakMap,qn=new WeakMap,bt=new WeakMap,Ds=new WeakMap,zn=new WeakMap,Yn=new WeakMap,mn=new WeakMap,gn=new WeakMap,Gt=new WeakMap,Zn=new WeakMap,vn=new WeakSet,vs=function(t){le(this,Ks,Ui).call(this);let n=F(this,Oe).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(at)),n},Hs=new WeakSet,Ti=function(){if(le(this,Ws,Ii).call(this),An||F(this,Ye).isStale||!Ei(this.options.staleTime))return;const n=oc(F(this,Ye).dataUpdatedAt,this.options.staleTime)+1;Z(this,mn,setTimeout(()=>{F(this,Ye).isStale||this.updateResult()},n))},Vs=new WeakSet,Fi=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(F(this,Oe)):this.options.refetchInterval)??!1},js=new WeakSet,Mi=function(t){le(this,Js,Ni).call(this),Z(this,Gt,t),!(An||this.options.enabled===!1||!Ei(F(this,Gt))||F(this,Gt)===0)&&Z(this,gn,setInterval(()=>{(this.options.refetchIntervalInBackground||bo.isFocused())&&le(this,vn,vs).call(this)},F(this,Gt)))},Qs=new WeakSet,Bi=function(){le(this,Hs,Ti).call(this),le(this,js,Mi).call(this,le(this,Vs,Fi).call(this))},Ws=new WeakSet,Ii=function(){F(this,mn)&&(clearTimeout(F(this,mn)),Z(this,mn,void 0))},Js=new WeakSet,Ni=function(){F(this,gn)&&(clearInterval(F(this,gn)),Z(this,gn,void 0))},Ks=new WeakSet,Ui=function(){const t=F(this,_e).getQueryCache().build(F(this,_e),this.options);if(t===F(this,Oe))return;const n=F(this,Oe);Z(this,Oe,t),Z(this,Ls,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},Ar=new WeakSet,mc=function(t){Qe.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(F(this,Ye))}),F(this,_e).getQueryCache().notify({query:F(this,Oe),type:"observerResultsUpdated"})})},rl);function Z2(e,t){return t.enabled!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function va(e,t){return Z2(e,t)||e.state.data!==void 0&&Li(e,t,t.refetchOnMount)}function Li(e,t,n){if(t.enabled!==!1){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&wo(e,t)}return!1}function ya(e,t,n,r){return n.enabled!==!1&&(e!==t||r.enabled===!1)&&(!n.suspense||e.state.status!=="error")&&wo(e,n)}function wo(e,t){return e.isStaleByTime(t.staleTime)}function G2(e,t){return!vr(e.getCurrentResult(),t)}var X2=class extends Y2{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e,t){super.setOptions({...e,behavior:Oi()},t)}getOptimisticResult(e){return e.behavior=Oi(),super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){var c,f,u,d;const{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:s}=r,o=i&&((f=(c=n.fetchMeta)==null?void 0:c.fetchMore)==null?void 0:f.direction)==="forward",l=i&&((d=(u=n.fetchMeta)==null?void 0:u.fetchMore)==null?void 0:d.direction)==="backward";return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:K2(t,n.data),hasPreviousPage:q2(t,n.data),isFetchingNextPage:o,isFetchingPreviousPage:l,isRefetching:s&&!o&&!l}}},Xt,_t,nt,Ft,Gn,ar,qs,Di,il,_2=(il=class extends ls{constructor(n,r){super();_(this,Gn);_(this,qs);_(this,Xt,void 0);_(this,_t,void 0);_(this,nt,void 0);_(this,Ft,void 0);Z(this,Xt,n),this.setOptions(r),this.bindMethods(),le(this,Gn,ar).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(n){var i;const r=this.options;this.options=F(this,Xt).defaultMutationOptions(n),vr(this.options,r)||F(this,Xt).getMutationCache().notify({type:"observerOptionsUpdated",mutation:F(this,nt),observer:this}),r!=null&&r.mutationKey&&this.options.mutationKey&&bn(r.mutationKey)!==bn(this.options.mutationKey)?this.reset():(i=F(this,nt))==null||i.setOptions(this.options)}onUnsubscribe(){var n;this.hasListeners()||(n=F(this,nt))==null||n.removeObserver(this)}onMutationUpdate(n){le(this,Gn,ar).call(this),le(this,qs,Di).call(this,n)}getCurrentResult(){return F(this,_t)}reset(){var n;(n=F(this,nt))==null||n.removeObserver(this),Z(this,nt,void 0),le(this,Gn,ar).call(this),le(this,qs,Di).call(this)}mutate(n,r){var i;return Z(this,Ft,r),(i=F(this,nt))==null||i.removeObserver(this),Z(this,nt,F(this,Xt).getMutationCache().build(F(this,Xt),this.options)),F(this,nt).addObserver(this),F(this,nt).execute(n)}},Xt=new WeakMap,_t=new WeakMap,nt=new WeakMap,Ft=new WeakMap,Gn=new WeakSet,ar=function(){var r;const n=((r=F(this,nt))==null?void 0:r.state)??hc();Z(this,_t,{...n,isPending:n.status==="pending",isSuccess:n.status==="success",isError:n.status==="error",isIdle:n.status==="idle",mutate:this.mutate,reset:this.reset})},qs=new WeakSet,Di=function(n){Qe.batch(()=>{var r,i,s,o,l,c,f,u;if(F(this,Ft)&&this.hasListeners()){const d=F(this,_t).variables,h=F(this,_t).context;(n==null?void 0:n.type)==="success"?((i=(r=F(this,Ft)).onSuccess)==null||i.call(r,n.data,d,h),(o=(s=F(this,Ft)).onSettled)==null||o.call(s,n.data,null,d,h)):(n==null?void 0:n.type)==="error"&&((c=(l=F(this,Ft)).onError)==null||c.call(l,n.error,d,h),(u=(f=F(this,Ft)).onSettled)==null||u.call(f,void 0,n.error,d,h))}this.listeners.forEach(d=>{d(F(this,_t))})})},il),$2="VUE_QUERY_CLIENT";function gc(e){const t=e?`:${e}`:"";return`${$2}${t}`}function Hi(e,t){Object.keys(e).forEach(n=>{e[n]=t[n]})}function Vi(e,t){if(t){const n=t(e);if(n===void 0&&Fe(e)||n!==void 0)return n}if(Array.isArray(e))return e.map(n=>Vi(n,t));if(typeof e=="object"&&ef(e)){const n=Object.entries(e).map(([r,i])=>[r,Vi(i,t)]);return Object.fromEntries(n)}return e}function pe(e){return Vi(e,t=>{if(Fe(t))return pe(ee(t))})}function ef(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function vc(e,t){return typeof e=="function"?e(...t):!!e}function yc(e=""){if(!Jl())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const t=gc(e),n=lt(t);if(!n)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return n}var tf=class extends fc{find(e){return super.find(pe(e))}findAll(e={}){return super.findAll(pe(e))}},nf=class extends dc{find(e){return super.find(pe(e))}findAll(e={}){return super.findAll(pe(e))}},sf=class extends z2{constructor(e={}){const t={defaultOptions:e.defaultOptions,queryCache:e.queryCache||new tf,mutationCache:e.mutationCache||new nf};super(t),this.isRestoring=Ze(!1)}isFetching(e={}){return super.isFetching(pe(e))}isMutating(e={}){return super.isMutating(pe(e))}getQueryData(e){return super.getQueryData(pe(e))}ensureQueryData(e){return super.ensureQueryData(pe(e))}getQueriesData(e){return super.getQueriesData(pe(e))}setQueryData(e,t,n={}){return super.setQueryData(pe(e),t,pe(n))}setQueriesData(e,t,n={}){return super.setQueriesData(pe(e),t,pe(n))}getQueryState(e){return super.getQueryState(pe(e))}removeQueries(e={}){return super.removeQueries(pe(e))}resetQueries(e={},t={}){return super.resetQueries(pe(e),pe(t))}cancelQueries(e={},t={}){return super.cancelQueries(pe(e),pe(t))}invalidateQueries(e={},t={}){return new Promise(n=>{setTimeout(async()=>{await super.invalidateQueries(pe(e),pe(t)),n()},0)})}refetchQueries(e={},t={}){return super.refetchQueries(pe(e),pe(t))}fetchQuery(e){return super.fetchQuery(pe(e))}prefetchQuery(e){return super.prefetchQuery(pe(e))}fetchInfiniteQuery(e){return super.fetchInfiniteQuery(pe(e))}prefetchInfiniteQuery(e){return super.prefetchInfiniteQuery(pe(e))}setDefaultOptions(e){super.setDefaultOptions(pe(e))}setQueryDefaults(e,t){super.setQueryDefaults(pe(e),pe(t))}getQueryDefaults(e){return super.getQueryDefaults(pe(e))}setMutationDefaults(e,t){super.setMutationDefaults(pe(e),pe(t))}getMutationDefaults(e){return super.getMutationDefaults(pe(e))}},rf={install:(e,t={})=>{const n=gc(t.queryClientKey);let r;if("queryClient"in t&&t.queryClient)r=t.queryClient;else{const o="queryClientConfig"in t?t.queryClientConfig:void 0;r=new sf(o)}An||r.mount();let i=()=>{};if(t.clientPersister){r.isRestoring.value=!0;const[o,l]=t.clientPersister(r);i=o,l.then(()=>{var c;r.isRestoring.value=!1,(c=t.clientPersisterOnSuccess)==null||c.call(t,r)})}const s=()=>{r.unmount(),i()};if(e.onUnmount)e.onUnmount(s);else{const o=e.unmount;e.unmount=function(){s(),o()}}e.provide(n,r)}};function of(e,t,n){const r=n||yc(),i=Ae(()=>{const h=pe(t);typeof h.enabled=="function"&&(h.enabled=h.enabled());const a=r.defaultQueryOptions(h);return a._optimisticResults=r.isRestoring.value?"isRestoring":"optimistic",a}),s=new e(r,i.value),o=Sn(s.getCurrentResult());let l=()=>{};dt(r.isRestoring,h=>{h||(l(),l=s.subscribe(a=>{Hi(o,a)}))},{immediate:!0});const c=()=>{s.setOptions(i.value),Hi(o,s.getCurrentResult())};dt(i,c),to(()=>{l()});const f=(...h)=>(c(),o.refetch(...h)),u=()=>new Promise((h,a)=>{let p=()=>{};const m=()=>{if(i.value.enabled!==!1){s.setOptions(i.value);const g=s.getOptimisticResult(i.value);g.isStale?(p(),s.fetchOptimistic(i.value).then(h,a)):(p(),h(g))}};m(),p=dt(i,m)});dt(()=>o.error,h=>{if(o.isError&&!o.isFetching&&vc(i.value.throwOnError,[h,s.getCurrentQuery()]))throw h});const d=lo(Rr(o));for(const h in o)typeof o[h]=="function"&&(d[h]=o[h]);return d.suspense=u,d.refetch=f,d}function af(e,t){return of(X2,e,t)}function lf(e,t){const n=t||yc(),r=Ae(()=>n.defaultMutationOptions(pe(e))),i=new _2(n,r.value),s=Sn(i.getCurrentResult()),o=i.subscribe(f=>{Hi(s,f)}),l=(f,u)=>{i.mutate(f,u).catch(()=>{})};dt(r,()=>{i.setOptions(r.value)}),to(()=>{o()});const c=lo(Rr(s));return dt(()=>s.error,f=>{if(f&&vc(r.value.throwOnError,[f]))throw f}),{...c,mutate:l,mutateAsync:s.mutate,reset:s.reset}}/*! * vue-router v4.2.5 * (c) 2023 Eduardo San Martin Morote * @license MIT - */const kn=typeof window<"u";function lf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const be=Object.assign;function ti(e,t){const n={};for(const r in t){const i=t[r];n[r]=gt(i)?i.map(e):e(i)}return n}const bs=()=>{},gt=Array.isArray,cf=/\/$/,uf=e=>e.replace(cf,"");function ni(e,t,n="/"){let r,i={},s="",o="";const l=t.indexOf("#");let c=t.indexOf("?");return l=0&&(c=-1),c>-1&&(r=t.slice(0,c),s=t.slice(c+1,l>-1?l:t.length),i=e(s)),l>-1&&(r=r||t.slice(0,l),o=t.slice(l,t.length)),r=pf(r??t,n),{fullPath:r+(s&&"?")+s+o,path:r,query:i,hash:o}}function ff(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function xa(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function hf(e,t,n){const r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&ts(t.matched[r],n.matched[i])&&xc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function ts(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!df(e[n],t[n]))return!1;return!0}function df(e,t){return gt(e)?Ca(e,t):gt(t)?Ca(t,e):e===t}function Ca(e,t){return gt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function pf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),i=r[r.length-1];(i===".."||i===".")&&r.push("");let s=n.length-1,o,l;for(o=0;o1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(o-(o===r.length?1:0)).join("/")}var Ms;(function(e){e.pop="pop",e.push="push"})(Ms||(Ms={}));var ws;(function(e){e.back="back",e.forward="forward",e.unknown=""})(ws||(ws={}));function mf(e){if(!e)if(kn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),uf(e)}const gf=/^[^#]+#/;function vf(e,t){return e.replace(gf,"#")+t}function yf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Ur=()=>({left:window.pageXOffset,top:window.pageYOffset});function xf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),i=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=yf(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Aa(e,t){return(history.state?history.state.position-t:-1)+e}const Vi=new Map;function Cf(e,t){Vi.set(e,t)}function Af(e){const t=Vi.get(e);return Vi.delete(e),t}let bf=()=>location.protocol+"//"+location.host;function Cc(e,t){const{pathname:n,search:r,hash:i}=t,s=e.indexOf("#");if(s>-1){let l=i.includes(e.slice(s))?e.slice(s).length:1,c=i.slice(l);return c[0]!=="/"&&(c="/"+c),xa(c,"")}return xa(n,e)+r+i}function wf(e,t,n,r){let i=[],s=[],o=null;const l=({state:f})=>{const a=Cc(e,location),p=n.value,m=t.value;let g=0;if(f){if(n.value=a,t.value=f,o&&o===p){o=null;return}g=m?f.position-m.position:0}else r(a);i.forEach(y=>{y(n.value,p,{delta:g,type:Ms.pop,direction:g?g>0?ws.forward:ws.back:ws.unknown})})};function c(){o=n.value}function h(f){i.push(f);const a=()=>{const p=i.indexOf(f);p>-1&&i.splice(p,1)};return s.push(a),a}function u(){const{history:f}=window;f.state&&f.replaceState(be({},f.state,{scroll:Ur()}),"")}function d(){for(const f of s)f();s=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:c,listen:h,destroy:d}}function ba(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Ur():null}}function Sf(e){const{history:t,location:n}=window,r={value:Cc(e,n)},i={value:t.state};i.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(c,h,u){const d=e.indexOf("#"),f=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+c:bf()+e+c;try{t[u?"replaceState":"pushState"](h,"",f),i.value=h}catch(a){console.error(a),n[u?"replace":"assign"](f)}}function o(c,h){const u=be({},t.state,ba(i.value.back,c,i.value.forward,!0),h,{position:i.value.position});s(c,u,!0),r.value=c}function l(c,h){const u=be({},i.value,t.state,{forward:c,scroll:Ur()});s(u.current,u,!0);const d=be({},ba(r.value,c,null),{position:u.position+1},h);s(c,d,!1),r.value=c}return{location:r,state:i,push:l,replace:o}}function Ef(e){e=mf(e);const t=Sf(e),n=wf(e,t.state,t.location,t.replace);function r(s,o=!0){o||n.pauseListeners(),history.go(s)}const i=be({location:"",base:e,go:r,createHref:vf.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Rf(e){return typeof e=="string"||e&&typeof e=="object"}function Ac(e){return typeof e=="string"||typeof e=="symbol"}const Dt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},bc=Symbol("");var wa;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(wa||(wa={}));function ns(e,t){return be(new Error,{type:e,[bc]:!0},t)}function Ot(e,t){return e instanceof Error&&bc in e&&(t==null||!!(e.type&t))}const Sa="[^/]+?",Pf={sensitive:!1,strict:!1,start:!0,end:!0},Of=/[.+*?^${}()[\]/\\]/g;function kf(e,t){const n=be({},Pf,t),r=[];let i=n.start?"^":"";const s=[];for(const h of e){const u=h.length?[]:[90];n.strict&&!h.length&&(i+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function Ff(e,t){let n=0;const r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}const Mf={type:0,value:""},Bf=/[a-zA-Z0-9_]/;function If(e){if(!e)return[[]];if(e==="/")return[[Mf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(a){throw new Error(`ERR (${n})/"${h}": ${a}`)}let n=0,r=n;const i=[];let s;function o(){s&&i.push(s),s=[]}let l=0,c,h="",u="";function d(){h&&(n===0?s.push({type:0,value:h}):n===1||n===2||n===3?(s.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${h}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:h,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),h="")}function f(){h+=c}for(;l{o(C)}:bs}function o(u){if(Ac(u)){const d=r.get(u);d&&(r.delete(u),n.splice(n.indexOf(d),1),d.children.forEach(o),d.alias.forEach(o))}else{const d=n.indexOf(u);d>-1&&(n.splice(d,1),u.record.name&&r.delete(u.record.name),u.children.forEach(o),u.alias.forEach(o))}}function l(){return n}function c(u){let d=0;for(;d=0&&(u.record.path!==n[d].record.path||!wc(u,n[d]));)d++;n.splice(d,0,u),u.record.name&&!Pa(u)&&r.set(u.record.name,u)}function h(u,d){let f,a={},p,m;if("name"in u&&u.name){if(f=r.get(u.name),!f)throw ns(1,{location:u});m=f.record.name,a=be(Ra(d.params,f.keys.filter(C=>!C.optional).map(C=>C.name)),u.params&&Ra(u.params,f.keys.map(C=>C.name))),p=f.stringify(a)}else if("path"in u)p=u.path,f=n.find(C=>C.re.test(p)),f&&(a=f.parse(p),m=f.record.name);else{if(f=d.name?r.get(d.name):n.find(C=>C.re.test(d.path)),!f)throw ns(1,{location:u,currentLocation:d});m=f.record.name,a=be({},d.params,u.params),p=f.stringify(a)}const g=[];let y=f;for(;y;)g.unshift(y.record),y=y.parent;return{name:m,path:p,params:a,matched:g,meta:Hf(g)}}return e.forEach(u=>s(u)),{addRoute:s,resolve:h,removeRoute:o,getRoutes:l,getRecordMatcher:i}}function Ra(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Lf(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Df(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function Df(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Pa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Hf(e){return e.reduce((t,n)=>be(t,n.meta),{})}function Oa(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function wc(e,t){return t.children.some(n=>n===e||wc(e,n))}const Sc=/#/g,Vf=/&/g,jf=/\//g,Qf=/=/g,Wf=/\?/g,Ec=/\+/g,Jf=/%5B/g,Kf=/%5D/g,Rc=/%5E/g,qf=/%60/g,Pc=/%7B/g,zf=/%7C/g,Oc=/%7D/g,Yf=/%20/g;function So(e){return encodeURI(""+e).replace(zf,"|").replace(Jf,"[").replace(Kf,"]")}function Zf(e){return So(e).replace(Pc,"{").replace(Oc,"}").replace(Rc,"^")}function ji(e){return So(e).replace(Ec,"%2B").replace(Yf,"+").replace(Sc,"%23").replace(Vf,"%26").replace(qf,"`").replace(Pc,"{").replace(Oc,"}").replace(Rc,"^")}function Gf(e){return ji(e).replace(Qf,"%3D")}function Xf(e){return So(e).replace(Sc,"%23").replace(Wf,"%3F")}function _f(e){return e==null?"":Xf(e).replace(jf,"%2F")}function xr(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function $f(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;is&&ji(s)):[r&&ji(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function e1(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=gt(r)?r.map(i=>i==null?null:""+i):r==null?r:""+r)}return t}const t1=Symbol(""),Ta=Symbol(""),Lr=Symbol(""),kc=Symbol(""),Qi=Symbol("");function ds(){let e=[];function t(r){return e.push(r),()=>{const i=e.indexOf(r);i>-1&&e.splice(i,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Wt(e,t,n,r,i){const s=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((o,l)=>{const c=d=>{d===!1?l(ns(4,{from:n,to:t})):d instanceof Error?l(d):Rf(d)?l(ns(2,{from:t,to:d})):(s&&r.enterCallbacks[i]===s&&typeof d=="function"&&s.push(d),o())},h=e.call(r&&r.instances[i],t,n,c);let u=Promise.resolve(h);e.length<3&&(u=u.then(c)),u.catch(d=>l(d))})}function si(e,t,n,r){const i=[];for(const s of e)for(const o in s.components){let l=s.components[o];if(!(t!=="beforeRouteEnter"&&!s.instances[o]))if(n1(l)){const h=(l.__vccOpts||l)[t];h&&i.push(Wt(h,n,r,s,o))}else{let c=l();i.push(()=>c.then(h=>{if(!h)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${s.path}"`));const u=lf(h)?h.default:h;s.components[o]=u;const f=(u.__vccOpts||u)[t];return f&&Wt(f,n,r,s,o)()}))}}return i}function n1(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Fa(e){const t=lt(Lr),n=lt(kc),r=Ae(()=>t.resolve(ee(e.to))),i=Ae(()=>{const{matched:c}=r.value,{length:h}=c,u=c[h-1],d=n.matched;if(!u||!d.length)return-1;const f=d.findIndex(ts.bind(null,u));if(f>-1)return f;const a=Ma(c[h-2]);return h>1&&Ma(u)===a&&d[d.length-1].path!==a?d.findIndex(ts.bind(null,c[h-2])):f}),s=Ae(()=>i.value>-1&&o1(n.params,r.value.params)),o=Ae(()=>i.value>-1&&i.value===n.matched.length-1&&xc(n.params,r.value.params));function l(c={}){return i1(c)?t[ee(e.replace)?"replace":"push"](ee(e.to)).catch(bs):Promise.resolve()}return{route:r,href:Ae(()=>r.value.href),isActive:s,isExactActive:o,navigate:l}}const s1=Me({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Fa,setup(e,{slots:t}){const n=Sn(Fa(e)),{options:r}=lt(Lr),i=Ae(()=>({[Ba(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Ba(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:tc("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},s)}}}),r1=s1;function i1(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function o1(e,t){for(const n in t){const r=t[n],i=e[n];if(typeof r=="string"){if(r!==i)return!1}else if(!gt(i)||i.length!==r.length||r.some((s,o)=>s!==i[o]))return!1}return!0}function Ma(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ba=(e,t,n)=>e??t??n,a1=Me({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=lt(Qi),i=Ae(()=>e.route||r.value),s=lt(Ta,0),o=Ae(()=>{let h=ee(s);const{matched:u}=i.value;let d;for(;(d=u[h])&&!d.components;)h++;return h}),l=Ae(()=>i.value.matched[o.value]);sr(Ta,Ae(()=>o.value+1)),sr(t1,l),sr(Qi,i);const c=Ze();return dt(()=>[c.value,l.value,e.name],([h,u,d],[f,a,p])=>{u&&(u.instances[d]=h,a&&a!==u&&h&&h===f&&(u.leaveGuards.size||(u.leaveGuards=a.leaveGuards),u.updateGuards.size||(u.updateGuards=a.updateGuards))),h&&u&&(!a||!ts(u,a)||!f)&&(u.enterCallbacks[d]||[]).forEach(m=>m(h))},{flush:"post"}),()=>{const h=i.value,u=e.name,d=l.value,f=d&&d.components[u];if(!f)return Ia(n.default,{Component:f,route:h});const a=d.props[u],p=a?a===!0?h.params:typeof a=="function"?a(h):a:null,g=tc(f,be({},p,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(d.instances[u]=null)},ref:c}));return Ia(n.default,{Component:g,route:h})||g}}});function Ia(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Tc=a1;function l1(e){const t=Uf(e.routes,e),n=e.parseQuery||$f,r=e.stringifyQuery||ka,i=e.history,s=ds(),o=ds(),l=ds(),c=Wu(Dt);let h=Dt;kn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=ti.bind(null,N=>""+N),d=ti.bind(null,_f),f=ti.bind(null,xr);function a(N,z){let Y,ne;return Ac(N)?(Y=t.getRecordMatcher(N),ne=z):ne=N,t.addRoute(ne,Y)}function p(N){const z=t.getRecordMatcher(N);z&&t.removeRoute(z)}function m(){return t.getRoutes().map(N=>N.record)}function g(N){return!!t.getRecordMatcher(N)}function y(N,z){if(z=be({},z||c.value),typeof N=="string"){const M=ni(n,N,z.path),I=t.resolve({path:M.path},z),L=i.createHref(M.fullPath);return be(M,I,{params:f(I.params),hash:xr(M.hash),redirectedFrom:void 0,href:L})}let Y;if("path"in N)Y=be({},N,{path:ni(n,N.path,z.path).path});else{const M=be({},N.params);for(const I in M)M[I]==null&&delete M[I];Y=be({},N,{params:d(M)}),z.params=d(z.params)}const ne=t.resolve(Y,z),Ce=N.hash||"";ne.params=u(f(ne.params));const P=ff(r,be({},N,{hash:Zf(Ce),path:ne.path})),O=i.createHref(P);return be({fullPath:P,hash:Ce,query:r===ka?e1(N.query):N.query||{}},ne,{redirectedFrom:void 0,href:O})}function C(N){return typeof N=="string"?ni(n,N,c.value.path):be({},N)}function b(N,z){if(h!==N)return ns(8,{from:z,to:N})}function w(N){return S(N)}function v(N){return w(be(C(N),{replace:!0}))}function A(N){const z=N.matched[N.matched.length-1];if(z&&z.redirect){const{redirect:Y}=z;let ne=typeof Y=="function"?Y(N):Y;return typeof ne=="string"&&(ne=ne.includes("?")||ne.includes("#")?ne=C(ne):{path:ne},ne.params={}),be({query:N.query,hash:N.hash,params:"path"in ne?{}:N.params},ne)}}function S(N,z){const Y=h=y(N),ne=c.value,Ce=N.state,P=N.force,O=N.replace===!0,M=A(Y);if(M)return S(be(C(M),{state:typeof M=="object"?be({},Ce,M.state):Ce,force:P,replace:O}),z||Y);const I=Y;I.redirectedFrom=z;let L;return!P&&hf(r,ne,Y)&&(L=ns(16,{to:I,from:ne}),Se(ne,ne,!0,!1)),(L?Promise.resolve(L):R(I,ne)).catch(H=>Ot(H)?Ot(H,2)?H:xe(H):X(H,I,ne)).then(H=>{if(H){if(Ot(H,2))return S(be({replace:O},C(H.to),{state:typeof H.to=="object"?be({},Ce,H.to.state):Ce,force:P}),z||I)}else H=T(I,ne,!0,O,Ce);return k(I,ne,H),H})}function x(N,z){const Y=b(N,z);return Y?Promise.reject(Y):Promise.resolve()}function E(N){const z=Ee.values().next().value;return z&&typeof z.runWithContext=="function"?z.runWithContext(N):N()}function R(N,z){let Y;const[ne,Ce,P]=c1(N,z);Y=si(ne.reverse(),"beforeRouteLeave",N,z);for(const M of ne)M.leaveGuards.forEach(I=>{Y.push(Wt(I,N,z))});const O=x.bind(null,N,z);return Y.push(O),me(Y).then(()=>{Y=[];for(const M of s.list())Y.push(Wt(M,N,z));return Y.push(O),me(Y)}).then(()=>{Y=si(Ce,"beforeRouteUpdate",N,z);for(const M of Ce)M.updateGuards.forEach(I=>{Y.push(Wt(I,N,z))});return Y.push(O),me(Y)}).then(()=>{Y=[];for(const M of P)if(M.beforeEnter)if(gt(M.beforeEnter))for(const I of M.beforeEnter)Y.push(Wt(I,N,z));else Y.push(Wt(M.beforeEnter,N,z));return Y.push(O),me(Y)}).then(()=>(N.matched.forEach(M=>M.enterCallbacks={}),Y=si(P,"beforeRouteEnter",N,z),Y.push(O),me(Y))).then(()=>{Y=[];for(const M of o.list())Y.push(Wt(M,N,z));return Y.push(O),me(Y)}).catch(M=>Ot(M,8)?M:Promise.reject(M))}function k(N,z,Y){l.list().forEach(ne=>E(()=>ne(N,z,Y)))}function T(N,z,Y,ne,Ce){const P=b(N,z);if(P)return P;const O=z===Dt,M=kn?history.state:{};Y&&(ne||O?i.replace(N.fullPath,be({scroll:O&&M&&M.scroll},Ce)):i.push(N.fullPath,Ce)),c.value=N,Se(N,z,Y,O),xe()}let B;function V(){B||(B=i.listen((N,z,Y)=>{if(!Je.listening)return;const ne=y(N),Ce=A(ne);if(Ce){S(be(Ce,{replace:!0}),ne).catch(bs);return}h=ne;const P=c.value;kn&&Cf(Aa(P.fullPath,Y.delta),Ur()),R(ne,P).catch(O=>Ot(O,12)?O:Ot(O,2)?(S(O.to,ne).then(M=>{Ot(M,20)&&!Y.delta&&Y.type===Ms.pop&&i.go(-1,!1)}).catch(bs),Promise.reject()):(Y.delta&&i.go(-Y.delta,!1),X(O,ne,P))).then(O=>{O=O||T(ne,P,!1),O&&(Y.delta&&!Ot(O,8)?i.go(-Y.delta,!1):Y.type===Ms.pop&&Ot(O,20)&&i.go(-1,!1)),k(ne,P,O)}).catch(bs)}))}let D=ds(),W=ds(),Q;function X(N,z,Y){xe(N);const ne=W.list();return ne.length?ne.forEach(Ce=>Ce(N,z,Y)):console.error(N),Promise.reject(N)}function de(){return Q&&c.value!==Dt?Promise.resolve():new Promise((N,z)=>{D.add([N,z])})}function xe(N){return Q||(Q=!N,V(),D.list().forEach(([z,Y])=>N?Y(N):z()),D.reset()),N}function Se(N,z,Y,ne){const{scrollBehavior:Ce}=e;if(!kn||!Ce)return Promise.resolve();const P=!Y&&Af(Aa(N.fullPath,0))||(ne||!Y)&&history.state&&history.state.scroll||null;return co().then(()=>Ce(N,z,P)).then(O=>O&&xf(O)).catch(O=>X(O,N,z))}const ie=N=>i.go(N);let Pe;const Ee=new Set,Je={currentRoute:c,listening:!0,addRoute:a,removeRoute:p,hasRoute:g,getRoutes:m,resolve:y,options:e,push:w,replace:v,go:ie,back:()=>ie(-1),forward:()=>ie(1),beforeEach:s.add,beforeResolve:o.add,afterEach:l.add,onError:W.add,isReady:de,install(N){const z=this;N.component("RouterLink",r1),N.component("RouterView",Tc),N.config.globalProperties.$router=z,Object.defineProperty(N.config.globalProperties,"$route",{enumerable:!0,get:()=>ee(c)}),kn&&!Pe&&c.value===Dt&&(Pe=!0,w(i.location).catch(Ce=>{}));const Y={};for(const Ce in Dt)Object.defineProperty(Y,Ce,{get:()=>c.value[Ce],enumerable:!0});N.provide(Lr,z),N.provide(kc,Rl(Y)),N.provide(Qi,c);const ne=N.unmount;Ee.add(N),N.unmount=function(){Ee.delete(N),Ee.size<1&&(h=Dt,B&&B(),B=null,c.value=Dt,Pe=!1,Q=!1),ne()}}};function me(N){return N.reduce((z,Y)=>z.then(()=>E(Y)),Promise.resolve())}return Je}function c1(e,t){const n=[],r=[],i=[],s=Math.max(t.matched.length,e.matched.length);for(let o=0;ots(h,l))?r.push(l):n.push(l));const c=e.matched[o];c&&(t.matched.find(h=>ts(h,c))||i.push(c))}return[n,r,i]}function Dr(){return lt(Lr)}const cs=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n},u1={},f1={class:"flex flex-col my-0 mx-auto w-full h-full min-[500px]:w-[500px]"};function h1(e,t){return re(),ce("div",f1,[In(e.$slots,"default")])}const d1=cs(u1,[["render",h1]]),p1=Me({__name:"App",setup(e){return(t,n)=>(re(),It(d1,null,{default:Ge(()=>[he(ee(Tc))]),_:1}))}}),m1="data:image/png;base64,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",g1="data:image/png;base64,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",v1="data:image/png;base64,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",y1="data:image/png;base64,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",x1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABOCAYAAACOqiAdAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAo8SURBVHgB7Zx9bBPnHcd/MdXabl1iVmlEauKaUjE1lRpXGl2iaqpZp6Kq3RoGjE2rSFhVdSANCEwbFWiJqyG11UoSbUKVmEqCijQG69LBH5R1i6eqI+s04SAtrRgZlxekMonNDlU7NBH6+z65M88999z5zq8B+yNdbD/3nGN//Xt5nuee56mjChGNRsNXr16N19XVRfllKx6vXbsWtU4r1dN8GFwnzXUMfj4WCoVS/JgyDCNNFaCOygiLFZ+bm3uKn3aQU5x8EQKykEMsYpLKRMmFk8Tq4iNMpcXgI1kOEUsmHAvWwW61lY84VYYU/++B6enpQSoBRReuubm5g2NRHwVwxfo7bqOmxgZquXeJeN20pMF2fuZihmY/+h8fV2j83EXxPAAGC5gotoBFEw4uyR+wx4+FQaD21ruprTUinqtC5WLmwwyNT1yk0bEpOjU2KcT0gcEuvJJd2KAiULBwyI4cw3r46Tavem2xu1msCK1d9UBgoXIBISFi38F3+HnOJNs7NTWVoAIpSDgWLcqijZCHW0Kw7g1fFdZVDiDg0bfO0BE+PCjY+vIWLhKJdPJDP7lkynILpgIr7GcL9BAQpplg6+unPMhLOBYNrtmrO9fUGKZXfvxkxQRTOfnuWUrse9vLhfNy3UUUEBYNGXOn7twzax6iX+7uoGWRO2mhgM/yzJoVVFc378Ya4g0NDeFMJvMWBSCQxbFoB2i+IWujUlaWnv2Yht4YpeR7Z8Xr6F1foKe+HqP4V5Zr60O4HS8fd7O+Qba8jeQT38KZlubInGhO7E+sFe0wHcm/nqWx92cofflj8fqRh5a7frEgGDOXaOXTe8m4cMlxLnrXnTTy+naKNjktH7Fv/Y5DbuL1s3jd5ANfwrnFNCQAiFZ/x62Oa4bfTtHGnxwUVqGCL9a75Unq/FY7uQFhQLj+dj4+6zgP0fCjuIH/cT65R3sODWhYHuKfBl8xL6dwLNpWms+eNtZxe+zn7J46INrqTa+SFxDjv3/fayuDEANDfxKPsuCwUBxww9h9TaJs6cpdWXHdOD+yR2t1Fj9i8XRZl5sqXdxSGSIPPIUz22mnSWlyPPbwctr/wlrX63JZg8W1f86LCwE27hzydQ0E7Nv1bere8xtbfQgkC4nXEC4X67cf4tg3qRanWbwHvdp5IfLAbNzaRJtPBN+gQun54XVr9Ss0QL0Hv/mzbH0IdPr3u4VIB17qFMJ2sGUixvlh/wtrqGXZErUYvaER9IrcrnO1OF1cg2iHX/meayKwwJdavflV4W74Yr/bt0m4GAJ5anxGxC0rQQy+cYpjoadX5ATCWS6cDx4JwzVZaIUzXfS8Wn5479O+mxwQzbjwH9FE0AV3iyDW5gaSAJJBIaCpsn77645ys2uWdJTr3sR0URvdncG6TxALVuAlGihUtG1djxYsGsB3+z43lFUw4qOr77A4Hk/r4vG0A3IZXPTdQ5upFPjJjrmAcHD92H3N4jXajHIG9guaKY8/95rDZVm81TyeNyyXOYTj2AYXjcplyKDIpKWgf/CPnCGPUCkY5GTh1VbU4eKyBse6pXKBra9qWluXXIbxs83fDfbPg9AWu4cys5/wBz5PRYc7qN954suBLkHig3gYdZYI19fXj83Ozn5gFYTs/6duq/pGGBoqNX2719maJ8Ui/PnbKR8Qz1U4Sdi0yQqHoW9+iMknxWhtY3FHa91AFwzZsUtxLSQXxC+Uo+GrYp1XkxDKerbk92MgUbTx0L4MbgmYGgmyMU438hGk+VFskDB0/VRdMrGEbeXkACvz6mb5xSXWDXCsEwMdsqvG5RrIpJUcjMSX1zVltnZ+zVGGJk0XN6LRJkxf/oSKgc7qmE7riRDONMGoXGNbGWJbPqDdtq3zUe05NLoTvzhOxaIt5jCcsOWuQjhu8HaqNdoXyNC3jp4tTzhioUW+CUHHuscecJSxVpi+kXVVW1JoubexbEkhH+DC6NDjQIfeAu6db0LQId8kl8B0DrrFvC9qE26h3GjJBazOsjy3ZFIo0EK54Y2ufBgWF1MrtzuD4oLHLZkUSptei3hItTbQsuyLVGOe+51jdYhzUYfFWRNgaswDLaCJQmuIu1k2W9QEw6pHNSTMHg1xV8I2PFz/uduohh11aB1TbkPmHNwsult9NZw4LK4W35xoNImGqEZe1ITLk5pweQLhDLkA9xhr2NFokq5ZnA8uK7PcuSVioDliyIXjE/+mGnYyH11Ri9JojthmnPiYtV11YGmADNaTwVVTciFuytbi3HWghWZByljIXI1no+au1/nHhHPxCVYuhhYtWpRUT5xyzherWkb1WqRC5npPw155imrMo2rByVSskbWaI2/KJ8fPfViLc2SuGTvnSAwiJwjh2GeH1YuOnDxD1Y7OTbEWVjziDybOYdm27aJUzV2xqE4GbV5rkmG258AmaJtPCrWrOdaJGUtKuGKNktbzrHA6d+0beoeqlaP6afxZ48oKZ7prUq5YrVYHS1PXP5jZNGm9VufHDahvUo1W13/Q+Z1VbWzCsaLDaqe/2qwOy5Q01oakMCiXOYaVuJJjXv+Ol4+JjQSqgcS+PzjKWBPH2i7HetV0Ov1BOByOkzTtC6Jd+f9Viq+4h25mEJbUhXGwtsnJScdyTO1Apk7h13773k3tsvhuLrFtpa6+doU0W53R0NCwmJ+22d98klY9/CXdlIAbGmTRZ3uO6sJRgq1tWHeN61ouTGXiBt9paaMoAe5qY27wzXLjGmI9/tyvHI1d00WXul3nes8BIwAwU7UrhtHQZ396lG4WkPg0oqXdXNTCczMDdtn04sWLL7LVdcjlWDyBY1WJVtuUix0vHadjyXHdqefZ2k54XZtzFwjWLsXxDi4dl8theRgpjq9YRrd+5ha6kYB7bth5mE7+RbsAD3uRvJjrPXxtn5HJZJK6ZDExfUn8YjdSwoBbbnj+13T6/Qu601jHsNPP+/jed4TFO8HiIVjaJiLi18Mvd/8Cn3AN0ORA9pyY0q5WHGLRfkA+CbRhC4s3rLM8iGeNJrTHFt78YXy+F/eP0K7+E249oIEgooHAO92YlueIeUBsCMUjx82N4QWz2w0+E1zzz3/7l1uVhF/3lAksHDBjXoZTNizPFtzwix4bGRdZFxOPKxX7rF1t0BvQWZm5Uemm6enp8m1KZYEJ//zPR9RGsgxWIGKPknJug4Y+56jHLU40btFOq8g2aDKRSKSXH3q86iBxYH0Y1lAUO4nAuo+cOCNEG819T3iAR3J7C90Gt5hbPea0Pgt025BExFaP/DyokBAKt+3EVo+pScfcDh0Y3cbgRbF2ay2acBZYns6/aI8fAS0QB1vMeIg+sCqk1SWCWNZGo36BW87NzXWrmxEUStGFszAFxHa2MaoAsDAWbKDYgmXfn0qMuYEyNkl4JIgV5oOZKYdwx+6G3UBZhyRiaxEt0eDjzXKIJVNW4WTMDZ8gXozFbDUXqqAsqq69IHNSEOKVmNQXCo2ZZclKbRL/Kek6rywCjp3QAAAAAElFTkSuQmCC",C1="data:image/png;base64,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",A1="data:image/png;base64,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",b1="data:image/png;base64,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",w1="data:image/png;base64,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",S1="data:image/png;base64,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",E1={class:"flex justify-end items-center bg-[#FCBF31] rounded-r-full py-1 pr-1 pl-6 border-2 border-black border-l-0"},R1=K("span",{class:"text-subtitle mr-3 font-bold"},"NEXT",-1),P1=["src"],O1=Me({__name:"NextBlock",props:{nextIndex:{type:Number,default:0}},setup(e){const t=e,n={1:m1,2:g1,3:v1,4:y1,5:x1,6:C1,7:A1,8:b1,9:w1,10:S1},r=Ae(()=>{if(t.nextIndex in n)return n[t.nextIndex]});return(i,s)=>(re(),ce("div",E1,[R1,K("img",{src:r.value,class:"w-[26px] h-[26px]"},null,8,P1)]))}}),k1="data:image/svg+xml,%3csvg%20width='185'%20height='37'%20viewBox='0%200%20185%2037'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M23.4694%207.95518C21.997%206.70688%2020.0195%206.41223%2018.1614%206.41223C11.8952%206.41223%207.47036%208.38623%203.72574%2013.6984C3.02871%2014.6872%202.02975%2016.0504%201.73171%2017.27C1.11513%2019.7931%202.03722%2022.9521%202.54617%2025.3562C3.01634%2027.577%203.09501%2031.3632%205.18615%2032.8137C7.4063%2034.3538%209.31842%2034.8524%2011.8984%2034.6424C16.1031%2034.3002%2021.3045%2035.0085%2023.8485%2030.9708C25.3739%2028.5499%2025.2387%2026.156%2025.2387%2023.3846'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M16.1206%2024.5332C18.6681%2024.5332%2022.1089%2024.8539%2024.46%2023.8101C25.5347%2023.3329%2026.8223%2025.5178%2027.0082%2026.2977C27.3172%2027.5941%2028.0047%2028.8553%2028.1085%2030.2027C28.1479%2030.7143%2028.4979%2032.6679%2028.8903%2032.8639'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M45.5195%2018.9062C43.713%2018.9062%2041.8658%2018.7818%2040.0681%2018.9381C36.2347%2019.2714%2033.7237%2023.2894%2033.501%2026.7963C33.281%2030.2618%2033.2558%2031.0222%2036.2426%2031.5941C38.8324%2032.09%2042.1692%2033.9881%2044.2921%2031.8651C46.9026%2029.2547%2046.954%2027.0863%2046.954%2023.6243C46.954%2022.8699%2046.954%2022.1154%2046.954%2021.3609C46.954%2020.2014%2047.8089%2021.7147%2048.1336%2022.0941C51.3013%2025.7954%2054.4514%2029.5097%2057.5698%2033.2519'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M61.6381%2020.0537C61.6381%2021.7372%2062.2023%2023.4454%2062.6423%2025.0587C63.1023%2026.7457%2063.1996%2028.3964%2063.503%2030.0956C63.5397%2030.3013%2063.9334%2032.0179%2063.9334%2030.9564C63.9334%2028.6842%2064.3213%2026.5351%2064.7303%2024.2936C65.0731%2022.4155%2065.0927%2020.4723%2066.7069%2019.2886C68.0889%2018.2751%2068.2489%2018.1957%2069.1137%2019.6552C70.4103%2021.8431%2070.9237%2024.058%2071.409%2026.5252C71.6709%2027.8565%2071.807%2029.3128%2072.1901%2030.6057C72.5145%2031.7008%2072.2413%2030.174%2072.1901%2029.7768C71.7889%2026.6677%2071.4451%2021.4418%2073.529%2018.7626C74.3927%2017.6521%2077.3345%2021.2185%2078.0559%2022.1896C79.2855%2023.8449%2079.7521%2025.9628%2080.6381%2027.8003C80.952%2028.4514%2081.4351%2029.0699%2081.4351%2029.8087'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M84.8779%2024.9314C88.411%2024.9314%2091.9289%2024.6692%2095.4618%2024.6445C97.2723%2024.6318%2099.0792%2024.5265%20100.881%2024.3575C101.722%2024.2787%20100.539%2022.6444%20100.371%2022.3651C98.1466%2018.6573%2093.4209%2016.2697%2089.3091%2018.6193C88.3747%2019.1532%2087.7471%2020.572%2087.7471%2021.6319C87.7471%2022.9352%2087.9762%2024.2014%2088.1774%2025.4893C88.2736%2026.1048%2088.1463%2028.3941%2088.9585%2028.725C91.2752%2029.6689%2093.4985%2030.7979%2096.0675%2030.9406C97.0674%2030.9961%2098.6352%2031.2531%2099.5105%2030.6696'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M128.673%201.97827C125.774%204.39382%20124.402%206.86071%20122.951%2010.4263C120.878%2015.5174%20119.486%2021.4132%20122.058%2026.5572C123.395%2029.2315%20125.527%2031.4883%20128.657%2031.2275C130.832%2031.0462%20134.234%2030.0047%20136.101%2028.8046C139.748%2026.4601%20139.862%2019.3628%20139.862%2015.7501C139.862%2012.1221%20139.322%207.54722%20136.133%205.42123'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M145.314%2017.7585C145.314%2020.0361%20146.94%2022.8141%20147.864%2024.8676C148.314%2025.8674%20148.34%2027.0432%20149.187%2026.3659C149.547%2026.0784%20149.733%2025.3173%20149.968%2024.9314C150.702%2023.7254%20151.478%2022.5438%20152.295%2021.3928C152.999%2020.4007%20153.542%2019.3307%20154.208%2018.3324'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M159.946%2022.6363C162.329%2022.7852%20167.174%2024.139%20168.538%2021.2973C170.36%2017.5004%20164.404%2016.564%20161.955%2016.9139C160.772%2017.0829%20159.925%2018.3952%20159.596%2019.4164C158.844%2021.7461%20161.08%2023.8794%20162.465%2025.5054C163.229%2026.4021%20165.738%2028.7064%20166.896%2027.8644C167.871%2027.1554%20170.837%2027.8943%20171.997%2028.0876'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M177.448%2018.0455C177.559%2019.0398%20178.226%2019.8639%20178.596%2020.7552C179.176%2022.1549%20179.17%2024.1885%20179.17%2025.7284C179.17%2026.1851%20178.941%2027.3717%20179.233%2027.7367C179.632%2028.2343%20178.845%2025.8489%20178.739%2025.3617C178.372%2023.6722%20178.375%2021.8003%20179.313%2020.3408C180.093%2019.1282%20182.021%2017.7585%20183.473%2017.7585'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e",T1="data:image/svg+xml,%3csvg%20width='20'%20height='24'%20viewBox='0%200%2020%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.82205%207.21589C1.69799%205.97529%201.30287%204.89144%201.62129%203.61774C1.85076%202.69986%204.09944%202.44983%204.55541%202.35143C7.48579%201.71907%2010.5606%201.12752%2013.5662%201.02336C14.8054%200.980419%2015.3672%201.79215%2016.1375%202.6294C17.3154%203.90983%2018.1631%205.05896%2018.3303%206.81438C18.4926%208.51806%2018.4244%209.76023%2017.9751%2011.4318C17.4987%2013.2044%2016.6239%2014.5602%2015.2958%2015.8329C13.9439%2017.1285%2012.4993%2018.5086%2010.6862%2019.1222C8.43473%2019.8843%205.35043%2018.6103%203.90682%2016.8058'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.96465%2014.165C6.0624%2015.0673%205.05937%2015.8567%203.97648%2016.4583C3.5156%2016.7143%204.31379%2018.1121%204.43204%2018.5199C4.67598%2019.361%205.05164%2020.1566%205.26595%2021.0062C5.35625%2021.3641%205.41003%2021.7576%205.57481%2022.0872'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",F1="data:image/svg+xml,%3csvg%20width='27'%20height='28'%20viewBox='0%200%2027%2028'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.18318%207.00292C8.70656%205.2824%2012.3997%202.9563%2014.2866%202.02173C14.2866%202.02173%2014.8832%202.61948%2015.0474%202.6664C15.4959%202.79455%2016.1389%203.36089%2016.5049%203.65543C17.9568%204.824%2019.5572%205.83512%2020.7173%207.35529C21.52%208.4071%2022.5307%209.34097%2023.2519%2010.4505C23.8801%2011.417%2024.5944%2012.3271%2025.242%2013.2815C25.3369%2013.4213%2026.1835%2014.7508%2025.8026%2014.779C25.4613%2014.8043%2025.066%2014.8224%2024.7295%2014.8871C24.0748%2015.013%2023.3668%2014.8956%2022.7034%2014.9392C22.3182%2014.9645%2021.9585%2015.0673%2021.5702%2015.0673C21.3286%2015.0673%2021.3499%2015.6677%2021.3499%2015.8601C21.3499%2017.4481%2021.1337%2019.0287%2021.1337%2020.6171C21.1337%2021.7162%2020.9575%2022.8015%2020.9215%2023.9005C20.9032%2024.4588%2020.8577%2025.0037%2020.7894%2025.5582C20.7708%2025.7084%2020.7943%2026.1086%2020.6292%2026.1829C20.2391%2026.3585%2019.6908%2026.311%2019.2598%2026.311C17.7708%2026.311%2016.2655%2026.3781%2014.7871%2026.1669C12.6155%2025.8566%2010.35%2025.8786%208.1602%2025.8786C7.6708%2025.8786%207.72775%2025.6701%207.72775%2025.2299C7.72775%2023.4468%207.39509%2021.6983%206.97496%2019.9684C6.71287%2018.8892%206.57455%2017.7665%206.57455%2016.657C6.57455%2016.2185%206.56854%2015.7901%206.6306%2015.3556C6.64647%2015.2446%206.7108%2014.8953%206.6306%2014.795C6.54591%2014.6892%206.2751%2014.7126%206.17813%2014.7069C5.64321%2014.6755%205.10811%2014.6497%204.57246%2014.6349C3.72344%2014.6113%202.86447%2014.6217%202.0178%2014.5468C1.87123%2014.5338%201.63271%2014.5257%201.50526%2014.4347C1.44289%2014.3901%201.95469%2013.7833%201.99377%2013.7379C2.27258%2013.4145%202.48111%2013.0473%202.6905%2012.6768C3.86252%2010.6033%205.61401%208.77515%207.18318%207.00292Z'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",M1="/assets/game-over-zzio-1StbULpN.svg";function Fc(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;ttypeof e=="boolean"?"".concat(e):e===0?"0":e,Ua=B1,Hr=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return Ua(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:i,defaultVariants:s}=t,o=Object.keys(i).map(h=>{const u=n==null?void 0:n[h],d=s==null?void 0:s[h];if(u===null)return null;const f=Na(u)||Na(d);return i[h][f]}),l=n&&Object.entries(n).reduce((h,u)=>{let[d,f]=u;return f===void 0||(h[d]=f),h},{}),c=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((h,u)=>{let{class:d,className:f,...a}=u;return Object.entries(a).every(p=>{let[m,g]=p;return Array.isArray(g)?g.includes({...s,...l}[m]):{...s,...l}[m]===g})?[...h,d,f]:h},[]);return Ua(e,o,c,n==null?void 0:n.class,n==null?void 0:n.className)},I1={class:"flex flex-col items-center justify-center"},N1={key:0,class:"text-black text-body-b mt-1"},Wi=Me({__name:"ZRoundButton",props:{color:{type:String,default:"primary"},title:{type:String}},setup(e){const t=Hr(["flex justify-center items-center w-14 h-14 rounded-full border-2"],{variants:{color:{primary:"bg-[#FCBF31]",secondary:"bg-green"}}});return(n,r)=>(re(),ce("button",I1,[K("div",{class:wn(ee(t)({color:e.color}))},[In(n.$slots,"default")],2),e.title?(re(),ce("div",N1,je(e.title),1)):Mt("",!0)]))}}),U1="/assets/rank-banner-d-tUtHGK.png",Mc="data:image/svg+xml,%3csvg%20width='19'%20height='19'%20viewBox='0%200%2019%2019'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.43059%201.02173C8.92229%201.02173%209.53439%201.02275%209.97498%201.27106C10.5034%201.27106%2012.5403%202.22615%2013.0052%202.45905C14.0392%202.97705%2015.371%203.51223%2015.9696%204.57836C16.7893%206.03845%2017.6095%207.16875%2017.9458%208.85366C18.0986%209.61892%2017.8799%2010.3522%2017.8799%2011.1196C17.8799%2012.048%2017.6975%2013.0301%2017.2212%2013.8403C16.362%2015.3016%2015.2688%2016.7749%2013.5029%2016.9496C11.889%2017.1093%2010.0937%2016.9919%208.49647%2016.7149C6.89916%2016.4379%203.35156%2016.2248%202.47261%2014.4636C2.06266%2013.6422%201.62576%2013.0587%201.34543%2012.1536C0.965334%2010.9266%200.934584%209.60991%201.08193%208.34033C1.28432%206.59645%201.69217%205.01032%203.12404%203.8377C4.23262%202.92984%205.51234%202.22705%206.78373%201.57906C7.30733%201.31219%207.83266%201.02173%208.43059%201.02173Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M7%207.12347C7.31959%207.01947%207.73803%207.03886%208.0731%207.03189C8.69347%207.01898%209.31513%207.02927%209.93567%207.02927C10.2532%207.02927%2010.5774%207.01257%2010.8947%207.02927C11.0553%207.03773%2010.9775%207.55206%2010.9591%207.6311C10.8308%208.18224%2010.3287%208.6837%209.88304%209.05456C9.17184%209.64635%208.40718%2010.2032%207.64327%2010.7397C7.46968%2010.8616%207.21317%2011.0028%207.09357%2011.1741C7.01759%2011.2828%206.99859%2011.2601%207.22807%2011.3154C7.72868%2011.436%208.2552%2011.48%208.76608%2011.5509C9.6289%2011.6704%2010.4852%2011.824%2011.348%2011.9434C11.5601%2011.9727%2011.7838%2012.0219%2012%2012.0219'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",L1="/assets/gift-zzio-mxkjtBza.svg",D1="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17%2014L12%209L7%2014'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e";function Bc(e,t){return function(){return e.apply(t,arguments)}}const{toString:H1}=Object.prototype,{getPrototypeOf:Eo}=Object,Vr=(e=>t=>{const n=H1.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Pt=e=>(e=e.toLowerCase(),t=>Vr(t)===e),jr=e=>t=>typeof t===e,{isArray:us}=Array,Bs=jr("undefined");function V1(e){return e!==null&&!Bs(e)&&e.constructor!==null&&!Bs(e.constructor)&&ct(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ic=Pt("ArrayBuffer");function j1(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ic(e.buffer),t}const Q1=jr("string"),ct=jr("function"),Nc=jr("number"),Qr=e=>e!==null&&typeof e=="object",W1=e=>e===!0||e===!1,lr=e=>{if(Vr(e)!=="object")return!1;const t=Eo(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},J1=Pt("Date"),K1=Pt("File"),q1=Pt("Blob"),z1=Pt("FileList"),Y1=e=>Qr(e)&&ct(e.pipe),Z1=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ct(e.append)&&((t=Vr(e))==="formdata"||t==="object"&&ct(e.toString)&&e.toString()==="[object FormData]"))},G1=Pt("URLSearchParams"),X1=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function zs(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),us(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const Lc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Dc=e=>!Bs(e)&&e!==Lc;function Ji(){const{caseless:e}=Dc(this)&&this||{},t={},n=(r,i)=>{const s=e&&Uc(t,i)||i;lr(t[s])&&lr(r)?t[s]=Ji(t[s],r):lr(r)?t[s]=Ji({},r):us(r)?t[s]=r.slice():t[s]=r};for(let r=0,i=arguments.length;r(zs(t,(i,s)=>{n&&ct(i)?e[s]=Bc(i,n):e[s]=i},{allOwnKeys:r}),e),$1=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),eh=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},th=(e,t,n,r)=>{let i,s,o;const l={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),s=i.length;s-- >0;)o=i[s],(!r||r(o,e,t))&&!l[o]&&(t[o]=e[o],l[o]=!0);e=n!==!1&&Eo(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},nh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},sh=e=>{if(!e)return null;if(us(e))return e;let t=e.length;if(!Nc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},rh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Eo(Uint8Array)),ih=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let i;for(;(i=r.next())&&!i.done;){const s=i.value;t.call(e,s[0],s[1])}},oh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ah=Pt("HTMLFormElement"),lh=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),La=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ch=Pt("RegExp"),Hc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};zs(n,(i,s)=>{let o;(o=t(i,s,e))!==!1&&(r[s]=o||i)}),Object.defineProperties(e,r)},uh=e=>{Hc(e,(t,n)=>{if(ct(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(ct(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},fh=(e,t)=>{const n={},r=i=>{i.forEach(s=>{n[s]=!0})};return us(e)?r(e):r(String(e).split(t)),n},hh=()=>{},dh=(e,t)=>(e=+e,Number.isFinite(e)?e:t),ri="abcdefghijklmnopqrstuvwxyz",Da="0123456789",Vc={DIGIT:Da,ALPHA:ri,ALPHA_DIGIT:ri+ri.toUpperCase()+Da},ph=(e=16,t=Vc.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function mh(e){return!!(e&&ct(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const gh=e=>{const t=new Array(10),n=(r,i)=>{if(Qr(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[i]=r;const s=us(r)?[]:{};return zs(r,(o,l)=>{const c=n(o,i+1);!Bs(c)&&(s[l]=c)}),t[i]=void 0,s}}return r};return n(e,0)},vh=Pt("AsyncFunction"),yh=e=>e&&(Qr(e)||ct(e))&&ct(e.then)&&ct(e.catch),U={isArray:us,isArrayBuffer:Ic,isBuffer:V1,isFormData:Z1,isArrayBufferView:j1,isString:Q1,isNumber:Nc,isBoolean:W1,isObject:Qr,isPlainObject:lr,isUndefined:Bs,isDate:J1,isFile:K1,isBlob:q1,isRegExp:ch,isFunction:ct,isStream:Y1,isURLSearchParams:G1,isTypedArray:rh,isFileList:z1,forEach:zs,merge:Ji,extend:_1,trim:X1,stripBOM:$1,inherits:eh,toFlatObject:th,kindOf:Vr,kindOfTest:Pt,endsWith:nh,toArray:sh,forEachEntry:ih,matchAll:oh,isHTMLForm:ah,hasOwnProperty:La,hasOwnProp:La,reduceDescriptors:Hc,freezeMethods:uh,toObjectSet:fh,toCamelCase:lh,noop:hh,toFiniteNumber:dh,findKey:Uc,global:Lc,isContextDefined:Dc,ALPHABET:Vc,generateString:ph,isSpecCompliantForm:mh,toJSONObject:gh,isAsyncFn:vh,isThenable:yh};function ge(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}U.inherits(ge,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:U.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const jc=ge.prototype,Qc={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Qc[e]={value:e}});Object.defineProperties(ge,Qc);Object.defineProperty(jc,"isAxiosError",{value:!0});ge.from=(e,t,n,r,i,s)=>{const o=Object.create(jc);return U.toFlatObject(e,o,function(c){return c!==Error.prototype},l=>l!=="isAxiosError"),ge.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,s&&Object.assign(o,s),o};const xh=null;function Ki(e){return U.isPlainObject(e)||U.isArray(e)}function Wc(e){return U.endsWith(e,"[]")?e.slice(0,-2):e}function Ha(e,t,n){return e?e.concat(t).map(function(i,s){return i=Wc(i),!n&&s?"["+i+"]":i}).join(n?".":""):t}function Ch(e){return U.isArray(e)&&!e.some(Ki)}const Ah=U.toFlatObject(U,{},null,function(t){return/^is[A-Z]/.test(t)});function Wr(e,t,n){if(!U.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=U.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,g){return!U.isUndefined(g[m])});const r=n.metaTokens,i=n.visitor||u,s=n.dots,o=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&U.isSpecCompliantForm(t);if(!U.isFunction(i))throw new TypeError("visitor must be a function");function h(p){if(p===null)return"";if(U.isDate(p))return p.toISOString();if(!c&&U.isBlob(p))throw new ge("Blob is not supported. Use a Buffer instead.");return U.isArrayBuffer(p)||U.isTypedArray(p)?c&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function u(p,m,g){let y=p;if(p&&!g&&typeof p=="object"){if(U.endsWith(m,"{}"))m=r?m:m.slice(0,-2),p=JSON.stringify(p);else if(U.isArray(p)&&Ch(p)||(U.isFileList(p)||U.endsWith(m,"[]"))&&(y=U.toArray(p)))return m=Wc(m),y.forEach(function(b,w){!(U.isUndefined(b)||b===null)&&t.append(o===!0?Ha([m],w,s):o===null?m:m+"[]",h(b))}),!1}return Ki(p)?!0:(t.append(Ha(g,m,s),h(p)),!1)}const d=[],f=Object.assign(Ah,{defaultVisitor:u,convertValue:h,isVisitable:Ki});function a(p,m){if(!U.isUndefined(p)){if(d.indexOf(p)!==-1)throw Error("Circular reference detected in "+m.join("."));d.push(p),U.forEach(p,function(y,C){(!(U.isUndefined(y)||y===null)&&i.call(t,y,U.isString(C)?C.trim():C,m,f))===!0&&a(y,m?m.concat(C):[C])}),d.pop()}}if(!U.isObject(e))throw new TypeError("data must be an object");return a(e),t}function Va(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ro(e,t){this._pairs=[],e&&Wr(e,this,t)}const Jc=Ro.prototype;Jc.append=function(t,n){this._pairs.push([t,n])};Jc.toString=function(t){const n=t?function(r){return t.call(this,r,Va)}:Va;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function bh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Kc(e,t,n){if(!t)return e;const r=n&&n.encode||bh,i=n&&n.serialize;let s;if(i?s=i(t,n):s=U.isURLSearchParams(t)?t.toString():new Ro(t,n).toString(r),s){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class wh{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){U.forEach(this.handlers,function(r){r!==null&&t(r)})}}const ja=wh,qc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Sh=typeof URLSearchParams<"u"?URLSearchParams:Ro,Eh=typeof FormData<"u"?FormData:null,Rh=typeof Blob<"u"?Blob:null,Ph={isBrowser:!0,classes:{URLSearchParams:Sh,FormData:Eh,Blob:Rh},protocols:["http","https","file","blob","url","data"]},zc=typeof window<"u"&&typeof document<"u",Oh=(e=>zc&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),kh=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Th=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:zc,hasStandardBrowserEnv:Oh,hasStandardBrowserWebWorkerEnv:kh},Symbol.toStringTag,{value:"Module"})),Et={...Th,...Ph};function Fh(e,t){return Wr(e,new Et.classes.URLSearchParams,Object.assign({visitor:function(n,r,i,s){return Et.isNode&&U.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},t))}function Mh(e){return U.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Bh(e){const t={},n=Object.keys(e);let r;const i=n.length;let s;for(r=0;r=n.length;return o=!o&&U.isArray(i)?i.length:o,c?(U.hasOwnProp(i,o)?i[o]=[i[o],r]:i[o]=r,!l):((!i[o]||!U.isObject(i[o]))&&(i[o]=[]),t(n,r,i[o],s)&&U.isArray(i[o])&&(i[o]=Bh(i[o])),!l)}if(U.isFormData(e)&&U.isFunction(e.entries)){const n={};return U.forEachEntry(e,(r,i)=>{t(Mh(r),i,n,0)}),n}return null}function Ih(e,t,n){if(U.isString(e))try{return(t||JSON.parse)(e),U.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Po={transitional:qc,adapter:["xhr","http"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,s=U.isObject(t);if(s&&U.isHTMLForm(t)&&(t=new FormData(t)),U.isFormData(t))return i?JSON.stringify(Yc(t)):t;if(U.isArrayBuffer(t)||U.isBuffer(t)||U.isStream(t)||U.isFile(t)||U.isBlob(t))return t;if(U.isArrayBufferView(t))return t.buffer;if(U.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Fh(t,this.formSerializer).toString();if((l=U.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Wr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return s||i?(n.setContentType("application/json",!1),Ih(t)):t}],transformResponse:[function(t){const n=this.transitional||Po.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(t&&U.isString(t)&&(r&&!this.responseType||i)){const o=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(l){if(o)throw l.name==="SyntaxError"?ge.from(l,ge.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Et.classes.FormData,Blob:Et.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};U.forEach(["delete","get","head","post","put","patch"],e=>{Po.headers[e]={}});const Oo=Po,Nh=U.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Uh=e=>{const t={};let n,r,i;return e&&e.split(` -`).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),r=o.substring(i+1).trim(),!(!n||t[n]&&Nh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Qa=Symbol("internals");function ps(e){return e&&String(e).trim().toLowerCase()}function cr(e){return e===!1||e==null?e:U.isArray(e)?e.map(cr):String(e)}function Lh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Dh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ii(e,t,n,r,i){if(U.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!U.isString(t)){if(U.isString(r))return t.indexOf(r)!==-1;if(U.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Vh(e,t){const n=U.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(i,s,o){return this[r].call(this,t,i,s,o)},configurable:!0})})}class Jr{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function s(l,c,h){const u=ps(c);if(!u)throw new Error("header name must be a non-empty string");const d=U.findKey(i,u);(!d||i[d]===void 0||h===!0||h===void 0&&i[d]!==!1)&&(i[d||c]=cr(l))}const o=(l,c)=>U.forEach(l,(h,u)=>s(h,u,c));return U.isPlainObject(t)||t instanceof this.constructor?o(t,n):U.isString(t)&&(t=t.trim())&&!Dh(t)?o(Uh(t),n):t!=null&&s(n,t,r),this}get(t,n){if(t=ps(t),t){const r=U.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return Lh(i);if(U.isFunction(n))return n.call(this,i,r);if(U.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ps(t),t){const r=U.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||ii(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function s(o){if(o=ps(o),o){const l=U.findKey(r,o);l&&(!n||ii(r,r[l],l,n))&&(delete r[l],i=!0)}}return U.isArray(t)?t.forEach(s):s(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const s=n[r];(!t||ii(this,this[s],s,t,!0))&&(delete this[s],i=!0)}return i}normalize(t){const n=this,r={};return U.forEach(this,(i,s)=>{const o=U.findKey(r,s);if(o){n[o]=cr(i),delete n[s];return}const l=t?Hh(s):String(s).trim();l!==s&&delete n[s],n[l]=cr(i),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return U.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&U.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[Qa]=this[Qa]={accessors:{}}).accessors,i=this.prototype;function s(o){const l=ps(o);r[l]||(Vh(i,o),r[l]=!0)}return U.isArray(t)?t.forEach(s):s(t),this}}Jr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);U.reduceDescriptors(Jr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});U.freezeMethods(Jr);const Nt=Jr;function oi(e,t){const n=this||Oo,r=t||n,i=Nt.from(r.headers);let s=r.data;return U.forEach(e,function(l){s=l.call(n,s,i.normalize(),t?t.status:void 0)}),i.normalize(),s}function Zc(e){return!!(e&&e.__CANCEL__)}function Ys(e,t,n){ge.call(this,e??"canceled",ge.ERR_CANCELED,t,n),this.name="CanceledError"}U.inherits(Ys,ge,{__CANCEL__:!0});function jh(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ge("Request failed with status code "+n.status,[ge.ERR_BAD_REQUEST,ge.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const Qh=Et.hasStandardBrowserEnv?{write(e,t,n,r,i,s){const o=[e+"="+encodeURIComponent(t)];U.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),U.isString(r)&&o.push("path="+r),U.isString(i)&&o.push("domain="+i),s===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Wh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Jh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Gc(e,t){return e&&!Wh(t)?Jh(e,t):t}const Kh=Et.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let r;function i(s){let o=s;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=i(window.location.href),function(o){const l=U.isString(o)?i(o):o;return l.protocol===r.protocol&&l.host===r.host}}():function(){return function(){return!0}}();function qh(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function zh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,s=0,o;return t=t!==void 0?t:1e3,function(c){const h=Date.now(),u=r[s];o||(o=h),n[i]=c,r[i]=h;let d=s,f=0;for(;d!==i;)f+=n[d++],d=d%e;if(i=(i+1)%e,i===s&&(s=(s+1)%e),h-o{const s=i.loaded,o=i.lengthComputable?i.total:void 0,l=s-n,c=r(l),h=s<=o;n=s;const u={loaded:s,total:o,progress:o?s/o:void 0,bytes:l,rate:c||void 0,estimated:c&&o&&h?(o-s)/c:void 0,event:i};u[t?"download":"upload"]=!0,e(u)}}const Yh=typeof XMLHttpRequest<"u",Zh=Yh&&function(e){return new Promise(function(n,r){let i=e.data;const s=Nt.from(e.headers).normalize();let{responseType:o,withXSRFToken:l}=e,c;function h(){e.cancelToken&&e.cancelToken.unsubscribe(c),e.signal&&e.signal.removeEventListener("abort",c)}let u;if(U.isFormData(i)){if(Et.hasStandardBrowserEnv||Et.hasStandardBrowserWebWorkerEnv)s.setContentType(!1);else if((u=s.getContentType())!==!1){const[m,...g]=u?u.split(";").map(y=>y.trim()).filter(Boolean):[];s.setContentType([m||"multipart/form-data",...g].join("; "))}}let d=new XMLHttpRequest;if(e.auth){const m=e.auth.username||"",g=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";s.set("Authorization","Basic "+btoa(m+":"+g))}const f=Gc(e.baseURL,e.url);d.open(e.method.toUpperCase(),Kc(f,e.params,e.paramsSerializer),!0),d.timeout=e.timeout;function a(){if(!d)return;const m=Nt.from("getAllResponseHeaders"in d&&d.getAllResponseHeaders()),y={data:!o||o==="text"||o==="json"?d.responseText:d.response,status:d.status,statusText:d.statusText,headers:m,config:e,request:d};jh(function(b){n(b),h()},function(b){r(b),h()},y),d=null}if("onloadend"in d?d.onloadend=a:d.onreadystatechange=function(){!d||d.readyState!==4||d.status===0&&!(d.responseURL&&d.responseURL.indexOf("file:")===0)||setTimeout(a)},d.onabort=function(){d&&(r(new ge("Request aborted",ge.ECONNABORTED,e,d)),d=null)},d.onerror=function(){r(new ge("Network Error",ge.ERR_NETWORK,e,d)),d=null},d.ontimeout=function(){let g=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const y=e.transitional||qc;e.timeoutErrorMessage&&(g=e.timeoutErrorMessage),r(new ge(g,y.clarifyTimeoutError?ge.ETIMEDOUT:ge.ECONNABORTED,e,d)),d=null},Et.hasStandardBrowserEnv&&(l&&U.isFunction(l)&&(l=l(e)),l||l!==!1&&Kh(f))){const m=e.xsrfHeaderName&&e.xsrfCookieName&&Qh.read(e.xsrfCookieName);m&&s.set(e.xsrfHeaderName,m)}i===void 0&&s.setContentType(null),"setRequestHeader"in d&&U.forEach(s.toJSON(),function(g,y){d.setRequestHeader(y,g)}),U.isUndefined(e.withCredentials)||(d.withCredentials=!!e.withCredentials),o&&o!=="json"&&(d.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&d.addEventListener("progress",Wa(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&d.upload&&d.upload.addEventListener("progress",Wa(e.onUploadProgress)),(e.cancelToken||e.signal)&&(c=m=>{d&&(r(!m||m.type?new Ys(null,e,d):m),d.abort(),d=null)},e.cancelToken&&e.cancelToken.subscribe(c),e.signal&&(e.signal.aborted?c():e.signal.addEventListener("abort",c)));const p=qh(f);if(p&&Et.protocols.indexOf(p)===-1){r(new ge("Unsupported protocol "+p+":",ge.ERR_BAD_REQUEST,e));return}d.send(i||null)})},qi={http:xh,xhr:Zh};U.forEach(qi,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ja=e=>`- ${e}`,Gh=e=>U.isFunction(e)||e===null||e===!1,Xc={getAdapter:e=>{e=U.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let s=0;s`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let o=t?s.length>1?`since : + */const kn=typeof window<"u";function cf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const be=Object.assign;function ni(e,t){const n={};for(const r in t){const i=t[r];n[r]=gt(i)?i.map(e):e(i)}return n}const bs=()=>{},gt=Array.isArray,uf=/\/$/,ff=e=>e.replace(uf,"");function si(e,t,n="/"){let r,i={},s="",o="";const l=t.indexOf("#");let c=t.indexOf("?");return l=0&&(c=-1),c>-1&&(r=t.slice(0,c),s=t.slice(c+1,l>-1?l:t.length),i=e(s)),l>-1&&(r=r||t.slice(0,l),o=t.slice(l,t.length)),r=mf(r??t,n),{fullPath:r+(s&&"?")+s+o,path:r,query:i,hash:o}}function hf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function xa(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function df(e,t,n){const r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&ts(t.matched[r],n.matched[i])&&xc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function ts(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!pf(e[n],t[n]))return!1;return!0}function pf(e,t){return gt(e)?Ca(e,t):gt(t)?Ca(t,e):e===t}function Ca(e,t){return gt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function mf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),i=r[r.length-1];(i===".."||i===".")&&r.push("");let s=n.length-1,o,l;for(o=0;o1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(o-(o===r.length?1:0)).join("/")}var Ms;(function(e){e.pop="pop",e.push="push"})(Ms||(Ms={}));var ws;(function(e){e.back="back",e.forward="forward",e.unknown=""})(ws||(ws={}));function gf(e){if(!e)if(kn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ff(e)}const vf=/^[^#]+#/;function yf(e,t){return e.replace(vf,"#")+t}function xf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Lr=()=>({left:window.pageXOffset,top:window.pageYOffset});function Cf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),i=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=xf(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Aa(e,t){return(history.state?history.state.position-t:-1)+e}const ji=new Map;function Af(e,t){ji.set(e,t)}function bf(e){const t=ji.get(e);return ji.delete(e),t}let wf=()=>location.protocol+"//"+location.host;function Cc(e,t){const{pathname:n,search:r,hash:i}=t,s=e.indexOf("#");if(s>-1){let l=i.includes(e.slice(s))?e.slice(s).length:1,c=i.slice(l);return c[0]!=="/"&&(c="/"+c),xa(c,"")}return xa(n,e)+r+i}function Sf(e,t,n,r){let i=[],s=[],o=null;const l=({state:h})=>{const a=Cc(e,location),p=n.value,m=t.value;let g=0;if(h){if(n.value=a,t.value=h,o&&o===p){o=null;return}g=m?h.position-m.position:0}else r(a);i.forEach(y=>{y(n.value,p,{delta:g,type:Ms.pop,direction:g?g>0?ws.forward:ws.back:ws.unknown})})};function c(){o=n.value}function f(h){i.push(h);const a=()=>{const p=i.indexOf(h);p>-1&&i.splice(p,1)};return s.push(a),a}function u(){const{history:h}=window;h.state&&h.replaceState(be({},h.state,{scroll:Lr()}),"")}function d(){for(const h of s)h();s=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:c,listen:f,destroy:d}}function ba(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Lr():null}}function Ef(e){const{history:t,location:n}=window,r={value:Cc(e,n)},i={value:t.state};i.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(c,f,u){const d=e.indexOf("#"),h=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+c:wf()+e+c;try{t[u?"replaceState":"pushState"](f,"",h),i.value=f}catch(a){console.error(a),n[u?"replace":"assign"](h)}}function o(c,f){const u=be({},t.state,ba(i.value.back,c,i.value.forward,!0),f,{position:i.value.position});s(c,u,!0),r.value=c}function l(c,f){const u=be({},i.value,t.state,{forward:c,scroll:Lr()});s(u.current,u,!0);const d=be({},ba(r.value,c,null),{position:u.position+1},f);s(c,d,!1),r.value=c}return{location:r,state:i,push:l,replace:o}}function Rf(e){e=gf(e);const t=Ef(e),n=Sf(e,t.state,t.location,t.replace);function r(s,o=!0){o||n.pauseListeners(),history.go(s)}const i=be({location:"",base:e,go:r,createHref:yf.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Pf(e){return typeof e=="string"||e&&typeof e=="object"}function Ac(e){return typeof e=="string"||typeof e=="symbol"}const Dt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},bc=Symbol("");var wa;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(wa||(wa={}));function ns(e,t){return be(new Error,{type:e,[bc]:!0},t)}function Ot(e,t){return e instanceof Error&&bc in e&&(t==null||!!(e.type&t))}const Sa="[^/]+?",Of={sensitive:!1,strict:!1,start:!0,end:!0},kf=/[.+*?^${}()[\]/\\]/g;function Tf(e,t){const n=be({},Of,t),r=[];let i=n.start?"^":"";const s=[];for(const f of e){const u=f.length?[]:[90];n.strict&&!f.length&&(i+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function Mf(e,t){let n=0;const r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}const Bf={type:0,value:""},If=/[a-zA-Z0-9_]/;function Nf(e){if(!e)return[[]];if(e==="/")return[[Bf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(a){throw new Error(`ERR (${n})/"${f}": ${a}`)}let n=0,r=n;const i=[];let s;function o(){s&&i.push(s),s=[]}let l=0,c,f="",u="";function d(){f&&(n===0?s.push({type:0,value:f}):n===1||n===2||n===3?(s.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:f,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),f="")}function h(){f+=c}for(;l{o(C)}:bs}function o(u){if(Ac(u)){const d=r.get(u);d&&(r.delete(u),n.splice(n.indexOf(d),1),d.children.forEach(o),d.alias.forEach(o))}else{const d=n.indexOf(u);d>-1&&(n.splice(d,1),u.record.name&&r.delete(u.record.name),u.children.forEach(o),u.alias.forEach(o))}}function l(){return n}function c(u){let d=0;for(;d=0&&(u.record.path!==n[d].record.path||!wc(u,n[d]));)d++;n.splice(d,0,u),u.record.name&&!Pa(u)&&r.set(u.record.name,u)}function f(u,d){let h,a={},p,m;if("name"in u&&u.name){if(h=r.get(u.name),!h)throw ns(1,{location:u});m=h.record.name,a=be(Ra(d.params,h.keys.filter(C=>!C.optional).map(C=>C.name)),u.params&&Ra(u.params,h.keys.map(C=>C.name))),p=h.stringify(a)}else if("path"in u)p=u.path,h=n.find(C=>C.re.test(p)),h&&(a=h.parse(p),m=h.record.name);else{if(h=d.name?r.get(d.name):n.find(C=>C.re.test(d.path)),!h)throw ns(1,{location:u,currentLocation:d});m=h.record.name,a=be({},d.params,u.params),p=h.stringify(a)}const g=[];let y=h;for(;y;)g.unshift(y.record),y=y.parent;return{name:m,path:p,params:a,matched:g,meta:Vf(g)}}return e.forEach(u=>s(u)),{addRoute:s,resolve:f,removeRoute:o,getRoutes:l,getRecordMatcher:i}}function Ra(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Df(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Hf(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function Hf(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Pa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Vf(e){return e.reduce((t,n)=>be(t,n.meta),{})}function Oa(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function wc(e,t){return t.children.some(n=>n===e||wc(e,n))}const Sc=/#/g,jf=/&/g,Qf=/\//g,Wf=/=/g,Jf=/\?/g,Ec=/\+/g,Kf=/%5B/g,qf=/%5D/g,Rc=/%5E/g,zf=/%60/g,Pc=/%7B/g,Yf=/%7C/g,Oc=/%7D/g,Zf=/%20/g;function So(e){return encodeURI(""+e).replace(Yf,"|").replace(Kf,"[").replace(qf,"]")}function Gf(e){return So(e).replace(Pc,"{").replace(Oc,"}").replace(Rc,"^")}function Qi(e){return So(e).replace(Ec,"%2B").replace(Zf,"+").replace(Sc,"%23").replace(jf,"%26").replace(zf,"`").replace(Pc,"{").replace(Oc,"}").replace(Rc,"^")}function Xf(e){return Qi(e).replace(Wf,"%3D")}function _f(e){return So(e).replace(Sc,"%23").replace(Jf,"%3F")}function $f(e){return e==null?"":_f(e).replace(Qf,"%2F")}function xr(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function e1(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;is&&Qi(s)):[r&&Qi(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function t1(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=gt(r)?r.map(i=>i==null?null:""+i):r==null?r:""+r)}return t}const n1=Symbol(""),Ta=Symbol(""),Dr=Symbol(""),kc=Symbol(""),Wi=Symbol("");function ds(){let e=[];function t(r){return e.push(r),()=>{const i=e.indexOf(r);i>-1&&e.splice(i,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Wt(e,t,n,r,i){const s=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((o,l)=>{const c=d=>{d===!1?l(ns(4,{from:n,to:t})):d instanceof Error?l(d):Pf(d)?l(ns(2,{from:t,to:d})):(s&&r.enterCallbacks[i]===s&&typeof d=="function"&&s.push(d),o())},f=e.call(r&&r.instances[i],t,n,c);let u=Promise.resolve(f);e.length<3&&(u=u.then(c)),u.catch(d=>l(d))})}function ri(e,t,n,r){const i=[];for(const s of e)for(const o in s.components){let l=s.components[o];if(!(t!=="beforeRouteEnter"&&!s.instances[o]))if(s1(l)){const f=(l.__vccOpts||l)[t];f&&i.push(Wt(f,n,r,s,o))}else{let c=l();i.push(()=>c.then(f=>{if(!f)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${s.path}"`));const u=cf(f)?f.default:f;s.components[o]=u;const h=(u.__vccOpts||u)[t];return h&&Wt(h,n,r,s,o)()}))}}return i}function s1(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Fa(e){const t=lt(Dr),n=lt(kc),r=Ae(()=>t.resolve(ee(e.to))),i=Ae(()=>{const{matched:c}=r.value,{length:f}=c,u=c[f-1],d=n.matched;if(!u||!d.length)return-1;const h=d.findIndex(ts.bind(null,u));if(h>-1)return h;const a=Ma(c[f-2]);return f>1&&Ma(u)===a&&d[d.length-1].path!==a?d.findIndex(ts.bind(null,c[f-2])):h}),s=Ae(()=>i.value>-1&&a1(n.params,r.value.params)),o=Ae(()=>i.value>-1&&i.value===n.matched.length-1&&xc(n.params,r.value.params));function l(c={}){return o1(c)?t[ee(e.replace)?"replace":"push"](ee(e.to)).catch(bs):Promise.resolve()}return{route:r,href:Ae(()=>r.value.href),isActive:s,isExactActive:o,navigate:l}}const r1=Me({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Fa,setup(e,{slots:t}){const n=Sn(Fa(e)),{options:r}=lt(Dr),i=Ae(()=>({[Ba(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Ba(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:tc("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},s)}}}),i1=r1;function o1(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function a1(e,t){for(const n in t){const r=t[n],i=e[n];if(typeof r=="string"){if(r!==i)return!1}else if(!gt(i)||i.length!==r.length||r.some((s,o)=>s!==i[o]))return!1}return!0}function Ma(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ba=(e,t,n)=>e??t??n,l1=Me({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=lt(Wi),i=Ae(()=>e.route||r.value),s=lt(Ta,0),o=Ae(()=>{let f=ee(s);const{matched:u}=i.value;let d;for(;(d=u[f])&&!d.components;)f++;return f}),l=Ae(()=>i.value.matched[o.value]);sr(Ta,Ae(()=>o.value+1)),sr(n1,l),sr(Wi,i);const c=Ze();return dt(()=>[c.value,l.value,e.name],([f,u,d],[h,a,p])=>{u&&(u.instances[d]=f,a&&a!==u&&f&&f===h&&(u.leaveGuards.size||(u.leaveGuards=a.leaveGuards),u.updateGuards.size||(u.updateGuards=a.updateGuards))),f&&u&&(!a||!ts(u,a)||!h)&&(u.enterCallbacks[d]||[]).forEach(m=>m(f))},{flush:"post"}),()=>{const f=i.value,u=e.name,d=l.value,h=d&&d.components[u];if(!h)return Ia(n.default,{Component:h,route:f});const a=d.props[u],p=a?a===!0?f.params:typeof a=="function"?a(f):a:null,g=tc(h,be({},p,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(d.instances[u]=null)},ref:c}));return Ia(n.default,{Component:g,route:f})||g}}});function Ia(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Tc=l1;function c1(e){const t=Lf(e.routes,e),n=e.parseQuery||e1,r=e.stringifyQuery||ka,i=e.history,s=ds(),o=ds(),l=ds(),c=Wu(Dt);let f=Dt;kn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=ni.bind(null,N=>""+N),d=ni.bind(null,$f),h=ni.bind(null,xr);function a(N,z){let Y,ne;return Ac(N)?(Y=t.getRecordMatcher(N),ne=z):ne=N,t.addRoute(ne,Y)}function p(N){const z=t.getRecordMatcher(N);z&&t.removeRoute(z)}function m(){return t.getRoutes().map(N=>N.record)}function g(N){return!!t.getRecordMatcher(N)}function y(N,z){if(z=be({},z||c.value),typeof N=="string"){const M=si(n,N,z.path),I=t.resolve({path:M.path},z),L=i.createHref(M.fullPath);return be(M,I,{params:h(I.params),hash:xr(M.hash),redirectedFrom:void 0,href:L})}let Y;if("path"in N)Y=be({},N,{path:si(n,N.path,z.path).path});else{const M=be({},N.params);for(const I in M)M[I]==null&&delete M[I];Y=be({},N,{params:d(M)}),z.params=d(z.params)}const ne=t.resolve(Y,z),Ce=N.hash||"";ne.params=u(h(ne.params));const P=hf(r,be({},N,{hash:Gf(Ce),path:ne.path})),O=i.createHref(P);return be({fullPath:P,hash:Ce,query:r===ka?t1(N.query):N.query||{}},ne,{redirectedFrom:void 0,href:O})}function C(N){return typeof N=="string"?si(n,N,c.value.path):be({},N)}function b(N,z){if(f!==N)return ns(8,{from:z,to:N})}function w(N){return S(N)}function v(N){return w(be(C(N),{replace:!0}))}function A(N){const z=N.matched[N.matched.length-1];if(z&&z.redirect){const{redirect:Y}=z;let ne=typeof Y=="function"?Y(N):Y;return typeof ne=="string"&&(ne=ne.includes("?")||ne.includes("#")?ne=C(ne):{path:ne},ne.params={}),be({query:N.query,hash:N.hash,params:"path"in ne?{}:N.params},ne)}}function S(N,z){const Y=f=y(N),ne=c.value,Ce=N.state,P=N.force,O=N.replace===!0,M=A(Y);if(M)return S(be(C(M),{state:typeof M=="object"?be({},Ce,M.state):Ce,force:P,replace:O}),z||Y);const I=Y;I.redirectedFrom=z;let L;return!P&&df(r,ne,Y)&&(L=ns(16,{to:I,from:ne}),Se(ne,ne,!0,!1)),(L?Promise.resolve(L):R(I,ne)).catch(H=>Ot(H)?Ot(H,2)?H:xe(H):X(H,I,ne)).then(H=>{if(H){if(Ot(H,2))return S(be({replace:O},C(H.to),{state:typeof H.to=="object"?be({},Ce,H.to.state):Ce,force:P}),z||I)}else H=T(I,ne,!0,O,Ce);return k(I,ne,H),H})}function x(N,z){const Y=b(N,z);return Y?Promise.reject(Y):Promise.resolve()}function E(N){const z=Ee.values().next().value;return z&&typeof z.runWithContext=="function"?z.runWithContext(N):N()}function R(N,z){let Y;const[ne,Ce,P]=u1(N,z);Y=ri(ne.reverse(),"beforeRouteLeave",N,z);for(const M of ne)M.leaveGuards.forEach(I=>{Y.push(Wt(I,N,z))});const O=x.bind(null,N,z);return Y.push(O),me(Y).then(()=>{Y=[];for(const M of s.list())Y.push(Wt(M,N,z));return Y.push(O),me(Y)}).then(()=>{Y=ri(Ce,"beforeRouteUpdate",N,z);for(const M of Ce)M.updateGuards.forEach(I=>{Y.push(Wt(I,N,z))});return Y.push(O),me(Y)}).then(()=>{Y=[];for(const M of P)if(M.beforeEnter)if(gt(M.beforeEnter))for(const I of M.beforeEnter)Y.push(Wt(I,N,z));else Y.push(Wt(M.beforeEnter,N,z));return Y.push(O),me(Y)}).then(()=>(N.matched.forEach(M=>M.enterCallbacks={}),Y=ri(P,"beforeRouteEnter",N,z),Y.push(O),me(Y))).then(()=>{Y=[];for(const M of o.list())Y.push(Wt(M,N,z));return Y.push(O),me(Y)}).catch(M=>Ot(M,8)?M:Promise.reject(M))}function k(N,z,Y){l.list().forEach(ne=>E(()=>ne(N,z,Y)))}function T(N,z,Y,ne,Ce){const P=b(N,z);if(P)return P;const O=z===Dt,M=kn?history.state:{};Y&&(ne||O?i.replace(N.fullPath,be({scroll:O&&M&&M.scroll},Ce)):i.push(N.fullPath,Ce)),c.value=N,Se(N,z,Y,O),xe()}let B;function V(){B||(B=i.listen((N,z,Y)=>{if(!Je.listening)return;const ne=y(N),Ce=A(ne);if(Ce){S(be(Ce,{replace:!0}),ne).catch(bs);return}f=ne;const P=c.value;kn&&Af(Aa(P.fullPath,Y.delta),Lr()),R(ne,P).catch(O=>Ot(O,12)?O:Ot(O,2)?(S(O.to,ne).then(M=>{Ot(M,20)&&!Y.delta&&Y.type===Ms.pop&&i.go(-1,!1)}).catch(bs),Promise.reject()):(Y.delta&&i.go(-Y.delta,!1),X(O,ne,P))).then(O=>{O=O||T(ne,P,!1),O&&(Y.delta&&!Ot(O,8)?i.go(-Y.delta,!1):Y.type===Ms.pop&&Ot(O,20)&&i.go(-1,!1)),k(ne,P,O)}).catch(bs)}))}let D=ds(),W=ds(),Q;function X(N,z,Y){xe(N);const ne=W.list();return ne.length?ne.forEach(Ce=>Ce(N,z,Y)):console.error(N),Promise.reject(N)}function de(){return Q&&c.value!==Dt?Promise.resolve():new Promise((N,z)=>{D.add([N,z])})}function xe(N){return Q||(Q=!N,V(),D.list().forEach(([z,Y])=>N?Y(N):z()),D.reset()),N}function Se(N,z,Y,ne){const{scrollBehavior:Ce}=e;if(!kn||!Ce)return Promise.resolve();const P=!Y&&bf(Aa(N.fullPath,0))||(ne||!Y)&&history.state&&history.state.scroll||null;return uo().then(()=>Ce(N,z,P)).then(O=>O&&Cf(O)).catch(O=>X(O,N,z))}const ie=N=>i.go(N);let Pe;const Ee=new Set,Je={currentRoute:c,listening:!0,addRoute:a,removeRoute:p,hasRoute:g,getRoutes:m,resolve:y,options:e,push:w,replace:v,go:ie,back:()=>ie(-1),forward:()=>ie(1),beforeEach:s.add,beforeResolve:o.add,afterEach:l.add,onError:W.add,isReady:de,install(N){const z=this;N.component("RouterLink",i1),N.component("RouterView",Tc),N.config.globalProperties.$router=z,Object.defineProperty(N.config.globalProperties,"$route",{enumerable:!0,get:()=>ee(c)}),kn&&!Pe&&c.value===Dt&&(Pe=!0,w(i.location).catch(Ce=>{}));const Y={};for(const Ce in Dt)Object.defineProperty(Y,Ce,{get:()=>c.value[Ce],enumerable:!0});N.provide(Dr,z),N.provide(kc,Rl(Y)),N.provide(Wi,c);const ne=N.unmount;Ee.add(N),N.unmount=function(){Ee.delete(N),Ee.size<1&&(f=Dt,B&&B(),B=null,c.value=Dt,Pe=!1,Q=!1),ne()}}};function me(N){return N.reduce((z,Y)=>z.then(()=>E(Y)),Promise.resolve())}return Je}function u1(e,t){const n=[],r=[],i=[],s=Math.max(t.matched.length,e.matched.length);for(let o=0;ots(f,l))?r.push(l):n.push(l));const c=e.matched[o];c&&(t.matched.find(f=>ts(f,c))||i.push(c))}return[n,r,i]}function Hr(){return lt(Dr)}const cs=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n},f1={},h1={class:"flex flex-col my-0 mx-auto w-full h-full min-[500px]:w-[500px]"};function d1(e,t){return re(),ce("div",h1,[In(e.$slots,"default")])}const p1=cs(f1,[["render",d1]]),m1=Me({__name:"App",setup(e){return(t,n)=>(re(),It(p1,null,{default:Ge(()=>[he(ee(Tc))]),_:1}))}}),g1="data:image/png;base64,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",v1="data:image/png;base64,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",y1="data:image/png;base64,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",x1="data:image/png;base64,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",C1="data:image/png;base64,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",A1="data:image/png;base64,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",b1="data:image/png;base64,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",w1="data:image/png;base64,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",S1="data:image/png;base64,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",E1="data:image/png;base64,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",R1={class:"flex justify-end items-center bg-[#FCBF31] rounded-r-full py-1 pr-1 pl-6 border-2 border-black border-l-0"},P1=K("span",{class:"text-subtitle mr-3 font-bold"},"NEXT",-1),O1=["src"],k1=Me({__name:"NextBlock",props:{nextIndex:{type:Number,default:0}},setup(e){const t=e,n={1:g1,2:v1,3:y1,4:x1,5:C1,6:A1,7:b1,8:w1,9:S1,10:E1},r=Ae(()=>{if(t.nextIndex in n)return n[t.nextIndex]});return(i,s)=>(re(),ce("div",R1,[P1,K("img",{src:r.value,class:"w-[26px] h-[26px]"},null,8,O1)]))}}),T1="data:image/svg+xml,%3csvg%20width='185'%20height='37'%20viewBox='0%200%20185%2037'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M23.4694%207.95518C21.997%206.70688%2020.0195%206.41223%2018.1614%206.41223C11.8952%206.41223%207.47036%208.38623%203.72574%2013.6984C3.02871%2014.6872%202.02975%2016.0504%201.73171%2017.27C1.11513%2019.7931%202.03722%2022.9521%202.54617%2025.3562C3.01634%2027.577%203.09501%2031.3632%205.18615%2032.8137C7.4063%2034.3538%209.31842%2034.8524%2011.8984%2034.6424C16.1031%2034.3002%2021.3045%2035.0085%2023.8485%2030.9708C25.3739%2028.5499%2025.2387%2026.156%2025.2387%2023.3846'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M16.1206%2024.5332C18.6681%2024.5332%2022.1089%2024.8539%2024.46%2023.8101C25.5347%2023.3329%2026.8223%2025.5178%2027.0082%2026.2977C27.3172%2027.5941%2028.0047%2028.8553%2028.1085%2030.2027C28.1479%2030.7143%2028.4979%2032.6679%2028.8903%2032.8639'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M45.5195%2018.9062C43.713%2018.9062%2041.8658%2018.7818%2040.0681%2018.9381C36.2347%2019.2714%2033.7237%2023.2894%2033.501%2026.7963C33.281%2030.2618%2033.2558%2031.0222%2036.2426%2031.5941C38.8324%2032.09%2042.1692%2033.9881%2044.2921%2031.8651C46.9026%2029.2547%2046.954%2027.0863%2046.954%2023.6243C46.954%2022.8699%2046.954%2022.1154%2046.954%2021.3609C46.954%2020.2014%2047.8089%2021.7147%2048.1336%2022.0941C51.3013%2025.7954%2054.4514%2029.5097%2057.5698%2033.2519'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M61.6381%2020.0537C61.6381%2021.7372%2062.2023%2023.4454%2062.6423%2025.0587C63.1023%2026.7457%2063.1996%2028.3964%2063.503%2030.0956C63.5397%2030.3013%2063.9334%2032.0179%2063.9334%2030.9564C63.9334%2028.6842%2064.3213%2026.5351%2064.7303%2024.2936C65.0731%2022.4155%2065.0927%2020.4723%2066.7069%2019.2886C68.0889%2018.2751%2068.2489%2018.1957%2069.1137%2019.6552C70.4103%2021.8431%2070.9237%2024.058%2071.409%2026.5252C71.6709%2027.8565%2071.807%2029.3128%2072.1901%2030.6057C72.5145%2031.7008%2072.2413%2030.174%2072.1901%2029.7768C71.7889%2026.6677%2071.4451%2021.4418%2073.529%2018.7626C74.3927%2017.6521%2077.3345%2021.2185%2078.0559%2022.1896C79.2855%2023.8449%2079.7521%2025.9628%2080.6381%2027.8003C80.952%2028.4514%2081.4351%2029.0699%2081.4351%2029.8087'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M84.8779%2024.9314C88.411%2024.9314%2091.9289%2024.6692%2095.4618%2024.6445C97.2723%2024.6318%2099.0792%2024.5265%20100.881%2024.3575C101.722%2024.2787%20100.539%2022.6444%20100.371%2022.3651C98.1466%2018.6573%2093.4209%2016.2697%2089.3091%2018.6193C88.3747%2019.1532%2087.7471%2020.572%2087.7471%2021.6319C87.7471%2022.9352%2087.9762%2024.2014%2088.1774%2025.4893C88.2736%2026.1048%2088.1463%2028.3941%2088.9585%2028.725C91.2752%2029.6689%2093.4985%2030.7979%2096.0675%2030.9406C97.0674%2030.9961%2098.6352%2031.2531%2099.5105%2030.6696'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M128.673%201.97827C125.774%204.39382%20124.402%206.86071%20122.951%2010.4263C120.878%2015.5174%20119.486%2021.4132%20122.058%2026.5572C123.395%2029.2315%20125.527%2031.4883%20128.657%2031.2275C130.832%2031.0462%20134.234%2030.0047%20136.101%2028.8046C139.748%2026.4601%20139.862%2019.3628%20139.862%2015.7501C139.862%2012.1221%20139.322%207.54722%20136.133%205.42123'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M145.314%2017.7585C145.314%2020.0361%20146.94%2022.8141%20147.864%2024.8676C148.314%2025.8674%20148.34%2027.0432%20149.187%2026.3659C149.547%2026.0784%20149.733%2025.3173%20149.968%2024.9314C150.702%2023.7254%20151.478%2022.5438%20152.295%2021.3928C152.999%2020.4007%20153.542%2019.3307%20154.208%2018.3324'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M159.946%2022.6363C162.329%2022.7852%20167.174%2024.139%20168.538%2021.2973C170.36%2017.5004%20164.404%2016.564%20161.955%2016.9139C160.772%2017.0829%20159.925%2018.3952%20159.596%2019.4164C158.844%2021.7461%20161.08%2023.8794%20162.465%2025.5054C163.229%2026.4021%20165.738%2028.7064%20166.896%2027.8644C167.871%2027.1554%20170.837%2027.8943%20171.997%2028.0876'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M177.448%2018.0455C177.559%2019.0398%20178.226%2019.8639%20178.596%2020.7552C179.176%2022.1549%20179.17%2024.1885%20179.17%2025.7284C179.17%2026.1851%20178.941%2027.3717%20179.233%2027.7367C179.632%2028.2343%20178.845%2025.8489%20178.739%2025.3617C178.372%2023.6722%20178.375%2021.8003%20179.313%2020.3408C180.093%2019.1282%20182.021%2017.7585%20183.473%2017.7585'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e",F1="data:image/svg+xml,%3csvg%20width='20'%20height='24'%20viewBox='0%200%2020%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.82205%207.21589C1.69799%205.97529%201.30287%204.89144%201.62129%203.61774C1.85076%202.69986%204.09944%202.44983%204.55541%202.35143C7.48579%201.71907%2010.5606%201.12752%2013.5662%201.02336C14.8054%200.980419%2015.3672%201.79215%2016.1375%202.6294C17.3154%203.90983%2018.1631%205.05896%2018.3303%206.81438C18.4926%208.51806%2018.4244%209.76023%2017.9751%2011.4318C17.4987%2013.2044%2016.6239%2014.5602%2015.2958%2015.8329C13.9439%2017.1285%2012.4993%2018.5086%2010.6862%2019.1222C8.43473%2019.8843%205.35043%2018.6103%203.90682%2016.8058'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.96465%2014.165C6.0624%2015.0673%205.05937%2015.8567%203.97648%2016.4583C3.5156%2016.7143%204.31379%2018.1121%204.43204%2018.5199C4.67598%2019.361%205.05164%2020.1566%205.26595%2021.0062C5.35625%2021.3641%205.41003%2021.7576%205.57481%2022.0872'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",M1="data:image/svg+xml,%3csvg%20width='27'%20height='28'%20viewBox='0%200%2027%2028'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.18318%207.00292C8.70656%205.2824%2012.3997%202.9563%2014.2866%202.02173C14.2866%202.02173%2014.8832%202.61948%2015.0474%202.6664C15.4959%202.79455%2016.1389%203.36089%2016.5049%203.65543C17.9568%204.824%2019.5572%205.83512%2020.7173%207.35529C21.52%208.4071%2022.5307%209.34097%2023.2519%2010.4505C23.8801%2011.417%2024.5944%2012.3271%2025.242%2013.2815C25.3369%2013.4213%2026.1835%2014.7508%2025.8026%2014.779C25.4613%2014.8043%2025.066%2014.8224%2024.7295%2014.8871C24.0748%2015.013%2023.3668%2014.8956%2022.7034%2014.9392C22.3182%2014.9645%2021.9585%2015.0673%2021.5702%2015.0673C21.3286%2015.0673%2021.3499%2015.6677%2021.3499%2015.8601C21.3499%2017.4481%2021.1337%2019.0287%2021.1337%2020.6171C21.1337%2021.7162%2020.9575%2022.8015%2020.9215%2023.9005C20.9032%2024.4588%2020.8577%2025.0037%2020.7894%2025.5582C20.7708%2025.7084%2020.7943%2026.1086%2020.6292%2026.1829C20.2391%2026.3585%2019.6908%2026.311%2019.2598%2026.311C17.7708%2026.311%2016.2655%2026.3781%2014.7871%2026.1669C12.6155%2025.8566%2010.35%2025.8786%208.1602%2025.8786C7.6708%2025.8786%207.72775%2025.6701%207.72775%2025.2299C7.72775%2023.4468%207.39509%2021.6983%206.97496%2019.9684C6.71287%2018.8892%206.57455%2017.7665%206.57455%2016.657C6.57455%2016.2185%206.56854%2015.7901%206.6306%2015.3556C6.64647%2015.2446%206.7108%2014.8953%206.6306%2014.795C6.54591%2014.6892%206.2751%2014.7126%206.17813%2014.7069C5.64321%2014.6755%205.10811%2014.6497%204.57246%2014.6349C3.72344%2014.6113%202.86447%2014.6217%202.0178%2014.5468C1.87123%2014.5338%201.63271%2014.5257%201.50526%2014.4347C1.44289%2014.3901%201.95469%2013.7833%201.99377%2013.7379C2.27258%2013.4145%202.48111%2013.0473%202.6905%2012.6768C3.86252%2010.6033%205.61401%208.77515%207.18318%207.00292Z'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",B1="/assets/game-over-zzio-1StbULpN.svg";function Fc(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;ttypeof e=="boolean"?"".concat(e):e===0?"0":e,Ua=I1,Vr=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return Ua(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:i,defaultVariants:s}=t,o=Object.keys(i).map(f=>{const u=n==null?void 0:n[f],d=s==null?void 0:s[f];if(u===null)return null;const h=Na(u)||Na(d);return i[f][h]}),l=n&&Object.entries(n).reduce((f,u)=>{let[d,h]=u;return h===void 0||(f[d]=h),f},{}),c=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,u)=>{let{class:d,className:h,...a}=u;return Object.entries(a).every(p=>{let[m,g]=p;return Array.isArray(g)?g.includes({...s,...l}[m]):{...s,...l}[m]===g})?[...f,d,h]:f},[]);return Ua(e,o,c,n==null?void 0:n.class,n==null?void 0:n.className)},N1={class:"flex flex-col items-center justify-center"},U1={key:0,class:"text-black text-body-b mt-1"},Ji=Me({__name:"ZRoundButton",props:{color:{type:String,default:"primary"},title:{type:String}},setup(e){const t=Vr(["flex justify-center items-center w-14 h-14 rounded-full border-2"],{variants:{color:{primary:"bg-[#FCBF31]",secondary:"bg-green"}}});return(n,r)=>(re(),ce("button",N1,[K("div",{class:wn(ee(t)({color:e.color}))},[In(n.$slots,"default")],2),e.title?(re(),ce("div",U1,je(e.title),1)):Mt("",!0)]))}}),L1="/assets/rank-banner-d-tUtHGK.png",Mc="data:image/svg+xml,%3csvg%20width='19'%20height='19'%20viewBox='0%200%2019%2019'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.43059%201.02173C8.92229%201.02173%209.53439%201.02275%209.97498%201.27106C10.5034%201.27106%2012.5403%202.22615%2013.0052%202.45905C14.0392%202.97705%2015.371%203.51223%2015.9696%204.57836C16.7893%206.03845%2017.6095%207.16875%2017.9458%208.85366C18.0986%209.61892%2017.8799%2010.3522%2017.8799%2011.1196C17.8799%2012.048%2017.6975%2013.0301%2017.2212%2013.8403C16.362%2015.3016%2015.2688%2016.7749%2013.5029%2016.9496C11.889%2017.1093%2010.0937%2016.9919%208.49647%2016.7149C6.89916%2016.4379%203.35156%2016.2248%202.47261%2014.4636C2.06266%2013.6422%201.62576%2013.0587%201.34543%2012.1536C0.965334%2010.9266%200.934584%209.60991%201.08193%208.34033C1.28432%206.59645%201.69217%205.01032%203.12404%203.8377C4.23262%202.92984%205.51234%202.22705%206.78373%201.57906C7.30733%201.31219%207.83266%201.02173%208.43059%201.02173Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M7%207.12347C7.31959%207.01947%207.73803%207.03886%208.0731%207.03189C8.69347%207.01898%209.31513%207.02927%209.93567%207.02927C10.2532%207.02927%2010.5774%207.01257%2010.8947%207.02927C11.0553%207.03773%2010.9775%207.55206%2010.9591%207.6311C10.8308%208.18224%2010.3287%208.6837%209.88304%209.05456C9.17184%209.64635%208.40718%2010.2032%207.64327%2010.7397C7.46968%2010.8616%207.21317%2011.0028%207.09357%2011.1741C7.01759%2011.2828%206.99859%2011.2601%207.22807%2011.3154C7.72868%2011.436%208.2552%2011.48%208.76608%2011.5509C9.6289%2011.6704%2010.4852%2011.824%2011.348%2011.9434C11.5601%2011.9727%2011.7838%2012.0219%2012%2012.0219'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",D1="/assets/gift-zzio-mxkjtBza.svg",H1="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17%2014L12%209L7%2014'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e";function Bc(e,t){return function(){return e.apply(t,arguments)}}const{toString:V1}=Object.prototype,{getPrototypeOf:Eo}=Object,jr=(e=>t=>{const n=V1.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Pt=e=>(e=e.toLowerCase(),t=>jr(t)===e),Qr=e=>t=>typeof t===e,{isArray:us}=Array,Bs=Qr("undefined");function j1(e){return e!==null&&!Bs(e)&&e.constructor!==null&&!Bs(e.constructor)&&ct(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ic=Pt("ArrayBuffer");function Q1(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ic(e.buffer),t}const W1=Qr("string"),ct=Qr("function"),Nc=Qr("number"),Wr=e=>e!==null&&typeof e=="object",J1=e=>e===!0||e===!1,lr=e=>{if(jr(e)!=="object")return!1;const t=Eo(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},K1=Pt("Date"),q1=Pt("File"),z1=Pt("Blob"),Y1=Pt("FileList"),Z1=e=>Wr(e)&&ct(e.pipe),G1=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ct(e.append)&&((t=jr(e))==="formdata"||t==="object"&&ct(e.toString)&&e.toString()==="[object FormData]"))},X1=Pt("URLSearchParams"),_1=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function zs(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),us(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const Lc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Dc=e=>!Bs(e)&&e!==Lc;function Ki(){const{caseless:e}=Dc(this)&&this||{},t={},n=(r,i)=>{const s=e&&Uc(t,i)||i;lr(t[s])&&lr(r)?t[s]=Ki(t[s],r):lr(r)?t[s]=Ki({},r):us(r)?t[s]=r.slice():t[s]=r};for(let r=0,i=arguments.length;r(zs(t,(i,s)=>{n&&ct(i)?e[s]=Bc(i,n):e[s]=i},{allOwnKeys:r}),e),eh=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),th=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},nh=(e,t,n,r)=>{let i,s,o;const l={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),s=i.length;s-- >0;)o=i[s],(!r||r(o,e,t))&&!l[o]&&(t[o]=e[o],l[o]=!0);e=n!==!1&&Eo(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},sh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},rh=e=>{if(!e)return null;if(us(e))return e;let t=e.length;if(!Nc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},ih=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Eo(Uint8Array)),oh=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let i;for(;(i=r.next())&&!i.done;){const s=i.value;t.call(e,s[0],s[1])}},ah=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},lh=Pt("HTMLFormElement"),ch=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),La=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),uh=Pt("RegExp"),Hc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};zs(n,(i,s)=>{let o;(o=t(i,s,e))!==!1&&(r[s]=o||i)}),Object.defineProperties(e,r)},fh=e=>{Hc(e,(t,n)=>{if(ct(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(ct(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},hh=(e,t)=>{const n={},r=i=>{i.forEach(s=>{n[s]=!0})};return us(e)?r(e):r(String(e).split(t)),n},dh=()=>{},ph=(e,t)=>(e=+e,Number.isFinite(e)?e:t),ii="abcdefghijklmnopqrstuvwxyz",Da="0123456789",Vc={DIGIT:Da,ALPHA:ii,ALPHA_DIGIT:ii+ii.toUpperCase()+Da},mh=(e=16,t=Vc.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function gh(e){return!!(e&&ct(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const vh=e=>{const t=new Array(10),n=(r,i)=>{if(Wr(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[i]=r;const s=us(r)?[]:{};return zs(r,(o,l)=>{const c=n(o,i+1);!Bs(c)&&(s[l]=c)}),t[i]=void 0,s}}return r};return n(e,0)},yh=Pt("AsyncFunction"),xh=e=>e&&(Wr(e)||ct(e))&&ct(e.then)&&ct(e.catch),U={isArray:us,isArrayBuffer:Ic,isBuffer:j1,isFormData:G1,isArrayBufferView:Q1,isString:W1,isNumber:Nc,isBoolean:J1,isObject:Wr,isPlainObject:lr,isUndefined:Bs,isDate:K1,isFile:q1,isBlob:z1,isRegExp:uh,isFunction:ct,isStream:Z1,isURLSearchParams:X1,isTypedArray:ih,isFileList:Y1,forEach:zs,merge:Ki,extend:$1,trim:_1,stripBOM:eh,inherits:th,toFlatObject:nh,kindOf:jr,kindOfTest:Pt,endsWith:sh,toArray:rh,forEachEntry:oh,matchAll:ah,isHTMLForm:lh,hasOwnProperty:La,hasOwnProp:La,reduceDescriptors:Hc,freezeMethods:fh,toObjectSet:hh,toCamelCase:ch,noop:dh,toFiniteNumber:ph,findKey:Uc,global:Lc,isContextDefined:Dc,ALPHABET:Vc,generateString:mh,isSpecCompliantForm:gh,toJSONObject:vh,isAsyncFn:yh,isThenable:xh};function ge(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}U.inherits(ge,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:U.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const jc=ge.prototype,Qc={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Qc[e]={value:e}});Object.defineProperties(ge,Qc);Object.defineProperty(jc,"isAxiosError",{value:!0});ge.from=(e,t,n,r,i,s)=>{const o=Object.create(jc);return U.toFlatObject(e,o,function(c){return c!==Error.prototype},l=>l!=="isAxiosError"),ge.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,s&&Object.assign(o,s),o};const Ch=null;function qi(e){return U.isPlainObject(e)||U.isArray(e)}function Wc(e){return U.endsWith(e,"[]")?e.slice(0,-2):e}function Ha(e,t,n){return e?e.concat(t).map(function(i,s){return i=Wc(i),!n&&s?"["+i+"]":i}).join(n?".":""):t}function Ah(e){return U.isArray(e)&&!e.some(qi)}const bh=U.toFlatObject(U,{},null,function(t){return/^is[A-Z]/.test(t)});function Jr(e,t,n){if(!U.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=U.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,g){return!U.isUndefined(g[m])});const r=n.metaTokens,i=n.visitor||u,s=n.dots,o=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&U.isSpecCompliantForm(t);if(!U.isFunction(i))throw new TypeError("visitor must be a function");function f(p){if(p===null)return"";if(U.isDate(p))return p.toISOString();if(!c&&U.isBlob(p))throw new ge("Blob is not supported. Use a Buffer instead.");return U.isArrayBuffer(p)||U.isTypedArray(p)?c&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function u(p,m,g){let y=p;if(p&&!g&&typeof p=="object"){if(U.endsWith(m,"{}"))m=r?m:m.slice(0,-2),p=JSON.stringify(p);else if(U.isArray(p)&&Ah(p)||(U.isFileList(p)||U.endsWith(m,"[]"))&&(y=U.toArray(p)))return m=Wc(m),y.forEach(function(b,w){!(U.isUndefined(b)||b===null)&&t.append(o===!0?Ha([m],w,s):o===null?m:m+"[]",f(b))}),!1}return qi(p)?!0:(t.append(Ha(g,m,s),f(p)),!1)}const d=[],h=Object.assign(bh,{defaultVisitor:u,convertValue:f,isVisitable:qi});function a(p,m){if(!U.isUndefined(p)){if(d.indexOf(p)!==-1)throw Error("Circular reference detected in "+m.join("."));d.push(p),U.forEach(p,function(y,C){(!(U.isUndefined(y)||y===null)&&i.call(t,y,U.isString(C)?C.trim():C,m,h))===!0&&a(y,m?m.concat(C):[C])}),d.pop()}}if(!U.isObject(e))throw new TypeError("data must be an object");return a(e),t}function Va(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ro(e,t){this._pairs=[],e&&Jr(e,this,t)}const Jc=Ro.prototype;Jc.append=function(t,n){this._pairs.push([t,n])};Jc.toString=function(t){const n=t?function(r){return t.call(this,r,Va)}:Va;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function wh(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Kc(e,t,n){if(!t)return e;const r=n&&n.encode||wh,i=n&&n.serialize;let s;if(i?s=i(t,n):s=U.isURLSearchParams(t)?t.toString():new Ro(t,n).toString(r),s){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class Sh{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){U.forEach(this.handlers,function(r){r!==null&&t(r)})}}const ja=Sh,qc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Eh=typeof URLSearchParams<"u"?URLSearchParams:Ro,Rh=typeof FormData<"u"?FormData:null,Ph=typeof Blob<"u"?Blob:null,Oh={isBrowser:!0,classes:{URLSearchParams:Eh,FormData:Rh,Blob:Ph},protocols:["http","https","file","blob","url","data"]},zc=typeof window<"u"&&typeof document<"u",kh=(e=>zc&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),Th=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Fh=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:zc,hasStandardBrowserEnv:kh,hasStandardBrowserWebWorkerEnv:Th},Symbol.toStringTag,{value:"Module"})),Et={...Fh,...Oh};function Mh(e,t){return Jr(e,new Et.classes.URLSearchParams,Object.assign({visitor:function(n,r,i,s){return Et.isNode&&U.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},t))}function Bh(e){return U.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ih(e){const t={},n=Object.keys(e);let r;const i=n.length;let s;for(r=0;r=n.length;return o=!o&&U.isArray(i)?i.length:o,c?(U.hasOwnProp(i,o)?i[o]=[i[o],r]:i[o]=r,!l):((!i[o]||!U.isObject(i[o]))&&(i[o]=[]),t(n,r,i[o],s)&&U.isArray(i[o])&&(i[o]=Ih(i[o])),!l)}if(U.isFormData(e)&&U.isFunction(e.entries)){const n={};return U.forEachEntry(e,(r,i)=>{t(Bh(r),i,n,0)}),n}return null}function Nh(e,t,n){if(U.isString(e))try{return(t||JSON.parse)(e),U.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Po={transitional:qc,adapter:["xhr","http"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,s=U.isObject(t);if(s&&U.isHTMLForm(t)&&(t=new FormData(t)),U.isFormData(t))return i?JSON.stringify(Yc(t)):t;if(U.isArrayBuffer(t)||U.isBuffer(t)||U.isStream(t)||U.isFile(t)||U.isBlob(t))return t;if(U.isArrayBufferView(t))return t.buffer;if(U.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Mh(t,this.formSerializer).toString();if((l=U.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return Jr(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return s||i?(n.setContentType("application/json",!1),Nh(t)):t}],transformResponse:[function(t){const n=this.transitional||Po.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(t&&U.isString(t)&&(r&&!this.responseType||i)){const o=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(l){if(o)throw l.name==="SyntaxError"?ge.from(l,ge.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Et.classes.FormData,Blob:Et.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};U.forEach(["delete","get","head","post","put","patch"],e=>{Po.headers[e]={}});const Oo=Po,Uh=U.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Lh=e=>{const t={};let n,r,i;return e&&e.split(` +`).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),r=o.substring(i+1).trim(),!(!n||t[n]&&Uh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},Qa=Symbol("internals");function ps(e){return e&&String(e).trim().toLowerCase()}function cr(e){return e===!1||e==null?e:U.isArray(e)?e.map(cr):String(e)}function Dh(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Hh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function oi(e,t,n,r,i){if(U.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!U.isString(t)){if(U.isString(r))return t.indexOf(r)!==-1;if(U.isRegExp(r))return r.test(t)}}function Vh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function jh(e,t){const n=U.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(i,s,o){return this[r].call(this,t,i,s,o)},configurable:!0})})}class Kr{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function s(l,c,f){const u=ps(c);if(!u)throw new Error("header name must be a non-empty string");const d=U.findKey(i,u);(!d||i[d]===void 0||f===!0||f===void 0&&i[d]!==!1)&&(i[d||c]=cr(l))}const o=(l,c)=>U.forEach(l,(f,u)=>s(f,u,c));return U.isPlainObject(t)||t instanceof this.constructor?o(t,n):U.isString(t)&&(t=t.trim())&&!Hh(t)?o(Lh(t),n):t!=null&&s(n,t,r),this}get(t,n){if(t=ps(t),t){const r=U.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return Dh(i);if(U.isFunction(n))return n.call(this,i,r);if(U.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ps(t),t){const r=U.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||oi(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function s(o){if(o=ps(o),o){const l=U.findKey(r,o);l&&(!n||oi(r,r[l],l,n))&&(delete r[l],i=!0)}}return U.isArray(t)?t.forEach(s):s(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const s=n[r];(!t||oi(this,this[s],s,t,!0))&&(delete this[s],i=!0)}return i}normalize(t){const n=this,r={};return U.forEach(this,(i,s)=>{const o=U.findKey(r,s);if(o){n[o]=cr(i),delete n[s];return}const l=t?Vh(s):String(s).trim();l!==s&&delete n[s],n[l]=cr(i),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return U.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&U.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[Qa]=this[Qa]={accessors:{}}).accessors,i=this.prototype;function s(o){const l=ps(o);r[l]||(jh(i,o),r[l]=!0)}return U.isArray(t)?t.forEach(s):s(t),this}}Kr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);U.reduceDescriptors(Kr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});U.freezeMethods(Kr);const Nt=Kr;function ai(e,t){const n=this||Oo,r=t||n,i=Nt.from(r.headers);let s=r.data;return U.forEach(e,function(l){s=l.call(n,s,i.normalize(),t?t.status:void 0)}),i.normalize(),s}function Zc(e){return!!(e&&e.__CANCEL__)}function Ys(e,t,n){ge.call(this,e??"canceled",ge.ERR_CANCELED,t,n),this.name="CanceledError"}U.inherits(Ys,ge,{__CANCEL__:!0});function Qh(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ge("Request failed with status code "+n.status,[ge.ERR_BAD_REQUEST,ge.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const Wh=Et.hasStandardBrowserEnv?{write(e,t,n,r,i,s){const o=[e+"="+encodeURIComponent(t)];U.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),U.isString(r)&&o.push("path="+r),U.isString(i)&&o.push("domain="+i),s===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Jh(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Kh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Gc(e,t){return e&&!Jh(t)?Kh(e,t):t}const qh=Et.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let r;function i(s){let o=s;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=i(window.location.href),function(o){const l=U.isString(o)?i(o):o;return l.protocol===r.protocol&&l.host===r.host}}():function(){return function(){return!0}}();function zh(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Yh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,s=0,o;return t=t!==void 0?t:1e3,function(c){const f=Date.now(),u=r[s];o||(o=f),n[i]=c,r[i]=f;let d=s,h=0;for(;d!==i;)h+=n[d++],d=d%e;if(i=(i+1)%e,i===s&&(s=(s+1)%e),f-o{const s=i.loaded,o=i.lengthComputable?i.total:void 0,l=s-n,c=r(l),f=s<=o;n=s;const u={loaded:s,total:o,progress:o?s/o:void 0,bytes:l,rate:c||void 0,estimated:c&&o&&f?(o-s)/c:void 0,event:i};u[t?"download":"upload"]=!0,e(u)}}const Zh=typeof XMLHttpRequest<"u",Gh=Zh&&function(e){return new Promise(function(n,r){let i=e.data;const s=Nt.from(e.headers).normalize();let{responseType:o,withXSRFToken:l}=e,c;function f(){e.cancelToken&&e.cancelToken.unsubscribe(c),e.signal&&e.signal.removeEventListener("abort",c)}let u;if(U.isFormData(i)){if(Et.hasStandardBrowserEnv||Et.hasStandardBrowserWebWorkerEnv)s.setContentType(!1);else if((u=s.getContentType())!==!1){const[m,...g]=u?u.split(";").map(y=>y.trim()).filter(Boolean):[];s.setContentType([m||"multipart/form-data",...g].join("; "))}}let d=new XMLHttpRequest;if(e.auth){const m=e.auth.username||"",g=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";s.set("Authorization","Basic "+btoa(m+":"+g))}const h=Gc(e.baseURL,e.url);d.open(e.method.toUpperCase(),Kc(h,e.params,e.paramsSerializer),!0),d.timeout=e.timeout;function a(){if(!d)return;const m=Nt.from("getAllResponseHeaders"in d&&d.getAllResponseHeaders()),y={data:!o||o==="text"||o==="json"?d.responseText:d.response,status:d.status,statusText:d.statusText,headers:m,config:e,request:d};Qh(function(b){n(b),f()},function(b){r(b),f()},y),d=null}if("onloadend"in d?d.onloadend=a:d.onreadystatechange=function(){!d||d.readyState!==4||d.status===0&&!(d.responseURL&&d.responseURL.indexOf("file:")===0)||setTimeout(a)},d.onabort=function(){d&&(r(new ge("Request aborted",ge.ECONNABORTED,e,d)),d=null)},d.onerror=function(){r(new ge("Network Error",ge.ERR_NETWORK,e,d)),d=null},d.ontimeout=function(){let g=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const y=e.transitional||qc;e.timeoutErrorMessage&&(g=e.timeoutErrorMessage),r(new ge(g,y.clarifyTimeoutError?ge.ETIMEDOUT:ge.ECONNABORTED,e,d)),d=null},Et.hasStandardBrowserEnv&&(l&&U.isFunction(l)&&(l=l(e)),l||l!==!1&&qh(h))){const m=e.xsrfHeaderName&&e.xsrfCookieName&&Wh.read(e.xsrfCookieName);m&&s.set(e.xsrfHeaderName,m)}i===void 0&&s.setContentType(null),"setRequestHeader"in d&&U.forEach(s.toJSON(),function(g,y){d.setRequestHeader(y,g)}),U.isUndefined(e.withCredentials)||(d.withCredentials=!!e.withCredentials),o&&o!=="json"&&(d.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&d.addEventListener("progress",Wa(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&d.upload&&d.upload.addEventListener("progress",Wa(e.onUploadProgress)),(e.cancelToken||e.signal)&&(c=m=>{d&&(r(!m||m.type?new Ys(null,e,d):m),d.abort(),d=null)},e.cancelToken&&e.cancelToken.subscribe(c),e.signal&&(e.signal.aborted?c():e.signal.addEventListener("abort",c)));const p=zh(h);if(p&&Et.protocols.indexOf(p)===-1){r(new ge("Unsupported protocol "+p+":",ge.ERR_BAD_REQUEST,e));return}d.send(i||null)})},zi={http:Ch,xhr:Gh};U.forEach(zi,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ja=e=>`- ${e}`,Xh=e=>U.isFunction(e)||e===null||e===!1,Xc={getAdapter:e=>{e=U.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let s=0;s`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let o=t?s.length>1?`since : `+s.map(Ja).join(` -`):" "+Ja(s[0]):"as no adapter specified";throw new ge("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return r},adapters:qi};function ai(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ys(null,e)}function Ka(e){return ai(e),e.headers=Nt.from(e.headers),e.data=oi.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Xc.getAdapter(e.adapter||Oo.adapter)(e).then(function(r){return ai(e),r.data=oi.call(e,e.transformResponse,r),r.headers=Nt.from(r.headers),r},function(r){return Zc(r)||(ai(e),r&&r.response&&(r.response.data=oi.call(e,e.transformResponse,r.response),r.response.headers=Nt.from(r.response.headers))),Promise.reject(r)})}const qa=e=>e instanceof Nt?e.toJSON():e;function ss(e,t){t=t||{};const n={};function r(h,u,d){return U.isPlainObject(h)&&U.isPlainObject(u)?U.merge.call({caseless:d},h,u):U.isPlainObject(u)?U.merge({},u):U.isArray(u)?u.slice():u}function i(h,u,d){if(U.isUndefined(u)){if(!U.isUndefined(h))return r(void 0,h,d)}else return r(h,u,d)}function s(h,u){if(!U.isUndefined(u))return r(void 0,u)}function o(h,u){if(U.isUndefined(u)){if(!U.isUndefined(h))return r(void 0,h)}else return r(void 0,u)}function l(h,u,d){if(d in t)return r(h,u);if(d in e)return r(void 0,h)}const c={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:l,headers:(h,u)=>i(qa(h),qa(u),!0)};return U.forEach(Object.keys(Object.assign({},e,t)),function(u){const d=c[u]||i,f=d(e[u],t[u],u);U.isUndefined(f)&&d!==l||(n[u]=f)}),n}const _c="1.6.7",ko={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ko[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const za={};ko.transitional=function(t,n,r){function i(s,o){return"[Axios v"+_c+"] Transitional option '"+s+"'"+o+(r?". "+r:"")}return(s,o,l)=>{if(t===!1)throw new ge(i(o," has been removed"+(n?" in "+n:"")),ge.ERR_DEPRECATED);return n&&!za[o]&&(za[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,o,l):!0}};function Xh(e,t,n){if(typeof e!="object")throw new ge("options must be an object",ge.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const s=r[i],o=t[s];if(o){const l=e[s],c=l===void 0||o(l,s,e);if(c!==!0)throw new ge("option "+s+" must be "+c,ge.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ge("Unknown option "+s,ge.ERR_BAD_OPTION)}}const zi={assertOptions:Xh,validators:ko},Ht=zi.validators;class Cr{constructor(t){this.defaults=t,this.interceptors={request:new ja,response:new ja}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let i;Error.captureStackTrace?Error.captureStackTrace(i={}):i=new Error;const s=i.stack?i.stack.replace(/^.+\n/,""):"";r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+s):r.stack=s}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ss(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:s}=n;r!==void 0&&zi.assertOptions(r,{silentJSONParsing:Ht.transitional(Ht.boolean),forcedJSONParsing:Ht.transitional(Ht.boolean),clarifyTimeoutError:Ht.transitional(Ht.boolean)},!1),i!=null&&(U.isFunction(i)?n.paramsSerializer={serialize:i}:zi.assertOptions(i,{encode:Ht.function,serialize:Ht.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=s&&U.merge(s.common,s[n.method]);s&&U.forEach(["delete","get","head","post","put","patch","common"],p=>{delete s[p]}),n.headers=Nt.concat(o,s);const l=[];let c=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(n)===!1||(c=c&&m.synchronous,l.unshift(m.fulfilled,m.rejected))});const h=[];this.interceptors.response.forEach(function(m){h.push(m.fulfilled,m.rejected)});let u,d=0,f;if(!c){const p=[Ka.bind(this),void 0];for(p.unshift.apply(p,l),p.push.apply(p,h),f=p.length,u=Promise.resolve(n);d{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](i);r._listeners=null}),this.promise.then=i=>{let s;const o=new Promise(l=>{r.subscribe(l),s=l}).then(i);return o.cancel=function(){r.unsubscribe(s)},o},t(function(s,o,l){r.reason||(r.reason=new Ys(s,o,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new To(function(i){t=i}),cancel:t}}}const _h=To;function $h(e){return function(n){return e.apply(null,n)}}function ed(e){return U.isObject(e)&&e.isAxiosError===!0}const Yi={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Yi).forEach(([e,t])=>{Yi[t]=e});const td=Yi;function $c(e){const t=new ur(e),n=Bc(ur.prototype.request,t);return U.extend(n,ur.prototype,t,{allOwnKeys:!0}),U.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return $c(ss(e,i))},n}const Ne=$c(Oo);Ne.Axios=ur;Ne.CanceledError=Ys;Ne.CancelToken=_h;Ne.isCancel=Zc;Ne.VERSION=_c;Ne.toFormData=Wr;Ne.AxiosError=ge;Ne.Cancel=Ne.CanceledError;Ne.all=function(t){return Promise.all(t)};Ne.spread=$h;Ne.isAxiosError=ed;Ne.mergeConfig=ss;Ne.AxiosHeaders=Nt;Ne.formToJSON=e=>Yc(U.isHTMLForm(e)?new FormData(e):e);Ne.getAdapter=Xc.getAdapter;Ne.HttpStatusCode=td;Ne.default=Ne;const nd=Ne,sd={baseURL:"https://3.35.245.28.nip.io"},eu=nd.create(sd),rd=async e=>(await eu.post("/rank",e)).data,id=()=>af({mutationFn:e=>rd(e)}),od={class:"absolute inset-0 flex flex-col items-center justify-center z-50 bg-transBlack-50 px-6"},ad={class:"bg-gradient-to-r relative from-gradient-yellow to-gradient-pink p-4 flex items-center rounded-2xl border-2 border-black mb-2"},ld=K("span",{class:"text-banner-r mr-14"},[nn(" 잠시만요! "),K("br"),K("strong",{class:"text-banner-b"},"이벤트 참여하면 상품"),nn(" 을 받을 수 있어요 ")],-1),cd=["src"],ud=["src"],fd={class:"bg-white flex flex-col gap-6 px-6 py-6 justify-center items-center rounded-2xl border-2 border-black"},hd=["src"],dd={class:"text-body-b px-2 border-2 rounded"},pd=["src"],md={class:"w-full text-body-r"},gd={class:"w-full flex justify-between"},vd=K("span",null,"점수",-1),yd={class:"text-body-b flex gap-1"},xd=["src"],Cd={class:"w-full flex justify-between"},Ad=K("span",null,"순위",-1),bd={class:"text-body-b"},wd={class:"flex gap-4"},Sd=["src"],Ed=["src"],Rd=["src"],Pd=Me({__name:"GameOver",props:{nickname:{type:String,default:""},score:{type:Number,default:0}},setup(e){const t=e,{data:n,mutate:r}=id(),i=Ae(()=>{var o;return(o=n==null?void 0:n.value)==null?void 0:o.rank}),s=Ae(()=>{var o;return(o=n==null?void 0:n.value)==null?void 0:o.count});return En(()=>{t.score&&t.nickname&&r({score:t.score,nickName:t.nickname})}),(o,l)=>(re(),ce("div",od,[K("div",ad,[ld,K("img",{src:ee(L1),alt:"gift-zzio",class:"absolute right-[36px] bottom-0 w-[60.4px] h-[64.75px]"},null,8,cd),K("img",{src:ee(D1),alt:"arrow",class:"rotate-180 h-6"},null,8,ud)]),K("div",fd,[K("img",{src:ee(k1),alt:"game over"},null,8,hd),K("div",dd,je(e.nickname),1),K("img",{src:ee(M1),alt:"zzio"},null,8,pd),K("div",md,[K("div",gd,[vd,K("div",yd,[K("span",null,je(e.score),1),K("img",{src:ee(Mc),alt:"코인"},null,8,xd)])]),K("div",Cd,[Ad,K("span",bd,je(i.value)+"등 / "+je(s.value)+"명",1)])]),K("div",wd,[he(Wi,{color:"secondary",onClick:l[0]||(l[0]=c=>o.$emit("back")),title:"처음으로"},{default:Ge(()=>[K("img",{src:ee(F1),alt:"홈"},null,8,Sd)]),_:1}),he(Wi,{color:"primary",onClick:l[1]||(l[1]=c=>o.$emit("replay")),title:"다시하기"},{default:Ge(()=>[K("img",{src:ee(T1),alt:"다시하기"},null,8,Ed)]),_:1})]),K("img",{class:"max-w-72",src:ee(U1),alt:"실시간 랭킹 바로가기",onClick:l[2]||(l[2]=c=>o.$emit("rank"))},null,8,Rd)])]))}}),Od={class:"ground w-full bg-[#81685A]"},kd=Me({__name:"Ground",props:{height:Number},setup(e){C2(r=>({f949db42:n.value}));const t=e,n=Ae(()=>`${t.height}px`);return(r,i)=>(re(),ce("div",Od))}}),Td=cs(kd,[["__scopeId","data-v-0532f889"]]),Fd="data:image/svg+xml,%3csvg%20width='27'%20height='32'%20viewBox='0%200%2027%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.6751%2013.9973C22.0094%2013.0074%2021.4337%2011.9797%2020.7618%2011C18.0659%2011%2013.2394%2012.3628%2010.721%2013.3337C9.5596%2013.7815%208.51678%2014.2514%207.56378%2015.131C6.41118%2016.1949%205.7163%2017.3982%204.85279%2018.6537C4.26802%2019.504%203.6337%2020.8005%203.69252%2021.8502C3.74063%2022.7086%204.29889%2023.4778%204.39537%2024.3387C4.47243%2025.0262%204.94275%2025.7335%205.29904%2026.3075C5.41578%2026.4955%205.53843%2026.678%205.70067%2026.8273C6.11779%2027.2113%206.77047%2027.887%207.35739%2028.0163C7.77046%2028.1073%208.18879%2028.3071%208.56786%2028.4145C8.7991%2028.48%209.58367%2028.6032%209.71696%2028.7684C9.9764%2029.0899%2010.704%2028.9942%2011.0111%2029.2606C11.3322%2029.5391%2011.9475%2029.6032%2012.3499%2029.7362C13.5928%2030.1469%2014.8972%2029.97%2016.1877%2029.9131C17.9245%2029.8366%2019.9897%2029.4132%2021.6097%2028.8292C22.9624%2028.3416%2023.8858%2027.4229%2024.7725%2026.3241C25.3628%2025.5926%2025.1578%2024.8156%2025.4998%2023.9437C25.4998%2022.2917%2024.4865%2017.7774%2024.2705%2017.0279C24.1799%2016.7138%2023.8308%2016.0193%2023.6234%2015.7725C23.2005%2015.2695%2023.0384%2014.5376%2022.6751%2013.9973Z'%20fill='%23FFAF00'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M11.394%204.88757C12.0487%204.88757%2012.8637%204.88894%2013.4503%205.21956C14.1539%205.21956%2016.866%206.49125%2017.4851%206.80135C18.8619%207.49106%2020.6351%208.20366%2021.4321%209.6232C22.5235%2011.5673%2023.6156%2013.0723%2024.0634%2015.3157C24.2668%2016.3346%2023.9757%2017.311%2023.9757%2018.3328C23.9757%2019.569%2023.7328%2020.8766%2023.0986%2021.9553C21.9546%2023.901%2020.499%2025.8627%2018.1478%2026.0954C15.9988%2026.308%2013.6084%2026.1517%2011.4817%2025.7829C9.35491%2025.4141%204.63133%2025.1304%203.46101%2022.7853C2.91517%2021.6915%202.33344%2020.9146%201.96018%2019.7096C1.45409%2018.0758%201.41314%2016.3226%201.60933%2014.6322C1.87882%2012.3103%202.42186%2010.1983%204.32838%208.63702C5.80445%207.4282%207.50838%206.49245%209.20122%205.62965C9.89839%205.27432%2010.5979%204.88757%2011.394%204.88757Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M9.48914%2013.0118C9.91466%2012.8733%2010.4718%2012.8991%2010.918%2012.8898C11.744%2012.8726%2012.5717%2012.8863%2013.398%2012.8863C13.8207%2012.8863%2014.2525%2012.8641%2014.6749%2012.8863C14.8888%2012.8976%2014.7851%2013.5824%2014.7606%2013.6877C14.5898%2014.4215%2013.9213%2015.0892%2013.3279%2015.583C12.3809%2016.371%2011.3628%2017.1124%2010.3456%2017.8267C10.1145%2017.9891%209.77297%2018.1771%209.61372%2018.4051C9.51256%2018.5499%209.48725%2018.5196%209.79281%2018.5932C10.4594%2018.7538%2011.1604%2018.8125%2011.8407%2018.9068C12.9895%2019.066%2014.1296%2019.2704%2015.2784%2019.4294C15.5609%2019.4685%2015.8587%2019.5339%2016.1466%2019.5339'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.7046%2026.567C14.7046%2026.8579%2014.7319%2027.3589%2014.9399%2027.5669'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M20.3511%2025.2731C20.4794%2025.6296%2020.6433%2025.9734%2020.7628%2026.3318'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e",Md={class:"flex items-center gap-1 h-7"},Bd={class:"text-title"},Id=["src"],Nd=Me({__name:"Score",props:{score:{type:Number,default:0}},setup(e){return(t,n)=>(re(),ce("div",Md,[K("div",Bd,je(e.score),1),K("img",{src:ee(Fd),alt:"찌오 코인"},null,8,Id)]))}});var li=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},tu={exports:{}};/*! +`):" "+Ja(s[0]):"as no adapter specified";throw new ge("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return r},adapters:zi};function li(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ys(null,e)}function Ka(e){return li(e),e.headers=Nt.from(e.headers),e.data=ai.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Xc.getAdapter(e.adapter||Oo.adapter)(e).then(function(r){return li(e),r.data=ai.call(e,e.transformResponse,r),r.headers=Nt.from(r.headers),r},function(r){return Zc(r)||(li(e),r&&r.response&&(r.response.data=ai.call(e,e.transformResponse,r.response),r.response.headers=Nt.from(r.response.headers))),Promise.reject(r)})}const qa=e=>e instanceof Nt?e.toJSON():e;function ss(e,t){t=t||{};const n={};function r(f,u,d){return U.isPlainObject(f)&&U.isPlainObject(u)?U.merge.call({caseless:d},f,u):U.isPlainObject(u)?U.merge({},u):U.isArray(u)?u.slice():u}function i(f,u,d){if(U.isUndefined(u)){if(!U.isUndefined(f))return r(void 0,f,d)}else return r(f,u,d)}function s(f,u){if(!U.isUndefined(u))return r(void 0,u)}function o(f,u){if(U.isUndefined(u)){if(!U.isUndefined(f))return r(void 0,f)}else return r(void 0,u)}function l(f,u,d){if(d in t)return r(f,u);if(d in e)return r(void 0,f)}const c={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:l,headers:(f,u)=>i(qa(f),qa(u),!0)};return U.forEach(Object.keys(Object.assign({},e,t)),function(u){const d=c[u]||i,h=d(e[u],t[u],u);U.isUndefined(h)&&d!==l||(n[u]=h)}),n}const _c="1.6.7",ko={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ko[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const za={};ko.transitional=function(t,n,r){function i(s,o){return"[Axios v"+_c+"] Transitional option '"+s+"'"+o+(r?". "+r:"")}return(s,o,l)=>{if(t===!1)throw new ge(i(o," has been removed"+(n?" in "+n:"")),ge.ERR_DEPRECATED);return n&&!za[o]&&(za[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,o,l):!0}};function _h(e,t,n){if(typeof e!="object")throw new ge("options must be an object",ge.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const s=r[i],o=t[s];if(o){const l=e[s],c=l===void 0||o(l,s,e);if(c!==!0)throw new ge("option "+s+" must be "+c,ge.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ge("Unknown option "+s,ge.ERR_BAD_OPTION)}}const Yi={assertOptions:_h,validators:ko},Ht=Yi.validators;class Cr{constructor(t){this.defaults=t,this.interceptors={request:new ja,response:new ja}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let i;Error.captureStackTrace?Error.captureStackTrace(i={}):i=new Error;const s=i.stack?i.stack.replace(/^.+\n/,""):"";r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+s):r.stack=s}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ss(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:s}=n;r!==void 0&&Yi.assertOptions(r,{silentJSONParsing:Ht.transitional(Ht.boolean),forcedJSONParsing:Ht.transitional(Ht.boolean),clarifyTimeoutError:Ht.transitional(Ht.boolean)},!1),i!=null&&(U.isFunction(i)?n.paramsSerializer={serialize:i}:Yi.assertOptions(i,{encode:Ht.function,serialize:Ht.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=s&&U.merge(s.common,s[n.method]);s&&U.forEach(["delete","get","head","post","put","patch","common"],p=>{delete s[p]}),n.headers=Nt.concat(o,s);const l=[];let c=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(n)===!1||(c=c&&m.synchronous,l.unshift(m.fulfilled,m.rejected))});const f=[];this.interceptors.response.forEach(function(m){f.push(m.fulfilled,m.rejected)});let u,d=0,h;if(!c){const p=[Ka.bind(this),void 0];for(p.unshift.apply(p,l),p.push.apply(p,f),h=p.length,u=Promise.resolve(n);d{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](i);r._listeners=null}),this.promise.then=i=>{let s;const o=new Promise(l=>{r.subscribe(l),s=l}).then(i);return o.cancel=function(){r.unsubscribe(s)},o},t(function(s,o,l){r.reason||(r.reason=new Ys(s,o,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new To(function(i){t=i}),cancel:t}}}const $h=To;function ed(e){return function(n){return e.apply(null,n)}}function td(e){return U.isObject(e)&&e.isAxiosError===!0}const Zi={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Zi).forEach(([e,t])=>{Zi[t]=e});const nd=Zi;function $c(e){const t=new ur(e),n=Bc(ur.prototype.request,t);return U.extend(n,ur.prototype,t,{allOwnKeys:!0}),U.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return $c(ss(e,i))},n}const Ne=$c(Oo);Ne.Axios=ur;Ne.CanceledError=Ys;Ne.CancelToken=$h;Ne.isCancel=Zc;Ne.VERSION=_c;Ne.toFormData=Jr;Ne.AxiosError=ge;Ne.Cancel=Ne.CanceledError;Ne.all=function(t){return Promise.all(t)};Ne.spread=ed;Ne.isAxiosError=td;Ne.mergeConfig=ss;Ne.AxiosHeaders=Nt;Ne.formToJSON=e=>Yc(U.isHTMLForm(e)?new FormData(e):e);Ne.getAdapter=Xc.getAdapter;Ne.HttpStatusCode=nd;Ne.default=Ne;const sd=Ne,rd={baseURL:"https://3.35.245.28.nip.io"},eu=sd.create(rd),id=async e=>(await eu.post("/rank",e)).data,od=()=>lf({mutationFn:e=>id(e)}),ad={class:"absolute inset-0 flex flex-col items-center justify-center z-50 bg-transBlack-50 px-6"},ld={class:"bg-gradient-to-r relative from-gradient-yellow to-gradient-pink p-4 flex items-center rounded-2xl border-2 border-black mb-2"},cd=K("span",{class:"text-banner-r mr-14"},[nn(" 잠시만요! "),K("br"),K("strong",{class:"text-banner-b"},"이벤트 참여하면 상품"),nn(" 을 받을 수 있어요 ")],-1),ud=["src"],fd=["src"],hd={class:"bg-white flex flex-col gap-6 px-6 py-6 justify-center items-center rounded-2xl border-2 border-black"},dd=["src"],pd={class:"text-body-b px-2 border-2 rounded"},md=["src"],gd={class:"w-full text-body-r"},vd={class:"w-full flex justify-between"},yd=K("span",null,"점수",-1),xd={class:"text-body-b flex gap-1"},Cd=["src"],Ad={class:"w-full flex justify-between"},bd=K("span",null,"순위",-1),wd={class:"text-body-b"},Sd={class:"flex gap-4"},Ed=["src"],Rd=["src"],Pd=["src"],Od=Me({__name:"GameOver",props:{nickname:{type:String,default:""},score:{type:Number,default:0}},setup(e){const t=e,{data:n,mutate:r}=od(),i=Ae(()=>{var c;return(c=n==null?void 0:n.value)==null?void 0:c.rank}),s=Ae(()=>{var c;return(c=n==null?void 0:n.value)==null?void 0:c.count}),o=Ae(()=>{var c;return(c=n==null?void 0:n.value)==null?void 0:c.userId});c0(()=>{console.log("userID",o.value)});const l=()=>new Date{t.score&&t.nickname&&l()&&r({score:t.score,nickName:t.nickname})}),(c,f)=>(re(),ce("div",ad,[K("div",ld,[cd,K("img",{src:ee(D1),alt:"gift-zzio",class:"absolute right-[36px] bottom-0 w-[60.4px] h-[64.75px]"},null,8,ud),K("img",{src:ee(H1),alt:"arrow",class:"rotate-180 h-6"},null,8,fd)]),K("div",hd,[K("img",{src:ee(T1),alt:"game over"},null,8,dd),K("div",pd,je(e.nickname),1),K("img",{src:ee(B1),alt:"zzio"},null,8,md),K("div",gd,[K("div",vd,[yd,K("div",xd,[K("span",null,je(e.score),1),K("img",{src:ee(Mc),alt:"코인"},null,8,Cd)])]),K("div",Ad,[bd,K("span",wd,je(i.value)+"등 / "+je(s.value)+"명",1)])]),K("div",Sd,[he(Ji,{color:"secondary",onClick:f[0]||(f[0]=u=>c.$emit("back")),title:"처음으로"},{default:Ge(()=>[K("img",{src:ee(M1),alt:"홈"},null,8,Ed)]),_:1}),he(Ji,{color:"primary",onClick:f[1]||(f[1]=u=>c.$emit("replay")),title:"다시하기"},{default:Ge(()=>[K("img",{src:ee(F1),alt:"다시하기"},null,8,Rd)]),_:1})]),K("img",{class:"max-w-72",src:ee(L1),alt:"실시간 랭킹 바로가기",onClick:f[2]||(f[2]=u=>c.$emit("rank"))},null,8,Pd)])]))}}),kd={class:"ground w-full bg-[#81685A]"},Td=Me({__name:"Ground",props:{height:Number},setup(e){A2(r=>({f949db42:n.value}));const t=e,n=Ae(()=>`${t.height}px`);return(r,i)=>(re(),ce("div",kd))}}),Fd=cs(Td,[["__scopeId","data-v-0532f889"]]),Md="data:image/svg+xml,%3csvg%20width='27'%20height='32'%20viewBox='0%200%2027%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.6751%2013.9973C22.0094%2013.0074%2021.4337%2011.9797%2020.7618%2011C18.0659%2011%2013.2394%2012.3628%2010.721%2013.3337C9.5596%2013.7815%208.51678%2014.2514%207.56378%2015.131C6.41118%2016.1949%205.7163%2017.3982%204.85279%2018.6537C4.26802%2019.504%203.6337%2020.8005%203.69252%2021.8502C3.74063%2022.7086%204.29889%2023.4778%204.39537%2024.3387C4.47243%2025.0262%204.94275%2025.7335%205.29904%2026.3075C5.41578%2026.4955%205.53843%2026.678%205.70067%2026.8273C6.11779%2027.2113%206.77047%2027.887%207.35739%2028.0163C7.77046%2028.1073%208.18879%2028.3071%208.56786%2028.4145C8.7991%2028.48%209.58367%2028.6032%209.71696%2028.7684C9.9764%2029.0899%2010.704%2028.9942%2011.0111%2029.2606C11.3322%2029.5391%2011.9475%2029.6032%2012.3499%2029.7362C13.5928%2030.1469%2014.8972%2029.97%2016.1877%2029.9131C17.9245%2029.8366%2019.9897%2029.4132%2021.6097%2028.8292C22.9624%2028.3416%2023.8858%2027.4229%2024.7725%2026.3241C25.3628%2025.5926%2025.1578%2024.8156%2025.4998%2023.9437C25.4998%2022.2917%2024.4865%2017.7774%2024.2705%2017.0279C24.1799%2016.7138%2023.8308%2016.0193%2023.6234%2015.7725C23.2005%2015.2695%2023.0384%2014.5376%2022.6751%2013.9973Z'%20fill='%23FFAF00'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M11.394%204.88757C12.0487%204.88757%2012.8637%204.88894%2013.4503%205.21956C14.1539%205.21956%2016.866%206.49125%2017.4851%206.80135C18.8619%207.49106%2020.6351%208.20366%2021.4321%209.6232C22.5235%2011.5673%2023.6156%2013.0723%2024.0634%2015.3157C24.2668%2016.3346%2023.9757%2017.311%2023.9757%2018.3328C23.9757%2019.569%2023.7328%2020.8766%2023.0986%2021.9553C21.9546%2023.901%2020.499%2025.8627%2018.1478%2026.0954C15.9988%2026.308%2013.6084%2026.1517%2011.4817%2025.7829C9.35491%2025.4141%204.63133%2025.1304%203.46101%2022.7853C2.91517%2021.6915%202.33344%2020.9146%201.96018%2019.7096C1.45409%2018.0758%201.41314%2016.3226%201.60933%2014.6322C1.87882%2012.3103%202.42186%2010.1983%204.32838%208.63702C5.80445%207.4282%207.50838%206.49245%209.20122%205.62965C9.89839%205.27432%2010.5979%204.88757%2011.394%204.88757Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M9.48914%2013.0118C9.91466%2012.8733%2010.4718%2012.8991%2010.918%2012.8898C11.744%2012.8726%2012.5717%2012.8863%2013.398%2012.8863C13.8207%2012.8863%2014.2525%2012.8641%2014.6749%2012.8863C14.8888%2012.8976%2014.7851%2013.5824%2014.7606%2013.6877C14.5898%2014.4215%2013.9213%2015.0892%2013.3279%2015.583C12.3809%2016.371%2011.3628%2017.1124%2010.3456%2017.8267C10.1145%2017.9891%209.77297%2018.1771%209.61372%2018.4051C9.51256%2018.5499%209.48725%2018.5196%209.79281%2018.5932C10.4594%2018.7538%2011.1604%2018.8125%2011.8407%2018.9068C12.9895%2019.066%2014.1296%2019.2704%2015.2784%2019.4294C15.5609%2019.4685%2015.8587%2019.5339%2016.1466%2019.5339'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.7046%2026.567C14.7046%2026.8579%2014.7319%2027.3589%2014.9399%2027.5669'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M20.3511%2025.2731C20.4794%2025.6296%2020.6433%2025.9734%2020.7628%2026.3318'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e",Bd={class:"flex items-center gap-1 h-7"},Id={class:"text-title"},Nd=["src"],Ud=Me({__name:"Score",props:{score:{type:Number,default:0}},setup(e){return(t,n)=>(re(),ce("div",Bd,[K("div",Id,je(e.score),1),K("img",{src:ee(Md),alt:"찌오 코인"},null,8,Nd)]))}});var ci=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},tu={exports:{}};/*! * matter-js 0.19.0 by @liabru * http://brm.io/matter-js/ * License MIT @@ -37,5 +37,5 @@ var qr=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var F=(e,t,n)=>(qr(e * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. - */(function(e,t){(function(r,i){e.exports=i()})(li,function(){return function(n){var r={};function i(s){if(r[s])return r[s].exports;var o=r[s]={i:s,l:!1,exports:{}};return n[s].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=n,i.c=r,i.d=function(s,o,l){i.o(s,o)||Object.defineProperty(s,o,{enumerable:!0,get:l})},i.r=function(s){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})},i.t=function(s,o){if(o&1&&(s=i(s)),o&8||o&4&&typeof s=="object"&&s&&s.__esModule)return s;var l=Object.create(null);if(i.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:s}),o&2&&typeof s!="string")for(var c in s)i.d(l,c,(function(h){return s[h]}).bind(null,c));return l},i.n=function(s){var o=s&&s.__esModule?function(){return s.default}:function(){return s};return i.d(o,"a",o),o},i.o=function(s,o){return Object.prototype.hasOwnProperty.call(s,o)},i.p="",i(i.s=20)}([function(n,r){var i={};n.exports=i,function(){i._baseDelta=1e3/60,i._nextId=0,i._seed=0,i._nowStartTime=+new Date,i._warnedOnce={},i._decomp=null,i.extend=function(o,l){var c,h;typeof l=="boolean"?(c=2,h=l):(c=1,h=!0);for(var u=c;u0;l--){var c=Math.floor(i.random()*(l+1)),h=o[l];o[l]=o[c],o[c]=h}return o},i.choose=function(o){return o[Math.floor(i.random()*o.length)]},i.isElement=function(o){return typeof HTMLElement<"u"?o instanceof HTMLElement:!!(o&&o.nodeType&&o.nodeName)},i.isArray=function(o){return Object.prototype.toString.call(o)==="[object Array]"},i.isFunction=function(o){return typeof o=="function"},i.isPlainObject=function(o){return typeof o=="object"&&o.constructor===Object},i.isString=function(o){return toString.call(o)==="[object String]"},i.clamp=function(o,l,c){return oc?c:o},i.sign=function(o){return o<0?-1:1},i.now=function(){if(typeof window<"u"&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-i._nowStartTime},i.random=function(o,l){return o=typeof o<"u"?o:0,l=typeof l<"u"?l:1,o+s()*(l-o)};var s=function(){return i._seed=(i._seed*9301+49297)%233280,i._seed/233280};i.colorToNumber=function(o){return o=o.replace("#",""),o.length==3&&(o=o.charAt(0)+o.charAt(0)+o.charAt(1)+o.charAt(1)+o.charAt(2)+o.charAt(2)),parseInt(o,16)},i.logLevel=1,i.log=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.info=function(){console&&i.logLevel>0&&i.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.warn=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.warnOnce=function(){var o=Array.prototype.slice.call(arguments).join(" ");i._warnedOnce[o]||(i.warn(o),i._warnedOnce[o]=!0)},i.deprecated=function(o,l,c){o[l]=i.chain(function(){i.warnOnce("🔅 deprecated 🔅",c)},o[l])},i.nextId=function(){return i._nextId++},i.indexOf=function(o,l){if(o.indexOf)return o.indexOf(l);for(var c=0;cs.max.x&&(s.max.x=h.x),h.xs.max.y&&(s.max.y=h.y),h.y0?s.max.x+=l.x:s.min.x+=l.x,l.y>0?s.max.y+=l.y:s.min.y+=l.y)},i.contains=function(s,o){return o.x>=s.min.x&&o.x<=s.max.x&&o.y>=s.min.y&&o.y<=s.max.y},i.overlaps=function(s,o){return s.min.x<=o.max.x&&s.max.x>=o.min.x&&s.max.y>=o.min.y&&s.min.y<=o.max.y},i.translate=function(s,o){s.min.x+=o.x,s.max.x+=o.x,s.min.y+=o.y,s.max.y+=o.y},i.shift=function(s,o){var l=s.max.x-s.min.x,c=s.max.y-s.min.y;s.min.x=o.x,s.max.x=o.x+l,s.min.y=o.y,s.max.y=o.y+c}}()},function(n,r){var i={};n.exports=i,function(){i.create=function(s,o){return{x:s||0,y:o||0}},i.clone=function(s){return{x:s.x,y:s.y}},i.magnitude=function(s){return Math.sqrt(s.x*s.x+s.y*s.y)},i.magnitudeSquared=function(s){return s.x*s.x+s.y*s.y},i.rotate=function(s,o,l){var c=Math.cos(o),h=Math.sin(o);l||(l={});var u=s.x*c-s.y*h;return l.y=s.x*h+s.y*c,l.x=u,l},i.rotateAbout=function(s,o,l,c){var h=Math.cos(o),u=Math.sin(o);c||(c={});var d=l.x+((s.x-l.x)*h-(s.y-l.y)*u);return c.y=l.y+((s.x-l.x)*u+(s.y-l.y)*h),c.x=d,c},i.normalise=function(s){var o=i.magnitude(s);return o===0?{x:0,y:0}:{x:s.x/o,y:s.y/o}},i.dot=function(s,o){return s.x*o.x+s.y*o.y},i.cross=function(s,o){return s.x*o.y-s.y*o.x},i.cross3=function(s,o,l){return(o.x-s.x)*(l.y-s.y)-(o.y-s.y)*(l.x-s.x)},i.add=function(s,o,l){return l||(l={}),l.x=s.x+o.x,l.y=s.y+o.y,l},i.sub=function(s,o,l){return l||(l={}),l.x=s.x-o.x,l.y=s.y-o.y,l},i.mult=function(s,o){return{x:s.x*o,y:s.y*o}},i.div=function(s,o){return{x:s.x/o,y:s.y/o}},i.perp=function(s,o){return o=o===!0?-1:1,{x:o*-s.y,y:o*s.x}},i.neg=function(s){return{x:-s.x,y:-s.y}},i.angle=function(s,o){return Math.atan2(o.y-s.y,o.x-s.x)},i._temp=[i.create(),i.create(),i.create(),i.create(),i.create(),i.create()]}()},function(n,r,i){var s={};n.exports=s;var o=i(2),l=i(0);(function(){s.create=function(c,h){for(var u=[],d=0;d0)return!1;a=p}return!0},s.scale=function(c,h,u,d){if(h===1&&u===1)return c;d=d||s.centre(c);for(var f,a,p=0;p=0?p-1:c.length-1],g=c[p],y=c[(p+1)%c.length],C=h[p0&&(h|=2),h===3)return!1;return h!==0?!0:null},s.hull=function(c){var h=[],u=[],d,f;for(c=c.slice(0),c.sort(function(a,p){var m=a.x-p.x;return m!==0?m:a.y-p.y}),f=0;f=2&&o.cross3(u[u.length-2],u[u.length-1],d)<=0;)u.pop();u.push(d)}for(f=c.length-1;f>=0;f-=1){for(d=c[f];h.length>=2&&o.cross3(h[h.length-2],h[h.length-1],d)<=0;)h.pop();h.push(d)}return h.pop(),u.pop(),h.concat(u)}})()},function(n,r,i){var s={};n.exports=s;var o=i(3),l=i(2),c=i(7),h=i(0),u=i(1),d=i(11);(function(){s._timeCorrection=!0,s._inertiaScale=4,s._nextCollidingGroupId=1,s._nextNonCollidingGroupId=-1,s._nextCategory=1,s._baseDelta=1e3/60,s.create=function(a){var p={id:h.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:o.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:16.666666666666668,_original:null},m=h.extend(p,a);return f(m,a),m},s.nextGroup=function(a){return a?s._nextNonCollidingGroupId--:s._nextCollidingGroupId++},s.nextCategory=function(){return s._nextCategory=s._nextCategory<<1,s._nextCategory};var f=function(a,p){p=p||{},s.set(a,{bounds:a.bounds||u.create(a.vertices),positionPrev:a.positionPrev||l.clone(a.position),anglePrev:a.anglePrev||a.angle,vertices:a.vertices,parts:a.parts||[a],isStatic:a.isStatic,isSleeping:a.isSleeping,parent:a.parent||a}),o.rotate(a.vertices,a.angle,a.position),d.rotate(a.axes,a.angle),u.update(a.bounds,a.vertices,a.velocity),s.set(a,{axes:p.axes||a.axes,area:p.area||a.area,mass:p.mass||a.mass,inertia:p.inertia||a.inertia});var m=a.isStatic?"#14151f":h.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),g=a.isStatic?"#555":"#ccc",y=a.isStatic&&a.render.fillStyle===null?1:0;a.render.fillStyle=a.render.fillStyle||m,a.render.strokeStyle=a.render.strokeStyle||g,a.render.lineWidth=a.render.lineWidth||y,a.render.sprite.xOffset+=-(a.bounds.min.x-a.position.x)/(a.bounds.max.x-a.bounds.min.x),a.render.sprite.yOffset+=-(a.bounds.min.y-a.position.y)/(a.bounds.max.y-a.bounds.min.y)};s.set=function(a,p,m){var g;typeof p=="string"&&(g=p,p={},p[g]=m);for(g in p)if(Object.prototype.hasOwnProperty.call(p,g))switch(m=p[g],g){case"isStatic":s.setStatic(a,m);break;case"isSleeping":c.set(a,m);break;case"mass":s.setMass(a,m);break;case"density":s.setDensity(a,m);break;case"inertia":s.setInertia(a,m);break;case"vertices":s.setVertices(a,m);break;case"position":s.setPosition(a,m);break;case"angle":s.setAngle(a,m);break;case"velocity":s.setVelocity(a,m);break;case"angularVelocity":s.setAngularVelocity(a,m);break;case"speed":s.setSpeed(a,m);break;case"angularSpeed":s.setAngularSpeed(a,m);break;case"parts":s.setParts(a,m);break;case"centre":s.setCentre(a,m);break;default:a[g]=m}},s.setStatic=function(a,p){for(var m=0;m0&&l.rotateAbout(C.position,g,a.position,C.position)}},s.setVelocity=function(a,p){var m=a.deltaTime/s._baseDelta;a.positionPrev.x=a.position.x-p.x*m,a.positionPrev.y=a.position.y-p.y*m,a.velocity.x=(a.position.x-a.positionPrev.x)/m,a.velocity.y=(a.position.y-a.positionPrev.y)/m,a.speed=l.magnitude(a.velocity)},s.getVelocity=function(a){var p=s._baseDelta/a.deltaTime;return{x:(a.position.x-a.positionPrev.x)*p,y:(a.position.y-a.positionPrev.y)*p}},s.getSpeed=function(a){return l.magnitude(s.getVelocity(a))},s.setSpeed=function(a,p){s.setVelocity(a,l.mult(l.normalise(s.getVelocity(a)),p))},s.setAngularVelocity=function(a,p){var m=a.deltaTime/s._baseDelta;a.anglePrev=a.angle-p*m,a.angularVelocity=(a.angle-a.anglePrev)/m,a.angularSpeed=Math.abs(a.angularVelocity)},s.getAngularVelocity=function(a){return(a.angle-a.anglePrev)*s._baseDelta/a.deltaTime},s.getAngularSpeed=function(a){return Math.abs(s.getAngularVelocity(a))},s.setAngularSpeed=function(a,p){s.setAngularVelocity(a,h.sign(s.getAngularVelocity(a))*p)},s.translate=function(a,p,m){s.setPosition(a,l.add(a.position,p),m)},s.rotate=function(a,p,m,g){if(!m)s.setAngle(a,a.angle+p,g);else{var y=Math.cos(p),C=Math.sin(p),b=a.position.x-m.x,w=a.position.y-m.y;s.setPosition(a,{x:m.x+(b*y-w*C),y:m.y+(b*C+w*y)},g),s.setAngle(a,a.angle+p,g)}},s.scale=function(a,p,m,g){var y=0,C=0;g=g||a.position;for(var b=0;b0&&(y+=w.area,C+=w.inertia),w.position.x=g.x+(w.position.x-g.x)*p,w.position.y=g.y+(w.position.y-g.y)*m,u.update(w.bounds,w.vertices,a.velocity)}a.parts.length>1&&(a.area=y,a.isStatic||(s.setMass(a,a.density*y),s.setInertia(a,C))),a.circleRadius&&(p===m?a.circleRadius*=p:a.circleRadius=null)},s.update=function(a,p){p=(typeof p<"u"?p:1e3/60)*a.timeScale;var m=p*p,g=s._timeCorrection?p/(a.deltaTime||p):1,y=1-a.frictionAir*(p/h._baseDelta),C=(a.position.x-a.positionPrev.x)*g,b=(a.position.y-a.positionPrev.y)*g;a.velocity.x=C*y+a.force.x/a.mass*m,a.velocity.y=b*y+a.force.y/a.mass*m,a.positionPrev.x=a.position.x,a.positionPrev.y=a.position.y,a.position.x+=a.velocity.x,a.position.y+=a.velocity.y,a.deltaTime=p,a.angularVelocity=(a.angle-a.anglePrev)*y*g+a.torque/a.inertia*m,a.anglePrev=a.angle,a.angle+=a.angularVelocity;for(var w=0;w0&&(v.position.x+=a.velocity.x,v.position.y+=a.velocity.y),a.angularVelocity!==0&&(o.rotate(v.vertices,a.angularVelocity,a.position),d.rotate(v.axes,a.angularVelocity),w>0&&l.rotateAbout(v.position,a.angularVelocity,a.position,v.position)),u.update(v.bounds,v.vertices,a.velocity)}},s.updateVelocities=function(a){var p=s._baseDelta/a.deltaTime,m=a.velocity;m.x=(a.position.x-a.positionPrev.x)*p,m.y=(a.position.y-a.positionPrev.y)*p,a.speed=Math.sqrt(m.x*m.x+m.y*m.y),a.angularVelocity=(a.angle-a.anglePrev)*p,a.angularSpeed=Math.abs(a.angularVelocity)},s.applyForce=function(a,p,m){var g={x:p.x-a.position.x,y:p.y-a.position.y};a.force.x+=m.x,a.force.y+=m.y,a.torque+=g.x*m.y-g.y*m.x},s._totalProperties=function(a){for(var p={mass:0,area:0,inertia:0,centre:{x:0,y:0}},m=a.parts.length===1?0:1;m0){h||(h={}),u=c.split(" ");for(var m=0;m0&&p.motion=p.sleepThreshold/d&&s.set(p,!0)):p.sleepCounter>0&&(p.sleepCounter-=1)}},s.afterCollisions=function(h){for(var u=s._motionSleepThreshold,d=0;du&&s.set(g,!1)}}}},s.set=function(h,u){var d=h.isSleeping;u?(h.isSleeping=!0,h.sleepCounter=h.sleepThreshold,h.positionImpulse.x=0,h.positionImpulse.y=0,h.positionPrev.x=h.position.x,h.positionPrev.y=h.position.y,h.anglePrev=h.angle,h.speed=0,h.angularSpeed=0,h.motion=0,d||l.trigger(h,"sleepStart")):(h.isSleeping=!1,h.sleepCounter=0,d&&l.trigger(h,"sleepEnd"))}})()},function(n,r,i){var s={};n.exports=s;var o=i(3),l=i(9);(function(){var c=[],h={overlap:0,axis:null},u={overlap:0,axis:null};s.create=function(d,f){return{pair:null,collided:!1,bodyA:d,bodyB:f,parentA:d.parent,parentB:f.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}},s.collides=function(d,f,a){if(s._overlapAxes(h,d.vertices,f.vertices,d.axes),h.overlap<=0||(s._overlapAxes(u,f.vertices,d.vertices,f.axes),u.overlap<=0))return null;var p=a&&a.table[l.id(d,f)],m;p?m=p.collision:(m=s.create(d,f),m.collided=!0,m.bodyA=d.idde?de=k:kxe?xe=k:km?m=y:yp.frictionStatic?a.frictionStatic:p.frictionStatic,l.restitution=a.restitution>p.restitution?a.restitution:p.restitution,l.slop=a.slop>p.slop?a.slop:p.slop,c.pair=l,f.length=0;for(var g=0;g0?1:.7),a.damping=a.damping||0,a.angularStiffness=a.angularStiffness||0,a.angleA=a.bodyA?a.bodyA.angle:a.angleA,a.angleB=a.bodyB?a.bodyB.angle:a.angleB,a.plugin={};var y={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return a.length===0&&a.stiffness>.1?(y.type="pin",y.anchors=!1):a.stiffness<.9&&(y.type="spring"),a.render=d.extend(y,a.render),a},s.preSolveAll=function(f){for(var a=0;a=1||f.length===0,x=S?f.stiffness*a:f.stiffness*a*a,E=f.damping*a,R=l.mult(w,A*x),k=(p?p.inverseMass:0)+(m?m.inverseMass:0),T=(p?p.inverseInertia:0)+(m?m.inverseInertia:0),B=k+T,V,D,W,Q,X;if(E>0){var de=l.create();W=l.div(w,v),X=l.sub(m&&l.sub(m.position,m.positionPrev)||de,p&&l.sub(p.position,p.positionPrev)||de),Q=l.dot(W,X)}p&&!p.isStatic&&(D=p.inverseMass/k,p.constraintImpulse.x-=R.x*D,p.constraintImpulse.y-=R.y*D,p.position.x-=R.x*D,p.position.y-=R.y*D,E>0&&(p.positionPrev.x-=E*W.x*Q*D,p.positionPrev.y-=E*W.y*Q*D),V=l.cross(g,R)/B*s._torqueDampen*p.inverseInertia*(1-f.angularStiffness),p.constraintImpulse.angle-=V,p.angle-=V),m&&!m.isStatic&&(D=m.inverseMass/k,m.constraintImpulse.x+=R.x*D,m.constraintImpulse.y+=R.y*D,m.position.x+=R.x*D,m.position.y+=R.y*D,E>0&&(m.positionPrev.x+=E*W.x*Q*D,m.positionPrev.y+=E*W.y*Q*D),V=l.cross(y,R)/B*s._torqueDampen*m.inverseInertia*(1-f.angularStiffness),m.constraintImpulse.angle+=V,m.angle+=V)}}},s.postSolveAll=function(f){for(var a=0;a0&&(y.position.x+=m.x,y.position.y+=m.y),m.angle!==0&&(o.rotate(y.vertices,m.angle,p.position),u.rotate(y.axes,m.angle),g>0&&l.rotateAbout(y.position,m.angle,p.position,y.position)),h.update(y.bounds,y.vertices,p.velocity)}m.angle*=s._warming,m.x*=s._warming,m.y*=s._warming}}},s.pointAWorld=function(f){return{x:(f.bodyA?f.bodyA.position.x:0)+(f.pointA?f.pointA.x:0),y:(f.bodyA?f.bodyA.position.y:0)+(f.pointA?f.pointA.y:0)}},s.pointBWorld=function(f){return{x:(f.bodyB?f.bodyB.position.x:0)+(f.pointB?f.pointB.x:0),y:(f.bodyB?f.bodyB.position.y:0)+(f.pointB?f.pointB.y:0)}}})()},function(n,r,i){var s={};n.exports=s;var o=i(2),l=i(0);(function(){s.fromVertices=function(c){for(var h={},u=0;u0&&o.area(X)1?(v=c.create(l.extend({parts:A.slice(0)},p)),c.setPosition(v,{x:d,y:f}),v):A[0]}})()},function(n,r,i){var s={};n.exports=s;var o=i(0),l=i(8);(function(){s.create=function(c){var h={bodies:[],pairs:null};return o.extend(h,c)},s.setBodies=function(c,h){c.bodies=h.slice(0)},s.clear=function(c){c.bodies=[]},s.collisions=function(c){var h=[],u=c.pairs,d=c.bodies,f=d.length,a=s.canCollide,p=l.collides,m,g;for(d.sort(s._compareBoundsX),m=0;mb)break;if(!(wR.max.y)&&!(A&&(E.isStatic||E.isSleeping))&&a(y.collisionFilter,E.collisionFilter)){var k=E.parts.length;if(x&&k===1){var T=p(y,E,u);T&&h.push(T)}else for(var B=S>1?1:0,V=k>1?1:0,D=B;DR.max.x||C.max.xR.max.y)){var T=p(W,X,u);T&&h.push(T)}}}}}return h},s.canCollide=function(c,h){return c.group===h.group&&c.group!==0?c.group>0:(c.mask&h.category)!==0&&(h.mask&c.category)!==0},s._compareBoundsX=function(c,h){return c.bounds.min.x-h.bounds.min.x}})()},function(n,r,i){var s={};n.exports=s;var o=i(0);(function(){s.create=function(l){var c={};return l||o.log("Mouse.create: element was undefined, defaulting to document.body","warn"),c.element=l||document.body,c.absolute={x:0,y:0},c.position={x:0,y:0},c.mousedownPosition={x:0,y:0},c.mouseupPosition={x:0,y:0},c.offset={x:0,y:0},c.scale={x:1,y:1},c.wheelDelta=0,c.button=-1,c.pixelRatio=parseInt(c.element.getAttribute("data-pixel-ratio"),10)||1,c.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},c.mousemove=function(h){var u=s._getRelativeMousePosition(h,c.element,c.pixelRatio),d=h.changedTouches;d&&(c.button=0,h.preventDefault()),c.absolute.x=u.x,c.absolute.y=u.y,c.position.x=c.absolute.x*c.scale.x+c.offset.x,c.position.y=c.absolute.y*c.scale.y+c.offset.y,c.sourceEvents.mousemove=h},c.mousedown=function(h){var u=s._getRelativeMousePosition(h,c.element,c.pixelRatio),d=h.changedTouches;d?(c.button=0,h.preventDefault()):c.button=h.button,c.absolute.x=u.x,c.absolute.y=u.y,c.position.x=c.absolute.x*c.scale.x+c.offset.x,c.position.y=c.absolute.y*c.scale.y+c.offset.y,c.mousedownPosition.x=c.position.x,c.mousedownPosition.y=c.position.y,c.sourceEvents.mousedown=h},c.mouseup=function(h){var u=s._getRelativeMousePosition(h,c.element,c.pixelRatio),d=h.changedTouches;d&&h.preventDefault(),c.button=-1,c.absolute.x=u.x,c.absolute.y=u.y,c.position.x=c.absolute.x*c.scale.x+c.offset.x,c.position.y=c.absolute.y*c.scale.y+c.offset.y,c.mouseupPosition.x=c.position.x,c.mouseupPosition.y=c.position.y,c.sourceEvents.mouseup=h},c.mousewheel=function(h){c.wheelDelta=Math.max(-1,Math.min(1,h.wheelDelta||-h.detail)),h.preventDefault()},s.setElement(c,c.element),c},s.setElement=function(l,c){l.element=c,c.addEventListener("mousemove",l.mousemove),c.addEventListener("mousedown",l.mousedown),c.addEventListener("mouseup",l.mouseup),c.addEventListener("mousewheel",l.mousewheel),c.addEventListener("DOMMouseScroll",l.mousewheel),c.addEventListener("touchmove",l.mousemove),c.addEventListener("touchstart",l.mousedown),c.addEventListener("touchend",l.mouseup)},s.clearSourceEvents=function(l){l.sourceEvents.mousemove=null,l.sourceEvents.mousedown=null,l.sourceEvents.mouseup=null,l.sourceEvents.mousewheel=null,l.wheelDelta=0},s.setOffset=function(l,c){l.offset.x=c.x,l.offset.y=c.y,l.position.x=l.absolute.x*l.scale.x+l.offset.x,l.position.y=l.absolute.y*l.scale.y+l.offset.y},s.setScale=function(l,c){l.scale.x=c.x,l.scale.y=c.y,l.position.x=l.absolute.x*l.scale.x+l.offset.x,l.position.y=l.absolute.y*l.scale.y+l.offset.y},s._getRelativeMousePosition=function(l,c,h){var u=c.getBoundingClientRect(),d=document.documentElement||document.body.parentNode||document.body,f=window.pageXOffset!==void 0?window.pageXOffset:d.scrollLeft,a=window.pageYOffset!==void 0?window.pageYOffset:d.scrollTop,p=l.changedTouches,m,g;return p?(m=p[0].pageX-u.left-f,g=p[0].pageY-u.top-a):(m=l.pageX-u.left-f,g=l.pageY-u.top-a),{x:m/(c.clientWidth/(c.width||c.clientWidth)*h),y:g/(c.clientHeight/(c.height||c.clientHeight)*h)}}})()},function(n,r,i){var s={};n.exports=s;var o=i(0);(function(){s._registry={},s.register=function(l){if(s.isPlugin(l)||o.warn("Plugin.register:",s.toString(l),"does not implement all required fields."),l.name in s._registry){var c=s._registry[l.name],h=s.versionParse(l.version).number,u=s.versionParse(c.version).number;h>u?(o.warn("Plugin.register:",s.toString(c),"was upgraded to",s.toString(l)),s._registry[l.name]=l):h-1},s.isFor=function(l,c){var h=l.for&&s.dependencyParse(l.for);return!l.for||c.name===h.name&&s.versionSatisfies(c.version,h.range)},s.use=function(l,c){if(l.uses=(l.uses||[]).concat(c||[]),l.uses.length===0){o.warn("Plugin.use:",s.toString(l),"does not specify any dependencies to install.");return}for(var h=s.dependencies(l),u=o.topologicalSort(h),d=[],f=0;f0&&o.info(d.join(" "))},s.dependencies=function(l,c){var h=s.dependencyParse(l),u=h.name;if(c=c||{},!(u in c)){l=s.resolve(l)||l,c[u]=o.map(l.uses||[],function(f){s.isPlugin(f)&&s.register(f);var a=s.dependencyParse(f),p=s.resolve(f);return p&&!s.versionSatisfies(p.version,a.range)?(o.warn("Plugin.dependencies:",s.toString(p),"does not satisfy",s.toString(a),"used by",s.toString(h)+"."),p._warned=!0,l._warned=!0):p||(o.warn("Plugin.dependencies:",s.toString(f),"used by",s.toString(h),"could not be resolved."),l._warned=!0),a.name});for(var d=0;d=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;c.test(l)||o.warn("Plugin.versionParse:",l,"is not a valid version or range.");var h=c.exec(l),u=Number(h[4]),d=Number(h[5]),f=Number(h[6]);return{isRange:!!(h[1]||h[2]),version:h[3],range:l,operator:h[1]||h[2]||"",major:u,minor:d,patch:f,parts:[u,d,f],prerelease:h[7],number:u*1e8+d*1e4+f}},s.versionSatisfies=function(l,c){c=c||"*";var h=s.versionParse(c),u=s.versionParse(l);if(h.isRange){if(h.operator==="*"||l==="*")return!0;if(h.operator===">")return u.number>h.number;if(h.operator===">=")return u.number>=h.number;if(h.operator==="~")return u.major===h.major&&u.minor===h.minor&&u.patch>=h.patch;if(h.operator==="^")return h.major>0?u.major===h.major&&u.number>=h.number:h.minor>0?u.minor===h.minor&&u.patch>=h.patch:u.patch===h.patch}return l===c||l==="*"}})()},function(n,r){var i={};n.exports=i,function(){i.create=function(s){return{vertex:s,normalImpulse:0,tangentImpulse:0}}}()},function(n,r,i){var s={};n.exports=s;var o=i(7),l=i(18),c=i(13),h=i(19),u=i(5),d=i(6),f=i(10),a=i(0),p=i(4);(function(){s.create=function(m){m=m||{};var g={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}},y=a.extend(g,m);return y.world=m.world||d.create({label:"World"}),y.pairs=m.pairs||h.create(),y.detector=m.detector||c.create(),y.grid={buckets:[]},y.world.gravity=y.gravity,y.broadphase=y.grid,y.metrics={},y},s.update=function(m,g){var y=a.now(),C=m.world,b=m.detector,w=m.pairs,v=m.timing,A=v.timestamp,S;g=typeof g<"u"?g:a._baseDelta,g*=v.timeScale,v.timestamp+=g,v.lastDelta=g;var x={timestamp:v.timestamp,delta:g};u.trigger(m,"beforeUpdate",x);var E=d.allBodies(C),R=d.allConstraints(C);for(C.isModified&&(c.setBodies(b,E),d.setModified(C,!1,!1,!0)),m.enableSleeping&&o.update(E,g),s._bodiesApplyGravity(E,m.gravity),g>0&&s._bodiesUpdate(E,g),f.preSolveAll(E),S=0;S0&&u.trigger(m,"collisionStart",{pairs:w.collisionStart});var T=a.clamp(20/m.positionIterations,0,1);for(l.preSolvePosition(w.list),S=0;S0&&u.trigger(m,"collisionActive",{pairs:w.collisionActive}),w.collisionEnd.length>0&&u.trigger(m,"collisionEnd",{pairs:w.collisionEnd}),s._bodiesClearForces(E),u.trigger(m,"afterUpdate",x),m.timing.lastElapsed=a.now()-y,m},s.merge=function(m,g){if(a.extend(m,g),g.world){m.world=g.world,s.clear(m);for(var y=d.allBodies(m.world),C=0;CG?(w=I>0?I:-I,b=S.friction*(I>0?1:-1)*a,b<-w?b=-w:b>w&&(b=w)):(b=I,w=y);var J=Ee*V-Je*B,q=me*V-N*B,j=de/(xe+E.inverseInertia*J*J+R.inverseInertia*q*q),te=(1+S.restitution)*M*j;if(b*=j,M0&&(ie.normalImpulse=0),te=ie.normalImpulse-$}if(I<-m||I>m)ie.tangentImpulse=0;else{var se=ie.tangentImpulse;ie.tangentImpulse+=b,ie.tangentImpulse<-w&&(ie.tangentImpulse=-w),ie.tangentImpulse>w&&(ie.tangentImpulse=w),b=ie.tangentImpulse-se}var oe=B*te+D*b,ue=V*te+W*b;E.isStatic||E.isSleeping||(E.positionPrev.x+=oe*E.inverseMass,E.positionPrev.y+=ue*E.inverseMass,E.anglePrev+=(Ee*ue-Je*oe)*E.inverseInertia),R.isStatic||R.isSleeping||(R.positionPrev.x-=oe*R.inverseMass,R.positionPrev.y-=ue*R.inverseMass,R.anglePrev-=(me*ue-N*oe)*R.inverseInertia)}}}}})()},function(n,r,i){var s={};n.exports=s;var o=i(9),l=i(0);(function(){s.create=function(c){return l.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},c)},s.update=function(c,h,u){var d=c.list,f=d.length,a=c.table,p=h.length,m=c.collisionStart,g=c.collisionEnd,y=c.collisionActive,C,b,w,v;for(m.length=0,g.length=0,y.length=0,v=0;vE&&(E=T),h.translate(k,{x:B*.5,y:T*.5}),w=k.bounds.max.x+g,o.addBody(b,k),A=k,S+=1}else w+=g}v+=E+y,w=f}return b},s.chain=function(f,a,p,m,g,y){for(var C=f.bodies,b=1;b0)for(b=0;b0&&(A=y[b-1+(C-1)*a],o.addConstraint(f,l.create(c.extend({bodyA:A,bodyB:v},g)))),m&&bE)){A=E-A;var k=A,T=p-1-A;if(!(vT)){x===1&&h.translate(S,{x:(v+(p%2===1?1:-1))*R,y:0});var B=S?v*R:0;return C(f+B+v*g,w,v,A,S,x)}}})},s.newtonsCradle=function(f,a,p,m,g){for(var y=o.create({label:"Newtons Cradle"}),C=0;Cg.bounds.max.x||v.bounds.max.yg.bounds.max.y))){var A=s._getRegion(h,v);if(!v.region||A.id!==v.region.id||f){(!v.region||f)&&(v.region=A);var S=s._regionUnion(A,v.region);for(p=S.startCol;p<=S.endCol;p++)for(m=S.startRow;m<=S.endRow;m++){b=s._getBucketId(p,m),C=y[b];var x=p>=A.startCol&&p<=A.endCol&&m>=A.startRow&&m<=A.endRow,E=p>=v.region.startCol&&p<=v.region.endCol&&m>=v.region.startRow&&m<=v.region.endRow;!x&&E&&E&&C&&s._bucketRemoveBody(h,C,v),(v.region===A||x&&!E||f)&&(C||(C=s._createBucket(y,b)),s._bucketAddBody(h,C,v))}v.region=A,w=!0}}}w&&(h.pairsList=s._createActivePairsList(h))},c(s,"update","Grid.update ➤ replaced by Matter.Detector"),s.clear=function(h){h.buckets={},h.pairs={},h.pairsList=[]},c(s,"clear","Grid.clear ➤ replaced by Matter.Detector"),s._regionUnion=function(h,u){var d=Math.min(h.startCol,u.startCol),f=Math.max(h.endCol,u.endCol),a=Math.min(h.startRow,u.startRow),p=Math.max(h.endRow,u.endRow);return s._createRegion(d,f,a,p)},s._getRegion=function(h,u){var d=u.bounds,f=Math.floor(d.min.x/h.bucketWidth),a=Math.floor(d.max.x/h.bucketWidth),p=Math.floor(d.min.y/h.bucketHeight),m=Math.floor(d.max.y/h.bucketHeight);return s._createRegion(f,a,p,m)},s._createRegion=function(h,u,d,f){return{id:h+","+u+","+d+","+f,startCol:h,endCol:u,startRow:d,endRow:f}},s._getBucketId=function(h,u){return"C"+h+"R"+u},s._createBucket=function(h,u){var d=h[u]=[];return d},s._bucketAddBody=function(h,u,d){var f=h.pairs,a=o.id,p=u.length,m;for(m=0;m0?p.push(u):delete d[f[m]];return p}})()},function(n,r,i){var s={};n.exports=s;var o=i(3),l=i(7),c=i(14),h=i(5),u=i(13),d=i(10),f=i(6),a=i(0),p=i(1);(function(){s.create=function(m,g){var y=(m?m.mouse:null)||(g?g.mouse:null);y||(m&&m.render&&m.render.canvas?y=c.create(m.render.canvas):g&&g.element?y=c.create(g.element):(y=c.create(),a.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var C=d.create({label:"Mouse Constraint",pointA:y.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),b={type:"mouseConstraint",mouse:y,element:null,body:null,constraint:C,collisionFilter:{category:1,mask:4294967295,group:0}},w=a.extend(b,g);return h.on(m,"beforeUpdate",function(){var v=f.allBodies(m.world);s.update(w,v),s._triggerEvents(w)}),w},s.update=function(m,g){var y=m.mouse,C=m.constraint,b=m.body;if(y.button===0){if(C.bodyB)l.set(C.bodyB,!1),C.pointA=y.position;else for(var w=0;w1?1:0;vE.max.x&&(E.max.x=B.x),T.yE.max.y&&(E.max.y=B.y))}var V=E.max.x-E.min.x+2*S.x,D=E.max.y-E.min.y+2*S.y,W=v.canvas.height,Q=v.canvas.width,X=Q/W,de=V/D,xe=1,Se=1;de>X?Se=de/X:xe=X/de,v.options.hasBounds=!0,v.bounds.min.x=E.min.x,v.bounds.max.x=E.min.x+V*xe,v.bounds.min.y=E.min.y,v.bounds.max.y=E.min.y+D*Se,x&&(v.bounds.min.x+=V*.5-V*xe*.5,v.bounds.max.x+=V*.5-V*xe*.5,v.bounds.min.y+=D*.5-D*Se*.5,v.bounds.max.y+=D*.5-D*Se*.5),v.bounds.min.x-=S.x,v.bounds.max.x-=S.x,v.bounds.min.y-=S.y,v.bounds.max.y-=S.y,v.mouse&&(f.setScale(v.mouse,{x:(v.bounds.max.x-v.bounds.min.x)/v.canvas.width,y:(v.bounds.max.y-v.bounds.min.y)/v.canvas.height}),f.setOffset(v.mouse,v.bounds.min))},s.startViewTransform=function(v){var A=v.bounds.max.x-v.bounds.min.x,S=v.bounds.max.y-v.bounds.min.y,x=A/v.options.width,E=S/v.options.height;v.context.setTransform(v.options.pixelRatio/x,0,0,v.options.pixelRatio/E,0,0),v.context.translate(-v.bounds.min.x,-v.bounds.min.y)},s.endViewTransform=function(v){v.context.setTransform(v.options.pixelRatio,0,0,v.options.pixelRatio,0,0)},s.world=function(v,A){var S=l.now(),x=v.engine,E=x.world,R=v.canvas,k=v.context,T=v.options,B=v.timing,V=c.allBodies(E),D=c.allConstraints(E),W=T.wireframes?T.wireframeBackground:T.background,Q=[],X=[],de,xe={timestamp:x.timing.timestamp};if(u.trigger(v,"beforeRender",xe),v.currentBackground!==W&&w(v,W),k.globalCompositeOperation="source-in",k.fillStyle="transparent",k.fillRect(0,0,R.width,R.height),k.globalCompositeOperation="source-over",T.hasBounds){for(de=0;de1?1:0;V1?1:0;V1?1:0;k1?1:0;B1?1:0;T1?1:0;T1?1:0;R0)){var W=R.activeContacts[0].vertex.x,Q=R.activeContacts[0].vertex.y;R.activeContacts.length===2&&(W=(R.activeContacts[0].vertex.x+R.activeContacts[1].vertex.x)/2,Q=(R.activeContacts[0].vertex.y+R.activeContacts[1].vertex.y)/2),k.bodyB===k.supports[0].body||k.bodyA.isStatic===!0?x.moveTo(W-k.normal.x*8,Q-k.normal.y*8):x.moveTo(W+k.normal.x*8,Q+k.normal.y*8),x.lineTo(W,Q)}E.wireframes?x.strokeStyle="rgba(255,165,0,0.7)":x.strokeStyle="orange",x.lineWidth=1,x.stroke()},s.separations=function(v,A,S){var x=S,E=v.options,R,k,T,B,V;for(x.beginPath(),V=0;Vf.deltaMax?f.deltaMax:g,f.delta=g);var y={timestamp:m.timestamp};o.trigger(f,"beforeTick",y),f.frameCounter+=1,p-f.counterTimestamp>=1e3&&(f.fps=f.frameCounter*((p-f.counterTimestamp)/1e3),f.counterTimestamp=p,f.frameCounter=0),o.trigger(f,"tick",y),o.trigger(f,"beforeUpdate",y),l.update(a,g),o.trigger(f,"afterUpdate",y),o.trigger(f,"afterTick",y)},s.stop=function(f){u(f.frameRequestId)},s.start=function(f,a){s.run(f,a)}})()},function(n,r,i){var s={};n.exports=s;var o=i(8),l=i(0),c=l.deprecated;(function(){s.collides=function(h,u){return o.collides(h,u)},c(s,"collides","SAT.collides ➤ replaced by Collision.collides")})()},function(n,r,i){var s={};n.exports=s,i(1);var o=i(0);(function(){s.pathToVertices=function(l,c){typeof window<"u"&&!("SVGPathSeg"in window)&&o.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var h,u,d,f,a,p,m,g,y,C,b=[],w,v,A=0,S=0,x=0;c=c||15;var E=function(k,T,B){var V=B%2===1&&B>1;if(!y||k!=y.x||T!=y.y){y&&V?(w=y.x,v=y.y):(w=0,v=0);var D={x:w+k,y:v+T};(V||!y)&&(y=D),b.push(D),S=w+k,x=v+T}},R=function(k){var T=k.pathSegTypeAsLetter.toUpperCase();if(T!=="Z"){switch(T){case"M":case"L":case"T":case"C":case"S":case"Q":S=k.x,x=k.y;break;case"H":S=k.x;break;case"V":x=k.y;break}E(S,x,k.pathSegType)}};for(s._svgPathToAbsolute(l),d=l.getTotalLength(),p=[],h=0;h{const s=nu[e],o=zd[e];return Le.Bodies.circle(t,n,s.size*r/2,{isStatic:i,label:String(e),render:{fillStyle:s.color,lineWidth:8,strokeStyle:qd,sprite:{texture:o,xScale:1/3*r,yScale:1/3*r}}})},Yd=e=>{const t=e>6?6:e;return Math.floor(Math.random()*(t-1))+1},Zd=560/360,Gd=e=>e*Zd,Za=(e,t,n)=>{const r=Le.Bodies.rectangle(t/2,n,t,30,{isStatic:!0,restitution:1,render:{fillStyle:"#81685A"}}),i=Le.Bodies.rectangle(0,n/2,1,n,{isStatic:!0,render:{fillStyle:"#FFFFFF"}}),s=Le.Bodies.rectangle(t,n/2,1,n,{isStatic:!0,render:{fillStyle:"#FFFFFF"}}),o=Le.Bodies.rectangle(t/2,120,t,2,{isStatic:!0,isSensor:!0,label:"line",render:{fillStyle:"#FF6C6C"}});Le.Composite.add(e,[o,r,i,s])},Xd=(e,t)=>{const n=Ze(void 0);let r;const i=()=>{r&&(clearInterval(r),r=void 0)};return{count:n,reset:()=>{n.value=void 0,i()},start:()=>{n.value=e,!r&&(r=setInterval(()=>{n.value&&(n.value=n.value-1),n.value===0&&(i(),t())},1e3))}}},_d=e=>{const t=Le.Engine.create({gravity:{x:0,y:.4},timing:{timeScale:1.5}}),n=Le.Runner.create(),r=new Set;let i=0,s=0,o=1;const l=Ze(0);let c=!1,h,u=0,d=0;const f=Ze(!1),a=Ze(0),p=Ze(0);En(()=>{var k,T;if(!e.value)return;i=e.value.clientWidth,s=Gd(i),o=i/380,d=(k=e.value)==null?void 0:k.getBoundingClientRect().x,l.value=((T=e.value)==null?void 0:T.clientHeight)-s,v(),w();const R=Le.Render.create({canvas:e.value,engine:t,options:{wireframes:!1,background:"transparent",width:i,height:s,pixelRatio:window.devicePixelRatio}});Za(t.world,i,s),Le.Render.run(R),Le.Runner.run(n,t),e.value.addEventListener("mousemove",B=>{S(B.offsetX)}),e.value.addEventListener("mouseup",()=>{A()}),e.value.addEventListener("touchmove",B=>{var D;const V=B.touches[0].clientX-d;(D=e==null?void 0:e.value)!=null&&D.clientWidth&&V>0&&V{A()})}),Le.Events.on(t,"collisionStart",R=>{R.pairs.forEach(k=>{if(k.bodyA.label==="line"||k.bodyB.label==="line"){const V=k.bodyA.label==="line"?k.bodyB.id:k.bodyA.id;C(V)}if(k.bodyA.label!==k.bodyB.label||k.bodyA.label==="removed"||k.bodyB.label==="removed")return;const T=Number(k.bodyA.label);if(T===10)return;k.bodyA.label="removed",k.bodyB.label="removed",p.value=p.value+nu[T].score;const B=Ya(T+1,k.collision.supports[0].x,k.collision.supports[0].y,o);Le.World.remove(t.world,[k.bodyA,k.bodyB]),Le.World.add(t.world,B)})}),Le.Events.on(t,"collisionEnd",R=>{R.pairs.forEach(k=>{if(k.bodyA.label==="line"||k.bodyB.label==="line"){const T=k.bodyA.label==="line"?k.bodyB.id:k.bodyA.id;b(T)}})});const{start:m,reset:g}=Xd(3,()=>{x()}),y=()=>{if(r.size>0){m();return}g()},C=R=>{r.add(R),y()},b=R=>{r.delete(R),y()},w=()=>{h=Ya(a.value,i/2,60,o,!0),c=!1,Le.World.add(t.world,h),v()},v=()=>{u+=1,a.value=Yd(u)},A=()=>{f.value||!h||c||(c=!0,Le.Body.setStatic(h,!1),setTimeout(()=>{w()},1e3))},S=R=>{f.value||!h||c||Le.Body.setPosition(h,{x:R,y:60})},x=()=>{f.value=!0};return{replay:()=>{p.value=0,r.clear(),g(),f.value=!1,u=0,Le.World.clear(t.world,!1),Za(t.world,i,s),v(),w()},nextBlockRef:a,groundHeightRef:l,gameOverRef:f,scoreRef:p}},$d={},ep={class:"relative flex items-center justify-center px-6 py-2"},tp={class:"absolute left-6 min-w-8"},np=K("div",null,null,-1),sp={class:"absolute right-6 min-w-8"};function rp(e,t){return re(),ce("div",ep,[K("div",tp,[In(e.$slots,"left")]),In(e.$slots,"default",{},()=>[np]),K("div",sp,[In(e.$slots,"right")])])}const su=cs($d,[["render",rp]]),ru="data:image/svg+xml,%3csvg%20width='38'%20height='32'%20viewBox='0%200%2038%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e",ip={class:"flex items-center"},op=["src"],iu=Me({__name:"BackButton",setup(e){return(t,n)=>(re(),ce("div",ip,[K("img",{src:ee(ru),alt:"뒤로가기"},null,8,op)]))}}),ap={class:"flex flex-col items-end w-[90px]"},lp=K("span",{class:"text-caption-b text-dark-green"}," Player ",-1),cp={class:"text-caption-b"},up=Me({__name:"Player",props:{name:{type:String,default:""}},setup(e){return(t,n)=>(re(),ce("div",ap,[lp,K("span",cp,je(e.name),1)]))}}),Fo=M2("user",()=>({nickName:Ze("")})),fp="/assets/play-background-aEWNT8Ww.svg",hp={class:"relative flex-1"},dp={class:"absolute -z-10 top-1/2 -translate-y-1/2 w-full"},pp=["src"],mp=Me({__name:"PlayPage",setup(e){const t=Fo(),n=Dr(),r=Ze(),{replay:i,nextBlockRef:s,groundHeightRef:o,gameOverRef:l,scoreRef:c}=_d(r);En(()=>{t.nickName||n.replace("/"),document.body.style.cssText="overflow: hidden; overscroll-behavior: none;"}),Fr(()=>{document.body.style.cssText=""});const h=()=>{n.back()},u=()=>{n.push("/rank")};return(d,f)=>(re(),ce(Be,null,[he(su,{class:"mt-3"},{left:Ge(()=>[he(iu,{onClick:h})]),right:Ge(()=>[he(up,{name:ee(t).nickName},null,8,["name"])]),default:Ge(()=>[he(Nd,{score:ee(c)},null,8,["score"])]),_:1}),K("div",hp,[K("div",dp,[K("img",{class:"m-auto",alt:"background",src:ee(fp)},null,8,pp)]),he(O1,{"next-index":ee(s),class:"pointer-events-none absolute top-6"},null,8,["next-index"]),K("canvas",{ref_key:"canvas",ref:r,class:"w-full h-full"},null,512),he(Td,{height:ee(o)},null,8,["height"])]),ee(l)?(re(),It(Pd,{key:0,score:ee(c),nickname:ee(t).nickName,onReplay:ee(i),onBack:h,onRank:u},null,8,["score","nickname","onReplay"])):Mt("",!0)],64))}}),ou="/assets/zzio-game-gi9PWWvs.svg",gp="/assets/title-beta-3s8Zv2-4.svg",au="/assets/illustration-Ldk2dMTd.svg",vp={},yp={width:"6",height:"26",viewBox:"0 0 6 26",fill:"none",xmlns:"http://www.w3.org/2000/svg"},xp=K("path",{d:"M4.2 1C0.733351 1.27513 1.4 5.35559 1.4 7.11111C1.4 10.4368 1 13.721 1 17.0159C1 18.9153 1 20.8148 1 22.7143C1 24.7699 2.14463 25 5 25",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},null,-1),Cp=[xp];function Ap(e,t){return re(),ce("svg",yp,Cp)}const bp=cs(vp,[["render",Ap]]),wp={},Sp={width:"5",height:"26",viewBox:"0 0 5 26",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ep=K("path",{d:"M1 1C3.80793 1 3.65193 1.51739 3.80793 3.50851C4.24009 4.88769 3.80793 6.50014 3.80793 7.94838C3.80793 10.7494 3.49594 13.5023 3.49594 16.376C3.49594 18.2999 3.80793 20.0164 3.80793 22.0052C3.80793 22.7818 3.96994 23.7369 3.7906 24.4944C3.61128 25.2518 1.65823 24.9337 1 24.9337",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},null,-1),Rp=[Ep];function Pp(e,t){return re(),ce("svg",Sp,Rp)}const Op=cs(wp,[["render",Pp]]),kp=["disabled"],Ss=Me({__name:"ZButton",props:{disabled:{type:Boolean,default:!1},color:{type:String,default:"primary"}},setup(e){const t=Hr(["text-black text-body-b","flex justify-between w-full rounded-[8px] px-[12px] py-[11px] border-2"],{variants:{disabled:{true:"border-dark-green text-dark-green bg-green",false:"border-black"},color:{primary:"bg-[#FCBF31]",secondary:"bg-green"}}});return(n,r)=>(re(),ce("button",{class:wn(ee(t)({disabled:e.disabled,color:e.color})),disabled:e.disabled},[he(bp),In(n.$slots,"default"),he(Op)],10,kp))}}),Tp="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20style='fill:%20%23489B6D'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='inherit'%20d='M12%202C10.6868%202%209.38642%202.25866%208.17317%202.7612C6.95991%203.26375%205.85752%204.00035%204.92893%204.92893C3.05357%206.8043%202%209.34784%202%2012C2%2016.42%204.87%2020.17%208.84%2021.5C9.34%2021.58%209.5%2021.27%209.5%2021V19.31C6.73%2019.91%206.14%2017.97%206.14%2017.97C5.68%2016.81%205.03%2016.5%205.03%2016.5C4.12%2015.88%205.1%2015.9%205.1%2015.9C6.1%2015.97%206.63%2016.93%206.63%2016.93C7.5%2018.45%208.97%2018%209.54%2017.76C9.63%2017.11%209.89%2016.67%2010.17%2016.42C7.95%2016.17%205.62%2015.31%205.62%2011.5C5.62%2010.39%206%209.5%206.65%208.79C6.55%208.54%206.2%207.5%206.75%206.15C6.75%206.15%207.59%205.88%209.5%207.17C10.29%206.95%2011.15%206.84%2012%206.84C12.85%206.84%2013.71%206.95%2014.5%207.17C16.41%205.88%2017.25%206.15%2017.25%206.15C17.8%207.5%2017.45%208.54%2017.35%208.79C18%209.5%2018.38%2010.39%2018.38%2011.5C18.38%2015.32%2016.04%2016.16%2013.81%2016.41C14.17%2016.72%2014.5%2017.33%2014.5%2018.26V21C14.5%2021.27%2014.66%2021.59%2015.17%2021.5C19.14%2020.16%2022%2016.42%2022%2012C22%2010.6868%2021.7413%209.38642%2021.2388%208.17317C20.7362%206.95991%2019.9997%205.85752%2019.0711%204.92893C18.1425%204.00035%2017.0401%203.26375%2015.8268%202.7612C14.6136%202.25866%2013.3132%202%2012%202Z'/%3e%3c/svg%3e",Fp={class:"text-dark-green flex flex-col items-center pb-12 pt-4"},Mp={class:"flex items-center gap-1 text-caption-b",href:"https://github.com/zzzi-ori",target:"_blank"},Bp=["src"],Ip=K("h3",null,"zzio-game",-1),Np=K("span",{class:"text-caption-r"},"© developers are maybe ok",-1),Mo=Me({__name:"Footer",setup(e){return(t,n)=>(re(),ce("div",Fp,[K("a",Mp,[K("img",{class:"text-dark-green",src:ee(Tp),alt:"github"},null,8,Bp),Ip]),Np]))}}),Up="data:image/svg+xml,%3csvg%20width='55'%20height='22'%20viewBox='0%200%2055%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.95809%201.72925C11.5932%201.69208%2014.0155%201.65407%2015.6513%201.65407C16.7795%201.65407%2017.9096%201.58814%2019.034%201.5156C20.3055%201.43357%2021.6106%201.51164%2022.8836%201.51164C24.1659%201.51164%2025.4435%201.44043%2026.7292%201.44043C29.9809%201.44043%2033.2319%201.48987%2036.4816%201.5789C39.2326%201.65427%2042.0226%201.66875%2044.6357%202.63526C46.4858%203.31952%2048.3613%203.90303%2050.0085%205.00117C50.9551%205.63226%2051.9846%206.40982%2052.6118%207.36708C53.3073%208.42859%2053.3821%209.8471%2053.1815%2011.0505C53.0459%2011.864%2052.6656%2012.6858%2052.3902%2013.4599C52.2596%2013.8272%2052.1021%2014.1492%2051.9155%2014.4886C51.6444%2014.9815%2051.3987%2015.481%2051.1203%2015.9683C50.7634%2016.5928%2050.2688%2017.343%2049.6603%2017.7486C49.2024%2018.0539%2048.6696%2018.2164%2048.1965%2018.4924C47.6444%2018.8145%2046.9121%2019.0579%2046.2974%2019.2283C44.8748%2019.6227%2043.4239%2019.8606%2041.9612%2020.0631C40.1719%2020.3109%2038.3583%2020.2411%2036.5568%2020.2411C34.9588%2020.2411%2033.3596%2020.2221%2031.7617%2020.2411C30.0172%2020.2619%2028.2692%2020.3716%2026.5234%2020.3836C25.5083%2020.3905%2024.5065%2020.6117%2023.4968%2020.7001C22.6192%2020.7769%2021.7303%2020.7396%2020.85%2020.7396C17.4521%2020.7396%2014.1614%2020.3402%2010.8404%2019.616C8.30368%2019.0629%205.74602%2018.2158%203.5448%2016.807C2.48459%2016.1285%201.81672%2015.0333%201.76838%2013.7764C1.65416%2010.8066%201.66275%207.85901%202.83265%205.08821C3.50052%203.50642%205.47022%202.78585%206.9275%202.19214C7.24625%202.06228%207.60611%202.04422%207.94429%201.99432C8.62044%201.89456%209.26937%201.7449%209.95809%201.72925Z'%20fill='%2366BE8B'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.909%2013.1409C23.2956%2013.1409%2024.6932%2013.1463%2025.7989%2012.1634C26.0518%2011.9385%2026.7028%2010.8607%2026.4884%2010.4971C26.202%2010.0113%2024.9009%2010.0517%2024.4714%2010.0416C23.9373%2010.0291%2023.2157%2010.1122%2022.7374%2010.4026C22.1385%2010.7663%2021.8001%2011.168%2021.7289%2011.9356C21.6569%2012.7131%2022.1321%2013.6008%2022.6294%2014.1185C23.2268%2014.7403%2024.2371%2015.4404%2025.1043%2015.4404C26.0964%2015.4404%2027.0415%2015.0405%2028.0217%2015.0405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M29.8217%2010.9404H34.3217'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M32.5217%208.24048C32.5029%208.57958%2032.4041%208.93656%2032.3417%209.27048C32.1679%2010.2009%2032.1066%2011.1439%2031.9817%2012.0805C31.8364%2013.1701%2031.6217%2014.3426%2031.6217%2015.4405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M38.4458%2010.9404C37.8164%2011.0019%2037.2365%2012.1706%2037.133%2012.6759C37.003%2013.3111%2036.8827%2014.3195%2037.4143%2014.8389C37.877%2015.2909%2038.6357%2015.5034%2039.2845%2015.4242C39.7187%2015.3711%2040.5741%2014.6222%2040.7483%2014.2332C41.0389%2013.5843%2041.4228%2012.7137%2040.9567%2012.0397C40.797%2011.8088%2040.5748%2011.5565%2040.3212%2011.4188C40.1812%2011.3429%2039.9542%2011.2938%2039.8523%2011.1695C39.6835%2010.9633%2039.8716%2011.2288%2040.0451%2011.3527C40.5276%2011.6971%2040.9926%2012.051%2041.4672%2012.4062C41.9513%2012.7684%2042.4245%2013.1383%2042.9362%2013.4597C43.0899%2013.5561%2043.2193%2013.6302%2043.3217%2013.7803'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M12.9738%206.44043C12.9354%207.12336%2012.7347%207.78117%2012.7275%208.48097C12.7144%209.74646%2012.7275%2011.0127%2012.7275%2012.2783C12.7275%2013.1657%2013.0217%2015.8278%2013.0217%2014.9404C13.0217%2013.8437%2012.8802%2012.655%2013.5281%2011.731C14.1557%2010.8358%2015.5416%2010.9404%2016.5184%2010.9404C17.5439%2010.9404%2018.9647%2011.3184%2019.0092%2012.5485C19.0297%2013.115%2019.0692%2013.5833%2018.7081%2014.0418C18.1068%2014.8051%2016.9377%2014.8162%2016.0531%2015.0148C15.258%2015.1932%2014.4057%2015.4404%2013.5897%2015.4404'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",Lp={class:"text-dark-green mt-6 mb-2"},Dp=["src"],Hp={class:"text-caption-b inline"},Vp={class:"text-caption-r text-dark-green list-disc ml-4"},jp=Me({__name:"Notice",props:{closed:{type:Boolean,default:!1}},setup(e){const t=Ae(()=>closed?"운영 종료 안내":"운영 안내"),n=Ae(()=>closed?["현재 찌오 게임 베타 버전은 종료 되었으며, 정식 버전은 24.03.24(일) 이후 오픈 예정입니다."]:["베타 버전은 24.03.18 (월) 19시 까지만 시범 운영 예정이며, 정식 버전은 24.03.24 (일) 이후 오픈 예정입니다.","베타 버전이 종료된 이후에는 모든 랭킹이 초기화 됩니다."]);return(r,i)=>(re(),ce(Be,null,[K("div",Lp,[K("img",{src:ee(Up),class:"inline mr-1",alt:"beta"},null,8,Dp),K("h3",Hp,je(t.value),1)]),K("ul",Vp,[(re(!0),ce(Be,null,po(n.value,s=>(re(),ce("li",{key:s},je(s),1))),128))])],64))}}),Qp=["value","maxlength"],lu=Me({__name:"ZInput",props:{max:{type:Number,default:8},modelValue:{type:String,default:""}},emits:["update:model-value"],setup(e,{emit:t}){const n=e,r=t,i=Ae(()=>n.modelValue.length>0),s=l=>{const c=l.target;c.value=c.value.replace(/^\s*/,"").slice(0,8),r("update:model-value",c.value)},o=Hr(["w-full text-body-b text-center p-4","rounded-[8px] px-[16px] py-[12px] border-2"],{variants:{filled:{true:"",false:"border-dark-green"}}});return(l,c)=>(re(),ce("input",{value:e.modelValue,onInput:s,placeholder:"닉네임을 입력하세요",class:wn(ee(o)({filled:i.value})),maxlength:e.max},null,42,Qp))}}),Wp=()=>new Date{r.value=!Wp()},1e3);Fr(()=>clearInterval(i));const s=()=>{t.push("/play")},o=()=>{t.push("/rank")};return(l,c)=>(re(),ce(Be,null,[K("div",Jp,[K("img",{src:ee(ou),alt:"zzio game"},null,8,Kp),K("img",{src:ee(gp),alt:"황금 찌오를 찾아라 beta",class:"my-8"},null,8,qp),K("img",{src:ee(au),alt:"찌오 이미지",class:"mb-6"},null,8,zp),r.value?(re(),ce("div",Yp,[he(Ss,{color:"secondary",disabled:!0},{default:Ge(()=>[nn("4월 초 오픈 예정")]),_:1})])):(re(),ce("div",Zp,[he(lu,{modelValue:ee(n).nickName,"onUpdate:modelValue":c[0]||(c[0]=h=>ee(n).nickName=h)},null,8,["modelValue"]),he(Ss,{onClick:s,color:"primary",disabled:!ee(n).nickName,class:"mt-2"},{default:Ge(()=>[nn("게임 시작")]),_:1},8,["disabled"]),he(Ss,{onClick:o,color:"secondary",disabled:!1,class:"mt-6"},{default:Ge(()=>[nn(" 실시간 랭킹 ")]),_:1})])),he(jp,{closed:r.value},null,8,["closed"])]),he(Mo)],64))}}),Xp="/assets/rank-1EZzo1qU.svg",_p="data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.27295%201.38288C2.72656%201.38288%204.55953%201.24929%205.94683%201.67319C6.16152%201.73879%206.20919%202.32808%206.30971%202.48604C6.64759%203.01699%206.99995%203.63674%207.22417%204.22786C7.6944%205.46757%207.94133%206.84558%208.16765%208.14695C8.25945%208.67479%208.45796%209.35081%208.45796%209.87426'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M8.26127%2013.6484C8.16865%2013.66%208.08112%2013.7385%208%2013.7791'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",$p={class:"relative border-solid border-2 border-black rounded-lg bg-primary px-4 py-1"},e3={class:"text-body-b"},t3=["src"],n3=Me({__name:"ZLabel",props:{text:{type:String,default:""}},setup(e){return(t,n)=>(re(),ce("div",$p,[K("span",e3,je(e.text),1),K("img",{src:ee(_p),class:"absolute right-[2px] top-[2px]"},null,8,t3)]))}}),s3="/assets/medal-zzio-tBNkT3rO.svg",r3="/assets/medal1-QmVnIZDS.svg",i3="data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2252%2020.4625%2012.6416%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1535%2023.3097%2014.4184C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8567%2024.1704%2016.3618%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3163C24.847%2018.8784%2025%2019.4522%2025%2020.0444C25%2020.2445%2024.913%2020.1797%2024.811%2020.0909C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.69%2021.5281%2018.6961C21.1936%2018.7005%2021.1426%2019.2521%2021.0588%2019.5717C20.8524%2020.359%2020.7209%2021.1802%2020.5749%2021.9869C20.5277%2022.248%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6895C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8942%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.174%2019.77%2021.087%2019.7298%2021.0105C19.3458%2020.2799%2018.8508%2019.5357%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9285C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1548C9.88096%2022.2865%209.45315%2023.1384%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1806%207.75245%2020.1839C7.41864%2020.1896%207.06751%2020.2314%206.73911%2020.3027C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5791C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6721C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9953%205.5771%2019.7562%205.70916%2019.5097C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1055C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5371%2014.688%2012.2615C15.7635%2011.9854%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M11%207.4445C11.0533%206.00462%2013.0492%205.82818%2014.0803%206.11689C14.5781%206.25627%2014.9933%206.72901%2015.3491%207.0848C15.9737%207.70949%2016.1343%208.38864%2016.1208%209.25606C16.1081%2010.0653%2015.7485%2010.8814%2015.2183%2011.4796C14.8644%2011.8789%2014.4805%2012.2684%2014.0313%2012.5587C13.545%2012.8729%2012.8888%2013.2083%2012.3243%2013.3337C12.1671%2013.3686%2011.5016%2013.6629%2011.6409%2013.713C12.6555%2014.0783%2013.7368%2014.2927%2014.7735%2014.5861C15.3355%2014.7451%2015.8982%2014.8825%2016.4739%2014.9785'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",o3="/assets/medal3-izkyRdrW.svg",a3="data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2253%2020.4625%2012.6417%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1536%2023.3097%2014.4185C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8568%2024.1704%2016.3619%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3164C24.847%2018.8784%2025%2019.4522%2025%2020.0445C25%2020.2446%2024.913%2020.1797%2024.811%2020.091C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.6901%2021.5281%2018.6961C21.1936%2018.7006%2021.1426%2019.2521%2021.0588%2019.5718C20.8524%2020.3591%2020.7209%2021.1802%2020.5749%2021.987C20.5277%2022.2481%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6896C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8943%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.1741%2019.77%2021.087%2019.7298%2021.0106C19.3458%2020.2799%2018.8508%2019.5358%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9286C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1549C9.88096%2022.2865%209.45315%2023.1385%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1807%207.75245%2020.184C7.41864%2020.1896%207.06751%2020.2315%206.73911%2020.3028C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5792C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6722C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9954%205.5771%2019.7562%205.70916%2019.5098C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1056C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5372%2014.688%2012.2616C15.7635%2011.9855%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23D88F4B'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M19.668%2012.6527C18.6089%2012.6066%2017.5663%2012.389%2016.5097%2012.3135C14.7245%2012.186%2012.9339%2011.9495%2011.1389%2012.0646C11.1233%2012.0656%2010.5327%2012.1373%2010.5476%2012.0552C10.5843%2011.8534%2010.7626%2011.5724%2010.8495%2011.3862C11.4861%2010.0219%2012.3305%208.72783%2013.3264%207.59615C13.6097%207.27421%2013.8747%206.9252%2014.2039%206.64708C14.3214%206.54779%2014.6786%206.18033%2014.8387%206.18033C14.8687%206.18033%2014.8413%206.30049%2014.8387%206.31102C14.8005%206.46356%2014.793%206.61388%2014.8076%206.77155C14.8898%207.66205%2015.2584%208.51072%2015.3677%209.40405C15.4721%2010.2575%2015.5897%2011.1052%2015.6664%2011.9619C15.714%2012.4938%2015.8375%2013.0301%2015.8593%2013.5613C15.8791%2014.0425%2015.9713%2014.5257%2015.9713%2015.0051'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",l3={class:"min-w-14"},c3={key:0},u3=["src"],f3=["src"],h3=["src"],d3=["src"],p3={class:"flex-1 text-caption-b"},m3={class:"flex text-body-b"},g3={class:"pr-1"},v3=["src"],y3=Me({__name:"Rank",props:{item:{type:Object}},setup(e){const t=e,n=Ae(()=>{var i;return t!=null&&t.item&&((i=t.item)==null?void 0:i.rank)<=4?"highlight":"normal"}),r=Hr(["flex w-full text-body-b py-2"],{variants:{type:{highlight:"rounded-lg bg-white mt-1 border-2 pl-2 pr-4",normal:"border-b-solid border-b-2 last:border-b-0 border-b-dark-green px-4"}}});return(i,s)=>{var o,l,c,h,u,d,f,a,p;return re(),ce("div",{class:wn(ee(r)({type:n.value}))},[K("div",l3,[(o=e.item)!=null&&o.rank&&((l=e.item)==null?void 0:l.rank)>4?(re(),ce("span",c3,je((c=e.item)==null?void 0:c.rank),1)):((h=e.item)==null?void 0:h.rank)===1?(re(),ce("img",{key:1,src:ee(r3),alt:"1st"},null,8,u3)):((u=e.item)==null?void 0:u.rank)===2?(re(),ce("img",{key:2,src:ee(i3),alt:"1st"},null,8,f3)):((d=e.item)==null?void 0:d.rank)===3?(re(),ce("img",{key:3,src:ee(o3),alt:"1st"},null,8,h3)):((f=e.item)==null?void 0:f.rank)===4?(re(),ce("img",{key:4,src:ee(a3),alt:"1st"},null,8,d3)):Mt("",!0)]),K("span",p3,je((a=e.item)==null?void 0:a.nickName),1),K("div",m3,[K("span",g3,je((p=e.item)==null?void 0:p.score),1),K("img",{src:ee(Mc),alt:"코인"},null,8,v3)])],2)}}}),x3=Me({__name:"RankList",props:{list:{type:Object}},setup(e){return(t,n)=>(re(),ce("div",null,[(re(!0),ce(Be,null,po(e.list,r=>(re(),It(y3,{item:r,key:r==null?void 0:r.rank},null,8,["item"]))),128))]))}}),C3=async e=>(await eu.get("/rank",{params:e})).data,A3=()=>{const e=Date.now();return of({queryKey:["rank"],queryFn:({pageParam:t})=>C3({pageNumber:t,dateTime:e}),initialPageParam:0,getNextPageParam:t=>t.nextPageNumber})},b3="data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_694_3918)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.5%2044C29.6717%2044%2034.6316%2041.9455%2038.2886%2038.2886C41.9455%2034.6316%2044%2029.6717%2044%2024.5C44%2019.3283%2041.9455%2014.3684%2038.2886%2010.7114C34.6316%207.05446%2029.6717%205%2024.5%205C19.3283%205%2014.3684%207.05446%2010.7114%2010.7114C7.05446%2014.3684%205%2019.3283%205%2024.5C5%2029.6717%207.05446%2034.6316%2010.7114%2038.2886C14.3684%2041.9455%2019.3283%2044%2024.5%2044ZM24.5%2048.5C30.8652%2048.5%2036.9697%2045.9714%2041.4706%2041.4706C45.9714%2036.9697%2048.5%2030.8652%2048.5%2024.5C48.5%2018.1348%2045.9714%2012.0303%2041.4706%207.52944C36.9697%203.02856%2030.8652%200.5%2024.5%200.5C18.1348%200.5%2012.0303%203.02856%207.52944%207.52944C3.02856%2012.0303%200.5%2018.1348%200.5%2024.5C0.5%2030.8652%203.02856%2036.9697%207.52944%2041.4706C12.0303%2045.9714%2018.1348%2048.5%2024.5%2048.5ZM27.5%2033.5C27.5%2034.2957%2027.1839%2035.0587%2026.6213%2035.6213C26.0587%2036.1839%2025.2956%2036.5%2024.5%2036.5C23.7044%2036.5%2022.9413%2036.1839%2022.3787%2035.6213C21.8161%2035.0587%2021.5%2034.2957%2021.5%2033.5C21.5%2032.7043%2021.8161%2031.9413%2022.3787%2031.3787C22.9413%2030.8161%2023.7044%2030.5%2024.5%2030.5C25.2956%2030.5%2026.0587%2030.8161%2026.6213%2031.3787C27.1839%2031.9413%2027.5%2032.7043%2027.5%2033.5ZM26.75%2014.75C26.75%2014.1533%2026.5129%2013.581%2026.091%2013.159C25.669%2012.7371%2025.0967%2012.5%2024.5%2012.5C23.9033%2012.5%2023.331%2012.7371%2022.909%2013.159C22.4871%2013.581%2022.25%2014.1533%2022.25%2014.75V25.25C22.25%2025.8467%2022.4871%2026.419%2022.909%2026.841C23.331%2027.2629%2023.9033%2027.5%2024.5%2027.5C25.0967%2027.5%2025.669%2027.2629%2026.091%2026.841C26.5129%2026.419%2026.75%2025.8467%2026.75%2025.25V14.75Z'%20fill='%23489B6D'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_694_3918'%3e%3crect%20width='48'%20height='48'%20fill='white'%20transform='translate(0.5%200.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",w3={},S3={class:"loader"};function E3(e,t){return re(),ce("span",S3)}const R3=cs(w3,[["render",E3],["__scopeId","data-v-f80639eb"]]),P3={class:"fixed w-full flex flex-col items-center bg-light-green z-10"},O3=["src"],k3={key:0,class:"text-body-b mt-6 mb-4 text-dark-green"},T3={key:0,class:"w-full h-full flex flex-col items-center justify-center text-dark-green"},F3=["src"],M3=K("span",{class:"text-body-b mb-1 mt-4"},"앗! 아직 참여한 사람이 없찌오",-1),B3=K("span",{class:"text-caption-r"},"지금 플레이해서 1등을 차지하세요!",-1),I3={key:1,class:"w-full pt-2 px-6"},N3={class:"flex flex-col items-center mb-6"},U3=["src"],L3={class:"flex items-center justify-center h-8"},D3=["src"],H3=300,V3=Me({__name:"RankPage",setup(e){const t=Dr(),{data:n,fetchNextPage:r,isFetching:i}=A3(),s=Ze(null);En(()=>{document.body.style.cssText="overflow: hidden; overscroll-behavior: none;"}),Fr(()=>{document.body.style.cssText=""});const o=Ae(()=>{var p;return n?(p=n.value)==null?void 0:p.pages.map(m=>m.rankList??[]).flat():[]}),l=Ae(()=>{var p;return(p=n.value)==null?void 0:p.pages[0].totalCount}),c=Ae(()=>{var p,m;return(m=(p=n.value)==null?void 0:p.pages[0].rankList[0])==null?void 0:m.nickName}),h=Ze(!1),u=()=>{t.back()};let d=!1;const f=()=>{if(!s.value)return;const{offsetHeight:p,scrollTop:m,scrollHeight:g}=s.value;h.value=m!==0;const y=p+m>g-H3;y&&!d&&(r(),d=!0),y||(d=!1)},a=()=>{s.value&&s.value.scrollTo({top:0,behavior:"smooth"})};return(p,m)=>{var g;return re(),ce(Be,null,[K("div",P3,[he(su,{class:"w-full"},{left:Ge(()=>[he(iu,{onClick:u})]),default:Ge(()=>[K("img",{src:ee(Xp),alt:"명예의 찌오당"},null,8,O3)]),_:1}),l.value?(re(),ce("span",k3,je(l.value)+"명의 찌오가 함께했찌오 ",1)):Mt("",!0)]),K("div",{ref_key:"container",ref:s,onScroll:f,class:"h-full pt-32 overflow-y-scroll hide-scroll"},[((g=o.value)==null?void 0:g.length)===0?(re(),ce("div",T3,[K("img",{src:ee(b3),alt:"error"},null,8,F3),M3,B3])):(re(),ce("div",I3,[K("div",N3,[c.value?(re(),It(n3,{key:0,text:c.value},null,8,["text"])):Mt("",!0),K("img",{src:ee(s3),class:"mt-2",alt:"찌오"},null,8,U3)]),he(x3,{list:o.value},null,8,["list"]),K("div",L3,[ee(i)?(re(),It(R3,{key:0})):Mt("",!0)]),he(Mo)])),h.value?(re(),It(Wi,{key:2,class:"absolute right-6 bottom-6",onClick:a},{default:Ge(()=>[K("img",{src:ee(ru),alt:"위로가기",class:"rotate-90"},null,8,D3)]),_:1})):Mt("",!0)],544)],64)}}}),j3="/assets/title-1h217AQ3.svg",Q3="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2011.3335C8.18889%2011.3335%208.34733%2011.2695%208.47533%2011.1415C8.60333%2011.0135%208.66711%2010.8553%208.66667%2010.6668V8.00016C8.66667%207.81127%208.60267%207.65305%208.47467%207.5255C8.34667%207.39794%208.18844%207.33394%208%207.3335C7.81111%207.3335%207.65289%207.3975%207.52533%207.5255C7.39778%207.6535%207.33378%207.81172%207.33333%208.00016V10.6668C7.33333%2010.8557%207.39733%2011.0142%207.52533%2011.1422C7.65333%2011.2702%207.81155%2011.3339%208%2011.3335ZM8%206.00016C8.18889%206.00016%208.34733%205.93616%208.47533%205.80816C8.60333%205.68016%208.66711%205.52194%208.66667%205.3335C8.66667%205.14461%208.60267%204.98639%208.47467%204.85883C8.34667%204.73127%208.18844%204.66727%208%204.66683C7.81111%204.66683%207.65289%204.73083%207.52533%204.85883C7.39778%204.98683%207.33378%205.14505%207.33333%205.3335C7.33333%205.52239%207.39733%205.68083%207.52533%205.80883C7.65333%205.93683%207.81155%206.00061%208%206.00016ZM8%2014.6668C7.07778%2014.6668%206.21111%2014.4917%205.4%2014.1415C4.58889%2013.7913%203.88333%2013.3164%203.28333%2012.7168C2.68333%2012.1168%202.20844%2011.4113%201.85867%2010.6002C1.50889%209.78905%201.33378%208.92239%201.33333%208.00016C1.33333%207.07794%201.50844%206.21127%201.85867%205.40016C2.20889%204.58905%202.68378%203.8835%203.28333%203.2835C3.88333%202.6835%204.58889%202.20861%205.4%201.85883C6.21111%201.50905%207.07778%201.33394%208%201.3335C8.92222%201.3335%209.78889%201.50861%2010.6%201.85883C11.4111%202.20905%2012.1167%202.68394%2012.7167%203.2835C13.3167%203.8835%2013.7918%204.58905%2014.142%205.40016C14.4922%206.21127%2014.6671%207.07794%2014.6667%208.00016C14.6667%208.92239%2014.4916%209.78905%2014.1413%2010.6002C13.7911%2011.4113%2013.3162%2012.1168%2012.7167%2012.7168C12.1167%2013.3168%2011.4111%2013.7919%2010.6%2014.1422C9.78889%2014.4924%208.92222%2014.6673%208%2014.6668Z'%20fill='%23489B6D'/%3e%3c/svg%3e",W3="/assets/event-7o-96Rwf.svg",J3={class:"text-dark-green mt-6 mb-2"},K3=["src"],q3=K("h3",{class:"text-caption-b inline"},"운영 안내",-1),z3={class:"text-caption-r text-dark-green list-disc ml-4"},Y3=Me({__name:"Notice",props:{closed:{type:Boolean,default:!1}},setup(e){const t=e,n=Ae(()=>t.closed?["현재 찌오 게임 이벤트는 종료 되었으며, 당첨자는 4월 26일 (금) 이후 찌오 인스타그램 (@zzzi_ori)에서 확인하실 수 있습니다.","찌오 게임은 언제든 자유롭게 플레이 가능하나, 실시간 랭킹은 확인하실 수 없습니다."]:["이벤트는 4월 19일 (금) 23시 59분까지 참여 가능하며, 종료 이후에도 찌오 게임을 언제든 플레이할 수 있습니다.","실시간 랭킹은 이벤트 종료와 동시에 확인이 불가합니다.","자세한 내용은 이벤트 페이지 또는 찌오 인스타그램 (@zzzi_ori)에서 확인하세요."]);return(r,i)=>(re(),ce(Be,null,[K("div",J3,[K("img",{src:ee(W3),class:"inline mr-1",alt:"beta"},null,8,K3),q3]),K("ul",z3,[(re(!0),ce(Be,null,po(n.value,s=>(re(),ce("li",{key:s},je(s),1))),128))])],64))}}),Z3="/assets/event-white-VQlzzjFH.svg",G3={key:0,class:"w-full bg-green border-y-2 border-white text-white text-body-b flex justify-center items-center gap-2 py-1.5"},X3=["src"],_3=K("span",null,"이벤트 종료까지",-1),$3={key:0},em={key:1},tm=Me({__name:"Counter",props:{target:{type:Date,default:new Date},current:{type:Date,default:new Date}},setup(e){const t=e,n=Ae(()=>t.target.getTime()-t.current.getTime()),r=Ae(()=>Math.ceil(n.value/(1e3*60*60*24))),i=Ae(()=>{const s=String(Math.floor(n.value/36e5)%24).padStart(2,"0"),o=String(Math.floor(n.value/(1e3*60))%60).padStart(2,"0"),l=String(Math.floor(n.value/1e3)%60).padStart(2,"0");return`${s}:${o}:${l}`});return(s,o)=>n.value>0?(re(),ce("div",G3,[K("img",{src:ee(Z3),alt:"event"},null,8,X3),_3,r.value>1?(re(),ce("span",$3,"D-"+je(r.value),1)):(re(),ce("span",em,je(i.value),1))])):Mt("",!0)}}),nm={href:"https://www.instagram.com/zzzi_ori",target:"_blank"},sm={class:"flex flex-col flex-1 items-center px-6"},rm=["src"],im=["src"],om=["src"],am={class:"w-full flex text-caption-r text-dark-green mb-2"},lm=["src"],cm=Me({__name:"DevHomePage",setup(e){const t=Dr(),n=Fo(),r=Ze(new Date),i=Ae(()=>o(r.value)),s=new Date("2024-04-19T23:59:59+09:00"),o=h=>h{const h=setInterval(()=>{r.value=new Date},1e3);return()=>clearInterval(h)});const l=()=>{t.push("/play")},c=()=>{t.push("/rank")};return(h,u)=>(re(),ce(Be,null,[K("a",nm,[he(tm,{target:ee(s),current:r.value,class:"mt-3"},null,8,["target","current"])]),K("div",sm,[K("img",{src:ee(ou),alt:"zzio game",class:"mt-6"},null,8,rm),K("img",{src:ee(j3),alt:"황금 찌오를 찾아라 beta",class:"my-3"},null,8,im),K("img",{src:ee(au),alt:"찌오 이미지",class:"mb-6"},null,8,om),K("div",am,[K("img",{src:ee(Q3),alt:"info",class:"mr-[2px]"},null,8,lm),K("span",null,je(i.value?"랭킹에 올라갈 ":"")+"닉네임을 8자 이내로 적으찌오",1)]),he(lu,{modelValue:ee(n).nickName,"onUpdate:modelValue":u[0]||(u[0]=d=>ee(n).nickName=d)},null,8,["modelValue"]),he(Ss,{onClick:l,color:"primary",disabled:!ee(n).nickName,class:"mt-2"},{default:Ge(()=>[nn("게임 시작")]),_:1},8,["disabled"]),i.value?(re(),It(Ss,{key:0,onClick:c,color:"secondary",disabled:!1,class:"mt-6"},{default:Ge(()=>[nn(" 실시간 랭킹 ")]),_:1})):Mt("",!0),he(Y3,{closed:!i.value},null,8,["closed"])]),he(Mo)],64))}}),um=[{path:"/",component:Gp},{path:"/play",component:mp},{path:"/rank",component:V3},{path:"/dev",component:cm}],fm=l1({history:Ef("/"),routes:um}),hm=R2(),Kr=w2(p1);Kr.use(hm);Kr.use(fm);Kr.use(sf);Kr.mount("#app"); -//# sourceMappingURL=index-kNriiQ26.js.map + */(function(e,t){(function(r,i){e.exports=i()})(ci,function(){return function(n){var r={};function i(s){if(r[s])return r[s].exports;var o=r[s]={i:s,l:!1,exports:{}};return n[s].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=n,i.c=r,i.d=function(s,o,l){i.o(s,o)||Object.defineProperty(s,o,{enumerable:!0,get:l})},i.r=function(s){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})},i.t=function(s,o){if(o&1&&(s=i(s)),o&8||o&4&&typeof s=="object"&&s&&s.__esModule)return s;var l=Object.create(null);if(i.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:s}),o&2&&typeof s!="string")for(var c in s)i.d(l,c,(function(f){return s[f]}).bind(null,c));return l},i.n=function(s){var o=s&&s.__esModule?function(){return s.default}:function(){return s};return i.d(o,"a",o),o},i.o=function(s,o){return Object.prototype.hasOwnProperty.call(s,o)},i.p="",i(i.s=20)}([function(n,r){var i={};n.exports=i,function(){i._baseDelta=1e3/60,i._nextId=0,i._seed=0,i._nowStartTime=+new Date,i._warnedOnce={},i._decomp=null,i.extend=function(o,l){var c,f;typeof l=="boolean"?(c=2,f=l):(c=1,f=!0);for(var u=c;u0;l--){var c=Math.floor(i.random()*(l+1)),f=o[l];o[l]=o[c],o[c]=f}return o},i.choose=function(o){return o[Math.floor(i.random()*o.length)]},i.isElement=function(o){return typeof HTMLElement<"u"?o instanceof HTMLElement:!!(o&&o.nodeType&&o.nodeName)},i.isArray=function(o){return Object.prototype.toString.call(o)==="[object Array]"},i.isFunction=function(o){return typeof o=="function"},i.isPlainObject=function(o){return typeof o=="object"&&o.constructor===Object},i.isString=function(o){return toString.call(o)==="[object String]"},i.clamp=function(o,l,c){return oc?c:o},i.sign=function(o){return o<0?-1:1},i.now=function(){if(typeof window<"u"&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-i._nowStartTime},i.random=function(o,l){return o=typeof o<"u"?o:0,l=typeof l<"u"?l:1,o+s()*(l-o)};var s=function(){return i._seed=(i._seed*9301+49297)%233280,i._seed/233280};i.colorToNumber=function(o){return o=o.replace("#",""),o.length==3&&(o=o.charAt(0)+o.charAt(0)+o.charAt(1)+o.charAt(1)+o.charAt(2)+o.charAt(2)),parseInt(o,16)},i.logLevel=1,i.log=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.info=function(){console&&i.logLevel>0&&i.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.warn=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.warnOnce=function(){var o=Array.prototype.slice.call(arguments).join(" ");i._warnedOnce[o]||(i.warn(o),i._warnedOnce[o]=!0)},i.deprecated=function(o,l,c){o[l]=i.chain(function(){i.warnOnce("🔅 deprecated 🔅",c)},o[l])},i.nextId=function(){return i._nextId++},i.indexOf=function(o,l){if(o.indexOf)return o.indexOf(l);for(var c=0;cs.max.x&&(s.max.x=f.x),f.xs.max.y&&(s.max.y=f.y),f.y0?s.max.x+=l.x:s.min.x+=l.x,l.y>0?s.max.y+=l.y:s.min.y+=l.y)},i.contains=function(s,o){return o.x>=s.min.x&&o.x<=s.max.x&&o.y>=s.min.y&&o.y<=s.max.y},i.overlaps=function(s,o){return s.min.x<=o.max.x&&s.max.x>=o.min.x&&s.max.y>=o.min.y&&s.min.y<=o.max.y},i.translate=function(s,o){s.min.x+=o.x,s.max.x+=o.x,s.min.y+=o.y,s.max.y+=o.y},i.shift=function(s,o){var l=s.max.x-s.min.x,c=s.max.y-s.min.y;s.min.x=o.x,s.max.x=o.x+l,s.min.y=o.y,s.max.y=o.y+c}}()},function(n,r){var i={};n.exports=i,function(){i.create=function(s,o){return{x:s||0,y:o||0}},i.clone=function(s){return{x:s.x,y:s.y}},i.magnitude=function(s){return Math.sqrt(s.x*s.x+s.y*s.y)},i.magnitudeSquared=function(s){return s.x*s.x+s.y*s.y},i.rotate=function(s,o,l){var c=Math.cos(o),f=Math.sin(o);l||(l={});var u=s.x*c-s.y*f;return l.y=s.x*f+s.y*c,l.x=u,l},i.rotateAbout=function(s,o,l,c){var f=Math.cos(o),u=Math.sin(o);c||(c={});var d=l.x+((s.x-l.x)*f-(s.y-l.y)*u);return c.y=l.y+((s.x-l.x)*u+(s.y-l.y)*f),c.x=d,c},i.normalise=function(s){var o=i.magnitude(s);return o===0?{x:0,y:0}:{x:s.x/o,y:s.y/o}},i.dot=function(s,o){return s.x*o.x+s.y*o.y},i.cross=function(s,o){return s.x*o.y-s.y*o.x},i.cross3=function(s,o,l){return(o.x-s.x)*(l.y-s.y)-(o.y-s.y)*(l.x-s.x)},i.add=function(s,o,l){return l||(l={}),l.x=s.x+o.x,l.y=s.y+o.y,l},i.sub=function(s,o,l){return l||(l={}),l.x=s.x-o.x,l.y=s.y-o.y,l},i.mult=function(s,o){return{x:s.x*o,y:s.y*o}},i.div=function(s,o){return{x:s.x/o,y:s.y/o}},i.perp=function(s,o){return o=o===!0?-1:1,{x:o*-s.y,y:o*s.x}},i.neg=function(s){return{x:-s.x,y:-s.y}},i.angle=function(s,o){return Math.atan2(o.y-s.y,o.x-s.x)},i._temp=[i.create(),i.create(),i.create(),i.create(),i.create(),i.create()]}()},function(n,r,i){var s={};n.exports=s;var o=i(2),l=i(0);(function(){s.create=function(c,f){for(var u=[],d=0;d0)return!1;a=p}return!0},s.scale=function(c,f,u,d){if(f===1&&u===1)return c;d=d||s.centre(c);for(var h,a,p=0;p=0?p-1:c.length-1],g=c[p],y=c[(p+1)%c.length],C=f[p0&&(f|=2),f===3)return!1;return f!==0?!0:null},s.hull=function(c){var f=[],u=[],d,h;for(c=c.slice(0),c.sort(function(a,p){var m=a.x-p.x;return m!==0?m:a.y-p.y}),h=0;h=2&&o.cross3(u[u.length-2],u[u.length-1],d)<=0;)u.pop();u.push(d)}for(h=c.length-1;h>=0;h-=1){for(d=c[h];f.length>=2&&o.cross3(f[f.length-2],f[f.length-1],d)<=0;)f.pop();f.push(d)}return f.pop(),u.pop(),f.concat(u)}})()},function(n,r,i){var s={};n.exports=s;var o=i(3),l=i(2),c=i(7),f=i(0),u=i(1),d=i(11);(function(){s._timeCorrection=!0,s._inertiaScale=4,s._nextCollidingGroupId=1,s._nextNonCollidingGroupId=-1,s._nextCategory=1,s._baseDelta=1e3/60,s.create=function(a){var p={id:f.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:o.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:16.666666666666668,_original:null},m=f.extend(p,a);return h(m,a),m},s.nextGroup=function(a){return a?s._nextNonCollidingGroupId--:s._nextCollidingGroupId++},s.nextCategory=function(){return s._nextCategory=s._nextCategory<<1,s._nextCategory};var h=function(a,p){p=p||{},s.set(a,{bounds:a.bounds||u.create(a.vertices),positionPrev:a.positionPrev||l.clone(a.position),anglePrev:a.anglePrev||a.angle,vertices:a.vertices,parts:a.parts||[a],isStatic:a.isStatic,isSleeping:a.isSleeping,parent:a.parent||a}),o.rotate(a.vertices,a.angle,a.position),d.rotate(a.axes,a.angle),u.update(a.bounds,a.vertices,a.velocity),s.set(a,{axes:p.axes||a.axes,area:p.area||a.area,mass:p.mass||a.mass,inertia:p.inertia||a.inertia});var m=a.isStatic?"#14151f":f.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),g=a.isStatic?"#555":"#ccc",y=a.isStatic&&a.render.fillStyle===null?1:0;a.render.fillStyle=a.render.fillStyle||m,a.render.strokeStyle=a.render.strokeStyle||g,a.render.lineWidth=a.render.lineWidth||y,a.render.sprite.xOffset+=-(a.bounds.min.x-a.position.x)/(a.bounds.max.x-a.bounds.min.x),a.render.sprite.yOffset+=-(a.bounds.min.y-a.position.y)/(a.bounds.max.y-a.bounds.min.y)};s.set=function(a,p,m){var g;typeof p=="string"&&(g=p,p={},p[g]=m);for(g in p)if(Object.prototype.hasOwnProperty.call(p,g))switch(m=p[g],g){case"isStatic":s.setStatic(a,m);break;case"isSleeping":c.set(a,m);break;case"mass":s.setMass(a,m);break;case"density":s.setDensity(a,m);break;case"inertia":s.setInertia(a,m);break;case"vertices":s.setVertices(a,m);break;case"position":s.setPosition(a,m);break;case"angle":s.setAngle(a,m);break;case"velocity":s.setVelocity(a,m);break;case"angularVelocity":s.setAngularVelocity(a,m);break;case"speed":s.setSpeed(a,m);break;case"angularSpeed":s.setAngularSpeed(a,m);break;case"parts":s.setParts(a,m);break;case"centre":s.setCentre(a,m);break;default:a[g]=m}},s.setStatic=function(a,p){for(var m=0;m0&&l.rotateAbout(C.position,g,a.position,C.position)}},s.setVelocity=function(a,p){var m=a.deltaTime/s._baseDelta;a.positionPrev.x=a.position.x-p.x*m,a.positionPrev.y=a.position.y-p.y*m,a.velocity.x=(a.position.x-a.positionPrev.x)/m,a.velocity.y=(a.position.y-a.positionPrev.y)/m,a.speed=l.magnitude(a.velocity)},s.getVelocity=function(a){var p=s._baseDelta/a.deltaTime;return{x:(a.position.x-a.positionPrev.x)*p,y:(a.position.y-a.positionPrev.y)*p}},s.getSpeed=function(a){return l.magnitude(s.getVelocity(a))},s.setSpeed=function(a,p){s.setVelocity(a,l.mult(l.normalise(s.getVelocity(a)),p))},s.setAngularVelocity=function(a,p){var m=a.deltaTime/s._baseDelta;a.anglePrev=a.angle-p*m,a.angularVelocity=(a.angle-a.anglePrev)/m,a.angularSpeed=Math.abs(a.angularVelocity)},s.getAngularVelocity=function(a){return(a.angle-a.anglePrev)*s._baseDelta/a.deltaTime},s.getAngularSpeed=function(a){return Math.abs(s.getAngularVelocity(a))},s.setAngularSpeed=function(a,p){s.setAngularVelocity(a,f.sign(s.getAngularVelocity(a))*p)},s.translate=function(a,p,m){s.setPosition(a,l.add(a.position,p),m)},s.rotate=function(a,p,m,g){if(!m)s.setAngle(a,a.angle+p,g);else{var y=Math.cos(p),C=Math.sin(p),b=a.position.x-m.x,w=a.position.y-m.y;s.setPosition(a,{x:m.x+(b*y-w*C),y:m.y+(b*C+w*y)},g),s.setAngle(a,a.angle+p,g)}},s.scale=function(a,p,m,g){var y=0,C=0;g=g||a.position;for(var b=0;b0&&(y+=w.area,C+=w.inertia),w.position.x=g.x+(w.position.x-g.x)*p,w.position.y=g.y+(w.position.y-g.y)*m,u.update(w.bounds,w.vertices,a.velocity)}a.parts.length>1&&(a.area=y,a.isStatic||(s.setMass(a,a.density*y),s.setInertia(a,C))),a.circleRadius&&(p===m?a.circleRadius*=p:a.circleRadius=null)},s.update=function(a,p){p=(typeof p<"u"?p:1e3/60)*a.timeScale;var m=p*p,g=s._timeCorrection?p/(a.deltaTime||p):1,y=1-a.frictionAir*(p/f._baseDelta),C=(a.position.x-a.positionPrev.x)*g,b=(a.position.y-a.positionPrev.y)*g;a.velocity.x=C*y+a.force.x/a.mass*m,a.velocity.y=b*y+a.force.y/a.mass*m,a.positionPrev.x=a.position.x,a.positionPrev.y=a.position.y,a.position.x+=a.velocity.x,a.position.y+=a.velocity.y,a.deltaTime=p,a.angularVelocity=(a.angle-a.anglePrev)*y*g+a.torque/a.inertia*m,a.anglePrev=a.angle,a.angle+=a.angularVelocity;for(var w=0;w0&&(v.position.x+=a.velocity.x,v.position.y+=a.velocity.y),a.angularVelocity!==0&&(o.rotate(v.vertices,a.angularVelocity,a.position),d.rotate(v.axes,a.angularVelocity),w>0&&l.rotateAbout(v.position,a.angularVelocity,a.position,v.position)),u.update(v.bounds,v.vertices,a.velocity)}},s.updateVelocities=function(a){var p=s._baseDelta/a.deltaTime,m=a.velocity;m.x=(a.position.x-a.positionPrev.x)*p,m.y=(a.position.y-a.positionPrev.y)*p,a.speed=Math.sqrt(m.x*m.x+m.y*m.y),a.angularVelocity=(a.angle-a.anglePrev)*p,a.angularSpeed=Math.abs(a.angularVelocity)},s.applyForce=function(a,p,m){var g={x:p.x-a.position.x,y:p.y-a.position.y};a.force.x+=m.x,a.force.y+=m.y,a.torque+=g.x*m.y-g.y*m.x},s._totalProperties=function(a){for(var p={mass:0,area:0,inertia:0,centre:{x:0,y:0}},m=a.parts.length===1?0:1;m0){f||(f={}),u=c.split(" ");for(var m=0;m0&&p.motion=p.sleepThreshold/d&&s.set(p,!0)):p.sleepCounter>0&&(p.sleepCounter-=1)}},s.afterCollisions=function(f){for(var u=s._motionSleepThreshold,d=0;du&&s.set(g,!1)}}}},s.set=function(f,u){var d=f.isSleeping;u?(f.isSleeping=!0,f.sleepCounter=f.sleepThreshold,f.positionImpulse.x=0,f.positionImpulse.y=0,f.positionPrev.x=f.position.x,f.positionPrev.y=f.position.y,f.anglePrev=f.angle,f.speed=0,f.angularSpeed=0,f.motion=0,d||l.trigger(f,"sleepStart")):(f.isSleeping=!1,f.sleepCounter=0,d&&l.trigger(f,"sleepEnd"))}})()},function(n,r,i){var s={};n.exports=s;var o=i(3),l=i(9);(function(){var c=[],f={overlap:0,axis:null},u={overlap:0,axis:null};s.create=function(d,h){return{pair:null,collided:!1,bodyA:d,bodyB:h,parentA:d.parent,parentB:h.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}},s.collides=function(d,h,a){if(s._overlapAxes(f,d.vertices,h.vertices,d.axes),f.overlap<=0||(s._overlapAxes(u,h.vertices,d.vertices,h.axes),u.overlap<=0))return null;var p=a&&a.table[l.id(d,h)],m;p?m=p.collision:(m=s.create(d,h),m.collided=!0,m.bodyA=d.idde?de=k:kxe?xe=k:km?m=y:yp.frictionStatic?a.frictionStatic:p.frictionStatic,l.restitution=a.restitution>p.restitution?a.restitution:p.restitution,l.slop=a.slop>p.slop?a.slop:p.slop,c.pair=l,h.length=0;for(var g=0;g0?1:.7),a.damping=a.damping||0,a.angularStiffness=a.angularStiffness||0,a.angleA=a.bodyA?a.bodyA.angle:a.angleA,a.angleB=a.bodyB?a.bodyB.angle:a.angleB,a.plugin={};var y={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return a.length===0&&a.stiffness>.1?(y.type="pin",y.anchors=!1):a.stiffness<.9&&(y.type="spring"),a.render=d.extend(y,a.render),a},s.preSolveAll=function(h){for(var a=0;a=1||h.length===0,x=S?h.stiffness*a:h.stiffness*a*a,E=h.damping*a,R=l.mult(w,A*x),k=(p?p.inverseMass:0)+(m?m.inverseMass:0),T=(p?p.inverseInertia:0)+(m?m.inverseInertia:0),B=k+T,V,D,W,Q,X;if(E>0){var de=l.create();W=l.div(w,v),X=l.sub(m&&l.sub(m.position,m.positionPrev)||de,p&&l.sub(p.position,p.positionPrev)||de),Q=l.dot(W,X)}p&&!p.isStatic&&(D=p.inverseMass/k,p.constraintImpulse.x-=R.x*D,p.constraintImpulse.y-=R.y*D,p.position.x-=R.x*D,p.position.y-=R.y*D,E>0&&(p.positionPrev.x-=E*W.x*Q*D,p.positionPrev.y-=E*W.y*Q*D),V=l.cross(g,R)/B*s._torqueDampen*p.inverseInertia*(1-h.angularStiffness),p.constraintImpulse.angle-=V,p.angle-=V),m&&!m.isStatic&&(D=m.inverseMass/k,m.constraintImpulse.x+=R.x*D,m.constraintImpulse.y+=R.y*D,m.position.x+=R.x*D,m.position.y+=R.y*D,E>0&&(m.positionPrev.x+=E*W.x*Q*D,m.positionPrev.y+=E*W.y*Q*D),V=l.cross(y,R)/B*s._torqueDampen*m.inverseInertia*(1-h.angularStiffness),m.constraintImpulse.angle+=V,m.angle+=V)}}},s.postSolveAll=function(h){for(var a=0;a0&&(y.position.x+=m.x,y.position.y+=m.y),m.angle!==0&&(o.rotate(y.vertices,m.angle,p.position),u.rotate(y.axes,m.angle),g>0&&l.rotateAbout(y.position,m.angle,p.position,y.position)),f.update(y.bounds,y.vertices,p.velocity)}m.angle*=s._warming,m.x*=s._warming,m.y*=s._warming}}},s.pointAWorld=function(h){return{x:(h.bodyA?h.bodyA.position.x:0)+(h.pointA?h.pointA.x:0),y:(h.bodyA?h.bodyA.position.y:0)+(h.pointA?h.pointA.y:0)}},s.pointBWorld=function(h){return{x:(h.bodyB?h.bodyB.position.x:0)+(h.pointB?h.pointB.x:0),y:(h.bodyB?h.bodyB.position.y:0)+(h.pointB?h.pointB.y:0)}}})()},function(n,r,i){var s={};n.exports=s;var o=i(2),l=i(0);(function(){s.fromVertices=function(c){for(var f={},u=0;u0&&o.area(X)1?(v=c.create(l.extend({parts:A.slice(0)},p)),c.setPosition(v,{x:d,y:h}),v):A[0]}})()},function(n,r,i){var s={};n.exports=s;var o=i(0),l=i(8);(function(){s.create=function(c){var f={bodies:[],pairs:null};return o.extend(f,c)},s.setBodies=function(c,f){c.bodies=f.slice(0)},s.clear=function(c){c.bodies=[]},s.collisions=function(c){var f=[],u=c.pairs,d=c.bodies,h=d.length,a=s.canCollide,p=l.collides,m,g;for(d.sort(s._compareBoundsX),m=0;mb)break;if(!(wR.max.y)&&!(A&&(E.isStatic||E.isSleeping))&&a(y.collisionFilter,E.collisionFilter)){var k=E.parts.length;if(x&&k===1){var T=p(y,E,u);T&&f.push(T)}else for(var B=S>1?1:0,V=k>1?1:0,D=B;DR.max.x||C.max.xR.max.y)){var T=p(W,X,u);T&&f.push(T)}}}}}return f},s.canCollide=function(c,f){return c.group===f.group&&c.group!==0?c.group>0:(c.mask&f.category)!==0&&(f.mask&c.category)!==0},s._compareBoundsX=function(c,f){return c.bounds.min.x-f.bounds.min.x}})()},function(n,r,i){var s={};n.exports=s;var o=i(0);(function(){s.create=function(l){var c={};return l||o.log("Mouse.create: element was undefined, defaulting to document.body","warn"),c.element=l||document.body,c.absolute={x:0,y:0},c.position={x:0,y:0},c.mousedownPosition={x:0,y:0},c.mouseupPosition={x:0,y:0},c.offset={x:0,y:0},c.scale={x:1,y:1},c.wheelDelta=0,c.button=-1,c.pixelRatio=parseInt(c.element.getAttribute("data-pixel-ratio"),10)||1,c.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},c.mousemove=function(f){var u=s._getRelativeMousePosition(f,c.element,c.pixelRatio),d=f.changedTouches;d&&(c.button=0,f.preventDefault()),c.absolute.x=u.x,c.absolute.y=u.y,c.position.x=c.absolute.x*c.scale.x+c.offset.x,c.position.y=c.absolute.y*c.scale.y+c.offset.y,c.sourceEvents.mousemove=f},c.mousedown=function(f){var u=s._getRelativeMousePosition(f,c.element,c.pixelRatio),d=f.changedTouches;d?(c.button=0,f.preventDefault()):c.button=f.button,c.absolute.x=u.x,c.absolute.y=u.y,c.position.x=c.absolute.x*c.scale.x+c.offset.x,c.position.y=c.absolute.y*c.scale.y+c.offset.y,c.mousedownPosition.x=c.position.x,c.mousedownPosition.y=c.position.y,c.sourceEvents.mousedown=f},c.mouseup=function(f){var u=s._getRelativeMousePosition(f,c.element,c.pixelRatio),d=f.changedTouches;d&&f.preventDefault(),c.button=-1,c.absolute.x=u.x,c.absolute.y=u.y,c.position.x=c.absolute.x*c.scale.x+c.offset.x,c.position.y=c.absolute.y*c.scale.y+c.offset.y,c.mouseupPosition.x=c.position.x,c.mouseupPosition.y=c.position.y,c.sourceEvents.mouseup=f},c.mousewheel=function(f){c.wheelDelta=Math.max(-1,Math.min(1,f.wheelDelta||-f.detail)),f.preventDefault()},s.setElement(c,c.element),c},s.setElement=function(l,c){l.element=c,c.addEventListener("mousemove",l.mousemove),c.addEventListener("mousedown",l.mousedown),c.addEventListener("mouseup",l.mouseup),c.addEventListener("mousewheel",l.mousewheel),c.addEventListener("DOMMouseScroll",l.mousewheel),c.addEventListener("touchmove",l.mousemove),c.addEventListener("touchstart",l.mousedown),c.addEventListener("touchend",l.mouseup)},s.clearSourceEvents=function(l){l.sourceEvents.mousemove=null,l.sourceEvents.mousedown=null,l.sourceEvents.mouseup=null,l.sourceEvents.mousewheel=null,l.wheelDelta=0},s.setOffset=function(l,c){l.offset.x=c.x,l.offset.y=c.y,l.position.x=l.absolute.x*l.scale.x+l.offset.x,l.position.y=l.absolute.y*l.scale.y+l.offset.y},s.setScale=function(l,c){l.scale.x=c.x,l.scale.y=c.y,l.position.x=l.absolute.x*l.scale.x+l.offset.x,l.position.y=l.absolute.y*l.scale.y+l.offset.y},s._getRelativeMousePosition=function(l,c,f){var u=c.getBoundingClientRect(),d=document.documentElement||document.body.parentNode||document.body,h=window.pageXOffset!==void 0?window.pageXOffset:d.scrollLeft,a=window.pageYOffset!==void 0?window.pageYOffset:d.scrollTop,p=l.changedTouches,m,g;return p?(m=p[0].pageX-u.left-h,g=p[0].pageY-u.top-a):(m=l.pageX-u.left-h,g=l.pageY-u.top-a),{x:m/(c.clientWidth/(c.width||c.clientWidth)*f),y:g/(c.clientHeight/(c.height||c.clientHeight)*f)}}})()},function(n,r,i){var s={};n.exports=s;var o=i(0);(function(){s._registry={},s.register=function(l){if(s.isPlugin(l)||o.warn("Plugin.register:",s.toString(l),"does not implement all required fields."),l.name in s._registry){var c=s._registry[l.name],f=s.versionParse(l.version).number,u=s.versionParse(c.version).number;f>u?(o.warn("Plugin.register:",s.toString(c),"was upgraded to",s.toString(l)),s._registry[l.name]=l):f-1},s.isFor=function(l,c){var f=l.for&&s.dependencyParse(l.for);return!l.for||c.name===f.name&&s.versionSatisfies(c.version,f.range)},s.use=function(l,c){if(l.uses=(l.uses||[]).concat(c||[]),l.uses.length===0){o.warn("Plugin.use:",s.toString(l),"does not specify any dependencies to install.");return}for(var f=s.dependencies(l),u=o.topologicalSort(f),d=[],h=0;h0&&o.info(d.join(" "))},s.dependencies=function(l,c){var f=s.dependencyParse(l),u=f.name;if(c=c||{},!(u in c)){l=s.resolve(l)||l,c[u]=o.map(l.uses||[],function(h){s.isPlugin(h)&&s.register(h);var a=s.dependencyParse(h),p=s.resolve(h);return p&&!s.versionSatisfies(p.version,a.range)?(o.warn("Plugin.dependencies:",s.toString(p),"does not satisfy",s.toString(a),"used by",s.toString(f)+"."),p._warned=!0,l._warned=!0):p||(o.warn("Plugin.dependencies:",s.toString(h),"used by",s.toString(f),"could not be resolved."),l._warned=!0),a.name});for(var d=0;d=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;c.test(l)||o.warn("Plugin.versionParse:",l,"is not a valid version or range.");var f=c.exec(l),u=Number(f[4]),d=Number(f[5]),h=Number(f[6]);return{isRange:!!(f[1]||f[2]),version:f[3],range:l,operator:f[1]||f[2]||"",major:u,minor:d,patch:h,parts:[u,d,h],prerelease:f[7],number:u*1e8+d*1e4+h}},s.versionSatisfies=function(l,c){c=c||"*";var f=s.versionParse(c),u=s.versionParse(l);if(f.isRange){if(f.operator==="*"||l==="*")return!0;if(f.operator===">")return u.number>f.number;if(f.operator===">=")return u.number>=f.number;if(f.operator==="~")return u.major===f.major&&u.minor===f.minor&&u.patch>=f.patch;if(f.operator==="^")return f.major>0?u.major===f.major&&u.number>=f.number:f.minor>0?u.minor===f.minor&&u.patch>=f.patch:u.patch===f.patch}return l===c||l==="*"}})()},function(n,r){var i={};n.exports=i,function(){i.create=function(s){return{vertex:s,normalImpulse:0,tangentImpulse:0}}}()},function(n,r,i){var s={};n.exports=s;var o=i(7),l=i(18),c=i(13),f=i(19),u=i(5),d=i(6),h=i(10),a=i(0),p=i(4);(function(){s.create=function(m){m=m||{};var g={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}},y=a.extend(g,m);return y.world=m.world||d.create({label:"World"}),y.pairs=m.pairs||f.create(),y.detector=m.detector||c.create(),y.grid={buckets:[]},y.world.gravity=y.gravity,y.broadphase=y.grid,y.metrics={},y},s.update=function(m,g){var y=a.now(),C=m.world,b=m.detector,w=m.pairs,v=m.timing,A=v.timestamp,S;g=typeof g<"u"?g:a._baseDelta,g*=v.timeScale,v.timestamp+=g,v.lastDelta=g;var x={timestamp:v.timestamp,delta:g};u.trigger(m,"beforeUpdate",x);var E=d.allBodies(C),R=d.allConstraints(C);for(C.isModified&&(c.setBodies(b,E),d.setModified(C,!1,!1,!0)),m.enableSleeping&&o.update(E,g),s._bodiesApplyGravity(E,m.gravity),g>0&&s._bodiesUpdate(E,g),h.preSolveAll(E),S=0;S0&&u.trigger(m,"collisionStart",{pairs:w.collisionStart});var T=a.clamp(20/m.positionIterations,0,1);for(l.preSolvePosition(w.list),S=0;S0&&u.trigger(m,"collisionActive",{pairs:w.collisionActive}),w.collisionEnd.length>0&&u.trigger(m,"collisionEnd",{pairs:w.collisionEnd}),s._bodiesClearForces(E),u.trigger(m,"afterUpdate",x),m.timing.lastElapsed=a.now()-y,m},s.merge=function(m,g){if(a.extend(m,g),g.world){m.world=g.world,s.clear(m);for(var y=d.allBodies(m.world),C=0;CG?(w=I>0?I:-I,b=S.friction*(I>0?1:-1)*a,b<-w?b=-w:b>w&&(b=w)):(b=I,w=y);var J=Ee*V-Je*B,q=me*V-N*B,j=de/(xe+E.inverseInertia*J*J+R.inverseInertia*q*q),te=(1+S.restitution)*M*j;if(b*=j,M0&&(ie.normalImpulse=0),te=ie.normalImpulse-$}if(I<-m||I>m)ie.tangentImpulse=0;else{var se=ie.tangentImpulse;ie.tangentImpulse+=b,ie.tangentImpulse<-w&&(ie.tangentImpulse=-w),ie.tangentImpulse>w&&(ie.tangentImpulse=w),b=ie.tangentImpulse-se}var oe=B*te+D*b,ue=V*te+W*b;E.isStatic||E.isSleeping||(E.positionPrev.x+=oe*E.inverseMass,E.positionPrev.y+=ue*E.inverseMass,E.anglePrev+=(Ee*ue-Je*oe)*E.inverseInertia),R.isStatic||R.isSleeping||(R.positionPrev.x-=oe*R.inverseMass,R.positionPrev.y-=ue*R.inverseMass,R.anglePrev-=(me*ue-N*oe)*R.inverseInertia)}}}}})()},function(n,r,i){var s={};n.exports=s;var o=i(9),l=i(0);(function(){s.create=function(c){return l.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},c)},s.update=function(c,f,u){var d=c.list,h=d.length,a=c.table,p=f.length,m=c.collisionStart,g=c.collisionEnd,y=c.collisionActive,C,b,w,v;for(m.length=0,g.length=0,y.length=0,v=0;vE&&(E=T),f.translate(k,{x:B*.5,y:T*.5}),w=k.bounds.max.x+g,o.addBody(b,k),A=k,S+=1}else w+=g}v+=E+y,w=h}return b},s.chain=function(h,a,p,m,g,y){for(var C=h.bodies,b=1;b0)for(b=0;b0&&(A=y[b-1+(C-1)*a],o.addConstraint(h,l.create(c.extend({bodyA:A,bodyB:v},g)))),m&&bE)){A=E-A;var k=A,T=p-1-A;if(!(vT)){x===1&&f.translate(S,{x:(v+(p%2===1?1:-1))*R,y:0});var B=S?v*R:0;return C(h+B+v*g,w,v,A,S,x)}}})},s.newtonsCradle=function(h,a,p,m,g){for(var y=o.create({label:"Newtons Cradle"}),C=0;Cg.bounds.max.x||v.bounds.max.yg.bounds.max.y))){var A=s._getRegion(f,v);if(!v.region||A.id!==v.region.id||h){(!v.region||h)&&(v.region=A);var S=s._regionUnion(A,v.region);for(p=S.startCol;p<=S.endCol;p++)for(m=S.startRow;m<=S.endRow;m++){b=s._getBucketId(p,m),C=y[b];var x=p>=A.startCol&&p<=A.endCol&&m>=A.startRow&&m<=A.endRow,E=p>=v.region.startCol&&p<=v.region.endCol&&m>=v.region.startRow&&m<=v.region.endRow;!x&&E&&E&&C&&s._bucketRemoveBody(f,C,v),(v.region===A||x&&!E||h)&&(C||(C=s._createBucket(y,b)),s._bucketAddBody(f,C,v))}v.region=A,w=!0}}}w&&(f.pairsList=s._createActivePairsList(f))},c(s,"update","Grid.update ➤ replaced by Matter.Detector"),s.clear=function(f){f.buckets={},f.pairs={},f.pairsList=[]},c(s,"clear","Grid.clear ➤ replaced by Matter.Detector"),s._regionUnion=function(f,u){var d=Math.min(f.startCol,u.startCol),h=Math.max(f.endCol,u.endCol),a=Math.min(f.startRow,u.startRow),p=Math.max(f.endRow,u.endRow);return s._createRegion(d,h,a,p)},s._getRegion=function(f,u){var d=u.bounds,h=Math.floor(d.min.x/f.bucketWidth),a=Math.floor(d.max.x/f.bucketWidth),p=Math.floor(d.min.y/f.bucketHeight),m=Math.floor(d.max.y/f.bucketHeight);return s._createRegion(h,a,p,m)},s._createRegion=function(f,u,d,h){return{id:f+","+u+","+d+","+h,startCol:f,endCol:u,startRow:d,endRow:h}},s._getBucketId=function(f,u){return"C"+f+"R"+u},s._createBucket=function(f,u){var d=f[u]=[];return d},s._bucketAddBody=function(f,u,d){var h=f.pairs,a=o.id,p=u.length,m;for(m=0;m0?p.push(u):delete d[h[m]];return p}})()},function(n,r,i){var s={};n.exports=s;var o=i(3),l=i(7),c=i(14),f=i(5),u=i(13),d=i(10),h=i(6),a=i(0),p=i(1);(function(){s.create=function(m,g){var y=(m?m.mouse:null)||(g?g.mouse:null);y||(m&&m.render&&m.render.canvas?y=c.create(m.render.canvas):g&&g.element?y=c.create(g.element):(y=c.create(),a.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var C=d.create({label:"Mouse Constraint",pointA:y.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),b={type:"mouseConstraint",mouse:y,element:null,body:null,constraint:C,collisionFilter:{category:1,mask:4294967295,group:0}},w=a.extend(b,g);return f.on(m,"beforeUpdate",function(){var v=h.allBodies(m.world);s.update(w,v),s._triggerEvents(w)}),w},s.update=function(m,g){var y=m.mouse,C=m.constraint,b=m.body;if(y.button===0){if(C.bodyB)l.set(C.bodyB,!1),C.pointA=y.position;else for(var w=0;w1?1:0;vE.max.x&&(E.max.x=B.x),T.yE.max.y&&(E.max.y=B.y))}var V=E.max.x-E.min.x+2*S.x,D=E.max.y-E.min.y+2*S.y,W=v.canvas.height,Q=v.canvas.width,X=Q/W,de=V/D,xe=1,Se=1;de>X?Se=de/X:xe=X/de,v.options.hasBounds=!0,v.bounds.min.x=E.min.x,v.bounds.max.x=E.min.x+V*xe,v.bounds.min.y=E.min.y,v.bounds.max.y=E.min.y+D*Se,x&&(v.bounds.min.x+=V*.5-V*xe*.5,v.bounds.max.x+=V*.5-V*xe*.5,v.bounds.min.y+=D*.5-D*Se*.5,v.bounds.max.y+=D*.5-D*Se*.5),v.bounds.min.x-=S.x,v.bounds.max.x-=S.x,v.bounds.min.y-=S.y,v.bounds.max.y-=S.y,v.mouse&&(h.setScale(v.mouse,{x:(v.bounds.max.x-v.bounds.min.x)/v.canvas.width,y:(v.bounds.max.y-v.bounds.min.y)/v.canvas.height}),h.setOffset(v.mouse,v.bounds.min))},s.startViewTransform=function(v){var A=v.bounds.max.x-v.bounds.min.x,S=v.bounds.max.y-v.bounds.min.y,x=A/v.options.width,E=S/v.options.height;v.context.setTransform(v.options.pixelRatio/x,0,0,v.options.pixelRatio/E,0,0),v.context.translate(-v.bounds.min.x,-v.bounds.min.y)},s.endViewTransform=function(v){v.context.setTransform(v.options.pixelRatio,0,0,v.options.pixelRatio,0,0)},s.world=function(v,A){var S=l.now(),x=v.engine,E=x.world,R=v.canvas,k=v.context,T=v.options,B=v.timing,V=c.allBodies(E),D=c.allConstraints(E),W=T.wireframes?T.wireframeBackground:T.background,Q=[],X=[],de,xe={timestamp:x.timing.timestamp};if(u.trigger(v,"beforeRender",xe),v.currentBackground!==W&&w(v,W),k.globalCompositeOperation="source-in",k.fillStyle="transparent",k.fillRect(0,0,R.width,R.height),k.globalCompositeOperation="source-over",T.hasBounds){for(de=0;de1?1:0;V1?1:0;V1?1:0;k1?1:0;B1?1:0;T1?1:0;T1?1:0;R0)){var W=R.activeContacts[0].vertex.x,Q=R.activeContacts[0].vertex.y;R.activeContacts.length===2&&(W=(R.activeContacts[0].vertex.x+R.activeContacts[1].vertex.x)/2,Q=(R.activeContacts[0].vertex.y+R.activeContacts[1].vertex.y)/2),k.bodyB===k.supports[0].body||k.bodyA.isStatic===!0?x.moveTo(W-k.normal.x*8,Q-k.normal.y*8):x.moveTo(W+k.normal.x*8,Q+k.normal.y*8),x.lineTo(W,Q)}E.wireframes?x.strokeStyle="rgba(255,165,0,0.7)":x.strokeStyle="orange",x.lineWidth=1,x.stroke()},s.separations=function(v,A,S){var x=S,E=v.options,R,k,T,B,V;for(x.beginPath(),V=0;Vh.deltaMax?h.deltaMax:g,h.delta=g);var y={timestamp:m.timestamp};o.trigger(h,"beforeTick",y),h.frameCounter+=1,p-h.counterTimestamp>=1e3&&(h.fps=h.frameCounter*((p-h.counterTimestamp)/1e3),h.counterTimestamp=p,h.frameCounter=0),o.trigger(h,"tick",y),o.trigger(h,"beforeUpdate",y),l.update(a,g),o.trigger(h,"afterUpdate",y),o.trigger(h,"afterTick",y)},s.stop=function(h){u(h.frameRequestId)},s.start=function(h,a){s.run(h,a)}})()},function(n,r,i){var s={};n.exports=s;var o=i(8),l=i(0),c=l.deprecated;(function(){s.collides=function(f,u){return o.collides(f,u)},c(s,"collides","SAT.collides ➤ replaced by Collision.collides")})()},function(n,r,i){var s={};n.exports=s,i(1);var o=i(0);(function(){s.pathToVertices=function(l,c){typeof window<"u"&&!("SVGPathSeg"in window)&&o.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var f,u,d,h,a,p,m,g,y,C,b=[],w,v,A=0,S=0,x=0;c=c||15;var E=function(k,T,B){var V=B%2===1&&B>1;if(!y||k!=y.x||T!=y.y){y&&V?(w=y.x,v=y.y):(w=0,v=0);var D={x:w+k,y:v+T};(V||!y)&&(y=D),b.push(D),S=w+k,x=v+T}},R=function(k){var T=k.pathSegTypeAsLetter.toUpperCase();if(T!=="Z"){switch(T){case"M":case"L":case"T":case"C":case"S":case"Q":S=k.x,x=k.y;break;case"H":S=k.x;break;case"V":x=k.y;break}E(S,x,k.pathSegType)}};for(s._svgPathToAbsolute(l),d=l.getTotalLength(),p=[],f=0;f{const s=nu[e],o=Yd[e];return Le.Bodies.circle(t,n,s.size*r/2,{isStatic:i,label:String(e),render:{fillStyle:s.color,lineWidth:8,strokeStyle:zd,sprite:{texture:o,xScale:1/3*r,yScale:1/3*r}}})},Zd=e=>{const t=e>6?6:e;return Math.floor(Math.random()*(t-1))+1},Gd=560/360,Xd=e=>e*Gd,Za=(e,t,n)=>{const r=Le.Bodies.rectangle(t/2,n,t,30,{isStatic:!0,restitution:1,render:{fillStyle:"#81685A"}}),i=Le.Bodies.rectangle(0,n/2,1,n,{isStatic:!0,render:{fillStyle:"#FFFFFF"}}),s=Le.Bodies.rectangle(t,n/2,1,n,{isStatic:!0,render:{fillStyle:"#FFFFFF"}}),o=Le.Bodies.rectangle(t/2,120,t,2,{isStatic:!0,isSensor:!0,label:"line",render:{fillStyle:"#FF6C6C"}});Le.Composite.add(e,[o,r,i,s])},_d=(e,t)=>{const n=Ze(void 0);let r;const i=()=>{r&&(clearInterval(r),r=void 0)};return{count:n,reset:()=>{n.value=void 0,i()},start:()=>{n.value=e,!r&&(r=setInterval(()=>{n.value&&(n.value=n.value-1),n.value===0&&(i(),t())},1e3))}}},$d=e=>{const t=Le.Engine.create({gravity:{x:0,y:.4},timing:{timeScale:1.5}}),n=Le.Runner.create(),r=new Set;let i=0,s=0,o=1;const l=Ze(0);let c=!1,f,u=0,d=0;const h=Ze(!1),a=Ze(0),p=Ze(0);En(()=>{var k,T;if(!e.value)return;i=e.value.clientWidth,s=Xd(i),o=i/380,d=(k=e.value)==null?void 0:k.getBoundingClientRect().x,l.value=((T=e.value)==null?void 0:T.clientHeight)-s,v(),w();const R=Le.Render.create({canvas:e.value,engine:t,options:{wireframes:!1,background:"transparent",width:i,height:s,pixelRatio:window.devicePixelRatio}});Za(t.world,i,s),Le.Render.run(R),Le.Runner.run(n,t),e.value.addEventListener("mousemove",B=>{S(B.offsetX)}),e.value.addEventListener("mouseup",()=>{A()}),e.value.addEventListener("touchmove",B=>{var D;const V=B.touches[0].clientX-d;(D=e==null?void 0:e.value)!=null&&D.clientWidth&&V>0&&V{A()})}),Le.Events.on(t,"collisionStart",R=>{R.pairs.forEach(k=>{if(k.bodyA.label==="line"||k.bodyB.label==="line"){const V=k.bodyA.label==="line"?k.bodyB.id:k.bodyA.id;C(V)}if(k.bodyA.label!==k.bodyB.label||k.bodyA.label==="removed"||k.bodyB.label==="removed")return;const T=Number(k.bodyA.label);if(T===10)return;k.bodyA.label="removed",k.bodyB.label="removed",p.value=p.value+nu[T].score;const B=Ya(T+1,k.collision.supports[0].x,k.collision.supports[0].y,o);Le.World.remove(t.world,[k.bodyA,k.bodyB]),Le.World.add(t.world,B)})}),Le.Events.on(t,"collisionEnd",R=>{R.pairs.forEach(k=>{if(k.bodyA.label==="line"||k.bodyB.label==="line"){const T=k.bodyA.label==="line"?k.bodyB.id:k.bodyA.id;b(T)}})});const{start:m,reset:g}=_d(3,()=>{x()}),y=()=>{if(r.size>0){m();return}g()},C=R=>{r.add(R),y()},b=R=>{r.delete(R),y()},w=()=>{f=Ya(a.value,i/2,60,o,!0),c=!1,Le.World.add(t.world,f),v()},v=()=>{u+=1,a.value=Zd(u)},A=()=>{h.value||!f||c||(c=!0,Le.Body.setStatic(f,!1),setTimeout(()=>{w()},1e3))},S=R=>{h.value||!f||c||Le.Body.setPosition(f,{x:R,y:60})},x=()=>{h.value=!0};return{replay:()=>{p.value=0,r.clear(),g(),h.value=!1,u=0,Le.World.clear(t.world,!1),Za(t.world,i,s),v(),w()},nextBlockRef:a,groundHeightRef:l,gameOverRef:h,scoreRef:p}},ep={},tp={class:"relative flex items-center justify-center px-6 py-2"},np={class:"absolute left-6 min-w-8"},sp=K("div",null,null,-1),rp={class:"absolute right-6 min-w-8"};function ip(e,t){return re(),ce("div",tp,[K("div",np,[In(e.$slots,"left")]),In(e.$slots,"default",{},()=>[sp]),K("div",rp,[In(e.$slots,"right")])])}const su=cs(ep,[["render",ip]]),ru="data:image/svg+xml,%3csvg%20width='38'%20height='32'%20viewBox='0%200%2038%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e",op={class:"flex items-center"},ap=["src"],iu=Me({__name:"BackButton",setup(e){return(t,n)=>(re(),ce("div",op,[K("img",{src:ee(ru),alt:"뒤로가기"},null,8,ap)]))}}),lp={class:"flex flex-col items-end w-[90px]"},cp=K("span",{class:"text-caption-b text-dark-green"}," Player ",-1),up={class:"text-caption-b"},fp=Me({__name:"Player",props:{name:{type:String,default:""}},setup(e){return(t,n)=>(re(),ce("div",lp,[cp,K("span",up,je(e.name),1)]))}}),Fo=B2("user",()=>({nickName:Ze("")})),hp="/assets/play-background-aEWNT8Ww.svg",dp={class:"relative flex-1"},pp={class:"absolute -z-10 top-1/2 -translate-y-1/2 w-full"},mp=["src"],gp=Me({__name:"PlayPage",setup(e){const t=Fo(),n=Hr(),r=Ze(),{replay:i,nextBlockRef:s,groundHeightRef:o,gameOverRef:l,scoreRef:c}=$d(r);En(()=>{t.nickName||n.replace("/"),document.body.style.cssText="overflow: hidden; overscroll-behavior: none;"}),Mr(()=>{document.body.style.cssText=""});const f=()=>{n.back()},u=()=>{n.push("/rank")};return(d,h)=>(re(),ce(Be,null,[he(su,{class:"mt-3"},{left:Ge(()=>[he(iu,{onClick:f})]),right:Ge(()=>[he(fp,{name:ee(t).nickName},null,8,["name"])]),default:Ge(()=>[he(Ud,{score:ee(c)},null,8,["score"])]),_:1}),K("div",dp,[K("div",pp,[K("img",{class:"m-auto",alt:"background",src:ee(hp)},null,8,mp)]),he(k1,{"next-index":ee(s),class:"pointer-events-none absolute top-6"},null,8,["next-index"]),K("canvas",{ref_key:"canvas",ref:r,class:"w-full h-full"},null,512),he(Fd,{height:ee(o)},null,8,["height"])]),ee(l)?(re(),It(Od,{key:0,score:ee(c),nickname:ee(t).nickName,onReplay:ee(i),onBack:f,onRank:u},null,8,["score","nickname","onReplay"])):Mt("",!0)],64))}}),ou="/assets/zzio-game-gi9PWWvs.svg",vp="/assets/title-beta-3s8Zv2-4.svg",au="/assets/illustration-Ldk2dMTd.svg",yp={},xp={width:"6",height:"26",viewBox:"0 0 6 26",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Cp=K("path",{d:"M4.2 1C0.733351 1.27513 1.4 5.35559 1.4 7.11111C1.4 10.4368 1 13.721 1 17.0159C1 18.9153 1 20.8148 1 22.7143C1 24.7699 2.14463 25 5 25",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},null,-1),Ap=[Cp];function bp(e,t){return re(),ce("svg",xp,Ap)}const wp=cs(yp,[["render",bp]]),Sp={},Ep={width:"5",height:"26",viewBox:"0 0 5 26",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Rp=K("path",{d:"M1 1C3.80793 1 3.65193 1.51739 3.80793 3.50851C4.24009 4.88769 3.80793 6.50014 3.80793 7.94838C3.80793 10.7494 3.49594 13.5023 3.49594 16.376C3.49594 18.2999 3.80793 20.0164 3.80793 22.0052C3.80793 22.7818 3.96994 23.7369 3.7906 24.4944C3.61128 25.2518 1.65823 24.9337 1 24.9337",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},null,-1),Pp=[Rp];function Op(e,t){return re(),ce("svg",Ep,Pp)}const kp=cs(Sp,[["render",Op]]),Tp=["disabled"],Ss=Me({__name:"ZButton",props:{disabled:{type:Boolean,default:!1},color:{type:String,default:"primary"}},setup(e){const t=Vr(["text-black text-body-b","flex justify-between w-full rounded-[8px] px-[12px] py-[11px] border-2"],{variants:{disabled:{true:"border-dark-green text-dark-green bg-green",false:"border-black"},color:{primary:"bg-[#FCBF31]",secondary:"bg-green"}}});return(n,r)=>(re(),ce("button",{class:wn(ee(t)({disabled:e.disabled,color:e.color})),disabled:e.disabled},[he(wp),In(n.$slots,"default"),he(kp)],10,Tp))}}),Fp="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20style='fill:%20%23489B6D'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='inherit'%20d='M12%202C10.6868%202%209.38642%202.25866%208.17317%202.7612C6.95991%203.26375%205.85752%204.00035%204.92893%204.92893C3.05357%206.8043%202%209.34784%202%2012C2%2016.42%204.87%2020.17%208.84%2021.5C9.34%2021.58%209.5%2021.27%209.5%2021V19.31C6.73%2019.91%206.14%2017.97%206.14%2017.97C5.68%2016.81%205.03%2016.5%205.03%2016.5C4.12%2015.88%205.1%2015.9%205.1%2015.9C6.1%2015.97%206.63%2016.93%206.63%2016.93C7.5%2018.45%208.97%2018%209.54%2017.76C9.63%2017.11%209.89%2016.67%2010.17%2016.42C7.95%2016.17%205.62%2015.31%205.62%2011.5C5.62%2010.39%206%209.5%206.65%208.79C6.55%208.54%206.2%207.5%206.75%206.15C6.75%206.15%207.59%205.88%209.5%207.17C10.29%206.95%2011.15%206.84%2012%206.84C12.85%206.84%2013.71%206.95%2014.5%207.17C16.41%205.88%2017.25%206.15%2017.25%206.15C17.8%207.5%2017.45%208.54%2017.35%208.79C18%209.5%2018.38%2010.39%2018.38%2011.5C18.38%2015.32%2016.04%2016.16%2013.81%2016.41C14.17%2016.72%2014.5%2017.33%2014.5%2018.26V21C14.5%2021.27%2014.66%2021.59%2015.17%2021.5C19.14%2020.16%2022%2016.42%2022%2012C22%2010.6868%2021.7413%209.38642%2021.2388%208.17317C20.7362%206.95991%2019.9997%205.85752%2019.0711%204.92893C18.1425%204.00035%2017.0401%203.26375%2015.8268%202.7612C14.6136%202.25866%2013.3132%202%2012%202Z'/%3e%3c/svg%3e",Mp={class:"text-dark-green flex flex-col items-center pb-12 pt-4"},Bp={class:"flex items-center gap-1 text-caption-b",href:"https://github.com/zzzi-ori",target:"_blank"},Ip=["src"],Np=K("h3",null,"zzio-game",-1),Up=K("span",{class:"text-caption-r"},"© developers are maybe ok",-1),Mo=Me({__name:"Footer",setup(e){return(t,n)=>(re(),ce("div",Mp,[K("a",Bp,[K("img",{class:"text-dark-green",src:ee(Fp),alt:"github"},null,8,Ip),Np]),Up]))}}),Lp="data:image/svg+xml,%3csvg%20width='55'%20height='22'%20viewBox='0%200%2055%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.95809%201.72925C11.5932%201.69208%2014.0155%201.65407%2015.6513%201.65407C16.7795%201.65407%2017.9096%201.58814%2019.034%201.5156C20.3055%201.43357%2021.6106%201.51164%2022.8836%201.51164C24.1659%201.51164%2025.4435%201.44043%2026.7292%201.44043C29.9809%201.44043%2033.2319%201.48987%2036.4816%201.5789C39.2326%201.65427%2042.0226%201.66875%2044.6357%202.63526C46.4858%203.31952%2048.3613%203.90303%2050.0085%205.00117C50.9551%205.63226%2051.9846%206.40982%2052.6118%207.36708C53.3073%208.42859%2053.3821%209.8471%2053.1815%2011.0505C53.0459%2011.864%2052.6656%2012.6858%2052.3902%2013.4599C52.2596%2013.8272%2052.1021%2014.1492%2051.9155%2014.4886C51.6444%2014.9815%2051.3987%2015.481%2051.1203%2015.9683C50.7634%2016.5928%2050.2688%2017.343%2049.6603%2017.7486C49.2024%2018.0539%2048.6696%2018.2164%2048.1965%2018.4924C47.6444%2018.8145%2046.9121%2019.0579%2046.2974%2019.2283C44.8748%2019.6227%2043.4239%2019.8606%2041.9612%2020.0631C40.1719%2020.3109%2038.3583%2020.2411%2036.5568%2020.2411C34.9588%2020.2411%2033.3596%2020.2221%2031.7617%2020.2411C30.0172%2020.2619%2028.2692%2020.3716%2026.5234%2020.3836C25.5083%2020.3905%2024.5065%2020.6117%2023.4968%2020.7001C22.6192%2020.7769%2021.7303%2020.7396%2020.85%2020.7396C17.4521%2020.7396%2014.1614%2020.3402%2010.8404%2019.616C8.30368%2019.0629%205.74602%2018.2158%203.5448%2016.807C2.48459%2016.1285%201.81672%2015.0333%201.76838%2013.7764C1.65416%2010.8066%201.66275%207.85901%202.83265%205.08821C3.50052%203.50642%205.47022%202.78585%206.9275%202.19214C7.24625%202.06228%207.60611%202.04422%207.94429%201.99432C8.62044%201.89456%209.26937%201.7449%209.95809%201.72925Z'%20fill='%2366BE8B'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.909%2013.1409C23.2956%2013.1409%2024.6932%2013.1463%2025.7989%2012.1634C26.0518%2011.9385%2026.7028%2010.8607%2026.4884%2010.4971C26.202%2010.0113%2024.9009%2010.0517%2024.4714%2010.0416C23.9373%2010.0291%2023.2157%2010.1122%2022.7374%2010.4026C22.1385%2010.7663%2021.8001%2011.168%2021.7289%2011.9356C21.6569%2012.7131%2022.1321%2013.6008%2022.6294%2014.1185C23.2268%2014.7403%2024.2371%2015.4404%2025.1043%2015.4404C26.0964%2015.4404%2027.0415%2015.0405%2028.0217%2015.0405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M29.8217%2010.9404H34.3217'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M32.5217%208.24048C32.5029%208.57958%2032.4041%208.93656%2032.3417%209.27048C32.1679%2010.2009%2032.1066%2011.1439%2031.9817%2012.0805C31.8364%2013.1701%2031.6217%2014.3426%2031.6217%2015.4405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M38.4458%2010.9404C37.8164%2011.0019%2037.2365%2012.1706%2037.133%2012.6759C37.003%2013.3111%2036.8827%2014.3195%2037.4143%2014.8389C37.877%2015.2909%2038.6357%2015.5034%2039.2845%2015.4242C39.7187%2015.3711%2040.5741%2014.6222%2040.7483%2014.2332C41.0389%2013.5843%2041.4228%2012.7137%2040.9567%2012.0397C40.797%2011.8088%2040.5748%2011.5565%2040.3212%2011.4188C40.1812%2011.3429%2039.9542%2011.2938%2039.8523%2011.1695C39.6835%2010.9633%2039.8716%2011.2288%2040.0451%2011.3527C40.5276%2011.6971%2040.9926%2012.051%2041.4672%2012.4062C41.9513%2012.7684%2042.4245%2013.1383%2042.9362%2013.4597C43.0899%2013.5561%2043.2193%2013.6302%2043.3217%2013.7803'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M12.9738%206.44043C12.9354%207.12336%2012.7347%207.78117%2012.7275%208.48097C12.7144%209.74646%2012.7275%2011.0127%2012.7275%2012.2783C12.7275%2013.1657%2013.0217%2015.8278%2013.0217%2014.9404C13.0217%2013.8437%2012.8802%2012.655%2013.5281%2011.731C14.1557%2010.8358%2015.5416%2010.9404%2016.5184%2010.9404C17.5439%2010.9404%2018.9647%2011.3184%2019.0092%2012.5485C19.0297%2013.115%2019.0692%2013.5833%2018.7081%2014.0418C18.1068%2014.8051%2016.9377%2014.8162%2016.0531%2015.0148C15.258%2015.1932%2014.4057%2015.4404%2013.5897%2015.4404'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",Dp={class:"text-dark-green mt-6 mb-2"},Hp=["src"],Vp={class:"text-caption-b inline"},jp={class:"text-caption-r text-dark-green list-disc ml-4"},Qp=Me({__name:"Notice",props:{closed:{type:Boolean,default:!1}},setup(e){const t=Ae(()=>closed?"운영 종료 안내":"운영 안내"),n=Ae(()=>closed?["현재 찌오 게임 베타 버전은 종료 되었으며, 정식 버전은 24.03.24(일) 이후 오픈 예정입니다."]:["베타 버전은 24.03.18 (월) 19시 까지만 시범 운영 예정이며, 정식 버전은 24.03.24 (일) 이후 오픈 예정입니다.","베타 버전이 종료된 이후에는 모든 랭킹이 초기화 됩니다."]);return(r,i)=>(re(),ce(Be,null,[K("div",Dp,[K("img",{src:ee(Lp),class:"inline mr-1",alt:"beta"},null,8,Hp),K("h3",Vp,je(t.value),1)]),K("ul",jp,[(re(!0),ce(Be,null,po(n.value,s=>(re(),ce("li",{key:s},je(s),1))),128))])],64))}}),Wp=["value","maxlength"],lu=Me({__name:"ZInput",props:{max:{type:Number,default:8},modelValue:{type:String,default:""}},emits:["update:model-value"],setup(e,{emit:t}){const n=e,r=t,i=Ae(()=>n.modelValue.length>0),s=l=>{const c=l.target;c.value=c.value.replace(/^\s*/,"").slice(0,8),r("update:model-value",c.value)},o=Vr(["w-full text-body-b text-center p-4","rounded-[8px] px-[16px] py-[12px] border-2"],{variants:{filled:{true:"",false:"border-dark-green"}}});return(l,c)=>(re(),ce("input",{value:e.modelValue,onInput:s,placeholder:"닉네임을 입력하세요",class:wn(ee(o)({filled:i.value})),maxlength:e.max},null,42,Wp))}}),Jp=()=>new Date{r.value=!Jp()},1e3);Mr(()=>clearInterval(i));const s=()=>{t.push("/play")},o=()=>{t.push("/rank")};return(l,c)=>(re(),ce(Be,null,[K("div",Kp,[K("img",{src:ee(ou),alt:"zzio game"},null,8,qp),K("img",{src:ee(vp),alt:"황금 찌오를 찾아라 beta",class:"my-8"},null,8,zp),K("img",{src:ee(au),alt:"찌오 이미지",class:"mb-6"},null,8,Yp),r.value?(re(),ce("div",Zp,[he(Ss,{color:"secondary",disabled:!0},{default:Ge(()=>[nn("4월 초 오픈 예정")]),_:1})])):(re(),ce("div",Gp,[he(lu,{modelValue:ee(n).nickName,"onUpdate:modelValue":c[0]||(c[0]=f=>ee(n).nickName=f)},null,8,["modelValue"]),he(Ss,{onClick:s,color:"primary",disabled:!ee(n).nickName,class:"mt-2"},{default:Ge(()=>[nn("게임 시작")]),_:1},8,["disabled"]),he(Ss,{onClick:o,color:"secondary",disabled:!1,class:"mt-6"},{default:Ge(()=>[nn(" 실시간 랭킹 ")]),_:1})])),he(Qp,{closed:r.value},null,8,["closed"])]),he(Mo)],64))}}),_p="/assets/rank-1EZzo1qU.svg",$p="data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.27295%201.38288C2.72656%201.38288%204.55953%201.24929%205.94683%201.67319C6.16152%201.73879%206.20919%202.32808%206.30971%202.48604C6.64759%203.01699%206.99995%203.63674%207.22417%204.22786C7.6944%205.46757%207.94133%206.84558%208.16765%208.14695C8.25945%208.67479%208.45796%209.35081%208.45796%209.87426'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M8.26127%2013.6484C8.16865%2013.66%208.08112%2013.7385%208%2013.7791'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",e3={class:"relative border-solid border-2 border-black rounded-lg bg-primary px-4 py-1"},t3={class:"text-body-b"},n3=["src"],s3=Me({__name:"ZLabel",props:{text:{type:String,default:""}},setup(e){return(t,n)=>(re(),ce("div",e3,[K("span",t3,je(e.text),1),K("img",{src:ee($p),class:"absolute right-[2px] top-[2px]"},null,8,n3)]))}}),r3="/assets/medal-zzio-tBNkT3rO.svg",i3="/assets/medal1-QmVnIZDS.svg",o3="data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2252%2020.4625%2012.6416%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1535%2023.3097%2014.4184C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8567%2024.1704%2016.3618%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3163C24.847%2018.8784%2025%2019.4522%2025%2020.0444C25%2020.2445%2024.913%2020.1797%2024.811%2020.0909C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.69%2021.5281%2018.6961C21.1936%2018.7005%2021.1426%2019.2521%2021.0588%2019.5717C20.8524%2020.359%2020.7209%2021.1802%2020.5749%2021.9869C20.5277%2022.248%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6895C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8942%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.174%2019.77%2021.087%2019.7298%2021.0105C19.3458%2020.2799%2018.8508%2019.5357%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9285C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1548C9.88096%2022.2865%209.45315%2023.1384%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1806%207.75245%2020.1839C7.41864%2020.1896%207.06751%2020.2314%206.73911%2020.3027C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5791C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6721C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9953%205.5771%2019.7562%205.70916%2019.5097C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1055C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5371%2014.688%2012.2615C15.7635%2011.9854%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M11%207.4445C11.0533%206.00462%2013.0492%205.82818%2014.0803%206.11689C14.5781%206.25627%2014.9933%206.72901%2015.3491%207.0848C15.9737%207.70949%2016.1343%208.38864%2016.1208%209.25606C16.1081%2010.0653%2015.7485%2010.8814%2015.2183%2011.4796C14.8644%2011.8789%2014.4805%2012.2684%2014.0313%2012.5587C13.545%2012.8729%2012.8888%2013.2083%2012.3243%2013.3337C12.1671%2013.3686%2011.5016%2013.6629%2011.6409%2013.713C12.6555%2014.0783%2013.7368%2014.2927%2014.7735%2014.5861C15.3355%2014.7451%2015.8982%2014.8825%2016.4739%2014.9785'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",a3="/assets/medal3-izkyRdrW.svg",l3="data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2253%2020.4625%2012.6417%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1536%2023.3097%2014.4185C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8568%2024.1704%2016.3619%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3164C24.847%2018.8784%2025%2019.4522%2025%2020.0445C25%2020.2446%2024.913%2020.1797%2024.811%2020.091C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.6901%2021.5281%2018.6961C21.1936%2018.7006%2021.1426%2019.2521%2021.0588%2019.5718C20.8524%2020.3591%2020.7209%2021.1802%2020.5749%2021.987C20.5277%2022.2481%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6896C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8943%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.1741%2019.77%2021.087%2019.7298%2021.0106C19.3458%2020.2799%2018.8508%2019.5358%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9286C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1549C9.88096%2022.2865%209.45315%2023.1385%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1807%207.75245%2020.184C7.41864%2020.1896%207.06751%2020.2315%206.73911%2020.3028C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5792C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6722C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9954%205.5771%2019.7562%205.70916%2019.5098C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1056C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5372%2014.688%2012.2616C15.7635%2011.9855%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23D88F4B'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M19.668%2012.6527C18.6089%2012.6066%2017.5663%2012.389%2016.5097%2012.3135C14.7245%2012.186%2012.9339%2011.9495%2011.1389%2012.0646C11.1233%2012.0656%2010.5327%2012.1373%2010.5476%2012.0552C10.5843%2011.8534%2010.7626%2011.5724%2010.8495%2011.3862C11.4861%2010.0219%2012.3305%208.72783%2013.3264%207.59615C13.6097%207.27421%2013.8747%206.9252%2014.2039%206.64708C14.3214%206.54779%2014.6786%206.18033%2014.8387%206.18033C14.8687%206.18033%2014.8413%206.30049%2014.8387%206.31102C14.8005%206.46356%2014.793%206.61388%2014.8076%206.77155C14.8898%207.66205%2015.2584%208.51072%2015.3677%209.40405C15.4721%2010.2575%2015.5897%2011.1052%2015.6664%2011.9619C15.714%2012.4938%2015.8375%2013.0301%2015.8593%2013.5613C15.8791%2014.0425%2015.9713%2014.5257%2015.9713%2015.0051'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",c3={class:"min-w-14"},u3={key:0},f3=["src"],h3=["src"],d3=["src"],p3=["src"],m3={class:"flex-1 text-caption-b"},g3={class:"flex text-body-b"},v3={class:"pr-1"},y3=["src"],x3=Me({__name:"Rank",props:{item:{type:Object}},setup(e){const t=e,n=Ae(()=>{var i;return t!=null&&t.item&&((i=t.item)==null?void 0:i.rank)<=4?"highlight":"normal"}),r=Vr(["flex w-full text-body-b py-2"],{variants:{type:{highlight:"rounded-lg bg-white mt-1 border-2 pl-2 pr-4",normal:"border-b-solid border-b-2 last:border-b-0 border-b-dark-green px-4"}}});return(i,s)=>{var o,l,c,f,u,d,h,a,p;return re(),ce("div",{class:wn(ee(r)({type:n.value}))},[K("div",c3,[(o=e.item)!=null&&o.rank&&((l=e.item)==null?void 0:l.rank)>4?(re(),ce("span",u3,je((c=e.item)==null?void 0:c.rank),1)):((f=e.item)==null?void 0:f.rank)===1?(re(),ce("img",{key:1,src:ee(i3),alt:"1st"},null,8,f3)):((u=e.item)==null?void 0:u.rank)===2?(re(),ce("img",{key:2,src:ee(o3),alt:"1st"},null,8,h3)):((d=e.item)==null?void 0:d.rank)===3?(re(),ce("img",{key:3,src:ee(a3),alt:"1st"},null,8,d3)):((h=e.item)==null?void 0:h.rank)===4?(re(),ce("img",{key:4,src:ee(l3),alt:"1st"},null,8,p3)):Mt("",!0)]),K("span",m3,je((a=e.item)==null?void 0:a.nickName),1),K("div",g3,[K("span",v3,je((p=e.item)==null?void 0:p.score),1),K("img",{src:ee(Mc),alt:"코인"},null,8,y3)])],2)}}}),C3=Me({__name:"RankList",props:{list:{type:Object}},setup(e){return(t,n)=>(re(),ce("div",null,[(re(!0),ce(Be,null,po(e.list,r=>(re(),It(x3,{item:r,key:r==null?void 0:r.rank},null,8,["item"]))),128))]))}}),A3=async e=>(await eu.get("/rank",{params:e})).data,b3=()=>{const e=Date.now();return af({queryKey:["rank"],queryFn:({pageParam:t})=>A3({pageNumber:t,dateTime:e}),initialPageParam:0,getNextPageParam:t=>t.nextPageNumber})},w3="data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_694_3918)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.5%2044C29.6717%2044%2034.6316%2041.9455%2038.2886%2038.2886C41.9455%2034.6316%2044%2029.6717%2044%2024.5C44%2019.3283%2041.9455%2014.3684%2038.2886%2010.7114C34.6316%207.05446%2029.6717%205%2024.5%205C19.3283%205%2014.3684%207.05446%2010.7114%2010.7114C7.05446%2014.3684%205%2019.3283%205%2024.5C5%2029.6717%207.05446%2034.6316%2010.7114%2038.2886C14.3684%2041.9455%2019.3283%2044%2024.5%2044ZM24.5%2048.5C30.8652%2048.5%2036.9697%2045.9714%2041.4706%2041.4706C45.9714%2036.9697%2048.5%2030.8652%2048.5%2024.5C48.5%2018.1348%2045.9714%2012.0303%2041.4706%207.52944C36.9697%203.02856%2030.8652%200.5%2024.5%200.5C18.1348%200.5%2012.0303%203.02856%207.52944%207.52944C3.02856%2012.0303%200.5%2018.1348%200.5%2024.5C0.5%2030.8652%203.02856%2036.9697%207.52944%2041.4706C12.0303%2045.9714%2018.1348%2048.5%2024.5%2048.5ZM27.5%2033.5C27.5%2034.2957%2027.1839%2035.0587%2026.6213%2035.6213C26.0587%2036.1839%2025.2956%2036.5%2024.5%2036.5C23.7044%2036.5%2022.9413%2036.1839%2022.3787%2035.6213C21.8161%2035.0587%2021.5%2034.2957%2021.5%2033.5C21.5%2032.7043%2021.8161%2031.9413%2022.3787%2031.3787C22.9413%2030.8161%2023.7044%2030.5%2024.5%2030.5C25.2956%2030.5%2026.0587%2030.8161%2026.6213%2031.3787C27.1839%2031.9413%2027.5%2032.7043%2027.5%2033.5ZM26.75%2014.75C26.75%2014.1533%2026.5129%2013.581%2026.091%2013.159C25.669%2012.7371%2025.0967%2012.5%2024.5%2012.5C23.9033%2012.5%2023.331%2012.7371%2022.909%2013.159C22.4871%2013.581%2022.25%2014.1533%2022.25%2014.75V25.25C22.25%2025.8467%2022.4871%2026.419%2022.909%2026.841C23.331%2027.2629%2023.9033%2027.5%2024.5%2027.5C25.0967%2027.5%2025.669%2027.2629%2026.091%2026.841C26.5129%2026.419%2026.75%2025.8467%2026.75%2025.25V14.75Z'%20fill='%23489B6D'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_694_3918'%3e%3crect%20width='48'%20height='48'%20fill='white'%20transform='translate(0.5%200.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",S3={},E3={class:"loader"};function R3(e,t){return re(),ce("span",E3)}const P3=cs(S3,[["render",R3],["__scopeId","data-v-f80639eb"]]),O3={class:"fixed w-full flex flex-col items-center bg-light-green z-10"},k3=["src"],T3={key:0,class:"text-body-b mt-6 mb-4 text-dark-green"},F3={key:0,class:"w-full h-full flex flex-col items-center justify-center text-dark-green"},M3=["src"],B3=K("span",{class:"text-body-b mb-1 mt-4"},"앗! 아직 참여한 사람이 없찌오",-1),I3=K("span",{class:"text-caption-r"},"지금 플레이해서 1등을 차지하세요!",-1),N3={key:1,class:"w-full pt-2 px-6"},U3={class:"flex flex-col items-center mb-6"},L3=["src"],D3={class:"flex items-center justify-center h-8"},H3=["src"],V3=300,j3=Me({__name:"RankPage",setup(e){const t=Hr(),{data:n,fetchNextPage:r,isFetching:i}=b3(),s=Ze(null);En(()=>{document.body.style.cssText="overflow: hidden; overscroll-behavior: none;"}),Mr(()=>{document.body.style.cssText=""});const o=Ae(()=>{var p;return n?(p=n.value)==null?void 0:p.pages.map(m=>m.rankList??[]).flat():[]}),l=Ae(()=>{var p;return(p=n.value)==null?void 0:p.pages[0].totalCount}),c=Ae(()=>{var p,m;return(m=(p=n.value)==null?void 0:p.pages[0].rankList[0])==null?void 0:m.nickName}),f=Ze(!1),u=()=>{t.back()};let d=!1;const h=()=>{if(!s.value)return;const{offsetHeight:p,scrollTop:m,scrollHeight:g}=s.value;f.value=m!==0;const y=p+m>g-V3;y&&!d&&(r(),d=!0),y||(d=!1)},a=()=>{s.value&&s.value.scrollTo({top:0,behavior:"smooth"})};return(p,m)=>{var g;return re(),ce(Be,null,[K("div",O3,[he(su,{class:"w-full"},{left:Ge(()=>[he(iu,{onClick:u})]),default:Ge(()=>[K("img",{src:ee(_p),alt:"명예의 찌오당"},null,8,k3)]),_:1}),l.value?(re(),ce("span",T3,je(l.value)+"명의 찌오가 함께했찌오 ",1)):Mt("",!0)]),K("div",{ref_key:"container",ref:s,onScroll:h,class:"h-full pt-32 overflow-y-scroll hide-scroll"},[((g=o.value)==null?void 0:g.length)===0?(re(),ce("div",F3,[K("img",{src:ee(w3),alt:"error"},null,8,M3),B3,I3])):(re(),ce("div",N3,[K("div",U3,[c.value?(re(),It(s3,{key:0,text:c.value},null,8,["text"])):Mt("",!0),K("img",{src:ee(r3),class:"mt-2",alt:"찌오"},null,8,L3)]),he(C3,{list:o.value},null,8,["list"]),K("div",D3,[ee(i)?(re(),It(P3,{key:0})):Mt("",!0)]),he(Mo)])),f.value?(re(),It(Ji,{key:2,class:"absolute right-6 bottom-6",onClick:a},{default:Ge(()=>[K("img",{src:ee(ru),alt:"위로가기",class:"rotate-90"},null,8,H3)]),_:1})):Mt("",!0)],544)],64)}}}),Q3="/assets/title-1h217AQ3.svg",W3="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2011.3335C8.18889%2011.3335%208.34733%2011.2695%208.47533%2011.1415C8.60333%2011.0135%208.66711%2010.8553%208.66667%2010.6668V8.00016C8.66667%207.81127%208.60267%207.65305%208.47467%207.5255C8.34667%207.39794%208.18844%207.33394%208%207.3335C7.81111%207.3335%207.65289%207.3975%207.52533%207.5255C7.39778%207.6535%207.33378%207.81172%207.33333%208.00016V10.6668C7.33333%2010.8557%207.39733%2011.0142%207.52533%2011.1422C7.65333%2011.2702%207.81155%2011.3339%208%2011.3335ZM8%206.00016C8.18889%206.00016%208.34733%205.93616%208.47533%205.80816C8.60333%205.68016%208.66711%205.52194%208.66667%205.3335C8.66667%205.14461%208.60267%204.98639%208.47467%204.85883C8.34667%204.73127%208.18844%204.66727%208%204.66683C7.81111%204.66683%207.65289%204.73083%207.52533%204.85883C7.39778%204.98683%207.33378%205.14505%207.33333%205.3335C7.33333%205.52239%207.39733%205.68083%207.52533%205.80883C7.65333%205.93683%207.81155%206.00061%208%206.00016ZM8%2014.6668C7.07778%2014.6668%206.21111%2014.4917%205.4%2014.1415C4.58889%2013.7913%203.88333%2013.3164%203.28333%2012.7168C2.68333%2012.1168%202.20844%2011.4113%201.85867%2010.6002C1.50889%209.78905%201.33378%208.92239%201.33333%208.00016C1.33333%207.07794%201.50844%206.21127%201.85867%205.40016C2.20889%204.58905%202.68378%203.8835%203.28333%203.2835C3.88333%202.6835%204.58889%202.20861%205.4%201.85883C6.21111%201.50905%207.07778%201.33394%208%201.3335C8.92222%201.3335%209.78889%201.50861%2010.6%201.85883C11.4111%202.20905%2012.1167%202.68394%2012.7167%203.2835C13.3167%203.8835%2013.7918%204.58905%2014.142%205.40016C14.4922%206.21127%2014.6671%207.07794%2014.6667%208.00016C14.6667%208.92239%2014.4916%209.78905%2014.1413%2010.6002C13.7911%2011.4113%2013.3162%2012.1168%2012.7167%2012.7168C12.1167%2013.3168%2011.4111%2013.7919%2010.6%2014.1422C9.78889%2014.4924%208.92222%2014.6673%208%2014.6668Z'%20fill='%23489B6D'/%3e%3c/svg%3e",J3="/assets/event-7o-96Rwf.svg",K3={class:"text-dark-green mt-6 mb-2"},q3=["src"],z3=K("h3",{class:"text-caption-b inline"},"운영 안내",-1),Y3={class:"text-caption-r text-dark-green list-disc ml-4"},Z3=Me({__name:"Notice",props:{closed:{type:Boolean,default:!1}},setup(e){const t=e,n=Ae(()=>t.closed?["현재 찌오 게임 이벤트는 종료 되었으며, 당첨자는 4월 26일 (금) 이후 찌오 인스타그램 (@zzzi_ori)에서 확인하실 수 있습니다.","찌오 게임은 언제든 자유롭게 플레이 가능하나, 실시간 랭킹은 확인하실 수 없습니다."]:["이벤트는 4월 19일 (금) 23시 59분까지 참여 가능하며, 종료 이후에도 찌오 게임을 언제든 플레이할 수 있습니다.","실시간 랭킹은 이벤트 종료와 동시에 확인이 불가합니다.","자세한 내용은 이벤트 페이지 또는 찌오 인스타그램 (@zzzi_ori)에서 확인하세요."]);return(r,i)=>(re(),ce(Be,null,[K("div",K3,[K("img",{src:ee(J3),class:"inline mr-1",alt:"beta"},null,8,q3),z3]),K("ul",Y3,[(re(!0),ce(Be,null,po(n.value,s=>(re(),ce("li",{key:s},je(s),1))),128))])],64))}}),G3="/assets/event-white-VQlzzjFH.svg",X3={key:0,class:"w-full bg-green border-y-2 border-white text-white text-body-b flex justify-center items-center gap-2 py-1.5"},_3=["src"],$3=K("span",null,"이벤트 종료까지",-1),em={key:0},tm={key:1},nm=Me({__name:"Counter",props:{target:{type:Date,default:new Date},current:{type:Date,default:new Date}},setup(e){const t=e,n=Ae(()=>t.target.getTime()-t.current.getTime()),r=Ae(()=>Math.ceil(n.value/(1e3*60*60*24))),i=Ae(()=>{const s=String(Math.floor(n.value/36e5)%24).padStart(2,"0"),o=String(Math.floor(n.value/(1e3*60))%60).padStart(2,"0"),l=String(Math.floor(n.value/1e3)%60).padStart(2,"0");return`${s}:${o}:${l}`});return(s,o)=>n.value>0?(re(),ce("div",X3,[K("img",{src:ee(G3),alt:"event"},null,8,_3),$3,r.value>1?(re(),ce("span",em,"D-"+je(r.value),1)):(re(),ce("span",tm,je(i.value),1))])):Mt("",!0)}}),sm={href:"https://www.instagram.com/zzzi_ori",target:"_blank"},rm={class:"flex flex-col flex-1 items-center px-6"},im=["src"],om=["src"],am=["src"],lm={class:"w-full flex text-caption-r text-dark-green mb-2"},cm=["src"],um=Me({__name:"DevHomePage",setup(e){const t=Hr(),n=Fo(),r=Ze(new Date),i=Ae(()=>o(r.value)),s=new Date("2024-04-19T23:59:59+09:00"),o=f=>f{const f=setInterval(()=>{r.value=new Date},1e3);return()=>clearInterval(f)});const l=()=>{t.push("/play")},c=()=>{t.push("/rank")};return(f,u)=>(re(),ce(Be,null,[K("a",sm,[he(nm,{target:ee(s),current:r.value,class:"mt-3"},null,8,["target","current"])]),K("div",rm,[K("img",{src:ee(ou),alt:"zzio game",class:"mt-6"},null,8,im),K("img",{src:ee(Q3),alt:"황금 찌오를 찾아라 beta",class:"my-3"},null,8,om),K("img",{src:ee(au),alt:"찌오 이미지",class:"mb-6"},null,8,am),K("div",lm,[K("img",{src:ee(W3),alt:"info",class:"mr-[2px]"},null,8,cm),K("span",null,je(i.value?"랭킹에 올라갈 ":"")+"닉네임을 8자 이내로 적으찌오",1)]),he(lu,{modelValue:ee(n).nickName,"onUpdate:modelValue":u[0]||(u[0]=d=>ee(n).nickName=d)},null,8,["modelValue"]),he(Ss,{onClick:l,color:"primary",disabled:!ee(n).nickName,class:"mt-2"},{default:Ge(()=>[nn("게임 시작")]),_:1},8,["disabled"]),i.value?(re(),It(Ss,{key:0,onClick:c,color:"secondary",disabled:!1,class:"mt-6"},{default:Ge(()=>[nn(" 실시간 랭킹 ")]),_:1})):Mt("",!0),he(Z3,{closed:!i.value},null,8,["closed"])]),he(Mo)],64))}}),fm=[{path:"/",component:Xp},{path:"/play",component:gp},{path:"/rank",component:j3},{path:"/dev",component:um}],hm=c1({history:Rf("/"),routes:fm}),dm=P2(),qr=S2(m1);qr.use(dm);qr.use(hm);qr.use(rf);qr.mount("#app"); +//# sourceMappingURL=index-hu_6JyrI.js.map diff --git a/assets/index-kNriiQ26.js.map b/assets/index-hu_6JyrI.js.map similarity index 55% rename from assets/index-kNriiQ26.js.map rename to assets/index-hu_6JyrI.js.map index d62855f..3bb790f 100644 --- a/assets/index-kNriiQ26.js.map +++ b/assets/index-hu_6JyrI.js.map @@ -1 +1 @@ -{"version":3,"file":"index-kNriiQ26.js","sources":["../../node_modules/.pnpm/@vue+shared@3.3.11/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/.pnpm/@vue+reactivity@3.3.11/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-core@3.3.11/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-dom@3.3.11/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/.pnpm/vue-demi@0.14.7_vue@3.3.11/node_modules/vue-demi/lib/index.mjs","../../node_modules/.pnpm/pinia@2.1.7_typescript@5.2.2_vue@3.3.11/node_modules/pinia/dist/pinia.mjs","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/useQueryClient.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/vueQueryPlugin.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/useBaseQuery.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/useInfiniteQuery.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/useMutation.js","../../node_modules/.pnpm/vue-router@4.2.5_vue@3.3.11/node_modules/vue-router/dist/vue-router.mjs","../../src/components/Layout.vue","../../src/assets/next/n1.png","../../src/assets/next/n2.png","../../src/assets/next/n3.png","../../src/assets/next/n4.png","../../src/assets/next/n5.png","../../src/assets/next/n6.png","../../src/assets/next/n7.png","../../src/assets/next/n8.png","../../src/assets/next/n9.png","../../src/assets/next/n10.png","../../src/pages/play/_components/NextBlock.vue","../../src/assets/game-over.svg","../../src/assets/replay.svg","../../src/assets/home.svg","../../src/assets/game-over-zzio.svg","../../node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs","../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.mjs","../../src/components/button/ZRoundButton.vue","../../src/assets/rank-banner.png","../../src/assets/coin-sm.svg","../../src/assets/gift-zzio.svg","../../src/assets/arrow.svg","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/bind.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/utils.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/AxiosError.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/null.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/toFormData.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/buildURL.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/defaults/transitional.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/browser/index.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/common/utils.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/index.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/defaults/index.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/transformData.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/cancel/isCancel.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/settle.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/cookies.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/buildFullPath.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/speedometer.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/adapters/xhr.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/adapters/adapters.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/mergeConfig.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/env/data.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/validator.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/Axios.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/spread.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/axios.js","../../src/requests/zaxios.ts","../../src/requests/fetch/postRank.ts","../../src/requests/use/usePostRank.ts","../../src/pages/play/_components/GameOver.vue","../../src/pages/play/_components/Ground.vue","../../src/assets/coin.svg","../../node_modules/.pnpm/matter-js@0.19.0/node_modules/matter-js/build/matter.js","../../src/assets/block/1.png","../../src/assets/block/2.png","../../src/assets/block/3.png","../../src/assets/block/4.png","../../src/assets/block/5.png","../../src/assets/block/6.png","../../src/assets/block/7.png","../../src/assets/block/8.png","../../src/assets/block/9.png","../../src/assets/block/10.png","../../src/pages/play/setting.ts","../../src/utils/create-block.ts","../../src/utils/get-block-index.ts","../../src/utils/get-dynamic-canvas-size.ts","../../src/utils/set-field.ts","../../src/hooks/use-timer.ts","../../src/hooks/use-player.ts","../../src/components/ZHeader.vue","../../src/assets/back.svg","../../src/stores/user.ts","../../src/assets/play-background.svg","../../src/pages/play/PlayPage.vue","../../src/assets/zzio-game.svg","../../src/assets/title-beta.svg","../../src/assets/illustration.svg","../../src/components/button/_assets/LeftLine.vue","../../src/components/button/_assets/RightLine.vue","../../src/components/button/ZButton.vue","../../src/assets/github-green.svg","../../src/assets/beta.svg","../../src/pages/home/_components/Notice.vue","../../src/components/ZInput.vue","../../src/utils/check-open.ts","../../src/pages/home/HomePage.vue","../../src/assets/rank.svg","../../src/assets/label-line.svg","../../src/assets/medal-zzio.svg","../../src/assets/medal1.svg","../../src/assets/medal2.svg","../../src/assets/medal3.svg","../../src/assets/medal4.svg","../../src/pages/rank/_components/Rank.vue","../../src/requests/fetch/getRank.ts","../../src/requests/use/useGetInfiniteRank.ts","../../src/assets/error.svg","../../src/components/ZLoading.vue","../../src/pages/rank/RankPage.vue","../../src/assets/title.svg","../../src/assets/info.svg","../../src/assets/event.svg","../../src/event-pages/home/_components/Notice.vue","../../src/assets/event-white.svg","../../src/event-pages/home/_components/Counter.vue","../../src/event-pages/home/DevHomePage.vue","../../src/router/index.ts","../../src/main.ts"],"sourcesContent":["function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect2) {\n const { deps } = effect2;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect2);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { effect: activeEffect, target, type, key } : void 0;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (!!(process.env.NODE_ENV !== \"production\") && activeEffect.onTrack) {\n activeEffect.onTrack(\n extend(\n {\n effect: activeEffect\n },\n debuggerEventExtraInfo\n )\n );\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { target, type, key, newValue, oldValue, oldTarget } : void 0;\n if (deps.length === 1) {\n if (deps[0]) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(deps[0], eventInfo);\n } else {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(createDep(effects), eventInfo);\n } else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect2 of effects) {\n if (effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n for (const effect2 of effects) {\n if (!effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect2, debuggerEventExtraInfo) {\n if (effect2 !== activeEffect || effect2.allowRecurse) {\n if (!!(process.env.NODE_ENV !== \"production\") && effect2.onTrigger) {\n effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n if (effect2.scheduler) {\n effect2.scheduler();\n } else {\n effect2.run();\n }\n }\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _shallow = false) {\n this._isReadonly = _isReadonly;\n this._shallow = _shallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, shallow = this._shallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(false, shallow);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!this._shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(true, shallow);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n trackEffects(ref2.dep || (ref2.dep = createDep()), {\n target: ref2,\n type: \"get\",\n key: \"value\"\n });\n } else {\n trackEffects(ref2.dep || (ref2.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref2, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(dep, {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n });\n } else {\n triggerEffects(dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst tick = /* @__PURE__ */ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = void 0;\n this._dirty = true;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n } else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(\n true\n /* computedTrigger */\n );\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return this._value = this.effect.run();\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n return toRaw(this)._get();\n }\n}\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, getCurrentScope, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, void 0];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n /* do not include inferred name to avoid breaking existing code */\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else {\n suspense.pendingId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n next(activeBranch),\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n let { anchor: anchor2 } = suspense;\n if (activeBranch) {\n anchor2 = next(activeBranch);\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor2, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n isSVG2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n isSVG,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n document.createElement(\"div\"),\n null,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n /* hydrating */\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = vnode.el = branch.el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n var _a;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n /* do not throw in dev if user provided error component */\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n isSVG,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, \"\"));\n warn(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn(`Cannot mutate \n","export default \"data:image/svg+xml,%3csvg%20width='185'%20height='37'%20viewBox='0%200%20185%2037'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M23.4694%207.95518C21.997%206.70688%2020.0195%206.41223%2018.1614%206.41223C11.8952%206.41223%207.47036%208.38623%203.72574%2013.6984C3.02871%2014.6872%202.02975%2016.0504%201.73171%2017.27C1.11513%2019.7931%202.03722%2022.9521%202.54617%2025.3562C3.01634%2027.577%203.09501%2031.3632%205.18615%2032.8137C7.4063%2034.3538%209.31842%2034.8524%2011.8984%2034.6424C16.1031%2034.3002%2021.3045%2035.0085%2023.8485%2030.9708C25.3739%2028.5499%2025.2387%2026.156%2025.2387%2023.3846'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M16.1206%2024.5332C18.6681%2024.5332%2022.1089%2024.8539%2024.46%2023.8101C25.5347%2023.3329%2026.8223%2025.5178%2027.0082%2026.2977C27.3172%2027.5941%2028.0047%2028.8553%2028.1085%2030.2027C28.1479%2030.7143%2028.4979%2032.6679%2028.8903%2032.8639'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M45.5195%2018.9062C43.713%2018.9062%2041.8658%2018.7818%2040.0681%2018.9381C36.2347%2019.2714%2033.7237%2023.2894%2033.501%2026.7963C33.281%2030.2618%2033.2558%2031.0222%2036.2426%2031.5941C38.8324%2032.09%2042.1692%2033.9881%2044.2921%2031.8651C46.9026%2029.2547%2046.954%2027.0863%2046.954%2023.6243C46.954%2022.8699%2046.954%2022.1154%2046.954%2021.3609C46.954%2020.2014%2047.8089%2021.7147%2048.1336%2022.0941C51.3013%2025.7954%2054.4514%2029.5097%2057.5698%2033.2519'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M61.6381%2020.0537C61.6381%2021.7372%2062.2023%2023.4454%2062.6423%2025.0587C63.1023%2026.7457%2063.1996%2028.3964%2063.503%2030.0956C63.5397%2030.3013%2063.9334%2032.0179%2063.9334%2030.9564C63.9334%2028.6842%2064.3213%2026.5351%2064.7303%2024.2936C65.0731%2022.4155%2065.0927%2020.4723%2066.7069%2019.2886C68.0889%2018.2751%2068.2489%2018.1957%2069.1137%2019.6552C70.4103%2021.8431%2070.9237%2024.058%2071.409%2026.5252C71.6709%2027.8565%2071.807%2029.3128%2072.1901%2030.6057C72.5145%2031.7008%2072.2413%2030.174%2072.1901%2029.7768C71.7889%2026.6677%2071.4451%2021.4418%2073.529%2018.7626C74.3927%2017.6521%2077.3345%2021.2185%2078.0559%2022.1896C79.2855%2023.8449%2079.7521%2025.9628%2080.6381%2027.8003C80.952%2028.4514%2081.4351%2029.0699%2081.4351%2029.8087'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M84.8779%2024.9314C88.411%2024.9314%2091.9289%2024.6692%2095.4618%2024.6445C97.2723%2024.6318%2099.0792%2024.5265%20100.881%2024.3575C101.722%2024.2787%20100.539%2022.6444%20100.371%2022.3651C98.1466%2018.6573%2093.4209%2016.2697%2089.3091%2018.6193C88.3747%2019.1532%2087.7471%2020.572%2087.7471%2021.6319C87.7471%2022.9352%2087.9762%2024.2014%2088.1774%2025.4893C88.2736%2026.1048%2088.1463%2028.3941%2088.9585%2028.725C91.2752%2029.6689%2093.4985%2030.7979%2096.0675%2030.9406C97.0674%2030.9961%2098.6352%2031.2531%2099.5105%2030.6696'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M128.673%201.97827C125.774%204.39382%20124.402%206.86071%20122.951%2010.4263C120.878%2015.5174%20119.486%2021.4132%20122.058%2026.5572C123.395%2029.2315%20125.527%2031.4883%20128.657%2031.2275C130.832%2031.0462%20134.234%2030.0047%20136.101%2028.8046C139.748%2026.4601%20139.862%2019.3628%20139.862%2015.7501C139.862%2012.1221%20139.322%207.54722%20136.133%205.42123'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M145.314%2017.7585C145.314%2020.0361%20146.94%2022.8141%20147.864%2024.8676C148.314%2025.8674%20148.34%2027.0432%20149.187%2026.3659C149.547%2026.0784%20149.733%2025.3173%20149.968%2024.9314C150.702%2023.7254%20151.478%2022.5438%20152.295%2021.3928C152.999%2020.4007%20153.542%2019.3307%20154.208%2018.3324'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M159.946%2022.6363C162.329%2022.7852%20167.174%2024.139%20168.538%2021.2973C170.36%2017.5004%20164.404%2016.564%20161.955%2016.9139C160.772%2017.0829%20159.925%2018.3952%20159.596%2019.4164C158.844%2021.7461%20161.08%2023.8794%20162.465%2025.5054C163.229%2026.4021%20165.738%2028.7064%20166.896%2027.8644C167.871%2027.1554%20170.837%2027.8943%20171.997%2028.0876'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M177.448%2018.0455C177.559%2019.0398%20178.226%2019.8639%20178.596%2020.7552C179.176%2022.1549%20179.17%2024.1885%20179.17%2025.7284C179.17%2026.1851%20178.941%2027.3717%20179.233%2027.7367C179.632%2028.2343%20178.845%2025.8489%20178.739%2025.3617C178.372%2023.6722%20178.375%2021.8003%20179.313%2020.3408C180.093%2019.1282%20182.021%2017.7585%20183.473%2017.7585'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='24'%20viewBox='0%200%2020%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.82205%207.21589C1.69799%205.97529%201.30287%204.89144%201.62129%203.61774C1.85076%202.69986%204.09944%202.44983%204.55541%202.35143C7.48579%201.71907%2010.5606%201.12752%2013.5662%201.02336C14.8054%200.980419%2015.3672%201.79215%2016.1375%202.6294C17.3154%203.90983%2018.1631%205.05896%2018.3303%206.81438C18.4926%208.51806%2018.4244%209.76023%2017.9751%2011.4318C17.4987%2013.2044%2016.6239%2014.5602%2015.2958%2015.8329C13.9439%2017.1285%2012.4993%2018.5086%2010.6862%2019.1222C8.43473%2019.8843%205.35043%2018.6103%203.90682%2016.8058'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.96465%2014.165C6.0624%2015.0673%205.05937%2015.8567%203.97648%2016.4583C3.5156%2016.7143%204.31379%2018.1121%204.43204%2018.5199C4.67598%2019.361%205.05164%2020.1566%205.26595%2021.0062C5.35625%2021.3641%205.41003%2021.7576%205.57481%2022.0872'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='27'%20height='28'%20viewBox='0%200%2027%2028'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.18318%207.00292C8.70656%205.2824%2012.3997%202.9563%2014.2866%202.02173C14.2866%202.02173%2014.8832%202.61948%2015.0474%202.6664C15.4959%202.79455%2016.1389%203.36089%2016.5049%203.65543C17.9568%204.824%2019.5572%205.83512%2020.7173%207.35529C21.52%208.4071%2022.5307%209.34097%2023.2519%2010.4505C23.8801%2011.417%2024.5944%2012.3271%2025.242%2013.2815C25.3369%2013.4213%2026.1835%2014.7508%2025.8026%2014.779C25.4613%2014.8043%2025.066%2014.8224%2024.7295%2014.8871C24.0748%2015.013%2023.3668%2014.8956%2022.7034%2014.9392C22.3182%2014.9645%2021.9585%2015.0673%2021.5702%2015.0673C21.3286%2015.0673%2021.3499%2015.6677%2021.3499%2015.8601C21.3499%2017.4481%2021.1337%2019.0287%2021.1337%2020.6171C21.1337%2021.7162%2020.9575%2022.8015%2020.9215%2023.9005C20.9032%2024.4588%2020.8577%2025.0037%2020.7894%2025.5582C20.7708%2025.7084%2020.7943%2026.1086%2020.6292%2026.1829C20.2391%2026.3585%2019.6908%2026.311%2019.2598%2026.311C17.7708%2026.311%2016.2655%2026.3781%2014.7871%2026.1669C12.6155%2025.8566%2010.35%2025.8786%208.1602%2025.8786C7.6708%2025.8786%207.72775%2025.6701%207.72775%2025.2299C7.72775%2023.4468%207.39509%2021.6983%206.97496%2019.9684C6.71287%2018.8892%206.57455%2017.7665%206.57455%2016.657C6.57455%2016.2185%206.56854%2015.7901%206.6306%2015.3556C6.64647%2015.2446%206.7108%2014.8953%206.6306%2014.795C6.54591%2014.6892%206.2751%2014.7126%206.17813%2014.7069C5.64321%2014.6755%205.10811%2014.6497%204.57246%2014.6349C3.72344%2014.6113%202.86447%2014.6217%202.0178%2014.5468C1.87123%2014.5338%201.63271%2014.5257%201.50526%2014.4347C1.44289%2014.3901%201.95469%2013.7833%201.99377%2013.7379C2.27258%2013.4145%202.48111%2013.0473%202.6905%2012.6768C3.86252%2010.6033%205.61401%208.77515%207.18318%207.00292Z'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__uqunmf0g__\"","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","\n\n","export default \"__VITE_ASSET__JH4Bhidu__\"","export default \"data:image/svg+xml,%3csvg%20width='19'%20height='19'%20viewBox='0%200%2019%2019'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.43059%201.02173C8.92229%201.02173%209.53439%201.02275%209.97498%201.27106C10.5034%201.27106%2012.5403%202.22615%2013.0052%202.45905C14.0392%202.97705%2015.371%203.51223%2015.9696%204.57836C16.7893%206.03845%2017.6095%207.16875%2017.9458%208.85366C18.0986%209.61892%2017.8799%2010.3522%2017.8799%2011.1196C17.8799%2012.048%2017.6975%2013.0301%2017.2212%2013.8403C16.362%2015.3016%2015.2688%2016.7749%2013.5029%2016.9496C11.889%2017.1093%2010.0937%2016.9919%208.49647%2016.7149C6.89916%2016.4379%203.35156%2016.2248%202.47261%2014.4636C2.06266%2013.6422%201.62576%2013.0587%201.34543%2012.1536C0.965334%2010.9266%200.934584%209.60991%201.08193%208.34033C1.28432%206.59645%201.69217%205.01032%203.12404%203.8377C4.23262%202.92984%205.51234%202.22705%206.78373%201.57906C7.30733%201.31219%207.83266%201.02173%208.43059%201.02173Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M7%207.12347C7.31959%207.01947%207.73803%207.03886%208.0731%207.03189C8.69347%207.01898%209.31513%207.02927%209.93567%207.02927C10.2532%207.02927%2010.5774%207.01257%2010.8947%207.02927C11.0553%207.03773%2010.9775%207.55206%2010.9591%207.6311C10.8308%208.18224%2010.3287%208.6837%209.88304%209.05456C9.17184%209.64635%208.40718%2010.2032%207.64327%2010.7397C7.46968%2010.8616%207.21317%2011.0028%207.09357%2011.1741C7.01759%2011.2828%206.99859%2011.2601%207.22807%2011.3154C7.72868%2011.436%208.2552%2011.48%208.76608%2011.5509C9.6289%2011.6704%2010.4852%2011.824%2011.348%2011.9434C11.5601%2011.9727%2011.7838%2012.0219%2012%2012.0219'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__x9F0pF87__\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17%2014L12%209L7%2014'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios, {AxiosInstance, CreateAxiosDefaults} from 'axios'\n\nconst config: CreateAxiosDefaults = {\n baseURL: 'https://3.35.245.28.nip.io'\n}\n\nexport const zaxios: AxiosInstance = axios.create(config)\n","import {zaxios} from '../zaxios.ts'\n\nexport interface PostRankParams {\n nickName: string,\n score: number\n}\n\nexport interface PostRankResult {\n userId: number\n rank: number\n count: number\n currentTime: number\n}\n\nexport const postRank = async (params: PostRankParams): Promise => {\n const response = await zaxios.post('/rank', params)\n return response.data\n}\n","import {postRank, PostRankParams} from '../fetch/postRank.ts'\nimport {useMutation} from '@tanstack/vue-query'\n\nexport const usePostRank = () => {\n return useMutation({\n mutationFn: (params: PostRankParams) => postRank(params),\n })\n}\n","\n\n","\n\n\n","export default \"data:image/svg+xml,%3csvg%20width='27'%20height='32'%20viewBox='0%200%2027%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.6751%2013.9973C22.0094%2013.0074%2021.4337%2011.9797%2020.7618%2011C18.0659%2011%2013.2394%2012.3628%2010.721%2013.3337C9.5596%2013.7815%208.51678%2014.2514%207.56378%2015.131C6.41118%2016.1949%205.7163%2017.3982%204.85279%2018.6537C4.26802%2019.504%203.6337%2020.8005%203.69252%2021.8502C3.74063%2022.7086%204.29889%2023.4778%204.39537%2024.3387C4.47243%2025.0262%204.94275%2025.7335%205.29904%2026.3075C5.41578%2026.4955%205.53843%2026.678%205.70067%2026.8273C6.11779%2027.2113%206.77047%2027.887%207.35739%2028.0163C7.77046%2028.1073%208.18879%2028.3071%208.56786%2028.4145C8.7991%2028.48%209.58367%2028.6032%209.71696%2028.7684C9.9764%2029.0899%2010.704%2028.9942%2011.0111%2029.2606C11.3322%2029.5391%2011.9475%2029.6032%2012.3499%2029.7362C13.5928%2030.1469%2014.8972%2029.97%2016.1877%2029.9131C17.9245%2029.8366%2019.9897%2029.4132%2021.6097%2028.8292C22.9624%2028.3416%2023.8858%2027.4229%2024.7725%2026.3241C25.3628%2025.5926%2025.1578%2024.8156%2025.4998%2023.9437C25.4998%2022.2917%2024.4865%2017.7774%2024.2705%2017.0279C24.1799%2016.7138%2023.8308%2016.0193%2023.6234%2015.7725C23.2005%2015.2695%2023.0384%2014.5376%2022.6751%2013.9973Z'%20fill='%23FFAF00'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M11.394%204.88757C12.0487%204.88757%2012.8637%204.88894%2013.4503%205.21956C14.1539%205.21956%2016.866%206.49125%2017.4851%206.80135C18.8619%207.49106%2020.6351%208.20366%2021.4321%209.6232C22.5235%2011.5673%2023.6156%2013.0723%2024.0634%2015.3157C24.2668%2016.3346%2023.9757%2017.311%2023.9757%2018.3328C23.9757%2019.569%2023.7328%2020.8766%2023.0986%2021.9553C21.9546%2023.901%2020.499%2025.8627%2018.1478%2026.0954C15.9988%2026.308%2013.6084%2026.1517%2011.4817%2025.7829C9.35491%2025.4141%204.63133%2025.1304%203.46101%2022.7853C2.91517%2021.6915%202.33344%2020.9146%201.96018%2019.7096C1.45409%2018.0758%201.41314%2016.3226%201.60933%2014.6322C1.87882%2012.3103%202.42186%2010.1983%204.32838%208.63702C5.80445%207.4282%207.50838%206.49245%209.20122%205.62965C9.89839%205.27432%2010.5979%204.88757%2011.394%204.88757Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M9.48914%2013.0118C9.91466%2012.8733%2010.4718%2012.8991%2010.918%2012.8898C11.744%2012.8726%2012.5717%2012.8863%2013.398%2012.8863C13.8207%2012.8863%2014.2525%2012.8641%2014.6749%2012.8863C14.8888%2012.8976%2014.7851%2013.5824%2014.7606%2013.6877C14.5898%2014.4215%2013.9213%2015.0892%2013.3279%2015.583C12.3809%2016.371%2011.3628%2017.1124%2010.3456%2017.8267C10.1145%2017.9891%209.77297%2018.1771%209.61372%2018.4051C9.51256%2018.5499%209.48725%2018.5196%209.79281%2018.5932C10.4594%2018.7538%2011.1604%2018.8125%2011.8407%2018.9068C12.9895%2019.066%2014.1296%2019.2704%2015.2784%2019.4294C15.5609%2019.4685%2015.8587%2019.5339%2016.1466%2019.5339'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.7046%2026.567C14.7046%2026.8579%2014.7319%2027.3589%2014.9399%2027.5669'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M20.3511%2025.2731C20.4794%2025.6296%2020.6433%2025.9734%2020.7628%2026.3318'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","/*!\n * matter-js 0.19.0 by @liabru\n * http://brm.io/matter-js/\n * License MIT\n * \n * The MIT License (MIT)\n * \n * Copyright (c) Liam Brummitt and contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Matter\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Matter\"] = factory();\n\telse\n\t\troot[\"Matter\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Common` module contains utility functions that are common to all modules.\n*\n* @class Common\n*/\n\nvar Common = {};\n\nmodule.exports = Common;\n\n(function() {\n\n Common._baseDelta = 1000 / 60;\n Common._nextId = 0;\n Common._seed = 0;\n Common._nowStartTime = +(new Date());\n Common._warnedOnce = {};\n Common._decomp = null;\n \n /**\n * Extends the object in the first argument using the object in the second argument.\n * @method extend\n * @param {} obj\n * @param {boolean} deep\n * @return {} obj extended\n */\n Common.extend = function(obj, deep) {\n var argsStart,\n args,\n deepClone;\n\n if (typeof deep === 'boolean') {\n argsStart = 2;\n deepClone = deep;\n } else {\n argsStart = 1;\n deepClone = true;\n }\n\n for (var i = argsStart; i < arguments.length; i++) {\n var source = arguments[i];\n\n if (source) {\n for (var prop in source) {\n if (deepClone && source[prop] && source[prop].constructor === Object) {\n if (!obj[prop] || obj[prop].constructor === Object) {\n obj[prop] = obj[prop] || {};\n Common.extend(obj[prop], deepClone, source[prop]);\n } else {\n obj[prop] = source[prop];\n }\n } else {\n obj[prop] = source[prop];\n }\n }\n }\n }\n \n return obj;\n };\n\n /**\n * Creates a new clone of the object, if deep is true references will also be cloned.\n * @method clone\n * @param {} obj\n * @param {bool} deep\n * @return {} obj cloned\n */\n Common.clone = function(obj, deep) {\n return Common.extend({}, deep, obj);\n };\n\n /**\n * Returns the list of keys for the given object.\n * @method keys\n * @param {} obj\n * @return {string[]} keys\n */\n Common.keys = function(obj) {\n if (Object.keys)\n return Object.keys(obj);\n\n // avoid hasOwnProperty for performance\n var keys = [];\n for (var key in obj)\n keys.push(key);\n return keys;\n };\n\n /**\n * Returns the list of values for the given object.\n * @method values\n * @param {} obj\n * @return {array} Array of the objects property values\n */\n Common.values = function(obj) {\n var values = [];\n \n if (Object.keys) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n \n // avoid hasOwnProperty for performance\n for (var key in obj)\n values.push(obj[key]);\n return values;\n };\n\n /**\n * Gets a value from `base` relative to the `path` string.\n * @method get\n * @param {} obj The base object\n * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n * @param {number} [begin] Path slice begin\n * @param {number} [end] Path slice end\n * @return {} The object at the given path\n */\n Common.get = function(obj, path, begin, end) {\n path = path.split('.').slice(begin, end);\n\n for (var i = 0; i < path.length; i += 1) {\n obj = obj[path[i]];\n }\n\n return obj;\n };\n\n /**\n * Sets a value on `base` relative to the given `path` string.\n * @method set\n * @param {} obj The base object\n * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n * @param {} val The value to set\n * @param {number} [begin] Path slice begin\n * @param {number} [end] Path slice end\n * @return {} Pass through `val` for chaining\n */\n Common.set = function(obj, path, val, begin, end) {\n var parts = path.split('.').slice(begin, end);\n Common.get(obj, path, 0, -1)[parts[parts.length - 1]] = val;\n return val;\n };\n\n /**\n * Shuffles the given array in-place.\n * The function uses a seeded random generator.\n * @method shuffle\n * @param {array} array\n * @return {array} array shuffled randomly\n */\n Common.shuffle = function(array) {\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Common.random() * (i + 1));\n var temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n return array;\n };\n\n /**\n * Randomly chooses a value from a list with equal probability.\n * The function uses a seeded random generator.\n * @method choose\n * @param {array} choices\n * @return {object} A random choice object from the array\n */\n Common.choose = function(choices) {\n return choices[Math.floor(Common.random() * choices.length)];\n };\n\n /**\n * Returns true if the object is a HTMLElement, otherwise false.\n * @method isElement\n * @param {object} obj\n * @return {boolean} True if the object is a HTMLElement, otherwise false\n */\n Common.isElement = function(obj) {\n if (typeof HTMLElement !== 'undefined') {\n return obj instanceof HTMLElement;\n }\n\n return !!(obj && obj.nodeType && obj.nodeName);\n };\n\n /**\n * Returns true if the object is an array.\n * @method isArray\n * @param {object} obj\n * @return {boolean} True if the object is an array, otherwise false\n */\n Common.isArray = function(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n\n /**\n * Returns true if the object is a function.\n * @method isFunction\n * @param {object} obj\n * @return {boolean} True if the object is a function, otherwise false\n */\n Common.isFunction = function(obj) {\n return typeof obj === \"function\";\n };\n\n /**\n * Returns true if the object is a plain object.\n * @method isPlainObject\n * @param {object} obj\n * @return {boolean} True if the object is a plain object, otherwise false\n */\n Common.isPlainObject = function(obj) {\n return typeof obj === 'object' && obj.constructor === Object;\n };\n\n /**\n * Returns true if the object is a string.\n * @method isString\n * @param {object} obj\n * @return {boolean} True if the object is a string, otherwise false\n */\n Common.isString = function(obj) {\n return toString.call(obj) === '[object String]';\n };\n \n /**\n * Returns the given value clamped between a minimum and maximum value.\n * @method clamp\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @return {number} The value clamped between min and max inclusive\n */\n Common.clamp = function(value, min, max) {\n if (value < min)\n return min;\n if (value > max)\n return max;\n return value;\n };\n \n /**\n * Returns the sign of the given value.\n * @method sign\n * @param {number} value\n * @return {number} -1 if negative, +1 if 0 or positive\n */\n Common.sign = function(value) {\n return value < 0 ? -1 : 1;\n };\n \n /**\n * Returns the current timestamp since the time origin (e.g. from page load).\n * The result is in milliseconds and will use high-resolution timing if available.\n * @method now\n * @return {number} the current timestamp in milliseconds\n */\n Common.now = function() {\n if (typeof window !== 'undefined' && window.performance) {\n if (window.performance.now) {\n return window.performance.now();\n } else if (window.performance.webkitNow) {\n return window.performance.webkitNow();\n }\n }\n\n if (Date.now) {\n return Date.now();\n }\n\n return (new Date()) - Common._nowStartTime;\n };\n \n /**\n * Returns a random value between a minimum and a maximum value inclusive.\n * The function uses a seeded random generator.\n * @method random\n * @param {number} min\n * @param {number} max\n * @return {number} A random number between min and max inclusive\n */\n Common.random = function(min, max) {\n min = (typeof min !== \"undefined\") ? min : 0;\n max = (typeof max !== \"undefined\") ? max : 1;\n return min + _seededRandom() * (max - min);\n };\n\n var _seededRandom = function() {\n // https://en.wikipedia.org/wiki/Linear_congruential_generator\n Common._seed = (Common._seed * 9301 + 49297) % 233280;\n return Common._seed / 233280;\n };\n\n /**\n * Converts a CSS hex colour string into an integer.\n * @method colorToNumber\n * @param {string} colorString\n * @return {number} An integer representing the CSS hex string\n */\n Common.colorToNumber = function(colorString) {\n colorString = colorString.replace('#','');\n\n if (colorString.length == 3) {\n colorString = colorString.charAt(0) + colorString.charAt(0)\n + colorString.charAt(1) + colorString.charAt(1)\n + colorString.charAt(2) + colorString.charAt(2);\n }\n\n return parseInt(colorString, 16);\n };\n\n /**\n * The console logging level to use, where each level includes all levels above and excludes the levels below.\n * The default level is 'debug' which shows all console messages. \n *\n * Possible level values are:\n * - 0 = None\n * - 1 = Debug\n * - 2 = Info\n * - 3 = Warn\n * - 4 = Error\n * @static\n * @property logLevel\n * @type {Number}\n * @default 1\n */\n Common.logLevel = 1;\n\n /**\n * Shows a `console.log` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method log\n * @param ...objs {} The objects to log.\n */\n Common.log = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 3) {\n console.log.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Shows a `console.info` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method info\n * @param ...objs {} The objects to log.\n */\n Common.info = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 2) {\n console.info.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Shows a `console.warn` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method warn\n * @param ...objs {} The objects to log.\n */\n Common.warn = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 3) {\n console.warn.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Uses `Common.warn` to log the given message one time only.\n * @method warnOnce\n * @param ...objs {} The objects to log.\n */\n Common.warnOnce = function() {\n var message = Array.prototype.slice.call(arguments).join(' ');\n\n if (!Common._warnedOnce[message]) {\n Common.warn(message);\n Common._warnedOnce[message] = true;\n }\n };\n\n /**\n * Shows a deprecated console warning when the function on the given object is called.\n * The target function will be replaced with a new function that first shows the warning\n * and then calls the original function.\n * @method deprecated\n * @param {object} obj The object or module\n * @param {string} name The property name of the function on obj\n * @param {string} warning The one-time message to show if the function is called\n */\n Common.deprecated = function(obj, prop, warning) {\n obj[prop] = Common.chain(function() {\n Common.warnOnce('🔅 deprecated 🔅', warning);\n }, obj[prop]);\n };\n\n /**\n * Returns the next unique sequential ID.\n * @method nextId\n * @return {Number} Unique sequential ID\n */\n Common.nextId = function() {\n return Common._nextId++;\n };\n\n /**\n * A cross browser compatible indexOf implementation.\n * @method indexOf\n * @param {array} haystack\n * @param {object} needle\n * @return {number} The position of needle in haystack, otherwise -1.\n */\n Common.indexOf = function(haystack, needle) {\n if (haystack.indexOf)\n return haystack.indexOf(needle);\n\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle)\n return i;\n }\n\n return -1;\n };\n\n /**\n * A cross browser compatible array map implementation.\n * @method map\n * @param {array} list\n * @param {function} func\n * @return {array} Values from list transformed by func.\n */\n Common.map = function(list, func) {\n if (list.map) {\n return list.map(func);\n }\n\n var mapped = [];\n\n for (var i = 0; i < list.length; i += 1) {\n mapped.push(func(list[i]));\n }\n\n return mapped;\n };\n\n /**\n * Takes a directed graph and returns the partially ordered set of vertices in topological order.\n * Circular dependencies are allowed.\n * @method topologicalSort\n * @param {object} graph\n * @return {array} Partially ordered set of vertices in topological order.\n */\n Common.topologicalSort = function(graph) {\n // https://github.com/mgechev/javascript-algorithms\n // Copyright (c) Minko Gechev (MIT license)\n // Modifications: tidy formatting and naming\n var result = [],\n visited = [],\n temp = [];\n\n for (var node in graph) {\n if (!visited[node] && !temp[node]) {\n Common._topologicalSort(node, visited, temp, graph, result);\n }\n }\n\n return result;\n };\n\n Common._topologicalSort = function(node, visited, temp, graph, result) {\n var neighbors = graph[node] || [];\n temp[node] = true;\n\n for (var i = 0; i < neighbors.length; i += 1) {\n var neighbor = neighbors[i];\n\n if (temp[neighbor]) {\n // skip circular dependencies\n continue;\n }\n\n if (!visited[neighbor]) {\n Common._topologicalSort(neighbor, visited, temp, graph, result);\n }\n }\n\n temp[node] = false;\n visited[node] = true;\n\n result.push(node);\n };\n\n /**\n * Takes _n_ functions as arguments and returns a new function that calls them in order.\n * The arguments applied when calling the new function will also be applied to every function passed.\n * The value of `this` refers to the last value returned in the chain that was not `undefined`.\n * Therefore if a passed function does not return a value, the previously returned value is maintained.\n * After all passed functions have been called the new function returns the last returned value (if any).\n * If any of the passed functions are a chain, then the chain will be flattened.\n * @method chain\n * @param ...funcs {function} The functions to chain.\n * @return {function} A new function that calls the passed functions in order.\n */\n Common.chain = function() {\n var funcs = [];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var func = arguments[i];\n\n if (func._chained) {\n // flatten already chained functions\n funcs.push.apply(funcs, func._chained);\n } else {\n funcs.push(func);\n }\n }\n\n var chain = function() {\n // https://github.com/GoogleChrome/devtools-docs/issues/53#issuecomment-51941358\n var lastResult,\n args = new Array(arguments.length);\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n args[i] = arguments[i];\n }\n\n for (i = 0; i < funcs.length; i += 1) {\n var result = funcs[i].apply(lastResult, args);\n\n if (typeof result !== 'undefined') {\n lastResult = result;\n }\n }\n\n return lastResult;\n };\n\n chain._chained = funcs;\n\n return chain;\n };\n\n /**\n * Chains a function to excute before the original function on the given `path` relative to `base`.\n * See also docs for `Common.chain`.\n * @method chainPathBefore\n * @param {} base The base object\n * @param {string} path The path relative to `base`\n * @param {function} func The function to chain before the original\n * @return {function} The chained function that replaced the original\n */\n Common.chainPathBefore = function(base, path, func) {\n return Common.set(base, path, Common.chain(\n func,\n Common.get(base, path)\n ));\n };\n\n /**\n * Chains a function to excute after the original function on the given `path` relative to `base`.\n * See also docs for `Common.chain`.\n * @method chainPathAfter\n * @param {} base The base object\n * @param {string} path The path relative to `base`\n * @param {function} func The function to chain after the original\n * @return {function} The chained function that replaced the original\n */\n Common.chainPathAfter = function(base, path, func) {\n return Common.set(base, path, Common.chain(\n Common.get(base, path),\n func\n ));\n };\n\n /**\n * Provide the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module to enable\n * concave vertex decomposition support when using `Bodies.fromVertices` e.g. `Common.setDecomp(require('poly-decomp'))`.\n * @method setDecomp\n * @param {} decomp The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module.\n */\n Common.setDecomp = function(decomp) {\n Common._decomp = decomp;\n };\n\n /**\n * Returns the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module provided through `Common.setDecomp`,\n * otherwise returns the global `decomp` if set.\n * @method getDecomp\n * @return {} The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module if provided.\n */\n Common.getDecomp = function() {\n // get user provided decomp if set\n var decomp = Common._decomp;\n\n try {\n // otherwise from window global\n if (!decomp && typeof window !== 'undefined') {\n decomp = window.decomp;\n }\n \n // otherwise from node global\n if (!decomp && typeof global !== 'undefined') {\n decomp = global.decomp;\n }\n } catch (e) {\n // decomp not available\n decomp = null;\n }\n\n return decomp;\n };\n})();\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Bounds` module contains methods for creating and manipulating axis-aligned bounding boxes (AABB).\n*\n* @class Bounds\n*/\n\nvar Bounds = {};\n\nmodule.exports = Bounds;\n\n(function() {\n\n /**\n * Creates a new axis-aligned bounding box (AABB) for the given vertices.\n * @method create\n * @param {vertices} vertices\n * @return {bounds} A new bounds object\n */\n Bounds.create = function(vertices) {\n var bounds = { \n min: { x: 0, y: 0 }, \n max: { x: 0, y: 0 }\n };\n\n if (vertices)\n Bounds.update(bounds, vertices);\n \n return bounds;\n };\n\n /**\n * Updates bounds using the given vertices and extends the bounds given a velocity.\n * @method update\n * @param {bounds} bounds\n * @param {vertices} vertices\n * @param {vector} velocity\n */\n Bounds.update = function(bounds, vertices, velocity) {\n bounds.min.x = Infinity;\n bounds.max.x = -Infinity;\n bounds.min.y = Infinity;\n bounds.max.y = -Infinity;\n\n for (var i = 0; i < vertices.length; i++) {\n var vertex = vertices[i];\n if (vertex.x > bounds.max.x) bounds.max.x = vertex.x;\n if (vertex.x < bounds.min.x) bounds.min.x = vertex.x;\n if (vertex.y > bounds.max.y) bounds.max.y = vertex.y;\n if (vertex.y < bounds.min.y) bounds.min.y = vertex.y;\n }\n \n if (velocity) {\n if (velocity.x > 0) {\n bounds.max.x += velocity.x;\n } else {\n bounds.min.x += velocity.x;\n }\n \n if (velocity.y > 0) {\n bounds.max.y += velocity.y;\n } else {\n bounds.min.y += velocity.y;\n }\n }\n };\n\n /**\n * Returns true if the bounds contains the given point.\n * @method contains\n * @param {bounds} bounds\n * @param {vector} point\n * @return {boolean} True if the bounds contain the point, otherwise false\n */\n Bounds.contains = function(bounds, point) {\n return point.x >= bounds.min.x && point.x <= bounds.max.x \n && point.y >= bounds.min.y && point.y <= bounds.max.y;\n };\n\n /**\n * Returns true if the two bounds intersect.\n * @method overlaps\n * @param {bounds} boundsA\n * @param {bounds} boundsB\n * @return {boolean} True if the bounds overlap, otherwise false\n */\n Bounds.overlaps = function(boundsA, boundsB) {\n return (boundsA.min.x <= boundsB.max.x && boundsA.max.x >= boundsB.min.x\n && boundsA.max.y >= boundsB.min.y && boundsA.min.y <= boundsB.max.y);\n };\n\n /**\n * Translates the bounds by the given vector.\n * @method translate\n * @param {bounds} bounds\n * @param {vector} vector\n */\n Bounds.translate = function(bounds, vector) {\n bounds.min.x += vector.x;\n bounds.max.x += vector.x;\n bounds.min.y += vector.y;\n bounds.max.y += vector.y;\n };\n\n /**\n * Shifts the bounds to the given position.\n * @method shift\n * @param {bounds} bounds\n * @param {vector} position\n */\n Bounds.shift = function(bounds, position) {\n var deltaX = bounds.max.x - bounds.min.x,\n deltaY = bounds.max.y - bounds.min.y;\n \n bounds.min.x = position.x;\n bounds.max.x = position.x + deltaX;\n bounds.min.y = position.y;\n bounds.max.y = position.y + deltaY;\n };\n \n})();\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Vector` module contains methods for creating and manipulating vectors.\n* Vectors are the basis of all the geometry related operations in the engine.\n* A `Matter.Vector` object is of the form `{ x: 0, y: 0 }`.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Vector\n*/\n\n// TODO: consider params for reusing vector objects\n\nvar Vector = {};\n\nmodule.exports = Vector;\n\n(function() {\n\n /**\n * Creates a new vector.\n * @method create\n * @param {number} x\n * @param {number} y\n * @return {vector} A new vector\n */\n Vector.create = function(x, y) {\n return { x: x || 0, y: y || 0 };\n };\n\n /**\n * Returns a new vector with `x` and `y` copied from the given `vector`.\n * @method clone\n * @param {vector} vector\n * @return {vector} A new cloned vector\n */\n Vector.clone = function(vector) {\n return { x: vector.x, y: vector.y };\n };\n\n /**\n * Returns the magnitude (length) of a vector.\n * @method magnitude\n * @param {vector} vector\n * @return {number} The magnitude of the vector\n */\n Vector.magnitude = function(vector) {\n return Math.sqrt((vector.x * vector.x) + (vector.y * vector.y));\n };\n\n /**\n * Returns the magnitude (length) of a vector (therefore saving a `sqrt` operation).\n * @method magnitudeSquared\n * @param {vector} vector\n * @return {number} The squared magnitude of the vector\n */\n Vector.magnitudeSquared = function(vector) {\n return (vector.x * vector.x) + (vector.y * vector.y);\n };\n\n /**\n * Rotates the vector about (0, 0) by specified angle.\n * @method rotate\n * @param {vector} vector\n * @param {number} angle\n * @param {vector} [output]\n * @return {vector} The vector rotated about (0, 0)\n */\n Vector.rotate = function(vector, angle, output) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n if (!output) output = {};\n var x = vector.x * cos - vector.y * sin;\n output.y = vector.x * sin + vector.y * cos;\n output.x = x;\n return output;\n };\n\n /**\n * Rotates the vector about a specified point by specified angle.\n * @method rotateAbout\n * @param {vector} vector\n * @param {number} angle\n * @param {vector} point\n * @param {vector} [output]\n * @return {vector} A new vector rotated about the point\n */\n Vector.rotateAbout = function(vector, angle, point, output) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n if (!output) output = {};\n var x = point.x + ((vector.x - point.x) * cos - (vector.y - point.y) * sin);\n output.y = point.y + ((vector.x - point.x) * sin + (vector.y - point.y) * cos);\n output.x = x;\n return output;\n };\n\n /**\n * Normalises a vector (such that its magnitude is `1`).\n * @method normalise\n * @param {vector} vector\n * @return {vector} A new vector normalised\n */\n Vector.normalise = function(vector) {\n var magnitude = Vector.magnitude(vector);\n if (magnitude === 0)\n return { x: 0, y: 0 };\n return { x: vector.x / magnitude, y: vector.y / magnitude };\n };\n\n /**\n * Returns the dot-product of two vectors.\n * @method dot\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The dot product of the two vectors\n */\n Vector.dot = function(vectorA, vectorB) {\n return (vectorA.x * vectorB.x) + (vectorA.y * vectorB.y);\n };\n\n /**\n * Returns the cross-product of two vectors.\n * @method cross\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The cross product of the two vectors\n */\n Vector.cross = function(vectorA, vectorB) {\n return (vectorA.x * vectorB.y) - (vectorA.y * vectorB.x);\n };\n\n /**\n * Returns the cross-product of three vectors.\n * @method cross3\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} vectorC\n * @return {number} The cross product of the three vectors\n */\n Vector.cross3 = function(vectorA, vectorB, vectorC) {\n return (vectorB.x - vectorA.x) * (vectorC.y - vectorA.y) - (vectorB.y - vectorA.y) * (vectorC.x - vectorA.x);\n };\n\n /**\n * Adds the two vectors.\n * @method add\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} [output]\n * @return {vector} A new vector of vectorA and vectorB added\n */\n Vector.add = function(vectorA, vectorB, output) {\n if (!output) output = {};\n output.x = vectorA.x + vectorB.x;\n output.y = vectorA.y + vectorB.y;\n return output;\n };\n\n /**\n * Subtracts the two vectors.\n * @method sub\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} [output]\n * @return {vector} A new vector of vectorA and vectorB subtracted\n */\n Vector.sub = function(vectorA, vectorB, output) {\n if (!output) output = {};\n output.x = vectorA.x - vectorB.x;\n output.y = vectorA.y - vectorB.y;\n return output;\n };\n\n /**\n * Multiplies a vector and a scalar.\n * @method mult\n * @param {vector} vector\n * @param {number} scalar\n * @return {vector} A new vector multiplied by scalar\n */\n Vector.mult = function(vector, scalar) {\n return { x: vector.x * scalar, y: vector.y * scalar };\n };\n\n /**\n * Divides a vector and a scalar.\n * @method div\n * @param {vector} vector\n * @param {number} scalar\n * @return {vector} A new vector divided by scalar\n */\n Vector.div = function(vector, scalar) {\n return { x: vector.x / scalar, y: vector.y / scalar };\n };\n\n /**\n * Returns the perpendicular vector. Set `negate` to true for the perpendicular in the opposite direction.\n * @method perp\n * @param {vector} vector\n * @param {bool} [negate=false]\n * @return {vector} The perpendicular vector\n */\n Vector.perp = function(vector, negate) {\n negate = negate === true ? -1 : 1;\n return { x: negate * -vector.y, y: negate * vector.x };\n };\n\n /**\n * Negates both components of a vector such that it points in the opposite direction.\n * @method neg\n * @param {vector} vector\n * @return {vector} The negated vector\n */\n Vector.neg = function(vector) {\n return { x: -vector.x, y: -vector.y };\n };\n\n /**\n * Returns the angle between the vector `vectorB - vectorA` and the x-axis in radians.\n * @method angle\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The angle in radians\n */\n Vector.angle = function(vectorA, vectorB) {\n return Math.atan2(vectorB.y - vectorA.y, vectorB.x - vectorA.x);\n };\n\n /**\n * Temporary vector pool (not thread-safe).\n * @property _temp\n * @type {vector[]}\n * @private\n */\n Vector._temp = [\n Vector.create(), Vector.create(), \n Vector.create(), Vector.create(), \n Vector.create(), Vector.create()\n ];\n\n})();\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Vertices` module contains methods for creating and manipulating sets of vertices.\n* A set of vertices is an array of `Matter.Vector` with additional indexing properties inserted by `Vertices.create`.\n* A `Matter.Body` maintains a set of vertices to represent the shape of the object (its convex hull).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Vertices\n*/\n\nvar Vertices = {};\n\nmodule.exports = Vertices;\n\nvar Vector = __webpack_require__(2);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new set of `Matter.Body` compatible vertices.\n * The `points` argument accepts an array of `Matter.Vector` points orientated around the origin `(0, 0)`, for example:\n *\n * [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]\n *\n * The `Vertices.create` method returns a new array of vertices, which are similar to Matter.Vector objects,\n * but with some additional references required for efficient collision detection routines.\n *\n * Vertices must be specified in clockwise order.\n *\n * Note that the `body` argument is not optional, a `Matter.Body` reference must be provided.\n *\n * @method create\n * @param {vector[]} points\n * @param {body} body\n */\n Vertices.create = function(points, body) {\n var vertices = [];\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i],\n vertex = {\n x: point.x,\n y: point.y,\n index: i,\n body: body,\n isInternal: false\n };\n\n vertices.push(vertex);\n }\n\n return vertices;\n };\n\n /**\n * Parses a string containing ordered x y pairs separated by spaces (and optionally commas), \n * into a `Matter.Vertices` object for the given `Matter.Body`.\n * For parsing SVG paths, see `Svg.pathToVertices`.\n * @method fromPath\n * @param {string} path\n * @param {body} body\n * @return {vertices} vertices\n */\n Vertices.fromPath = function(path, body) {\n var pathPattern = /L?\\s*([-\\d.e]+)[\\s,]*([-\\d.e]+)*/ig,\n points = [];\n\n path.replace(pathPattern, function(match, x, y) {\n points.push({ x: parseFloat(x), y: parseFloat(y) });\n });\n\n return Vertices.create(points, body);\n };\n\n /**\n * Returns the centre (centroid) of the set of vertices.\n * @method centre\n * @param {vertices} vertices\n * @return {vector} The centre point\n */\n Vertices.centre = function(vertices) {\n var area = Vertices.area(vertices, true),\n centre = { x: 0, y: 0 },\n cross,\n temp,\n j;\n\n for (var i = 0; i < vertices.length; i++) {\n j = (i + 1) % vertices.length;\n cross = Vector.cross(vertices[i], vertices[j]);\n temp = Vector.mult(Vector.add(vertices[i], vertices[j]), cross);\n centre = Vector.add(centre, temp);\n }\n\n return Vector.div(centre, 6 * area);\n };\n\n /**\n * Returns the average (mean) of the set of vertices.\n * @method mean\n * @param {vertices} vertices\n * @return {vector} The average point\n */\n Vertices.mean = function(vertices) {\n var average = { x: 0, y: 0 };\n\n for (var i = 0; i < vertices.length; i++) {\n average.x += vertices[i].x;\n average.y += vertices[i].y;\n }\n\n return Vector.div(average, vertices.length);\n };\n\n /**\n * Returns the area of the set of vertices.\n * @method area\n * @param {vertices} vertices\n * @param {bool} signed\n * @return {number} The area\n */\n Vertices.area = function(vertices, signed) {\n var area = 0,\n j = vertices.length - 1;\n\n for (var i = 0; i < vertices.length; i++) {\n area += (vertices[j].x - vertices[i].x) * (vertices[j].y + vertices[i].y);\n j = i;\n }\n\n if (signed)\n return area / 2;\n\n return Math.abs(area) / 2;\n };\n\n /**\n * Returns the moment of inertia (second moment of area) of the set of vertices given the total mass.\n * @method inertia\n * @param {vertices} vertices\n * @param {number} mass\n * @return {number} The polygon's moment of inertia\n */\n Vertices.inertia = function(vertices, mass) {\n var numerator = 0,\n denominator = 0,\n v = vertices,\n cross,\n j;\n\n // find the polygon's moment of inertia, using second moment of area\n // from equations at http://www.physicsforums.com/showthread.php?t=25293\n for (var n = 0; n < v.length; n++) {\n j = (n + 1) % v.length;\n cross = Math.abs(Vector.cross(v[j], v[n]));\n numerator += cross * (Vector.dot(v[j], v[j]) + Vector.dot(v[j], v[n]) + Vector.dot(v[n], v[n]));\n denominator += cross;\n }\n\n return (mass / 6) * (numerator / denominator);\n };\n\n /**\n * Translates the set of vertices in-place.\n * @method translate\n * @param {vertices} vertices\n * @param {vector} vector\n * @param {number} scalar\n */\n Vertices.translate = function(vertices, vector, scalar) {\n scalar = typeof scalar !== 'undefined' ? scalar : 1;\n\n var verticesLength = vertices.length,\n translateX = vector.x * scalar,\n translateY = vector.y * scalar,\n i;\n \n for (i = 0; i < verticesLength; i++) {\n vertices[i].x += translateX;\n vertices[i].y += translateY;\n }\n\n return vertices;\n };\n\n /**\n * Rotates the set of vertices in-place.\n * @method rotate\n * @param {vertices} vertices\n * @param {number} angle\n * @param {vector} point\n */\n Vertices.rotate = function(vertices, angle, point) {\n if (angle === 0)\n return;\n\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n pointX = point.x,\n pointY = point.y,\n verticesLength = vertices.length,\n vertex,\n dx,\n dy,\n i;\n\n for (i = 0; i < verticesLength; i++) {\n vertex = vertices[i];\n dx = vertex.x - pointX;\n dy = vertex.y - pointY;\n vertex.x = pointX + (dx * cos - dy * sin);\n vertex.y = pointY + (dx * sin + dy * cos);\n }\n\n return vertices;\n };\n\n /**\n * Returns `true` if the `point` is inside the set of `vertices`.\n * @method contains\n * @param {vertices} vertices\n * @param {vector} point\n * @return {boolean} True if the vertices contains point, otherwise false\n */\n Vertices.contains = function(vertices, point) {\n var pointX = point.x,\n pointY = point.y,\n verticesLength = vertices.length,\n vertex = vertices[verticesLength - 1],\n nextVertex;\n\n for (var i = 0; i < verticesLength; i++) {\n nextVertex = vertices[i];\n\n if ((pointX - vertex.x) * (nextVertex.y - vertex.y) \n + (pointY - vertex.y) * (vertex.x - nextVertex.x) > 0) {\n return false;\n }\n\n vertex = nextVertex;\n }\n\n return true;\n };\n\n /**\n * Scales the vertices from a point (default is centre) in-place.\n * @method scale\n * @param {vertices} vertices\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} point\n */\n Vertices.scale = function(vertices, scaleX, scaleY, point) {\n if (scaleX === 1 && scaleY === 1)\n return vertices;\n\n point = point || Vertices.centre(vertices);\n\n var vertex,\n delta;\n\n for (var i = 0; i < vertices.length; i++) {\n vertex = vertices[i];\n delta = Vector.sub(vertex, point);\n vertices[i].x = point.x + delta.x * scaleX;\n vertices[i].y = point.y + delta.y * scaleY;\n }\n\n return vertices;\n };\n\n /**\n * Chamfers a set of vertices by giving them rounded corners, returns a new set of vertices.\n * The radius parameter is a single number or an array to specify the radius for each vertex.\n * @method chamfer\n * @param {vertices} vertices\n * @param {number[]} radius\n * @param {number} quality\n * @param {number} qualityMin\n * @param {number} qualityMax\n */\n Vertices.chamfer = function(vertices, radius, quality, qualityMin, qualityMax) {\n if (typeof radius === 'number') {\n radius = [radius];\n } else {\n radius = radius || [8];\n }\n\n // quality defaults to -1, which is auto\n quality = (typeof quality !== 'undefined') ? quality : -1;\n qualityMin = qualityMin || 2;\n qualityMax = qualityMax || 14;\n\n var newVertices = [];\n\n for (var i = 0; i < vertices.length; i++) {\n var prevVertex = vertices[i - 1 >= 0 ? i - 1 : vertices.length - 1],\n vertex = vertices[i],\n nextVertex = vertices[(i + 1) % vertices.length],\n currentRadius = radius[i < radius.length ? i : radius.length - 1];\n\n if (currentRadius === 0) {\n newVertices.push(vertex);\n continue;\n }\n\n var prevNormal = Vector.normalise({ \n x: vertex.y - prevVertex.y, \n y: prevVertex.x - vertex.x\n });\n\n var nextNormal = Vector.normalise({ \n x: nextVertex.y - vertex.y, \n y: vertex.x - nextVertex.x\n });\n\n var diagonalRadius = Math.sqrt(2 * Math.pow(currentRadius, 2)),\n radiusVector = Vector.mult(Common.clone(prevNormal), currentRadius),\n midNormal = Vector.normalise(Vector.mult(Vector.add(prevNormal, nextNormal), 0.5)),\n scaledVertex = Vector.sub(vertex, Vector.mult(midNormal, diagonalRadius));\n\n var precision = quality;\n\n if (quality === -1) {\n // automatically decide precision\n precision = Math.pow(currentRadius, 0.32) * 1.75;\n }\n\n precision = Common.clamp(precision, qualityMin, qualityMax);\n\n // use an even value for precision, more likely to reduce axes by using symmetry\n if (precision % 2 === 1)\n precision += 1;\n\n var alpha = Math.acos(Vector.dot(prevNormal, nextNormal)),\n theta = alpha / precision;\n\n for (var j = 0; j < precision; j++) {\n newVertices.push(Vector.add(Vector.rotate(radiusVector, theta * j), scaledVertex));\n }\n }\n\n return newVertices;\n };\n\n /**\n * Sorts the input vertices into clockwise order in place.\n * @method clockwiseSort\n * @param {vertices} vertices\n * @return {vertices} vertices\n */\n Vertices.clockwiseSort = function(vertices) {\n var centre = Vertices.mean(vertices);\n\n vertices.sort(function(vertexA, vertexB) {\n return Vector.angle(centre, vertexA) - Vector.angle(centre, vertexB);\n });\n\n return vertices;\n };\n\n /**\n * Returns true if the vertices form a convex shape (vertices must be in clockwise order).\n * @method isConvex\n * @param {vertices} vertices\n * @return {bool} `true` if the `vertices` are convex, `false` if not (or `null` if not computable).\n */\n Vertices.isConvex = function(vertices) {\n // http://paulbourke.net/geometry/polygonmesh/\n // Copyright (c) Paul Bourke (use permitted)\n\n var flag = 0,\n n = vertices.length,\n i,\n j,\n k,\n z;\n\n if (n < 3)\n return null;\n\n for (i = 0; i < n; i++) {\n j = (i + 1) % n;\n k = (i + 2) % n;\n z = (vertices[j].x - vertices[i].x) * (vertices[k].y - vertices[j].y);\n z -= (vertices[j].y - vertices[i].y) * (vertices[k].x - vertices[j].x);\n\n if (z < 0) {\n flag |= 1;\n } else if (z > 0) {\n flag |= 2;\n }\n\n if (flag === 3) {\n return false;\n }\n }\n\n if (flag !== 0){\n return true;\n } else {\n return null;\n }\n };\n\n /**\n * Returns the convex hull of the input vertices as a new array of points.\n * @method hull\n * @param {vertices} vertices\n * @return [vertex] vertices\n */\n Vertices.hull = function(vertices) {\n // http://geomalgorithms.com/a10-_hull-1.html\n\n var upper = [],\n lower = [], \n vertex,\n i;\n\n // sort vertices on x-axis (y-axis for ties)\n vertices = vertices.slice(0);\n vertices.sort(function(vertexA, vertexB) {\n var dx = vertexA.x - vertexB.x;\n return dx !== 0 ? dx : vertexA.y - vertexB.y;\n });\n\n // build lower hull\n for (i = 0; i < vertices.length; i += 1) {\n vertex = vertices[i];\n\n while (lower.length >= 2 \n && Vector.cross3(lower[lower.length - 2], lower[lower.length - 1], vertex) <= 0) {\n lower.pop();\n }\n\n lower.push(vertex);\n }\n\n // build upper hull\n for (i = vertices.length - 1; i >= 0; i -= 1) {\n vertex = vertices[i];\n\n while (upper.length >= 2 \n && Vector.cross3(upper[upper.length - 2], upper[upper.length - 1], vertex) <= 0) {\n upper.pop();\n }\n\n upper.push(vertex);\n }\n\n // concatenation of the lower and upper hulls gives the convex hull\n // omit last points because they are repeated at the beginning of the other list\n upper.pop();\n lower.pop();\n\n return upper.concat(lower);\n };\n\n})();\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Body` module contains methods for creating and manipulating rigid bodies.\n* For creating bodies with common configurations such as rectangles, circles and other polygons see the module `Matter.Bodies`.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n\n* @class Body\n*/\n\nvar Body = {};\n\nmodule.exports = Body;\n\nvar Vertices = __webpack_require__(3);\nvar Vector = __webpack_require__(2);\nvar Sleeping = __webpack_require__(7);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\nvar Axes = __webpack_require__(11);\n\n(function() {\n\n Body._timeCorrection = true;\n Body._inertiaScale = 4;\n Body._nextCollidingGroupId = 1;\n Body._nextNonCollidingGroupId = -1;\n Body._nextCategory = 0x0001;\n Body._baseDelta = 1000 / 60;\n\n /**\n * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * Vertices must be specified in clockwise order.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} options\n * @return {body} body\n */\n Body.create = function(options) {\n var defaults = {\n id: Common.nextId(),\n type: 'body',\n label: 'Body',\n parts: [],\n plugin: {},\n angle: 0,\n vertices: Vertices.fromPath('L 0 0 L 40 0 L 40 40 L 0 40'),\n position: { x: 0, y: 0 },\n force: { x: 0, y: 0 },\n torque: 0,\n positionImpulse: { x: 0, y: 0 },\n constraintImpulse: { x: 0, y: 0, angle: 0 },\n totalContacts: 0,\n speed: 0,\n angularSpeed: 0,\n velocity: { x: 0, y: 0 },\n angularVelocity: 0,\n isSensor: false,\n isStatic: false,\n isSleeping: false,\n motion: 0,\n sleepThreshold: 60,\n density: 0.001,\n restitution: 0,\n friction: 0.1,\n frictionStatic: 0.5,\n frictionAir: 0.01,\n collisionFilter: {\n category: 0x0001,\n mask: 0xFFFFFFFF,\n group: 0\n },\n slop: 0.05,\n timeScale: 1,\n render: {\n visible: true,\n opacity: 1,\n strokeStyle: null,\n fillStyle: null,\n lineWidth: null,\n sprite: {\n xScale: 1,\n yScale: 1,\n xOffset: 0,\n yOffset: 0\n }\n },\n events: null,\n bounds: null,\n chamfer: null,\n circleRadius: 0,\n positionPrev: null,\n anglePrev: 0,\n parent: null,\n axes: null,\n area: 0,\n mass: 0,\n inertia: 0,\n deltaTime: 1000 / 60,\n _original: null\n };\n\n var body = Common.extend(defaults, options);\n\n _initProperties(body, options);\n\n return body;\n };\n\n /**\n * Returns the next unique group index for which bodies will collide.\n * If `isNonColliding` is `true`, returns the next unique group index for which bodies will _not_ collide.\n * See `body.collisionFilter` for more information.\n * @method nextGroup\n * @param {bool} [isNonColliding=false]\n * @return {Number} Unique group index\n */\n Body.nextGroup = function(isNonColliding) {\n if (isNonColliding)\n return Body._nextNonCollidingGroupId--;\n\n return Body._nextCollidingGroupId++;\n };\n\n /**\n * Returns the next unique category bitfield (starting after the initial default category `0x0001`).\n * There are 32 available. See `body.collisionFilter` for more information.\n * @method nextCategory\n * @return {Number} Unique category bitfield\n */\n Body.nextCategory = function() {\n Body._nextCategory = Body._nextCategory << 1;\n return Body._nextCategory;\n };\n\n /**\n * Initialises body properties.\n * @method _initProperties\n * @private\n * @param {body} body\n * @param {} [options]\n */\n var _initProperties = function(body, options) {\n options = options || {};\n\n // init required properties (order is important)\n Body.set(body, {\n bounds: body.bounds || Bounds.create(body.vertices),\n positionPrev: body.positionPrev || Vector.clone(body.position),\n anglePrev: body.anglePrev || body.angle,\n vertices: body.vertices,\n parts: body.parts || [body],\n isStatic: body.isStatic,\n isSleeping: body.isSleeping,\n parent: body.parent || body\n });\n\n Vertices.rotate(body.vertices, body.angle, body.position);\n Axes.rotate(body.axes, body.angle);\n Bounds.update(body.bounds, body.vertices, body.velocity);\n\n // allow options to override the automatically calculated properties\n Body.set(body, {\n axes: options.axes || body.axes,\n area: options.area || body.area,\n mass: options.mass || body.mass,\n inertia: options.inertia || body.inertia\n });\n\n // render properties\n var defaultFillStyle = (body.isStatic ? '#14151f' : Common.choose(['#f19648', '#f5d259', '#f55a3c', '#063e7b', '#ececd1'])),\n defaultStrokeStyle = body.isStatic ? '#555' : '#ccc',\n defaultLineWidth = body.isStatic && body.render.fillStyle === null ? 1 : 0;\n body.render.fillStyle = body.render.fillStyle || defaultFillStyle;\n body.render.strokeStyle = body.render.strokeStyle || defaultStrokeStyle;\n body.render.lineWidth = body.render.lineWidth || defaultLineWidth;\n body.render.sprite.xOffset += -(body.bounds.min.x - body.position.x) / (body.bounds.max.x - body.bounds.min.x);\n body.render.sprite.yOffset += -(body.bounds.min.y - body.position.y) / (body.bounds.max.y - body.bounds.min.y);\n };\n\n /**\n * Given a property and a value (or map of), sets the property(s) on the body, using the appropriate setter functions if they exist.\n * Prefer to use the actual setter functions in performance critical situations.\n * @method set\n * @param {body} body\n * @param {} settings A property name (or map of properties and values) to set on the body.\n * @param {} value The value to set if `settings` is a single property name.\n */\n Body.set = function(body, settings, value) {\n var property;\n\n if (typeof settings === 'string') {\n property = settings;\n settings = {};\n settings[property] = value;\n }\n\n for (property in settings) {\n if (!Object.prototype.hasOwnProperty.call(settings, property))\n continue;\n\n value = settings[property];\n switch (property) {\n\n case 'isStatic':\n Body.setStatic(body, value);\n break;\n case 'isSleeping':\n Sleeping.set(body, value);\n break;\n case 'mass':\n Body.setMass(body, value);\n break;\n case 'density':\n Body.setDensity(body, value);\n break;\n case 'inertia':\n Body.setInertia(body, value);\n break;\n case 'vertices':\n Body.setVertices(body, value);\n break;\n case 'position':\n Body.setPosition(body, value);\n break;\n case 'angle':\n Body.setAngle(body, value);\n break;\n case 'velocity':\n Body.setVelocity(body, value);\n break;\n case 'angularVelocity':\n Body.setAngularVelocity(body, value);\n break;\n case 'speed':\n Body.setSpeed(body, value);\n break;\n case 'angularSpeed':\n Body.setAngularSpeed(body, value);\n break;\n case 'parts':\n Body.setParts(body, value);\n break;\n case 'centre':\n Body.setCentre(body, value);\n break;\n default:\n body[property] = value;\n\n }\n }\n };\n\n /**\n * Sets the body as static, including isStatic flag and setting mass and inertia to Infinity.\n * @method setStatic\n * @param {body} body\n * @param {bool} isStatic\n */\n Body.setStatic = function(body, isStatic) {\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.isStatic = isStatic;\n\n if (isStatic) {\n part._original = {\n restitution: part.restitution,\n friction: part.friction,\n mass: part.mass,\n inertia: part.inertia,\n density: part.density,\n inverseMass: part.inverseMass,\n inverseInertia: part.inverseInertia\n };\n\n part.restitution = 0;\n part.friction = 1;\n part.mass = part.inertia = part.density = Infinity;\n part.inverseMass = part.inverseInertia = 0;\n\n part.positionPrev.x = part.position.x;\n part.positionPrev.y = part.position.y;\n part.anglePrev = part.angle;\n part.angularVelocity = 0;\n part.speed = 0;\n part.angularSpeed = 0;\n part.motion = 0;\n } else if (part._original) {\n part.restitution = part._original.restitution;\n part.friction = part._original.friction;\n part.mass = part._original.mass;\n part.inertia = part._original.inertia;\n part.density = part._original.density;\n part.inverseMass = part._original.inverseMass;\n part.inverseInertia = part._original.inverseInertia;\n\n part._original = null;\n }\n }\n };\n\n /**\n * Sets the mass of the body. Inverse mass, density and inertia are automatically updated to reflect the change.\n * @method setMass\n * @param {body} body\n * @param {number} mass\n */\n Body.setMass = function(body, mass) {\n var moment = body.inertia / (body.mass / 6);\n body.inertia = moment * (mass / 6);\n body.inverseInertia = 1 / body.inertia;\n\n body.mass = mass;\n body.inverseMass = 1 / body.mass;\n body.density = body.mass / body.area;\n };\n\n /**\n * Sets the density of the body. Mass and inertia are automatically updated to reflect the change.\n * @method setDensity\n * @param {body} body\n * @param {number} density\n */\n Body.setDensity = function(body, density) {\n Body.setMass(body, density * body.area);\n body.density = density;\n };\n\n /**\n * Sets the moment of inertia of the body. This is the second moment of area in two dimensions.\n * Inverse inertia is automatically updated to reflect the change. Mass is not changed.\n * @method setInertia\n * @param {body} body\n * @param {number} inertia\n */\n Body.setInertia = function(body, inertia) {\n body.inertia = inertia;\n body.inverseInertia = 1 / body.inertia;\n };\n\n /**\n * Sets the body's vertices and updates body properties accordingly, including inertia, area and mass (with respect to `body.density`).\n * Vertices will be automatically transformed to be orientated around their centre of mass as the origin.\n * They are then automatically translated to world space based on `body.position`.\n *\n * The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array).\n * Vertices must form a convex hull. Concave vertices must be decomposed into convex parts.\n * \n * @method setVertices\n * @param {body} body\n * @param {vector[]} vertices\n */\n Body.setVertices = function(body, vertices) {\n // change vertices\n if (vertices[0].body === body) {\n body.vertices = vertices;\n } else {\n body.vertices = Vertices.create(vertices, body);\n }\n\n // update properties\n body.axes = Axes.fromVertices(body.vertices);\n body.area = Vertices.area(body.vertices);\n Body.setMass(body, body.density * body.area);\n\n // orient vertices around the centre of mass at origin (0, 0)\n var centre = Vertices.centre(body.vertices);\n Vertices.translate(body.vertices, centre, -1);\n\n // update inertia while vertices are at origin (0, 0)\n Body.setInertia(body, Body._inertiaScale * Vertices.inertia(body.vertices, body.mass));\n\n // update geometry\n Vertices.translate(body.vertices, body.position);\n Bounds.update(body.bounds, body.vertices, body.velocity);\n };\n\n /**\n * Sets the parts of the `body` and updates mass, inertia and centroid.\n * Each part will have its parent set to `body`.\n * By default the convex hull will be automatically computed and set on `body`, unless `autoHull` is set to `false.`\n * Note that this method will ensure that the first part in `body.parts` will always be the `body`.\n * @method setParts\n * @param {body} body\n * @param {body[]} parts\n * @param {bool} [autoHull=true]\n */\n Body.setParts = function(body, parts, autoHull) {\n var i;\n\n // add all the parts, ensuring that the first part is always the parent body\n parts = parts.slice(0);\n body.parts.length = 0;\n body.parts.push(body);\n body.parent = body;\n\n for (i = 0; i < parts.length; i++) {\n var part = parts[i];\n if (part !== body) {\n part.parent = body;\n body.parts.push(part);\n }\n }\n\n if (body.parts.length === 1)\n return;\n\n autoHull = typeof autoHull !== 'undefined' ? autoHull : true;\n\n // find the convex hull of all parts to set on the parent body\n if (autoHull) {\n var vertices = [];\n for (i = 0; i < parts.length; i++) {\n vertices = vertices.concat(parts[i].vertices);\n }\n\n Vertices.clockwiseSort(vertices);\n\n var hull = Vertices.hull(vertices),\n hullCentre = Vertices.centre(hull);\n\n Body.setVertices(body, hull);\n Vertices.translate(body.vertices, hullCentre);\n }\n\n // sum the properties of all compound parts of the parent body\n var total = Body._totalProperties(body);\n\n body.area = total.area;\n body.parent = body;\n body.position.x = total.centre.x;\n body.position.y = total.centre.y;\n body.positionPrev.x = total.centre.x;\n body.positionPrev.y = total.centre.y;\n\n Body.setMass(body, total.mass);\n Body.setInertia(body, total.inertia);\n Body.setPosition(body, total.centre);\n };\n\n /**\n * Set the centre of mass of the body. \n * The `centre` is a vector in world-space unless `relative` is set, in which case it is a translation.\n * The centre of mass is the point the body rotates about and can be used to simulate non-uniform density.\n * This is equal to moving `body.position` but not the `body.vertices`.\n * Invalid if the `centre` falls outside the body's convex hull.\n * @method setCentre\n * @param {body} body\n * @param {vector} centre\n * @param {bool} relative\n */\n Body.setCentre = function(body, centre, relative) {\n if (!relative) {\n body.positionPrev.x = centre.x - (body.position.x - body.positionPrev.x);\n body.positionPrev.y = centre.y - (body.position.y - body.positionPrev.y);\n body.position.x = centre.x;\n body.position.y = centre.y;\n } else {\n body.positionPrev.x += centre.x;\n body.positionPrev.y += centre.y;\n body.position.x += centre.x;\n body.position.y += centre.y;\n }\n };\n\n /**\n * Sets the position of the body. By default velocity is unchanged.\n * If `updateVelocity` is `true` then velocity is inferred from the change in position.\n * @method setPosition\n * @param {body} body\n * @param {vector} position\n * @param {boolean} [updateVelocity=false]\n */\n Body.setPosition = function(body, position, updateVelocity) {\n var delta = Vector.sub(position, body.position);\n\n if (updateVelocity) {\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n body.velocity.x = delta.x;\n body.velocity.y = delta.y;\n body.speed = Vector.magnitude(delta);\n } else {\n body.positionPrev.x += delta.x;\n body.positionPrev.y += delta.y;\n }\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.position.x += delta.x;\n part.position.y += delta.y;\n Vertices.translate(part.vertices, delta);\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n };\n\n /**\n * Sets the angle of the body. By default angular velocity is unchanged.\n * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle.\n * @method setAngle\n * @param {body} body\n * @param {number} angle\n * @param {boolean} [updateVelocity=false]\n */\n Body.setAngle = function(body, angle, updateVelocity) {\n var delta = angle - body.angle;\n \n if (updateVelocity) {\n body.anglePrev = body.angle;\n body.angularVelocity = delta;\n body.angularSpeed = Math.abs(delta);\n } else {\n body.anglePrev += delta;\n }\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.angle += delta;\n Vertices.rotate(part.vertices, delta, body.position);\n Axes.rotate(part.axes, delta);\n Bounds.update(part.bounds, part.vertices, body.velocity);\n if (i > 0) {\n Vector.rotateAbout(part.position, delta, body.position, part.position);\n }\n }\n };\n\n /**\n * Sets the current linear velocity of the body. \n * Affects body speed.\n * @method setVelocity\n * @param {body} body\n * @param {vector} velocity\n */\n Body.setVelocity = function(body, velocity) {\n var timeScale = body.deltaTime / Body._baseDelta;\n body.positionPrev.x = body.position.x - velocity.x * timeScale;\n body.positionPrev.y = body.position.y - velocity.y * timeScale;\n body.velocity.x = (body.position.x - body.positionPrev.x) / timeScale;\n body.velocity.y = (body.position.y - body.positionPrev.y) / timeScale;\n body.speed = Vector.magnitude(body.velocity);\n };\n\n /**\n * Gets the current linear velocity of the body.\n * @method getVelocity\n * @param {body} body\n * @return {vector} velocity\n */\n Body.getVelocity = function(body) {\n var timeScale = Body._baseDelta / body.deltaTime;\n\n return {\n x: (body.position.x - body.positionPrev.x) * timeScale,\n y: (body.position.y - body.positionPrev.y) * timeScale\n };\n };\n\n /**\n * Gets the current linear speed of the body. \n * Equivalent to the magnitude of its velocity.\n * @method getSpeed\n * @param {body} body\n * @return {number} speed\n */\n Body.getSpeed = function(body) {\n return Vector.magnitude(Body.getVelocity(body));\n };\n\n /**\n * Sets the current linear speed of the body. \n * Direction is maintained. Affects body velocity.\n * @method setSpeed\n * @param {body} body\n * @param {number} speed\n */\n Body.setSpeed = function(body, speed) {\n Body.setVelocity(body, Vector.mult(Vector.normalise(Body.getVelocity(body)), speed));\n };\n\n /**\n * Sets the current rotational velocity of the body. \n * Affects body angular speed.\n * @method setAngularVelocity\n * @param {body} body\n * @param {number} velocity\n */\n Body.setAngularVelocity = function(body, velocity) {\n var timeScale = body.deltaTime / Body._baseDelta;\n body.anglePrev = body.angle - velocity * timeScale;\n body.angularVelocity = (body.angle - body.anglePrev) / timeScale;\n body.angularSpeed = Math.abs(body.angularVelocity);\n };\n\n /**\n * Gets the current rotational velocity of the body.\n * @method getAngularVelocity\n * @param {body} body\n * @return {number} angular velocity\n */\n Body.getAngularVelocity = function(body) {\n return (body.angle - body.anglePrev) * Body._baseDelta / body.deltaTime;\n };\n\n /**\n * Gets the current rotational speed of the body. \n * Equivalent to the magnitude of its angular velocity.\n * @method getAngularSpeed\n * @param {body} body\n * @return {number} angular speed\n */\n Body.getAngularSpeed = function(body) {\n return Math.abs(Body.getAngularVelocity(body));\n };\n\n /**\n * Sets the current rotational speed of the body. \n * Direction is maintained. Affects body angular velocity.\n * @method setAngularSpeed\n * @param {body} body\n * @param {number} speed\n */\n Body.setAngularSpeed = function(body, speed) {\n Body.setAngularVelocity(body, Common.sign(Body.getAngularVelocity(body)) * speed);\n };\n\n /**\n * Moves a body by a given vector relative to its current position. By default velocity is unchanged.\n * If `updateVelocity` is `true` then velocity is inferred from the change in position.\n * @method translate\n * @param {body} body\n * @param {vector} translation\n * @param {boolean} [updateVelocity=false]\n */\n Body.translate = function(body, translation, updateVelocity) {\n Body.setPosition(body, Vector.add(body.position, translation), updateVelocity);\n };\n\n /**\n * Rotates a body by a given angle relative to its current angle. By default angular velocity is unchanged.\n * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle.\n * @method rotate\n * @param {body} body\n * @param {number} rotation\n * @param {vector} [point]\n * @param {boolean} [updateVelocity=false]\n */\n Body.rotate = function(body, rotation, point, updateVelocity) {\n if (!point) {\n Body.setAngle(body, body.angle + rotation, updateVelocity);\n } else {\n var cos = Math.cos(rotation),\n sin = Math.sin(rotation),\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + (dx * cos - dy * sin),\n y: point.y + (dx * sin + dy * cos)\n }, updateVelocity);\n\n Body.setAngle(body, body.angle + rotation, updateVelocity);\n }\n };\n\n /**\n * Scales the body, including updating physical properties (mass, area, axes, inertia), from a world-space point (default is body centre).\n * @method scale\n * @param {body} body\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} [point]\n */\n Body.scale = function(body, scaleX, scaleY, point) {\n var totalArea = 0,\n totalInertia = 0;\n\n point = point || body.position;\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n\n // scale vertices\n Vertices.scale(part.vertices, scaleX, scaleY, point);\n\n // update properties\n part.axes = Axes.fromVertices(part.vertices);\n part.area = Vertices.area(part.vertices);\n Body.setMass(part, body.density * part.area);\n\n // update inertia (requires vertices to be at origin)\n Vertices.translate(part.vertices, { x: -part.position.x, y: -part.position.y });\n Body.setInertia(part, Body._inertiaScale * Vertices.inertia(part.vertices, part.mass));\n Vertices.translate(part.vertices, { x: part.position.x, y: part.position.y });\n\n if (i > 0) {\n totalArea += part.area;\n totalInertia += part.inertia;\n }\n\n // scale position\n part.position.x = point.x + (part.position.x - point.x) * scaleX;\n part.position.y = point.y + (part.position.y - point.y) * scaleY;\n\n // update bounds\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n\n // handle parent body\n if (body.parts.length > 1) {\n body.area = totalArea;\n\n if (!body.isStatic) {\n Body.setMass(body, body.density * totalArea);\n Body.setInertia(body, totalInertia);\n }\n }\n\n // handle circles\n if (body.circleRadius) { \n if (scaleX === scaleY) {\n body.circleRadius *= scaleX;\n } else {\n // body is no longer a circle\n body.circleRadius = null;\n }\n }\n };\n\n /**\n * Performs an update by integrating the equations of motion on the `body`.\n * This is applied every update by `Matter.Engine` automatically.\n * @method update\n * @param {body} body\n * @param {number} [deltaTime=16.666]\n */\n Body.update = function(body, deltaTime) {\n deltaTime = (typeof deltaTime !== 'undefined' ? deltaTime : (1000 / 60)) * body.timeScale;\n\n var deltaTimeSquared = deltaTime * deltaTime,\n correction = Body._timeCorrection ? deltaTime / (body.deltaTime || deltaTime) : 1;\n\n // from the previous step\n var frictionAir = 1 - body.frictionAir * (deltaTime / Common._baseDelta),\n velocityPrevX = (body.position.x - body.positionPrev.x) * correction,\n velocityPrevY = (body.position.y - body.positionPrev.y) * correction;\n\n // update velocity with Verlet integration\n body.velocity.x = (velocityPrevX * frictionAir) + (body.force.x / body.mass) * deltaTimeSquared;\n body.velocity.y = (velocityPrevY * frictionAir) + (body.force.y / body.mass) * deltaTimeSquared;\n\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n body.position.x += body.velocity.x;\n body.position.y += body.velocity.y;\n body.deltaTime = deltaTime;\n\n // update angular velocity with Verlet integration\n body.angularVelocity = ((body.angle - body.anglePrev) * frictionAir * correction) + (body.torque / body.inertia) * deltaTimeSquared;\n body.anglePrev = body.angle;\n body.angle += body.angularVelocity;\n\n // transform the body geometry\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n\n Vertices.translate(part.vertices, body.velocity);\n \n if (i > 0) {\n part.position.x += body.velocity.x;\n part.position.y += body.velocity.y;\n }\n\n if (body.angularVelocity !== 0) {\n Vertices.rotate(part.vertices, body.angularVelocity, body.position);\n Axes.rotate(part.axes, body.angularVelocity);\n if (i > 0) {\n Vector.rotateAbout(part.position, body.angularVelocity, body.position, part.position);\n }\n }\n\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n };\n\n /**\n * Updates properties `body.velocity`, `body.speed`, `body.angularVelocity` and `body.angularSpeed` which are normalised in relation to `Body._baseDelta`.\n * @method updateVelocities\n * @param {body} body\n */\n Body.updateVelocities = function(body) {\n var timeScale = Body._baseDelta / body.deltaTime,\n bodyVelocity = body.velocity;\n\n bodyVelocity.x = (body.position.x - body.positionPrev.x) * timeScale;\n bodyVelocity.y = (body.position.y - body.positionPrev.y) * timeScale;\n body.speed = Math.sqrt((bodyVelocity.x * bodyVelocity.x) + (bodyVelocity.y * bodyVelocity.y));\n\n body.angularVelocity = (body.angle - body.anglePrev) * timeScale;\n body.angularSpeed = Math.abs(body.angularVelocity);\n };\n\n /**\n * Applies the `force` to the `body` from the force origin `position` in world-space, over a single timestep, including applying any resulting angular torque.\n * \n * Forces are useful for effects like gravity, wind or rocket thrust, but can be difficult in practice when precise control is needed. In these cases see `Body.setVelocity` and `Body.setPosition` as an alternative.\n * \n * The force from this function is only applied once for the duration of a single timestep, in other words the duration depends directly on the current engine update `delta` and the rate of calls to this function.\n * \n * Therefore to account for time, you should apply the force constantly over as many engine updates as equivalent to the intended duration.\n * \n * If all or part of the force duration is some fraction of a timestep, first multiply the force by `duration / timestep`.\n * \n * The force origin `position` in world-space must also be specified. Passing `body.position` will result in zero angular effect as the force origin would be at the centre of mass.\n * \n * The `body` will take time to accelerate under a force, the resulting effect depends on duration of the force, the body mass and other forces on the body including friction combined.\n * @method applyForce\n * @param {body} body\n * @param {vector} position The force origin in world-space. Pass `body.position` to avoid angular torque.\n * @param {vector} force\n */\n Body.applyForce = function(body, position, force) {\n var offset = { x: position.x - body.position.x, y: position.y - body.position.y };\n body.force.x += force.x;\n body.force.y += force.y;\n body.torque += offset.x * force.y - offset.y * force.x;\n };\n\n /**\n * Returns the sums of the properties of all compound parts of the parent body.\n * @method _totalProperties\n * @private\n * @param {body} body\n * @return {}\n */\n Body._totalProperties = function(body) {\n // from equations at:\n // https://ecourses.ou.edu/cgi-bin/ebook.cgi?doc=&topic=st&chap_sec=07.2&page=theory\n // http://output.to/sideway/default.asp?qno=121100087\n\n var properties = {\n mass: 0,\n area: 0,\n inertia: 0,\n centre: { x: 0, y: 0 }\n };\n\n // sum the properties of all compound parts of the parent body\n for (var i = body.parts.length === 1 ? 0 : 1; i < body.parts.length; i++) {\n var part = body.parts[i],\n mass = part.mass !== Infinity ? part.mass : 1;\n\n properties.mass += mass;\n properties.area += part.area;\n properties.inertia += part.inertia;\n properties.centre = Vector.add(properties.centre, Vector.mult(part.position, mass));\n }\n\n properties.centre = Vector.div(properties.centre, properties.mass);\n\n return properties;\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when a body starts sleeping (where `this` is the body).\n *\n * @event sleepStart\n * @this {body} The body that has started sleeping\n * @param {} event An event object\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a body ends sleeping (where `this` is the body).\n *\n * @event sleepEnd\n * @this {body} The body that has ended sleeping\n * @param {} event An event object\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Body.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * _Read only_. Set by `Body.create`.\n * \n * A `String` denoting the type of object.\n *\n * @readOnly\n * @property type\n * @type string\n * @default \"body\"\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage bodies.\n *\n * @property label\n * @type string\n * @default \"Body\"\n */\n\n /**\n * _Read only_. Use `Body.setParts` to set. \n * \n * An array of bodies that make up this body. \n * The first body in the array must always be a self reference to the current body instance.\n * All bodies in the `parts` array together form a single rigid compound body.\n * Parts are allowed to overlap, have gaps or holes or even form concave bodies.\n * Parts themselves should never be added to a `World`, only the parent body should be.\n * Use `Body.setParts` when setting parts to ensure correct updates of all properties.\n *\n * @readOnly\n * @property parts\n * @type body[]\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * _Read only_. Updated by `Body.setParts`.\n * \n * A reference to the body that this is a part of. See `body.parts`.\n * This is a self reference if the body is not a part of another body.\n *\n * @readOnly\n * @property parent\n * @type body\n */\n\n /**\n * A `Number` specifying the angle of the body, in radians.\n *\n * @property angle\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setVertices` or `Body.setParts` to set. See also `Bodies.fromVertices`.\n * \n * An array of `Vector` objects that specify the convex hull of the rigid body.\n * These should be provided about the origin `(0, 0)`. E.g.\n *\n * `[{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]`\n * \n * Vertices must always be convex, in clockwise order and must not contain any duplicate points.\n * \n * Concave vertices should be decomposed into convex `parts`, see `Bodies.fromVertices` and `Body.setParts`.\n *\n * When set the vertices are translated such that `body.position` is at the centre of mass.\n * Many other body properties are automatically calculated from these vertices when set including `density`, `area` and `inertia`.\n * \n * The module `Matter.Vertices` contains useful methods for working with vertices.\n *\n * @readOnly\n * @property vertices\n * @type vector[]\n */\n\n /**\n * _Read only_. Use `Body.setPosition` to set. \n * \n * A `Vector` that specifies the current world-space position of the body.\n * \n * @readOnly\n * @property position\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that accumulates the total force applied to the body for a single update.\n * Force is zeroed after every `Engine.update`, so constant forces should be applied for every update they are needed. See also `Body.applyForce`.\n * \n * @property force\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Number` that accumulates the total torque (turning force) applied to the body for a single update. See also `Body.applyForce`.\n * Torque is zeroed after every `Engine.update`, so constant torques should be applied for every update they are needed.\n *\n * Torques result in angular acceleration on every update, which depends on body inertia and the engine update delta.\n * \n * @property torque\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setSpeed` to set. \n * \n * See `Body.getSpeed` for details.\n * \n * Equivalent to the magnitude of `body.velocity` (always positive).\n * \n * @readOnly\n * @property speed\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setVelocity` to set. \n * \n * See `Body.getVelocity` for details.\n * \n * Equivalent to the magnitude of `body.angularVelocity` (always positive).\n * \n * @readOnly\n * @property velocity\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * _Read only_. Use `Body.setAngularSpeed` to set. \n * \n * See `Body.getAngularSpeed` for details.\n * \n * \n * @readOnly\n * @property angularSpeed\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setAngularVelocity` to set. \n * \n * See `Body.getAngularVelocity` for details.\n * \n *\n * @readOnly\n * @property angularVelocity\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setStatic` to set. \n * \n * A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed.\n *\n * @readOnly\n * @property isStatic\n * @type boolean\n * @default false\n */\n\n /**\n * A flag that indicates whether a body is a sensor. Sensor triggers collision events, but doesn't react with colliding body physically.\n *\n * @property isSensor\n * @type boolean\n * @default false\n */\n\n /**\n * _Read only_. Use `Sleeping.set` to set. \n * \n * A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken.\n *\n * @readOnly\n * @property isSleeping\n * @type boolean\n * @default false\n */\n\n /**\n * _Read only_. Calculated during engine update only when sleeping is enabled.\n * \n * A `Number` that loosely measures the amount of movement a body currently has.\n *\n * Derived from `body.speed^2 + body.angularSpeed^2`. See `Sleeping.update`.\n * \n * @readOnly\n * @property motion\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the length of time during which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine).\n * \n * @property sleepThreshold\n * @type number\n * @default 60\n */\n\n /**\n * _Read only_. Use `Body.setDensity` to set. \n * \n * A `Number` that defines the density of the body (mass per unit area).\n * \n * Mass will also be updated when set.\n *\n * @readOnly\n * @property density\n * @type number\n * @default 0.001\n */\n\n /**\n * _Read only_. Use `Body.setMass` to set. \n * \n * A `Number` that defines the mass of the body.\n * \n * Density will also be updated when set.\n * \n * @readOnly\n * @property mass\n * @type number\n */\n\n /**\n * _Read only_. Use `Body.setMass` to set. \n * \n * A `Number` that defines the inverse mass of the body (`1 / mass`).\n *\n * @readOnly\n * @property inverseMass\n * @type number\n */\n\n /**\n * _Read only_. Automatically calculated when vertices, mass or density are set or set through `Body.setInertia`.\n * \n * A `Number` that defines the moment of inertia of the body. This is the second moment of area in two dimensions.\n * \n * Can be manually set to `Infinity` to prevent rotation of the body. See `Body.setInertia`.\n * \n * @readOnly\n * @property inertia\n * @type number\n */\n\n /**\n * _Read only_. Automatically calculated when vertices, mass or density are set or calculated by `Body.setInertia`.\n * \n * A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`).\n * \n * @readOnly\n * @property inverseInertia\n * @type number\n */\n\n /**\n * A `Number` that defines the restitution (elasticity) of the body. The value is always positive and is in the range `(0, 1)`.\n * A value of `0` means collisions may be perfectly inelastic and no bouncing may occur. \n * A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy.\n * Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula:\n *\n * `Math.max(bodyA.restitution, bodyB.restitution)`\n *\n * @property restitution\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the friction of the body. The value is always positive and is in the range `(0, 1)`.\n * A value of `0` means that the body may slide indefinitely.\n * A value of `1` means the body may come to a stop almost instantly after a force is applied.\n *\n * The effects of the value may be non-linear. \n * High values may be unstable depending on the body.\n * The engine uses a Coulomb friction model including static and kinetic friction.\n * Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula:\n *\n * `Math.min(bodyA.friction, bodyB.friction)`\n *\n * @property friction\n * @type number\n * @default 0.1\n */\n\n /**\n * A `Number` that defines the static friction of the body (in the Coulomb friction model). \n * A value of `0` means the body will never 'stick' when it is nearly stationary and only dynamic `friction` is used.\n * The higher the value (e.g. `10`), the more force it will take to initially get the body moving when nearly stationary.\n * This value is multiplied with the `friction` property to make it easier to change `friction` and maintain an appropriate amount of static friction.\n *\n * @property frictionStatic\n * @type number\n * @default 0.5\n */\n\n /**\n * A `Number` that defines the air friction of the body (air resistance). \n * A value of `0` means the body will never slow as it moves through space.\n * The higher the value, the faster a body slows when moving through space.\n * The effects of the value are non-linear. \n *\n * @property frictionAir\n * @type number\n * @default 0.01\n */\n\n /**\n * An `Object` that specifies the collision filtering properties of this body.\n *\n * Collisions between two bodies will obey the following rules:\n * - If the two bodies have the same non-zero value of `collisionFilter.group`,\n * they will always collide if the value is positive, and they will never collide\n * if the value is negative.\n * - If the two bodies have different values of `collisionFilter.group` or if one\n * (or both) of the bodies has a value of 0, then the category/mask rules apply as follows:\n *\n * Each body belongs to a collision category, given by `collisionFilter.category`. This\n * value is used as a bit field and the category should have only one bit set, meaning that\n * the value of this property is a power of two in the range [1, 2^31]. Thus, there are 32\n * different collision categories available.\n *\n * Each body also defines a collision bitmask, given by `collisionFilter.mask` which specifies\n * the categories it collides with (the value is the bitwise AND value of all these categories).\n *\n * Using the category/mask rules, two bodies `A` and `B` collide if each includes the other's\n * category in its mask, i.e. `(categoryA & maskB) !== 0` and `(categoryB & maskA) !== 0`\n * are both true.\n *\n * @property collisionFilter\n * @type object\n */\n\n /**\n * An Integer `Number`, that specifies the collision group this body belongs to.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.group\n * @type object\n * @default 0\n */\n\n /**\n * A bit field that specifies the collision category this body belongs to.\n * The category value should have only one bit set, for example `0x0001`.\n * This means there are up to 32 unique collision categories available.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.category\n * @type object\n * @default 1\n */\n\n /**\n * A bit mask that specifies the collision categories this body may collide with.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.mask\n * @type object\n * @default -1\n */\n\n /**\n * A `Number` that specifies a thin boundary around the body where it is allowed to slightly sink into other bodies.\n * \n * This is required for proper collision response, including friction and restitution effects.\n * \n * The default should generally suffice in most cases. You may need to decrease this value for very small bodies that are nearing the default value in scale.\n *\n * @property slop\n * @type number\n * @default 0.05\n */\n\n /**\n * A `Number` that specifies per-body time scaling.\n *\n * @property timeScale\n * @type number\n * @default 1\n */\n\n /**\n * _Read only_. Updated during engine update.\n * \n * A `Number` that records the last delta time value used to update this body.\n * Used to calculate speed and velocity.\n *\n * @readOnly\n * @property deltaTime\n * @type number\n * @default 1000 / 60\n */\n\n /**\n * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n *\n * @property render\n * @type object\n */\n\n /**\n * A flag that indicates if the body should be rendered.\n *\n * @property render.visible\n * @type boolean\n * @default true\n */\n\n /**\n * Sets the opacity to use when rendering.\n *\n * @property render.opacity\n * @type number\n * @default 1\n */\n\n /**\n * An `Object` that defines the sprite properties to use when rendering, if any.\n *\n * @property render.sprite\n * @type object\n */\n\n /**\n * An `String` that defines the path to the image to use as the sprite texture, if any.\n *\n * @property render.sprite.texture\n * @type string\n */\n \n /**\n * A `Number` that defines the scaling in the x-axis for the sprite, if any.\n *\n * @property render.sprite.xScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that defines the scaling in the y-axis for the sprite, if any.\n *\n * @property render.sprite.yScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that defines the offset in the x-axis for the sprite (normalised by texture width).\n *\n * @property render.sprite.xOffset\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the offset in the y-axis for the sprite (normalised by texture height).\n *\n * @property render.sprite.yOffset\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the line width to use when rendering the body outline (if a sprite is not defined).\n * A value of `0` means no outline will be rendered.\n *\n * @property render.lineWidth\n * @type number\n * @default 0\n */\n\n /**\n * A `String` that defines the fill style to use when rendering the body (if a sprite is not defined).\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.fillStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * A `String` that defines the stroke style to use when rendering the body outline (if a sprite is not defined).\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.strokeStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * _Read only_. Calculated automatically when vertices are set.\n * \n * An array of unique axis vectors (edge normals) used for collision detection.\n * These are automatically calculated when vertices are set.\n * They are constantly updated by `Body.update` during the simulation.\n *\n * @readOnly\n * @property axes\n * @type vector[]\n */\n \n /**\n * _Read only_. Calculated automatically when vertices are set.\n * \n * A `Number` that measures the area of the body's convex hull.\n * \n * @readOnly\n * @property area\n * @type string\n * @default \n */\n\n /**\n * A `Bounds` object that defines the AABB region for the body.\n * It is automatically calculated when vertices are set and constantly updated by `Body.update` during simulation.\n * \n * @property bounds\n * @type bounds\n */\n\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Events` module contains methods to fire and listen to events on other objects.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Events\n*/\n\nvar Events = {};\n\nmodule.exports = Events;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Subscribes a callback function to the given object's `eventName`.\n * @method on\n * @param {} object\n * @param {string} eventNames\n * @param {function} callback\n */\n Events.on = function(object, eventNames, callback) {\n var names = eventNames.split(' '),\n name;\n\n for (var i = 0; i < names.length; i++) {\n name = names[i];\n object.events = object.events || {};\n object.events[name] = object.events[name] || [];\n object.events[name].push(callback);\n }\n\n return callback;\n };\n\n /**\n * Removes the given event callback. If no callback, clears all callbacks in `eventNames`. If no `eventNames`, clears all events.\n * @method off\n * @param {} object\n * @param {string} eventNames\n * @param {function} callback\n */\n Events.off = function(object, eventNames, callback) {\n if (!eventNames) {\n object.events = {};\n return;\n }\n\n // handle Events.off(object, callback)\n if (typeof eventNames === 'function') {\n callback = eventNames;\n eventNames = Common.keys(object.events).join(' ');\n }\n\n var names = eventNames.split(' ');\n\n for (var i = 0; i < names.length; i++) {\n var callbacks = object.events[names[i]],\n newCallbacks = [];\n\n if (callback && callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n if (callbacks[j] !== callback)\n newCallbacks.push(callbacks[j]);\n }\n }\n\n object.events[names[i]] = newCallbacks;\n }\n };\n\n /**\n * Fires all the callbacks subscribed to the given object's `eventName`, in the order they subscribed, if any.\n * @method trigger\n * @param {} object\n * @param {string} eventNames\n * @param {} event\n */\n Events.trigger = function(object, eventNames, event) {\n var names,\n name,\n callbacks,\n eventClone;\n\n var events = object.events;\n \n if (events && Common.keys(events).length > 0) {\n if (!event)\n event = {};\n\n names = eventNames.split(' ');\n\n for (var i = 0; i < names.length; i++) {\n name = names[i];\n callbacks = events[name];\n\n if (callbacks) {\n eventClone = Common.clone(event, false);\n eventClone.name = name;\n eventClone.source = object;\n\n for (var j = 0; j < callbacks.length; j++) {\n callbacks[j].apply(object, [eventClone]);\n }\n }\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* A composite is a collection of `Matter.Body`, `Matter.Constraint` and other `Matter.Composite` objects.\n*\n* They are a container that can represent complex objects made of multiple parts, even if they are not physically connected.\n* A composite could contain anything from a single body all the way up to a whole world.\n* \n* When making any changes to composites, use the included functions rather than changing their properties directly.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Composite\n*/\n\nvar Composite = {};\n\nmodule.exports = Composite;\n\nvar Events = __webpack_require__(5);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\nvar Body = __webpack_require__(4);\n\n(function() {\n\n /**\n * Creates a new composite. The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properites section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} [options]\n * @return {composite} A new composite\n */\n Composite.create = function(options) {\n return Common.extend({ \n id: Common.nextId(),\n type: 'composite',\n parent: null,\n isModified: false,\n bodies: [], \n constraints: [], \n composites: [],\n label: 'Composite',\n plugin: {},\n cache: {\n allBodies: null,\n allConstraints: null,\n allComposites: null\n }\n }, options);\n };\n\n /**\n * Sets the composite's `isModified` flag. \n * If `updateParents` is true, all parents will be set (default: false).\n * If `updateChildren` is true, all children will be set (default: false).\n * @private\n * @method setModified\n * @param {composite} composite\n * @param {boolean} isModified\n * @param {boolean} [updateParents=false]\n * @param {boolean} [updateChildren=false]\n */\n Composite.setModified = function(composite, isModified, updateParents, updateChildren) {\n composite.isModified = isModified;\n\n if (isModified && composite.cache) {\n composite.cache.allBodies = null;\n composite.cache.allConstraints = null;\n composite.cache.allComposites = null;\n }\n\n if (updateParents && composite.parent) {\n Composite.setModified(composite.parent, isModified, updateParents, updateChildren);\n }\n\n if (updateChildren) {\n for (var i = 0; i < composite.composites.length; i++) {\n var childComposite = composite.composites[i];\n Composite.setModified(childComposite, isModified, updateParents, updateChildren);\n }\n }\n };\n\n /**\n * Generic single or multi-add function. Adds a single or an array of body(s), constraint(s) or composite(s) to the given composite.\n * Triggers `beforeAdd` and `afterAdd` events on the `composite`.\n * @method add\n * @param {composite} composite\n * @param {object|array} object A single or an array of body(s), constraint(s) or composite(s)\n * @return {composite} The original composite with the objects added\n */\n Composite.add = function(composite, object) {\n var objects = [].concat(object);\n\n Events.trigger(composite, 'beforeAdd', { object: object });\n\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n\n switch (obj.type) {\n\n case 'body':\n // skip adding compound parts\n if (obj.parent !== obj) {\n Common.warn('Composite.add: skipped adding a compound body part (you must add its parent instead)');\n break;\n }\n\n Composite.addBody(composite, obj);\n break;\n case 'constraint':\n Composite.addConstraint(composite, obj);\n break;\n case 'composite':\n Composite.addComposite(composite, obj);\n break;\n case 'mouseConstraint':\n Composite.addConstraint(composite, obj.constraint);\n break;\n\n }\n }\n\n Events.trigger(composite, 'afterAdd', { object: object });\n\n return composite;\n };\n\n /**\n * Generic remove function. Removes one or many body(s), constraint(s) or a composite(s) to the given composite.\n * Optionally searching its children recursively.\n * Triggers `beforeRemove` and `afterRemove` events on the `composite`.\n * @method remove\n * @param {composite} composite\n * @param {object|array} object\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the objects removed\n */\n Composite.remove = function(composite, object, deep) {\n var objects = [].concat(object);\n\n Events.trigger(composite, 'beforeRemove', { object: object });\n\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n\n switch (obj.type) {\n\n case 'body':\n Composite.removeBody(composite, obj, deep);\n break;\n case 'constraint':\n Composite.removeConstraint(composite, obj, deep);\n break;\n case 'composite':\n Composite.removeComposite(composite, obj, deep);\n break;\n case 'mouseConstraint':\n Composite.removeConstraint(composite, obj.constraint);\n break;\n\n }\n }\n\n Events.trigger(composite, 'afterRemove', { object: object });\n\n return composite;\n };\n\n /**\n * Adds a composite to the given composite.\n * @private\n * @method addComposite\n * @param {composite} compositeA\n * @param {composite} compositeB\n * @return {composite} The original compositeA with the objects from compositeB added\n */\n Composite.addComposite = function(compositeA, compositeB) {\n compositeA.composites.push(compositeB);\n compositeB.parent = compositeA;\n Composite.setModified(compositeA, true, true, false);\n return compositeA;\n };\n\n /**\n * Removes a composite from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeComposite\n * @param {composite} compositeA\n * @param {composite} compositeB\n * @param {boolean} [deep=false]\n * @return {composite} The original compositeA with the composite removed\n */\n Composite.removeComposite = function(compositeA, compositeB, deep) {\n var position = Common.indexOf(compositeA.composites, compositeB);\n if (position !== -1) {\n Composite.removeCompositeAt(compositeA, position);\n }\n\n if (deep) {\n for (var i = 0; i < compositeA.composites.length; i++){\n Composite.removeComposite(compositeA.composites[i], compositeB, true);\n }\n }\n\n return compositeA;\n };\n\n /**\n * Removes a composite from the given composite.\n * @private\n * @method removeCompositeAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the composite removed\n */\n Composite.removeCompositeAt = function(composite, position) {\n composite.composites.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Adds a body to the given composite.\n * @private\n * @method addBody\n * @param {composite} composite\n * @param {body} body\n * @return {composite} The original composite with the body added\n */\n Composite.addBody = function(composite, body) {\n composite.bodies.push(body);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes a body from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeBody\n * @param {composite} composite\n * @param {body} body\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the body removed\n */\n Composite.removeBody = function(composite, body, deep) {\n var position = Common.indexOf(composite.bodies, body);\n if (position !== -1) {\n Composite.removeBodyAt(composite, position);\n }\n\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.removeBody(composite.composites[i], body, true);\n }\n }\n\n return composite;\n };\n\n /**\n * Removes a body from the given composite.\n * @private\n * @method removeBodyAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the body removed\n */\n Composite.removeBodyAt = function(composite, position) {\n composite.bodies.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Adds a constraint to the given composite.\n * @private\n * @method addConstraint\n * @param {composite} composite\n * @param {constraint} constraint\n * @return {composite} The original composite with the constraint added\n */\n Composite.addConstraint = function(composite, constraint) {\n composite.constraints.push(constraint);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes a constraint from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeConstraint\n * @param {composite} composite\n * @param {constraint} constraint\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the constraint removed\n */\n Composite.removeConstraint = function(composite, constraint, deep) {\n var position = Common.indexOf(composite.constraints, constraint);\n if (position !== -1) {\n Composite.removeConstraintAt(composite, position);\n }\n\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.removeConstraint(composite.composites[i], constraint, true);\n }\n }\n\n return composite;\n };\n\n /**\n * Removes a body from the given composite.\n * @private\n * @method removeConstraintAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the constraint removed\n */\n Composite.removeConstraintAt = function(composite, position) {\n composite.constraints.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes all bodies, constraints and composites from the given composite.\n * Optionally clearing its children recursively.\n * @method clear\n * @param {composite} composite\n * @param {boolean} keepStatic\n * @param {boolean} [deep=false]\n */\n Composite.clear = function(composite, keepStatic, deep) {\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.clear(composite.composites[i], keepStatic, true);\n }\n }\n \n if (keepStatic) {\n composite.bodies = composite.bodies.filter(function(body) { return body.isStatic; });\n } else {\n composite.bodies.length = 0;\n }\n\n composite.constraints.length = 0;\n composite.composites.length = 0;\n\n Composite.setModified(composite, true, true, false);\n\n return composite;\n };\n\n /**\n * Returns all bodies in the given composite, including all bodies in its children, recursively.\n * @method allBodies\n * @param {composite} composite\n * @return {body[]} All the bodies\n */\n Composite.allBodies = function(composite) {\n if (composite.cache && composite.cache.allBodies) {\n return composite.cache.allBodies;\n }\n\n var bodies = [].concat(composite.bodies);\n\n for (var i = 0; i < composite.composites.length; i++)\n bodies = bodies.concat(Composite.allBodies(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allBodies = bodies;\n }\n\n return bodies;\n };\n\n /**\n * Returns all constraints in the given composite, including all constraints in its children, recursively.\n * @method allConstraints\n * @param {composite} composite\n * @return {constraint[]} All the constraints\n */\n Composite.allConstraints = function(composite) {\n if (composite.cache && composite.cache.allConstraints) {\n return composite.cache.allConstraints;\n }\n\n var constraints = [].concat(composite.constraints);\n\n for (var i = 0; i < composite.composites.length; i++)\n constraints = constraints.concat(Composite.allConstraints(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allConstraints = constraints;\n }\n\n return constraints;\n };\n\n /**\n * Returns all composites in the given composite, including all composites in its children, recursively.\n * @method allComposites\n * @param {composite} composite\n * @return {composite[]} All the composites\n */\n Composite.allComposites = function(composite) {\n if (composite.cache && composite.cache.allComposites) {\n return composite.cache.allComposites;\n }\n\n var composites = [].concat(composite.composites);\n\n for (var i = 0; i < composite.composites.length; i++)\n composites = composites.concat(Composite.allComposites(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allComposites = composites;\n }\n\n return composites;\n };\n\n /**\n * Searches the composite recursively for an object matching the type and id supplied, null if not found.\n * @method get\n * @param {composite} composite\n * @param {number} id\n * @param {string} type\n * @return {object} The requested object, if found\n */\n Composite.get = function(composite, id, type) {\n var objects,\n object;\n\n switch (type) {\n case 'body':\n objects = Composite.allBodies(composite);\n break;\n case 'constraint':\n objects = Composite.allConstraints(composite);\n break;\n case 'composite':\n objects = Composite.allComposites(composite).concat(composite);\n break;\n }\n\n if (!objects)\n return null;\n\n object = objects.filter(function(object) { \n return object.id.toString() === id.toString(); \n });\n\n return object.length === 0 ? null : object[0];\n };\n\n /**\n * Moves the given object(s) from compositeA to compositeB (equal to a remove followed by an add).\n * @method move\n * @param {compositeA} compositeA\n * @param {object[]} objects\n * @param {compositeB} compositeB\n * @return {composite} Returns compositeA\n */\n Composite.move = function(compositeA, objects, compositeB) {\n Composite.remove(compositeA, objects);\n Composite.add(compositeB, objects);\n return compositeA;\n };\n\n /**\n * Assigns new ids for all objects in the composite, recursively.\n * @method rebase\n * @param {composite} composite\n * @return {composite} Returns composite\n */\n Composite.rebase = function(composite) {\n var objects = Composite.allBodies(composite)\n .concat(Composite.allConstraints(composite))\n .concat(Composite.allComposites(composite));\n\n for (var i = 0; i < objects.length; i++) {\n objects[i].id = Common.nextId();\n }\n\n return composite;\n };\n\n /**\n * Translates all children in the composite by a given vector relative to their current positions, \n * without imparting any velocity.\n * @method translate\n * @param {composite} composite\n * @param {vector} translation\n * @param {bool} [recursive=true]\n */\n Composite.translate = function(composite, translation, recursive) {\n var bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n Body.translate(bodies[i], translation);\n }\n\n return composite;\n };\n\n /**\n * Rotates all children in the composite by a given angle about the given point, without imparting any angular velocity.\n * @method rotate\n * @param {composite} composite\n * @param {number} rotation\n * @param {vector} point\n * @param {bool} [recursive=true]\n */\n Composite.rotate = function(composite, rotation, point, recursive) {\n var cos = Math.cos(rotation),\n sin = Math.sin(rotation),\n bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + (dx * cos - dy * sin),\n y: point.y + (dx * sin + dy * cos)\n });\n\n Body.rotate(body, rotation);\n }\n\n return composite;\n };\n\n /**\n * Scales all children in the composite, including updating physical properties (mass, area, axes, inertia), from a world-space point.\n * @method scale\n * @param {composite} composite\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} point\n * @param {bool} [recursive=true]\n */\n Composite.scale = function(composite, scaleX, scaleY, point, recursive) {\n var bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + dx * scaleX,\n y: point.y + dy * scaleY\n });\n\n Body.scale(body, scaleX, scaleY);\n }\n\n return composite;\n };\n\n /**\n * Returns the union of the bounds of all of the composite's bodies.\n * @method bounds\n * @param {composite} composite The composite.\n * @returns {bounds} The composite bounds.\n */\n Composite.bounds = function(composite) {\n var bodies = Composite.allBodies(composite),\n vertices = [];\n\n for (var i = 0; i < bodies.length; i += 1) {\n var body = bodies[i];\n vertices.push(body.bounds.min, body.bounds.max);\n }\n\n return Bounds.create(vertices);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when a call to `Composite.add` is made, before objects have been added.\n *\n * @event beforeAdd\n * @param {} event An event object\n * @param {} event.object The object(s) to be added (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.add` is made, after objects have been added.\n *\n * @event afterAdd\n * @param {} event An event object\n * @param {} event.object The object(s) that have been added (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.remove` is made, before objects have been removed.\n *\n * @event beforeRemove\n * @param {} event An event object\n * @param {} event.object The object(s) to be removed (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.remove` is made, after objects have been removed.\n *\n * @event afterRemove\n * @param {} event An event object\n * @param {} event.object The object(s) that have been removed (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"composite\"\n * @readOnly\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage composites.\n *\n * @property label\n * @type string\n * @default \"Composite\"\n */\n\n /**\n * A flag that specifies whether the composite has been modified during the current step.\n * This is automatically managed when bodies, constraints or composites are added or removed.\n *\n * @property isModified\n * @type boolean\n * @default false\n */\n\n /**\n * The `Composite` that is the parent of this composite. It is automatically managed by the `Matter.Composite` methods.\n *\n * @property parent\n * @type composite\n * @default null\n */\n\n /**\n * An array of `Body` that are _direct_ children of this composite.\n * To add or remove bodies you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allBodies` method.\n *\n * @property bodies\n * @type body[]\n * @default []\n */\n\n /**\n * An array of `Constraint` that are _direct_ children of this composite.\n * To add or remove constraints you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allConstraints` method.\n *\n * @property constraints\n * @type constraint[]\n * @default []\n */\n\n /**\n * An array of `Composite` that are _direct_ children of this composite.\n * To add or remove composites you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allComposites` method.\n *\n * @property composites\n * @type composite[]\n * @default []\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * An object used for storing cached results for performance reasons.\n * This is used internally only and is automatically managed.\n *\n * @private\n * @property cache\n * @type {}\n */\n\n})();\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Sleeping` module contains methods to manage the sleeping state of bodies.\n*\n* @class Sleeping\n*/\n\nvar Sleeping = {};\n\nmodule.exports = Sleeping;\n\nvar Body = __webpack_require__(4);\nvar Events = __webpack_require__(5);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Sleeping._motionWakeThreshold = 0.18;\n Sleeping._motionSleepThreshold = 0.08;\n Sleeping._minBias = 0.9;\n\n /**\n * Puts bodies to sleep or wakes them up depending on their motion.\n * @method update\n * @param {body[]} bodies\n * @param {number} delta\n */\n Sleeping.update = function(bodies, delta) {\n var timeScale = delta / Common._baseDelta,\n motionSleepThreshold = Sleeping._motionSleepThreshold;\n \n // update bodies sleeping status\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n speed = Body.getSpeed(body),\n angularSpeed = Body.getAngularSpeed(body),\n motion = speed * speed + angularSpeed * angularSpeed;\n\n // wake up bodies if they have a force applied\n if (body.force.x !== 0 || body.force.y !== 0) {\n Sleeping.set(body, false);\n continue;\n }\n\n var minMotion = Math.min(body.motion, motion),\n maxMotion = Math.max(body.motion, motion);\n \n // biased average motion estimation between frames\n body.motion = Sleeping._minBias * minMotion + (1 - Sleeping._minBias) * maxMotion;\n\n if (body.sleepThreshold > 0 && body.motion < motionSleepThreshold) {\n body.sleepCounter += 1;\n \n if (body.sleepCounter >= body.sleepThreshold / timeScale) {\n Sleeping.set(body, true);\n }\n } else if (body.sleepCounter > 0) {\n body.sleepCounter -= 1;\n }\n }\n };\n\n /**\n * Given a set of colliding pairs, wakes the sleeping bodies involved.\n * @method afterCollisions\n * @param {pair[]} pairs\n */\n Sleeping.afterCollisions = function(pairs) {\n var motionSleepThreshold = Sleeping._motionSleepThreshold;\n\n // wake up bodies involved in collisions\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n \n // don't wake inactive pairs\n if (!pair.isActive)\n continue;\n\n var collision = pair.collision,\n bodyA = collision.bodyA.parent, \n bodyB = collision.bodyB.parent;\n \n // don't wake if at least one body is static\n if ((bodyA.isSleeping && bodyB.isSleeping) || bodyA.isStatic || bodyB.isStatic)\n continue;\n \n if (bodyA.isSleeping || bodyB.isSleeping) {\n var sleepingBody = (bodyA.isSleeping && !bodyA.isStatic) ? bodyA : bodyB,\n movingBody = sleepingBody === bodyA ? bodyB : bodyA;\n\n if (!sleepingBody.isStatic && movingBody.motion > motionSleepThreshold) {\n Sleeping.set(sleepingBody, false);\n }\n }\n }\n };\n \n /**\n * Set a body as sleeping or awake.\n * @method set\n * @param {body} body\n * @param {boolean} isSleeping\n */\n Sleeping.set = function(body, isSleeping) {\n var wasSleeping = body.isSleeping;\n\n if (isSleeping) {\n body.isSleeping = true;\n body.sleepCounter = body.sleepThreshold;\n\n body.positionImpulse.x = 0;\n body.positionImpulse.y = 0;\n\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n\n body.anglePrev = body.angle;\n body.speed = 0;\n body.angularSpeed = 0;\n body.motion = 0;\n\n if (!wasSleeping) {\n Events.trigger(body, 'sleepStart');\n }\n } else {\n body.isSleeping = false;\n body.sleepCounter = 0;\n\n if (wasSleeping) {\n Events.trigger(body, 'sleepEnd');\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Collision` module contains methods for detecting collisions between a given pair of bodies.\n*\n* For efficient detection between a list of bodies, see `Matter.Detector` and `Matter.Query`.\n*\n* See `Matter.Engine` for collision events.\n*\n* @class Collision\n*/\n\nvar Collision = {};\n\nmodule.exports = Collision;\n\nvar Vertices = __webpack_require__(3);\nvar Pair = __webpack_require__(9);\n\n(function() {\n var _supports = [];\n\n var _overlapAB = {\n overlap: 0,\n axis: null\n };\n\n var _overlapBA = {\n overlap: 0,\n axis: null\n };\n\n /**\n * Creates a new collision record.\n * @method create\n * @param {body} bodyA The first body part represented by the collision record\n * @param {body} bodyB The second body part represented by the collision record\n * @return {collision} A new collision record\n */\n Collision.create = function(bodyA, bodyB) {\n return { \n pair: null,\n collided: false,\n bodyA: bodyA,\n bodyB: bodyB,\n parentA: bodyA.parent,\n parentB: bodyB.parent,\n depth: 0,\n normal: { x: 0, y: 0 },\n tangent: { x: 0, y: 0 },\n penetration: { x: 0, y: 0 },\n supports: []\n };\n };\n\n /**\n * Detect collision between two bodies.\n * @method collides\n * @param {body} bodyA\n * @param {body} bodyB\n * @param {pairs} [pairs] Optionally reuse collision records from existing pairs.\n * @return {collision|null} A collision record if detected, otherwise null\n */\n Collision.collides = function(bodyA, bodyB, pairs) {\n Collision._overlapAxes(_overlapAB, bodyA.vertices, bodyB.vertices, bodyA.axes);\n\n if (_overlapAB.overlap <= 0) {\n return null;\n }\n\n Collision._overlapAxes(_overlapBA, bodyB.vertices, bodyA.vertices, bodyB.axes);\n\n if (_overlapBA.overlap <= 0) {\n return null;\n }\n\n // reuse collision records for gc efficiency\n var pair = pairs && pairs.table[Pair.id(bodyA, bodyB)],\n collision;\n\n if (!pair) {\n collision = Collision.create(bodyA, bodyB);\n collision.collided = true;\n collision.bodyA = bodyA.id < bodyB.id ? bodyA : bodyB;\n collision.bodyB = bodyA.id < bodyB.id ? bodyB : bodyA;\n collision.parentA = collision.bodyA.parent;\n collision.parentB = collision.bodyB.parent;\n } else {\n collision = pair.collision;\n }\n\n bodyA = collision.bodyA;\n bodyB = collision.bodyB;\n\n var minOverlap;\n\n if (_overlapAB.overlap < _overlapBA.overlap) {\n minOverlap = _overlapAB;\n } else {\n minOverlap = _overlapBA;\n }\n\n var normal = collision.normal,\n supports = collision.supports,\n minAxis = minOverlap.axis,\n minAxisX = minAxis.x,\n minAxisY = minAxis.y;\n\n // ensure normal is facing away from bodyA\n if (minAxisX * (bodyB.position.x - bodyA.position.x) + minAxisY * (bodyB.position.y - bodyA.position.y) < 0) {\n normal.x = minAxisX;\n normal.y = minAxisY;\n } else {\n normal.x = -minAxisX;\n normal.y = -minAxisY;\n }\n \n collision.tangent.x = -normal.y;\n collision.tangent.y = normal.x;\n\n collision.depth = minOverlap.overlap;\n\n collision.penetration.x = normal.x * collision.depth;\n collision.penetration.y = normal.y * collision.depth;\n\n // find support points, there is always either exactly one or two\n var supportsB = Collision._findSupports(bodyA, bodyB, normal, 1),\n supportCount = 0;\n\n // find the supports from bodyB that are inside bodyA\n if (Vertices.contains(bodyA.vertices, supportsB[0])) {\n supports[supportCount++] = supportsB[0];\n }\n\n if (Vertices.contains(bodyA.vertices, supportsB[1])) {\n supports[supportCount++] = supportsB[1];\n }\n\n // find the supports from bodyA that are inside bodyB\n if (supportCount < 2) {\n var supportsA = Collision._findSupports(bodyB, bodyA, normal, -1);\n\n if (Vertices.contains(bodyB.vertices, supportsA[0])) {\n supports[supportCount++] = supportsA[0];\n }\n\n if (supportCount < 2 && Vertices.contains(bodyB.vertices, supportsA[1])) {\n supports[supportCount++] = supportsA[1];\n }\n }\n\n // account for the edge case of overlapping but no vertex containment\n if (supportCount === 0) {\n supports[supportCount++] = supportsB[0];\n }\n\n // update supports array size\n supports.length = supportCount;\n\n return collision;\n };\n\n /**\n * Find the overlap between two sets of vertices.\n * @method _overlapAxes\n * @private\n * @param {object} result\n * @param {vertices} verticesA\n * @param {vertices} verticesB\n * @param {axes} axes\n */\n Collision._overlapAxes = function(result, verticesA, verticesB, axes) {\n var verticesALength = verticesA.length,\n verticesBLength = verticesB.length,\n verticesAX = verticesA[0].x,\n verticesAY = verticesA[0].y,\n verticesBX = verticesB[0].x,\n verticesBY = verticesB[0].y,\n axesLength = axes.length,\n overlapMin = Number.MAX_VALUE,\n overlapAxisNumber = 0,\n overlap,\n overlapAB,\n overlapBA,\n dot,\n i,\n j;\n\n for (i = 0; i < axesLength; i++) {\n var axis = axes[i],\n axisX = axis.x,\n axisY = axis.y,\n minA = verticesAX * axisX + verticesAY * axisY,\n minB = verticesBX * axisX + verticesBY * axisY,\n maxA = minA,\n maxB = minB;\n \n for (j = 1; j < verticesALength; j += 1) {\n dot = verticesA[j].x * axisX + verticesA[j].y * axisY;\n\n if (dot > maxA) { \n maxA = dot;\n } else if (dot < minA) { \n minA = dot;\n }\n }\n\n for (j = 1; j < verticesBLength; j += 1) {\n dot = verticesB[j].x * axisX + verticesB[j].y * axisY;\n\n if (dot > maxB) { \n maxB = dot;\n } else if (dot < minB) { \n minB = dot;\n }\n }\n\n overlapAB = maxA - minB;\n overlapBA = maxB - minA;\n overlap = overlapAB < overlapBA ? overlapAB : overlapBA;\n\n if (overlap < overlapMin) {\n overlapMin = overlap;\n overlapAxisNumber = i;\n\n if (overlap <= 0) {\n // can not be intersecting\n break;\n }\n } \n }\n\n result.axis = axes[overlapAxisNumber];\n result.overlap = overlapMin;\n };\n\n /**\n * Projects vertices on an axis and returns an interval.\n * @method _projectToAxis\n * @private\n * @param {} projection\n * @param {} vertices\n * @param {} axis\n */\n Collision._projectToAxis = function(projection, vertices, axis) {\n var min = vertices[0].x * axis.x + vertices[0].y * axis.y,\n max = min;\n\n for (var i = 1; i < vertices.length; i += 1) {\n var dot = vertices[i].x * axis.x + vertices[i].y * axis.y;\n\n if (dot > max) { \n max = dot; \n } else if (dot < min) { \n min = dot; \n }\n }\n\n projection.min = min;\n projection.max = max;\n };\n\n /**\n * Finds supporting vertices given two bodies along a given direction using hill-climbing.\n * @method _findSupports\n * @private\n * @param {body} bodyA\n * @param {body} bodyB\n * @param {vector} normal\n * @param {number} direction\n * @return [vector]\n */\n Collision._findSupports = function(bodyA, bodyB, normal, direction) {\n var vertices = bodyB.vertices,\n verticesLength = vertices.length,\n bodyAPositionX = bodyA.position.x,\n bodyAPositionY = bodyA.position.y,\n normalX = normal.x * direction,\n normalY = normal.y * direction,\n nearestDistance = Number.MAX_VALUE,\n vertexA,\n vertexB,\n vertexC,\n distance,\n j;\n\n // find deepest vertex relative to the axis\n for (j = 0; j < verticesLength; j += 1) {\n vertexB = vertices[j];\n distance = normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y);\n\n // convex hill-climbing\n if (distance < nearestDistance) {\n nearestDistance = distance;\n vertexA = vertexB;\n }\n }\n\n // measure next vertex\n vertexC = vertices[(verticesLength + vertexA.index - 1) % verticesLength];\n nearestDistance = normalX * (bodyAPositionX - vertexC.x) + normalY * (bodyAPositionY - vertexC.y);\n\n // compare with previous vertex\n vertexB = vertices[(vertexA.index + 1) % verticesLength];\n if (normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y) < nearestDistance) {\n _supports[0] = vertexA;\n _supports[1] = vertexB;\n\n return _supports;\n }\n\n _supports[0] = vertexA;\n _supports[1] = vertexC;\n\n return _supports;\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A reference to the pair using this collision record, if there is one.\n *\n * @property pair\n * @type {pair|null}\n * @default null\n */\n\n /**\n * A flag that indicates if the bodies were colliding when the collision was last updated.\n * \n * @property collided\n * @type boolean\n * @default false\n */\n\n /**\n * The first body part represented by the collision (see also `collision.parentA`).\n * \n * @property bodyA\n * @type body\n */\n\n /**\n * The second body part represented by the collision (see also `collision.parentB`).\n * \n * @property bodyB\n * @type body\n */\n\n /**\n * The first body represented by the collision (i.e. `collision.bodyA.parent`).\n * \n * @property parentA\n * @type body\n */\n\n /**\n * The second body represented by the collision (i.e. `collision.bodyB.parent`).\n * \n * @property parentB\n * @type body\n */\n\n /**\n * A `Number` that represents the minimum separating distance between the bodies along the collision normal.\n *\n * @readOnly\n * @property depth\n * @type number\n * @default 0\n */\n\n /**\n * A normalised `Vector` that represents the direction between the bodies that provides the minimum separating distance.\n *\n * @property normal\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A normalised `Vector` that is the tangent direction to the collision normal.\n *\n * @property tangent\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that represents the direction and depth of the collision.\n *\n * @property penetration\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * An array of body vertices that represent the support points in the collision.\n * These are the deepest vertices (along the collision normal) of each body that are contained by the other body's vertices.\n *\n * @property supports\n * @type vector[]\n * @default []\n */\n\n})();\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Pair` module contains methods for creating and manipulating collision pairs.\n*\n* @class Pair\n*/\n\nvar Pair = {};\n\nmodule.exports = Pair;\n\nvar Contact = __webpack_require__(16);\n\n(function() {\n \n /**\n * Creates a pair.\n * @method create\n * @param {collision} collision\n * @param {number} timestamp\n * @return {pair} A new pair\n */\n Pair.create = function(collision, timestamp) {\n var bodyA = collision.bodyA,\n bodyB = collision.bodyB;\n\n var pair = {\n id: Pair.id(bodyA, bodyB),\n bodyA: bodyA,\n bodyB: bodyB,\n collision: collision,\n contacts: [],\n activeContacts: [],\n separation: 0,\n isActive: true,\n confirmedActive: true,\n isSensor: bodyA.isSensor || bodyB.isSensor,\n timeCreated: timestamp,\n timeUpdated: timestamp,\n inverseMass: 0,\n friction: 0,\n frictionStatic: 0,\n restitution: 0,\n slop: 0\n };\n\n Pair.update(pair, collision, timestamp);\n\n return pair;\n };\n\n /**\n * Updates a pair given a collision.\n * @method update\n * @param {pair} pair\n * @param {collision} collision\n * @param {number} timestamp\n */\n Pair.update = function(pair, collision, timestamp) {\n var contacts = pair.contacts,\n supports = collision.supports,\n activeContacts = pair.activeContacts,\n parentA = collision.parentA,\n parentB = collision.parentB,\n parentAVerticesLength = parentA.vertices.length;\n \n pair.isActive = true;\n pair.timeUpdated = timestamp;\n pair.collision = collision;\n pair.separation = collision.depth;\n pair.inverseMass = parentA.inverseMass + parentB.inverseMass;\n pair.friction = parentA.friction < parentB.friction ? parentA.friction : parentB.friction;\n pair.frictionStatic = parentA.frictionStatic > parentB.frictionStatic ? parentA.frictionStatic : parentB.frictionStatic;\n pair.restitution = parentA.restitution > parentB.restitution ? parentA.restitution : parentB.restitution;\n pair.slop = parentA.slop > parentB.slop ? parentA.slop : parentB.slop;\n\n collision.pair = pair;\n activeContacts.length = 0;\n \n for (var i = 0; i < supports.length; i++) {\n var support = supports[i],\n contactId = support.body === parentA ? support.index : parentAVerticesLength + support.index,\n contact = contacts[contactId];\n\n if (contact) {\n activeContacts.push(contact);\n } else {\n activeContacts.push(contacts[contactId] = Contact.create(support));\n }\n }\n };\n \n /**\n * Set a pair as active or inactive.\n * @method setActive\n * @param {pair} pair\n * @param {bool} isActive\n * @param {number} timestamp\n */\n Pair.setActive = function(pair, isActive, timestamp) {\n if (isActive) {\n pair.isActive = true;\n pair.timeUpdated = timestamp;\n } else {\n pair.isActive = false;\n pair.activeContacts.length = 0;\n }\n };\n\n /**\n * Get the id for the given pair.\n * @method id\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {string} Unique pairId\n */\n Pair.id = function(bodyA, bodyB) {\n if (bodyA.id < bodyB.id) {\n return 'A' + bodyA.id + 'B' + bodyB.id;\n } else {\n return 'A' + bodyB.id + 'B' + bodyA.id;\n }\n };\n\n})();\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Constraint` module contains methods for creating and manipulating constraints.\n* Constraints are used for specifying that a fixed distance must be maintained between two bodies (or a body and a fixed world-space position).\n* The stiffness of constraints can be modified to create springs or elastic.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Constraint\n*/\n\nvar Constraint = {};\n\nmodule.exports = Constraint;\n\nvar Vertices = __webpack_require__(3);\nvar Vector = __webpack_require__(2);\nvar Sleeping = __webpack_require__(7);\nvar Bounds = __webpack_require__(1);\nvar Axes = __webpack_require__(11);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Constraint._warming = 0.4;\n Constraint._torqueDampen = 1;\n Constraint._minLength = 0.000001;\n\n /**\n * Creates a new constraint.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * To simulate a revolute constraint (or pin joint) set `length: 0` and a high `stiffness` value (e.g. `0.7` or above).\n * If the constraint is unstable, try lowering the `stiffness` value and / or increasing `engine.constraintIterations`.\n * For compound bodies, constraints must be applied to the parent body (not one of its parts).\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} options\n * @return {constraint} constraint\n */\n Constraint.create = function(options) {\n var constraint = options;\n\n // if bodies defined but no points, use body centre\n if (constraint.bodyA && !constraint.pointA)\n constraint.pointA = { x: 0, y: 0 };\n if (constraint.bodyB && !constraint.pointB)\n constraint.pointB = { x: 0, y: 0 };\n\n // calculate static length using initial world space points\n var initialPointA = constraint.bodyA ? Vector.add(constraint.bodyA.position, constraint.pointA) : constraint.pointA,\n initialPointB = constraint.bodyB ? Vector.add(constraint.bodyB.position, constraint.pointB) : constraint.pointB,\n length = Vector.magnitude(Vector.sub(initialPointA, initialPointB));\n \n constraint.length = typeof constraint.length !== 'undefined' ? constraint.length : length;\n\n // option defaults\n constraint.id = constraint.id || Common.nextId();\n constraint.label = constraint.label || 'Constraint';\n constraint.type = 'constraint';\n constraint.stiffness = constraint.stiffness || (constraint.length > 0 ? 1 : 0.7);\n constraint.damping = constraint.damping || 0;\n constraint.angularStiffness = constraint.angularStiffness || 0;\n constraint.angleA = constraint.bodyA ? constraint.bodyA.angle : constraint.angleA;\n constraint.angleB = constraint.bodyB ? constraint.bodyB.angle : constraint.angleB;\n constraint.plugin = {};\n\n // render\n var render = {\n visible: true,\n lineWidth: 2,\n strokeStyle: '#ffffff',\n type: 'line',\n anchors: true\n };\n\n if (constraint.length === 0 && constraint.stiffness > 0.1) {\n render.type = 'pin';\n render.anchors = false;\n } else if (constraint.stiffness < 0.9) {\n render.type = 'spring';\n }\n\n constraint.render = Common.extend(render, constraint.render);\n\n return constraint;\n };\n\n /**\n * Prepares for solving by constraint warming.\n * @private\n * @method preSolveAll\n * @param {body[]} bodies\n */\n Constraint.preSolveAll = function(bodies) {\n for (var i = 0; i < bodies.length; i += 1) {\n var body = bodies[i],\n impulse = body.constraintImpulse;\n\n if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) {\n continue;\n }\n\n body.position.x += impulse.x;\n body.position.y += impulse.y;\n body.angle += impulse.angle;\n }\n };\n\n /**\n * Solves all constraints in a list of collisions.\n * @private\n * @method solveAll\n * @param {constraint[]} constraints\n * @param {number} delta\n */\n Constraint.solveAll = function(constraints, delta) {\n var timeScale = Common.clamp(delta / Common._baseDelta, 0, 1);\n\n // Solve fixed constraints first.\n for (var i = 0; i < constraints.length; i += 1) {\n var constraint = constraints[i],\n fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic),\n fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic);\n\n if (fixedA || fixedB) {\n Constraint.solve(constraints[i], timeScale);\n }\n }\n\n // Solve free constraints last.\n for (i = 0; i < constraints.length; i += 1) {\n constraint = constraints[i];\n fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic);\n fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic);\n\n if (!fixedA && !fixedB) {\n Constraint.solve(constraints[i], timeScale);\n }\n }\n };\n\n /**\n * Solves a distance constraint with Gauss-Siedel method.\n * @private\n * @method solve\n * @param {constraint} constraint\n * @param {number} timeScale\n */\n Constraint.solve = function(constraint, timeScale) {\n var bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n pointA = constraint.pointA,\n pointB = constraint.pointB;\n\n if (!bodyA && !bodyB)\n return;\n\n // update reference angle\n if (bodyA && !bodyA.isStatic) {\n Vector.rotate(pointA, bodyA.angle - constraint.angleA, pointA);\n constraint.angleA = bodyA.angle;\n }\n \n // update reference angle\n if (bodyB && !bodyB.isStatic) {\n Vector.rotate(pointB, bodyB.angle - constraint.angleB, pointB);\n constraint.angleB = bodyB.angle;\n }\n\n var pointAWorld = pointA,\n pointBWorld = pointB;\n\n if (bodyA) pointAWorld = Vector.add(bodyA.position, pointA);\n if (bodyB) pointBWorld = Vector.add(bodyB.position, pointB);\n\n if (!pointAWorld || !pointBWorld)\n return;\n\n var delta = Vector.sub(pointAWorld, pointBWorld),\n currentLength = Vector.magnitude(delta);\n\n // prevent singularity\n if (currentLength < Constraint._minLength) {\n currentLength = Constraint._minLength;\n }\n\n // solve distance constraint with Gauss-Siedel method\n var difference = (currentLength - constraint.length) / currentLength,\n isRigid = constraint.stiffness >= 1 || constraint.length === 0,\n stiffness = isRigid ? constraint.stiffness * timeScale \n : constraint.stiffness * timeScale * timeScale,\n damping = constraint.damping * timeScale,\n force = Vector.mult(delta, difference * stiffness),\n massTotal = (bodyA ? bodyA.inverseMass : 0) + (bodyB ? bodyB.inverseMass : 0),\n inertiaTotal = (bodyA ? bodyA.inverseInertia : 0) + (bodyB ? bodyB.inverseInertia : 0),\n resistanceTotal = massTotal + inertiaTotal,\n torque,\n share,\n normal,\n normalVelocity,\n relativeVelocity;\n \n if (damping > 0) {\n var zero = Vector.create();\n normal = Vector.div(delta, currentLength);\n\n relativeVelocity = Vector.sub(\n bodyB && Vector.sub(bodyB.position, bodyB.positionPrev) || zero,\n bodyA && Vector.sub(bodyA.position, bodyA.positionPrev) || zero\n );\n\n normalVelocity = Vector.dot(normal, relativeVelocity);\n }\n\n if (bodyA && !bodyA.isStatic) {\n share = bodyA.inverseMass / massTotal;\n\n // keep track of applied impulses for post solving\n bodyA.constraintImpulse.x -= force.x * share;\n bodyA.constraintImpulse.y -= force.y * share;\n\n // apply forces\n bodyA.position.x -= force.x * share;\n bodyA.position.y -= force.y * share;\n\n // apply damping\n if (damping > 0) {\n bodyA.positionPrev.x -= damping * normal.x * normalVelocity * share;\n bodyA.positionPrev.y -= damping * normal.y * normalVelocity * share;\n }\n\n // apply torque\n torque = (Vector.cross(pointA, force) / resistanceTotal) * Constraint._torqueDampen * bodyA.inverseInertia * (1 - constraint.angularStiffness);\n bodyA.constraintImpulse.angle -= torque;\n bodyA.angle -= torque;\n }\n\n if (bodyB && !bodyB.isStatic) {\n share = bodyB.inverseMass / massTotal;\n\n // keep track of applied impulses for post solving\n bodyB.constraintImpulse.x += force.x * share;\n bodyB.constraintImpulse.y += force.y * share;\n \n // apply forces\n bodyB.position.x += force.x * share;\n bodyB.position.y += force.y * share;\n\n // apply damping\n if (damping > 0) {\n bodyB.positionPrev.x += damping * normal.x * normalVelocity * share;\n bodyB.positionPrev.y += damping * normal.y * normalVelocity * share;\n }\n\n // apply torque\n torque = (Vector.cross(pointB, force) / resistanceTotal) * Constraint._torqueDampen * bodyB.inverseInertia * (1 - constraint.angularStiffness);\n bodyB.constraintImpulse.angle += torque;\n bodyB.angle += torque;\n }\n\n };\n\n /**\n * Performs body updates required after solving constraints.\n * @private\n * @method postSolveAll\n * @param {body[]} bodies\n */\n Constraint.postSolveAll = function(bodies) {\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n impulse = body.constraintImpulse;\n\n if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) {\n continue;\n }\n\n Sleeping.set(body, false);\n\n // update geometry and reset\n for (var j = 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n \n Vertices.translate(part.vertices, impulse);\n\n if (j > 0) {\n part.position.x += impulse.x;\n part.position.y += impulse.y;\n }\n\n if (impulse.angle !== 0) {\n Vertices.rotate(part.vertices, impulse.angle, body.position);\n Axes.rotate(part.axes, impulse.angle);\n if (j > 0) {\n Vector.rotateAbout(part.position, impulse.angle, body.position, part.position);\n }\n }\n\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n\n // dampen the cached impulse for warming next step\n impulse.angle *= Constraint._warming;\n impulse.x *= Constraint._warming;\n impulse.y *= Constraint._warming;\n }\n };\n\n /**\n * Returns the world-space position of `constraint.pointA`, accounting for `constraint.bodyA`.\n * @method pointAWorld\n * @param {constraint} constraint\n * @returns {vector} the world-space position\n */\n Constraint.pointAWorld = function(constraint) {\n return {\n x: (constraint.bodyA ? constraint.bodyA.position.x : 0) \n + (constraint.pointA ? constraint.pointA.x : 0),\n y: (constraint.bodyA ? constraint.bodyA.position.y : 0) \n + (constraint.pointA ? constraint.pointA.y : 0)\n };\n };\n\n /**\n * Returns the world-space position of `constraint.pointB`, accounting for `constraint.bodyB`.\n * @method pointBWorld\n * @param {constraint} constraint\n * @returns {vector} the world-space position\n */\n Constraint.pointBWorld = function(constraint) {\n return {\n x: (constraint.bodyB ? constraint.bodyB.position.x : 0) \n + (constraint.pointB ? constraint.pointB.x : 0),\n y: (constraint.bodyB ? constraint.bodyB.position.y : 0) \n + (constraint.pointB ? constraint.pointB.y : 0)\n };\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"constraint\"\n * @readOnly\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage bodies.\n *\n * @property label\n * @type string\n * @default \"Constraint\"\n */\n\n /**\n * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n *\n * @property render\n * @type object\n */\n\n /**\n * A flag that indicates if the constraint should be rendered.\n *\n * @property render.visible\n * @type boolean\n * @default true\n */\n\n /**\n * A `Number` that defines the line width to use when rendering the constraint outline.\n * A value of `0` means no outline will be rendered.\n *\n * @property render.lineWidth\n * @type number\n * @default 2\n */\n\n /**\n * A `String` that defines the stroke style to use when rendering the constraint outline.\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.strokeStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * A `String` that defines the constraint rendering type. \n * The possible values are 'line', 'pin', 'spring'.\n * An appropriate render type will be automatically chosen unless one is given in options.\n *\n * @property render.type\n * @type string\n * @default 'line'\n */\n\n /**\n * A `Boolean` that defines if the constraint's anchor points should be rendered.\n *\n * @property render.anchors\n * @type boolean\n * @default true\n */\n\n /**\n * The first possible `Body` that this constraint is attached to.\n *\n * @property bodyA\n * @type body\n * @default null\n */\n\n /**\n * The second possible `Body` that this constraint is attached to.\n *\n * @property bodyB\n * @type body\n * @default null\n */\n\n /**\n * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyA` if defined, otherwise a world-space position.\n *\n * @property pointA\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyB` if defined, otherwise a world-space position.\n *\n * @property pointB\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Number` that specifies the stiffness of the constraint, i.e. the rate at which it returns to its resting `constraint.length`.\n * A value of `1` means the constraint should be very stiff.\n * A value of `0.2` means the constraint acts like a soft spring.\n *\n * @property stiffness\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that specifies the damping of the constraint, \n * i.e. the amount of resistance applied to each body based on their velocities to limit the amount of oscillation.\n * Damping will only be apparent when the constraint also has a very low `stiffness`.\n * A value of `0.1` means the constraint will apply heavy damping, resulting in little to no oscillation.\n * A value of `0` means the constraint will apply no damping.\n *\n * @property damping\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that specifies the target resting length of the constraint. \n * It is calculated automatically in `Constraint.create` from initial positions of the `constraint.bodyA` and `constraint.bodyB`.\n *\n * @property length\n * @type number\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n})();\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Axes` module contains methods for creating and manipulating sets of axes.\n*\n* @class Axes\n*/\n\nvar Axes = {};\n\nmodule.exports = Axes;\n\nvar Vector = __webpack_require__(2);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new set of axes from the given vertices.\n * @method fromVertices\n * @param {vertices} vertices\n * @return {axes} A new axes from the given vertices\n */\n Axes.fromVertices = function(vertices) {\n var axes = {};\n\n // find the unique axes, using edge normal gradients\n for (var i = 0; i < vertices.length; i++) {\n var j = (i + 1) % vertices.length, \n normal = Vector.normalise({ \n x: vertices[j].y - vertices[i].y, \n y: vertices[i].x - vertices[j].x\n }),\n gradient = (normal.y === 0) ? Infinity : (normal.x / normal.y);\n \n // limit precision\n gradient = gradient.toFixed(3).toString();\n axes[gradient] = normal;\n }\n\n return Common.values(axes);\n };\n\n /**\n * Rotates a set of axes by the given angle.\n * @method rotate\n * @param {axes} axes\n * @param {number} angle\n */\n Axes.rotate = function(axes, angle) {\n if (angle === 0)\n return;\n \n var cos = Math.cos(angle),\n sin = Math.sin(angle);\n\n for (var i = 0; i < axes.length; i++) {\n var axis = axes[i],\n xx;\n xx = axis.x * cos - axis.y * sin;\n axis.y = axis.x * sin + axis.y * cos;\n axis.x = xx;\n }\n };\n\n})();\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Bodies` module contains factory methods for creating rigid body models \n* with commonly used body configurations (such as rectangles, circles and other polygons).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Bodies\n*/\n\n// TODO: true circle bodies\n\nvar Bodies = {};\n\nmodule.exports = Bodies;\n\nvar Vertices = __webpack_require__(3);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\nvar Bounds = __webpack_require__(1);\nvar Vector = __webpack_require__(2);\n\n(function() {\n\n /**\n * Creates a new rigid body model with a rectangle hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method rectangle\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {object} [options]\n * @return {body} A new rectangle body\n */\n Bodies.rectangle = function(x, y, width, height, options) {\n options = options || {};\n\n var rectangle = { \n label: 'Rectangle Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath('L 0 0 L ' + width + ' 0 L ' + width + ' ' + height + ' L 0 ' + height)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n rectangle.vertices = Vertices.chamfer(rectangle.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, rectangle, options));\n };\n \n /**\n * Creates a new rigid body model with a trapezoid hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method trapezoid\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {number} slope\n * @param {object} [options]\n * @return {body} A new trapezoid body\n */\n Bodies.trapezoid = function(x, y, width, height, slope, options) {\n options = options || {};\n\n slope *= 0.5;\n var roof = (1 - (slope * 2)) * width;\n \n var x1 = width * slope,\n x2 = x1 + roof,\n x3 = x2 + x1,\n verticesPath;\n\n if (slope < 0.5) {\n verticesPath = 'L 0 0 L ' + x1 + ' ' + (-height) + ' L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0';\n } else {\n verticesPath = 'L 0 0 L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0';\n }\n\n var trapezoid = { \n label: 'Trapezoid Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath(verticesPath)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n trapezoid.vertices = Vertices.chamfer(trapezoid.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, trapezoid, options));\n };\n\n /**\n * Creates a new rigid body model with a circle hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method circle\n * @param {number} x\n * @param {number} y\n * @param {number} radius\n * @param {object} [options]\n * @param {number} [maxSides]\n * @return {body} A new circle body\n */\n Bodies.circle = function(x, y, radius, options, maxSides) {\n options = options || {};\n\n var circle = {\n label: 'Circle Body',\n circleRadius: radius\n };\n \n // approximate circles with polygons until true circles implemented in SAT\n maxSides = maxSides || 25;\n var sides = Math.ceil(Math.max(10, Math.min(maxSides, radius)));\n\n // optimisation: always use even number of sides (half the number of unique axes)\n if (sides % 2 === 1)\n sides += 1;\n\n return Bodies.polygon(x, y, sides, radius, Common.extend({}, circle, options));\n };\n\n /**\n * Creates a new rigid body model with a regular polygon hull with the given number of sides. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method polygon\n * @param {number} x\n * @param {number} y\n * @param {number} sides\n * @param {number} radius\n * @param {object} [options]\n * @return {body} A new regular polygon body\n */\n Bodies.polygon = function(x, y, sides, radius, options) {\n options = options || {};\n\n if (sides < 3)\n return Bodies.circle(x, y, radius, options);\n\n var theta = 2 * Math.PI / sides,\n path = '',\n offset = theta * 0.5;\n\n for (var i = 0; i < sides; i += 1) {\n var angle = offset + (i * theta),\n xx = Math.cos(angle) * radius,\n yy = Math.sin(angle) * radius;\n\n path += 'L ' + xx.toFixed(3) + ' ' + yy.toFixed(3) + ' ';\n }\n\n var polygon = { \n label: 'Polygon Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath(path)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n polygon.vertices = Vertices.chamfer(polygon.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, polygon, options));\n };\n\n /**\n * Utility to create a compound body based on set(s) of vertices.\n * \n * _Note:_ To optionally enable automatic concave vertices decomposition the [poly-decomp](https://github.com/schteppe/poly-decomp.js) \n * package must be first installed and provided see `Common.setDecomp`, otherwise the convex hull of each vertex set will be used.\n * \n * The resulting vertices are reorientated about their centre of mass,\n * and offset such that `body.position` corresponds to this point.\n * \n * The resulting offset may be found if needed by subtracting `body.bounds` from the original input bounds.\n * To later move the centre of mass see `Body.setCentre`.\n * \n * Note that automatic conconcave decomposition results are not always optimal. \n * For best results, simplify the input vertices as much as possible first.\n * By default this function applies some addtional simplification to help.\n * \n * Some outputs may also require further manual processing afterwards to be robust.\n * In particular some parts may need to be overlapped to avoid collision gaps.\n * Thin parts and sharp points should be avoided or removed where possible.\n *\n * The options parameter object specifies any `Matter.Body` properties you wish to override the defaults.\n * \n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method fromVertices\n * @param {number} x\n * @param {number} y\n * @param {array} vertexSets One or more arrays of vertex points e.g. `[[{ x: 0, y: 0 }...], ...]`.\n * @param {object} [options] The body options.\n * @param {bool} [flagInternal=false] Optionally marks internal edges with `isInternal`.\n * @param {number} [removeCollinear=0.01] Threshold when simplifying vertices along the same edge.\n * @param {number} [minimumArea=10] Threshold when removing small parts.\n * @param {number} [removeDuplicatePoints=0.01] Threshold when simplifying nearby vertices.\n * @return {body}\n */\n Bodies.fromVertices = function(x, y, vertexSets, options, flagInternal, removeCollinear, minimumArea, removeDuplicatePoints) {\n var decomp = Common.getDecomp(),\n canDecomp,\n body,\n parts,\n isConvex,\n isConcave,\n vertices,\n i,\n j,\n k,\n v,\n z;\n\n // check decomp is as expected\n canDecomp = Boolean(decomp && decomp.quickDecomp);\n\n options = options || {};\n parts = [];\n\n flagInternal = typeof flagInternal !== 'undefined' ? flagInternal : false;\n removeCollinear = typeof removeCollinear !== 'undefined' ? removeCollinear : 0.01;\n minimumArea = typeof minimumArea !== 'undefined' ? minimumArea : 10;\n removeDuplicatePoints = typeof removeDuplicatePoints !== 'undefined' ? removeDuplicatePoints : 0.01;\n\n // ensure vertexSets is an array of arrays\n if (!Common.isArray(vertexSets[0])) {\n vertexSets = [vertexSets];\n }\n\n for (v = 0; v < vertexSets.length; v += 1) {\n vertices = vertexSets[v];\n isConvex = Vertices.isConvex(vertices);\n isConcave = !isConvex;\n\n if (isConcave && !canDecomp) {\n Common.warnOnce(\n 'Bodies.fromVertices: Install the \\'poly-decomp\\' library and use Common.setDecomp or provide \\'decomp\\' as a global to decompose concave vertices.'\n );\n }\n\n if (isConvex || !canDecomp) {\n if (isConvex) {\n vertices = Vertices.clockwiseSort(vertices);\n } else {\n // fallback to convex hull when decomposition is not possible\n vertices = Vertices.hull(vertices);\n }\n\n parts.push({\n position: { x: x, y: y },\n vertices: vertices\n });\n } else {\n // initialise a decomposition\n var concave = vertices.map(function(vertex) {\n return [vertex.x, vertex.y];\n });\n\n // vertices are concave and simple, we can decompose into parts\n decomp.makeCCW(concave);\n if (removeCollinear !== false)\n decomp.removeCollinearPoints(concave, removeCollinear);\n if (removeDuplicatePoints !== false && decomp.removeDuplicatePoints)\n decomp.removeDuplicatePoints(concave, removeDuplicatePoints);\n\n // use the quick decomposition algorithm (Bayazit)\n var decomposed = decomp.quickDecomp(concave);\n\n // for each decomposed chunk\n for (i = 0; i < decomposed.length; i++) {\n var chunk = decomposed[i];\n\n // convert vertices into the correct structure\n var chunkVertices = chunk.map(function(vertices) {\n return {\n x: vertices[0],\n y: vertices[1]\n };\n });\n\n // skip small chunks\n if (minimumArea > 0 && Vertices.area(chunkVertices) < minimumArea)\n continue;\n\n // create a compound part\n parts.push({\n position: Vertices.centre(chunkVertices),\n vertices: chunkVertices\n });\n }\n }\n }\n\n // create body parts\n for (i = 0; i < parts.length; i++) {\n parts[i] = Body.create(Common.extend(parts[i], options));\n }\n\n // flag internal edges (coincident part edges)\n if (flagInternal) {\n var coincident_max_dist = 5;\n\n for (i = 0; i < parts.length; i++) {\n var partA = parts[i];\n\n for (j = i + 1; j < parts.length; j++) {\n var partB = parts[j];\n\n if (Bounds.overlaps(partA.bounds, partB.bounds)) {\n var pav = partA.vertices,\n pbv = partB.vertices;\n\n // iterate vertices of both parts\n for (k = 0; k < partA.vertices.length; k++) {\n for (z = 0; z < partB.vertices.length; z++) {\n // find distances between the vertices\n var da = Vector.magnitudeSquared(Vector.sub(pav[(k + 1) % pav.length], pbv[z])),\n db = Vector.magnitudeSquared(Vector.sub(pav[k], pbv[(z + 1) % pbv.length]));\n\n // if both vertices are very close, consider the edge concident (internal)\n if (da < coincident_max_dist && db < coincident_max_dist) {\n pav[k].isInternal = true;\n pbv[z].isInternal = true;\n }\n }\n }\n\n }\n }\n }\n }\n\n if (parts.length > 1) {\n // create the parent body to be returned, that contains generated compound parts\n body = Body.create(Common.extend({ parts: parts.slice(0) }, options));\n\n // offset such that body.position is at the centre off mass\n Body.setPosition(body, { x: x, y: y });\n\n return body;\n } else {\n return parts[0];\n }\n };\n\n})();\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Detector` module contains methods for efficiently detecting collisions between a list of bodies using a broadphase algorithm.\n*\n* @class Detector\n*/\n\nvar Detector = {};\n\nmodule.exports = Detector;\n\nvar Common = __webpack_require__(0);\nvar Collision = __webpack_require__(8);\n\n(function() {\n\n /**\n * Creates a new collision detector.\n * @method create\n * @param {} options\n * @return {detector} A new collision detector\n */\n Detector.create = function(options) {\n var defaults = {\n bodies: [],\n pairs: null\n };\n\n return Common.extend(defaults, options);\n };\n\n /**\n * Sets the list of bodies in the detector.\n * @method setBodies\n * @param {detector} detector\n * @param {body[]} bodies\n */\n Detector.setBodies = function(detector, bodies) {\n detector.bodies = bodies.slice(0);\n };\n\n /**\n * Clears the detector including its list of bodies.\n * @method clear\n * @param {detector} detector\n */\n Detector.clear = function(detector) {\n detector.bodies = [];\n };\n\n /**\n * Efficiently finds all collisions among all the bodies in `detector.bodies` using a broadphase algorithm.\n * \n * _Note:_ The specific ordering of collisions returned is not guaranteed between releases and may change for performance reasons.\n * If a specific ordering is required then apply a sort to the resulting array.\n * @method collisions\n * @param {detector} detector\n * @return {collision[]} collisions\n */\n Detector.collisions = function(detector) {\n var collisions = [],\n pairs = detector.pairs,\n bodies = detector.bodies,\n bodiesLength = bodies.length,\n canCollide = Detector.canCollide,\n collides = Collision.collides,\n i,\n j;\n\n bodies.sort(Detector._compareBoundsX);\n\n for (i = 0; i < bodiesLength; i++) {\n var bodyA = bodies[i],\n boundsA = bodyA.bounds,\n boundXMax = bodyA.bounds.max.x,\n boundYMax = bodyA.bounds.max.y,\n boundYMin = bodyA.bounds.min.y,\n bodyAStatic = bodyA.isStatic || bodyA.isSleeping,\n partsALength = bodyA.parts.length,\n partsASingle = partsALength === 1;\n\n for (j = i + 1; j < bodiesLength; j++) {\n var bodyB = bodies[j],\n boundsB = bodyB.bounds;\n\n if (boundsB.min.x > boundXMax) {\n break;\n }\n\n if (boundYMax < boundsB.min.y || boundYMin > boundsB.max.y) {\n continue;\n }\n\n if (bodyAStatic && (bodyB.isStatic || bodyB.isSleeping)) {\n continue;\n }\n\n if (!canCollide(bodyA.collisionFilter, bodyB.collisionFilter)) {\n continue;\n }\n\n var partsBLength = bodyB.parts.length;\n\n if (partsASingle && partsBLength === 1) {\n var collision = collides(bodyA, bodyB, pairs);\n\n if (collision) {\n collisions.push(collision);\n }\n } else {\n var partsAStart = partsALength > 1 ? 1 : 0,\n partsBStart = partsBLength > 1 ? 1 : 0;\n \n for (var k = partsAStart; k < partsALength; k++) {\n var partA = bodyA.parts[k],\n boundsA = partA.bounds;\n\n for (var z = partsBStart; z < partsBLength; z++) {\n var partB = bodyB.parts[z],\n boundsB = partB.bounds;\n\n if (boundsA.min.x > boundsB.max.x || boundsA.max.x < boundsB.min.x\n || boundsA.max.y < boundsB.min.y || boundsA.min.y > boundsB.max.y) {\n continue;\n }\n\n var collision = collides(partA, partB, pairs);\n\n if (collision) {\n collisions.push(collision);\n }\n }\n }\n }\n }\n }\n\n return collisions;\n };\n\n /**\n * Returns `true` if both supplied collision filters will allow a collision to occur.\n * See `body.collisionFilter` for more information.\n * @method canCollide\n * @param {} filterA\n * @param {} filterB\n * @return {bool} `true` if collision can occur\n */\n Detector.canCollide = function(filterA, filterB) {\n if (filterA.group === filterB.group && filterA.group !== 0)\n return filterA.group > 0;\n\n return (filterA.mask & filterB.category) !== 0 && (filterB.mask & filterA.category) !== 0;\n };\n\n /**\n * The comparison function used in the broadphase algorithm.\n * Returns the signed delta of the bodies bounds on the x-axis.\n * @private\n * @method _sortCompare\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {number} The signed delta used for sorting\n */\n Detector._compareBoundsX = function(bodyA, bodyB) {\n return bodyA.bounds.min.x - bodyB.bounds.min.x;\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * The array of `Matter.Body` between which the detector finds collisions.\n * \n * _Note:_ The order of bodies in this array _is not fixed_ and will be continually managed by the detector.\n * @property bodies\n * @type body[]\n * @default []\n */\n\n /**\n * Optional. A `Matter.Pairs` object from which previous collision objects may be reused. Intended for internal `Matter.Engine` usage.\n * @property pairs\n * @type {pairs|null}\n * @default null\n */\n\n})();\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Mouse` module contains methods for creating and manipulating mouse inputs.\n*\n* @class Mouse\n*/\n\nvar Mouse = {};\n\nmodule.exports = Mouse;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a mouse input.\n * @method create\n * @param {HTMLElement} element\n * @return {mouse} A new mouse\n */\n Mouse.create = function(element) {\n var mouse = {};\n\n if (!element) {\n Common.log('Mouse.create: element was undefined, defaulting to document.body', 'warn');\n }\n \n mouse.element = element || document.body;\n mouse.absolute = { x: 0, y: 0 };\n mouse.position = { x: 0, y: 0 };\n mouse.mousedownPosition = { x: 0, y: 0 };\n mouse.mouseupPosition = { x: 0, y: 0 };\n mouse.offset = { x: 0, y: 0 };\n mouse.scale = { x: 1, y: 1 };\n mouse.wheelDelta = 0;\n mouse.button = -1;\n mouse.pixelRatio = parseInt(mouse.element.getAttribute('data-pixel-ratio'), 10) || 1;\n\n mouse.sourceEvents = {\n mousemove: null,\n mousedown: null,\n mouseup: null,\n mousewheel: null\n };\n \n mouse.mousemove = function(event) { \n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n mouse.button = 0;\n event.preventDefault();\n }\n\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.sourceEvents.mousemove = event;\n };\n \n mouse.mousedown = function(event) {\n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n mouse.button = 0;\n event.preventDefault();\n } else {\n mouse.button = event.button;\n }\n\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.mousedownPosition.x = mouse.position.x;\n mouse.mousedownPosition.y = mouse.position.y;\n mouse.sourceEvents.mousedown = event;\n };\n \n mouse.mouseup = function(event) {\n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n event.preventDefault();\n }\n \n mouse.button = -1;\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.mouseupPosition.x = mouse.position.x;\n mouse.mouseupPosition.y = mouse.position.y;\n mouse.sourceEvents.mouseup = event;\n };\n\n mouse.mousewheel = function(event) {\n mouse.wheelDelta = Math.max(-1, Math.min(1, event.wheelDelta || -event.detail));\n event.preventDefault();\n };\n\n Mouse.setElement(mouse, mouse.element);\n\n return mouse;\n };\n\n /**\n * Sets the element the mouse is bound to (and relative to).\n * @method setElement\n * @param {mouse} mouse\n * @param {HTMLElement} element\n */\n Mouse.setElement = function(mouse, element) {\n mouse.element = element;\n\n element.addEventListener('mousemove', mouse.mousemove);\n element.addEventListener('mousedown', mouse.mousedown);\n element.addEventListener('mouseup', mouse.mouseup);\n \n element.addEventListener('mousewheel', mouse.mousewheel);\n element.addEventListener('DOMMouseScroll', mouse.mousewheel);\n\n element.addEventListener('touchmove', mouse.mousemove);\n element.addEventListener('touchstart', mouse.mousedown);\n element.addEventListener('touchend', mouse.mouseup);\n };\n\n /**\n * Clears all captured source events.\n * @method clearSourceEvents\n * @param {mouse} mouse\n */\n Mouse.clearSourceEvents = function(mouse) {\n mouse.sourceEvents.mousemove = null;\n mouse.sourceEvents.mousedown = null;\n mouse.sourceEvents.mouseup = null;\n mouse.sourceEvents.mousewheel = null;\n mouse.wheelDelta = 0;\n };\n\n /**\n * Sets the mouse position offset.\n * @method setOffset\n * @param {mouse} mouse\n * @param {vector} offset\n */\n Mouse.setOffset = function(mouse, offset) {\n mouse.offset.x = offset.x;\n mouse.offset.y = offset.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n };\n\n /**\n * Sets the mouse position scale.\n * @method setScale\n * @param {mouse} mouse\n * @param {vector} scale\n */\n Mouse.setScale = function(mouse, scale) {\n mouse.scale.x = scale.x;\n mouse.scale.y = scale.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n };\n \n /**\n * Gets the mouse position relative to an element given a screen pixel ratio.\n * @method _getRelativeMousePosition\n * @private\n * @param {} event\n * @param {} element\n * @param {number} pixelRatio\n * @return {}\n */\n Mouse._getRelativeMousePosition = function(event, element, pixelRatio) {\n var elementBounds = element.getBoundingClientRect(),\n rootNode = (document.documentElement || document.body.parentNode || document.body),\n scrollX = (window.pageXOffset !== undefined) ? window.pageXOffset : rootNode.scrollLeft,\n scrollY = (window.pageYOffset !== undefined) ? window.pageYOffset : rootNode.scrollTop,\n touches = event.changedTouches,\n x, y;\n \n if (touches) {\n x = touches[0].pageX - elementBounds.left - scrollX;\n y = touches[0].pageY - elementBounds.top - scrollY;\n } else {\n x = event.pageX - elementBounds.left - scrollX;\n y = event.pageY - elementBounds.top - scrollY;\n }\n\n return { \n x: x / (element.clientWidth / (element.width || element.clientWidth) * pixelRatio),\n y: y / (element.clientHeight / (element.height || element.clientHeight) * pixelRatio)\n };\n };\n\n})();\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Plugin` module contains functions for registering and installing plugins on modules.\n*\n* @class Plugin\n*/\n\nvar Plugin = {};\n\nmodule.exports = Plugin;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Plugin._registry = {};\n\n /**\n * Registers a plugin object so it can be resolved later by name.\n * @method register\n * @param plugin {} The plugin to register.\n * @return {object} The plugin.\n */\n Plugin.register = function(plugin) {\n if (!Plugin.isPlugin(plugin)) {\n Common.warn('Plugin.register:', Plugin.toString(plugin), 'does not implement all required fields.');\n }\n\n if (plugin.name in Plugin._registry) {\n var registered = Plugin._registry[plugin.name],\n pluginVersion = Plugin.versionParse(plugin.version).number,\n registeredVersion = Plugin.versionParse(registered.version).number;\n\n if (pluginVersion > registeredVersion) {\n Common.warn('Plugin.register:', Plugin.toString(registered), 'was upgraded to', Plugin.toString(plugin));\n Plugin._registry[plugin.name] = plugin;\n } else if (pluginVersion < registeredVersion) {\n Common.warn('Plugin.register:', Plugin.toString(registered), 'can not be downgraded to', Plugin.toString(plugin));\n } else if (plugin !== registered) {\n Common.warn('Plugin.register:', Plugin.toString(plugin), 'is already registered to different plugin object');\n }\n } else {\n Plugin._registry[plugin.name] = plugin;\n }\n\n return plugin;\n };\n\n /**\n * Resolves a dependency to a plugin object from the registry if it exists. \n * The `dependency` may contain a version, but only the name matters when resolving.\n * @method resolve\n * @param dependency {string} The dependency.\n * @return {object} The plugin if resolved, otherwise `undefined`.\n */\n Plugin.resolve = function(dependency) {\n return Plugin._registry[Plugin.dependencyParse(dependency).name];\n };\n\n /**\n * Returns a pretty printed plugin name and version.\n * @method toString\n * @param plugin {} The plugin.\n * @return {string} Pretty printed plugin name and version.\n */\n Plugin.toString = function(plugin) {\n return typeof plugin === 'string' ? plugin : (plugin.name || 'anonymous') + '@' + (plugin.version || plugin.range || '0.0.0');\n };\n\n /**\n * Returns `true` if the object meets the minimum standard to be considered a plugin.\n * This means it must define the following properties:\n * - `name`\n * - `version`\n * - `install`\n * @method isPlugin\n * @param obj {} The obj to test.\n * @return {boolean} `true` if the object can be considered a plugin otherwise `false`.\n */\n Plugin.isPlugin = function(obj) {\n return obj && obj.name && obj.version && obj.install;\n };\n\n /**\n * Returns `true` if a plugin with the given `name` been installed on `module`.\n * @method isUsed\n * @param module {} The module.\n * @param name {string} The plugin name.\n * @return {boolean} `true` if a plugin with the given `name` been installed on `module`, otherwise `false`.\n */\n Plugin.isUsed = function(module, name) {\n return module.used.indexOf(name) > -1;\n };\n\n /**\n * Returns `true` if `plugin.for` is applicable to `module` by comparing against `module.name` and `module.version`.\n * If `plugin.for` is not specified then it is assumed to be applicable.\n * The value of `plugin.for` is a string of the format `'module-name'` or `'module-name@version'`.\n * @method isFor\n * @param plugin {} The plugin.\n * @param module {} The module.\n * @return {boolean} `true` if `plugin.for` is applicable to `module`, otherwise `false`.\n */\n Plugin.isFor = function(plugin, module) {\n var parsed = plugin.for && Plugin.dependencyParse(plugin.for);\n return !plugin.for || (module.name === parsed.name && Plugin.versionSatisfies(module.version, parsed.range));\n };\n\n /**\n * Installs the plugins by calling `plugin.install` on each plugin specified in `plugins` if passed, otherwise `module.uses`.\n * For installing plugins on `Matter` see the convenience function `Matter.use`.\n * Plugins may be specified either by their name or a reference to the plugin object.\n * Plugins themselves may specify further dependencies, but each plugin is installed only once.\n * Order is important, a topological sort is performed to find the best resulting order of installation.\n * This sorting attempts to satisfy every dependency's requested ordering, but may not be exact in all cases.\n * This function logs the resulting status of each dependency in the console, along with any warnings.\n * - A green tick ✅ indicates a dependency was resolved and installed.\n * - An orange diamond 🔶 indicates a dependency was resolved but a warning was thrown for it or one if its dependencies.\n * - A red cross ❌ indicates a dependency could not be resolved.\n * Avoid calling this function multiple times on the same module unless you intend to manually control installation order.\n * @method use\n * @param module {} The module install plugins on.\n * @param [plugins=module.uses] {} The plugins to install on module (optional, defaults to `module.uses`).\n */\n Plugin.use = function(module, plugins) {\n module.uses = (module.uses || []).concat(plugins || []);\n\n if (module.uses.length === 0) {\n Common.warn('Plugin.use:', Plugin.toString(module), 'does not specify any dependencies to install.');\n return;\n }\n\n var dependencies = Plugin.dependencies(module),\n sortedDependencies = Common.topologicalSort(dependencies),\n status = [];\n\n for (var i = 0; i < sortedDependencies.length; i += 1) {\n if (sortedDependencies[i] === module.name) {\n continue;\n }\n\n var plugin = Plugin.resolve(sortedDependencies[i]);\n\n if (!plugin) {\n status.push('❌ ' + sortedDependencies[i]);\n continue;\n }\n\n if (Plugin.isUsed(module, plugin.name)) {\n continue;\n }\n\n if (!Plugin.isFor(plugin, module)) {\n Common.warn('Plugin.use:', Plugin.toString(plugin), 'is for', plugin.for, 'but installed on', Plugin.toString(module) + '.');\n plugin._warned = true;\n }\n\n if (plugin.install) {\n plugin.install(module);\n } else {\n Common.warn('Plugin.use:', Plugin.toString(plugin), 'does not specify an install function.');\n plugin._warned = true;\n }\n\n if (plugin._warned) {\n status.push('🔶 ' + Plugin.toString(plugin));\n delete plugin._warned;\n } else {\n status.push('✅ ' + Plugin.toString(plugin));\n }\n\n module.used.push(plugin.name);\n }\n\n if (status.length > 0) {\n Common.info(status.join(' '));\n }\n };\n\n /**\n * Recursively finds all of a module's dependencies and returns a flat dependency graph.\n * @method dependencies\n * @param module {} The module.\n * @return {object} A dependency graph.\n */\n Plugin.dependencies = function(module, tracked) {\n var parsedBase = Plugin.dependencyParse(module),\n name = parsedBase.name;\n\n tracked = tracked || {};\n\n if (name in tracked) {\n return;\n }\n\n module = Plugin.resolve(module) || module;\n\n tracked[name] = Common.map(module.uses || [], function(dependency) {\n if (Plugin.isPlugin(dependency)) {\n Plugin.register(dependency);\n }\n\n var parsed = Plugin.dependencyParse(dependency),\n resolved = Plugin.resolve(dependency);\n\n if (resolved && !Plugin.versionSatisfies(resolved.version, parsed.range)) {\n Common.warn(\n 'Plugin.dependencies:', Plugin.toString(resolved), 'does not satisfy',\n Plugin.toString(parsed), 'used by', Plugin.toString(parsedBase) + '.'\n );\n\n resolved._warned = true;\n module._warned = true;\n } else if (!resolved) {\n Common.warn(\n 'Plugin.dependencies:', Plugin.toString(dependency), 'used by',\n Plugin.toString(parsedBase), 'could not be resolved.'\n );\n\n module._warned = true;\n }\n\n return parsed.name;\n });\n\n for (var i = 0; i < tracked[name].length; i += 1) {\n Plugin.dependencies(tracked[name][i], tracked);\n }\n\n return tracked;\n };\n\n /**\n * Parses a dependency string into its components.\n * The `dependency` is a string of the format `'module-name'` or `'module-name@version'`.\n * See documentation for `Plugin.versionParse` for a description of the format.\n * This function can also handle dependencies that are already resolved (e.g. a module object).\n * @method dependencyParse\n * @param dependency {string} The dependency of the format `'module-name'` or `'module-name@version'`.\n * @return {object} The dependency parsed into its components.\n */\n Plugin.dependencyParse = function(dependency) {\n if (Common.isString(dependency)) {\n var pattern = /^[\\w-]+(@(\\*|[\\^~]?\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-+]+)?))?$/;\n\n if (!pattern.test(dependency)) {\n Common.warn('Plugin.dependencyParse:', dependency, 'is not a valid dependency string.');\n }\n\n return {\n name: dependency.split('@')[0],\n range: dependency.split('@')[1] || '*'\n };\n }\n\n return {\n name: dependency.name,\n range: dependency.range || dependency.version\n };\n };\n\n /**\n * Parses a version string into its components. \n * Versions are strictly of the format `x.y.z` (as in [semver](http://semver.org/)).\n * Versions may optionally have a prerelease tag in the format `x.y.z-alpha`.\n * Ranges are a strict subset of [npm ranges](https://docs.npmjs.com/misc/semver#advanced-range-syntax).\n * Only the following range types are supported:\n * - Tilde ranges e.g. `~1.2.3`\n * - Caret ranges e.g. `^1.2.3`\n * - Greater than ranges e.g. `>1.2.3`\n * - Greater than or equal ranges e.g. `>=1.2.3`\n * - Exact version e.g. `1.2.3`\n * - Any version `*`\n * @method versionParse\n * @param range {string} The version string.\n * @return {object} The version range parsed into its components.\n */\n Plugin.versionParse = function(range) {\n var pattern = /^(\\*)|(\\^|~|>=|>)?\\s*((\\d+)\\.(\\d+)\\.(\\d+))(-[0-9A-Za-z-+]+)?$/;\n\n if (!pattern.test(range)) {\n Common.warn('Plugin.versionParse:', range, 'is not a valid version or range.');\n }\n\n var parts = pattern.exec(range);\n var major = Number(parts[4]);\n var minor = Number(parts[5]);\n var patch = Number(parts[6]);\n\n return {\n isRange: Boolean(parts[1] || parts[2]),\n version: parts[3],\n range: range,\n operator: parts[1] || parts[2] || '',\n major: major,\n minor: minor,\n patch: patch,\n parts: [major, minor, patch],\n prerelease: parts[7],\n number: major * 1e8 + minor * 1e4 + patch\n };\n };\n\n /**\n * Returns `true` if `version` satisfies the given `range`.\n * See documentation for `Plugin.versionParse` for a description of the format.\n * If a version or range is not specified, then any version (`*`) is assumed to satisfy.\n * @method versionSatisfies\n * @param version {string} The version string.\n * @param range {string} The range string.\n * @return {boolean} `true` if `version` satisfies `range`, otherwise `false`.\n */\n Plugin.versionSatisfies = function(version, range) {\n range = range || '*';\n\n var r = Plugin.versionParse(range),\n v = Plugin.versionParse(version);\n\n if (r.isRange) {\n if (r.operator === '*' || version === '*') {\n return true;\n }\n\n if (r.operator === '>') {\n return v.number > r.number;\n }\n\n if (r.operator === '>=') {\n return v.number >= r.number;\n }\n\n if (r.operator === '~') {\n return v.major === r.major && v.minor === r.minor && v.patch >= r.patch;\n }\n\n if (r.operator === '^') {\n if (r.major > 0) {\n return v.major === r.major && v.number >= r.number;\n }\n\n if (r.minor > 0) {\n return v.minor === r.minor && v.patch >= r.patch;\n }\n\n return v.patch === r.patch;\n }\n }\n\n return version === range || version === '*';\n };\n\n})();\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Contact` module contains methods for creating and manipulating collision contacts.\n*\n* @class Contact\n*/\n\nvar Contact = {};\n\nmodule.exports = Contact;\n\n(function() {\n\n /**\n * Creates a new contact.\n * @method create\n * @param {vertex} vertex\n * @return {contact} A new contact\n */\n Contact.create = function(vertex) {\n return {\n vertex: vertex,\n normalImpulse: 0,\n tangentImpulse: 0\n };\n };\n\n})();\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Engine` module contains methods for creating and manipulating engines.\n* An engine is a controller that manages updating the simulation of the world.\n* See `Matter.Runner` for an optional game loop utility.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Engine\n*/\n\nvar Engine = {};\n\nmodule.exports = Engine;\n\nvar Sleeping = __webpack_require__(7);\nvar Resolver = __webpack_require__(18);\nvar Detector = __webpack_require__(13);\nvar Pairs = __webpack_require__(19);\nvar Events = __webpack_require__(5);\nvar Composite = __webpack_require__(6);\nvar Constraint = __webpack_require__(10);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\n\n(function() {\n\n /**\n * Creates a new engine. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {object} [options]\n * @return {engine} engine\n */\n Engine.create = function(options) {\n options = options || {};\n\n var defaults = {\n positionIterations: 6,\n velocityIterations: 4,\n constraintIterations: 2,\n enableSleeping: false,\n events: [],\n plugin: {},\n gravity: {\n x: 0,\n y: 1,\n scale: 0.001\n },\n timing: {\n timestamp: 0,\n timeScale: 1,\n lastDelta: 0,\n lastElapsed: 0\n }\n };\n\n var engine = Common.extend(defaults, options);\n\n engine.world = options.world || Composite.create({ label: 'World' });\n engine.pairs = options.pairs || Pairs.create();\n engine.detector = options.detector || Detector.create();\n\n // for temporary back compatibility only\n engine.grid = { buckets: [] };\n engine.world.gravity = engine.gravity;\n engine.broadphase = engine.grid;\n engine.metrics = {};\n \n return engine;\n };\n\n /**\n * Moves the simulation forward in time by `delta` milliseconds.\n * Triggers `beforeUpdate` and `afterUpdate` events.\n * Triggers `collisionStart`, `collisionActive` and `collisionEnd` events.\n * @method update\n * @param {engine} engine\n * @param {number} [delta=16.666]\n */\n Engine.update = function(engine, delta) {\n var startTime = Common.now();\n\n var world = engine.world,\n detector = engine.detector,\n pairs = engine.pairs,\n timing = engine.timing,\n timestamp = timing.timestamp,\n i;\n\n delta = typeof delta !== 'undefined' ? delta : Common._baseDelta;\n delta *= timing.timeScale;\n\n // increment timestamp\n timing.timestamp += delta;\n timing.lastDelta = delta;\n\n // create an event object\n var event = {\n timestamp: timing.timestamp,\n delta: delta\n };\n\n Events.trigger(engine, 'beforeUpdate', event);\n\n // get all bodies and all constraints in the world\n var allBodies = Composite.allBodies(world),\n allConstraints = Composite.allConstraints(world);\n\n // if the world has changed\n if (world.isModified) {\n // update the detector bodies\n Detector.setBodies(detector, allBodies);\n\n // reset all composite modified flags\n Composite.setModified(world, false, false, true);\n }\n\n // update sleeping if enabled\n if (engine.enableSleeping)\n Sleeping.update(allBodies, delta);\n\n // apply gravity to all bodies\n Engine._bodiesApplyGravity(allBodies, engine.gravity);\n\n // update all body position and rotation by integration\n if (delta > 0) {\n Engine._bodiesUpdate(allBodies, delta);\n }\n\n // update all constraints (first pass)\n Constraint.preSolveAll(allBodies);\n for (i = 0; i < engine.constraintIterations; i++) {\n Constraint.solveAll(allConstraints, delta);\n }\n Constraint.postSolveAll(allBodies);\n\n // find all collisions\n detector.pairs = engine.pairs;\n var collisions = Detector.collisions(detector);\n\n // update collision pairs\n Pairs.update(pairs, collisions, timestamp);\n\n // wake up bodies involved in collisions\n if (engine.enableSleeping)\n Sleeping.afterCollisions(pairs.list);\n\n // trigger collision events\n if (pairs.collisionStart.length > 0)\n Events.trigger(engine, 'collisionStart', { pairs: pairs.collisionStart });\n\n // iteratively resolve position between collisions\n var positionDamping = Common.clamp(20 / engine.positionIterations, 0, 1);\n \n Resolver.preSolvePosition(pairs.list);\n for (i = 0; i < engine.positionIterations; i++) {\n Resolver.solvePosition(pairs.list, delta, positionDamping);\n }\n Resolver.postSolvePosition(allBodies);\n\n // update all constraints (second pass)\n Constraint.preSolveAll(allBodies);\n for (i = 0; i < engine.constraintIterations; i++) {\n Constraint.solveAll(allConstraints, delta);\n }\n Constraint.postSolveAll(allBodies);\n\n // iteratively resolve velocity between collisions\n Resolver.preSolveVelocity(pairs.list);\n for (i = 0; i < engine.velocityIterations; i++) {\n Resolver.solveVelocity(pairs.list, delta);\n }\n\n // update body speed and velocity properties\n Engine._bodiesUpdateVelocities(allBodies);\n\n // trigger collision events\n if (pairs.collisionActive.length > 0)\n Events.trigger(engine, 'collisionActive', { pairs: pairs.collisionActive });\n\n if (pairs.collisionEnd.length > 0)\n Events.trigger(engine, 'collisionEnd', { pairs: pairs.collisionEnd });\n\n // clear force buffers\n Engine._bodiesClearForces(allBodies);\n\n Events.trigger(engine, 'afterUpdate', event);\n\n // log the time elapsed computing this update\n engine.timing.lastElapsed = Common.now() - startTime;\n\n return engine;\n };\n \n /**\n * Merges two engines by keeping the configuration of `engineA` but replacing the world with the one from `engineB`.\n * @method merge\n * @param {engine} engineA\n * @param {engine} engineB\n */\n Engine.merge = function(engineA, engineB) {\n Common.extend(engineA, engineB);\n \n if (engineB.world) {\n engineA.world = engineB.world;\n\n Engine.clear(engineA);\n\n var bodies = Composite.allBodies(engineA.world);\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n Sleeping.set(body, false);\n body.id = Common.nextId();\n }\n }\n };\n\n /**\n * Clears the engine pairs and detector.\n * @method clear\n * @param {engine} engine\n */\n Engine.clear = function(engine) {\n Pairs.clear(engine.pairs);\n Detector.clear(engine.detector);\n };\n\n /**\n * Zeroes the `body.force` and `body.torque` force buffers.\n * @method _bodiesClearForces\n * @private\n * @param {body[]} bodies\n */\n Engine._bodiesClearForces = function(bodies) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n // reset force buffers\n body.force.x = 0;\n body.force.y = 0;\n body.torque = 0;\n }\n };\n\n /**\n * Applies gravitational acceleration to all `bodies`.\n * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet.\n * \n * @method _bodiesApplyGravity\n * @private\n * @param {body[]} bodies\n * @param {vector} gravity\n */\n Engine._bodiesApplyGravity = function(bodies, gravity) {\n var gravityScale = typeof gravity.scale !== 'undefined' ? gravity.scale : 0.001,\n bodiesLength = bodies.length;\n\n if ((gravity.x === 0 && gravity.y === 0) || gravityScale === 0) {\n return;\n }\n \n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n if (body.isStatic || body.isSleeping)\n continue;\n\n // add the resultant force of gravity\n body.force.y += body.mass * gravity.y * gravityScale;\n body.force.x += body.mass * gravity.x * gravityScale;\n }\n };\n\n /**\n * Applies `Body.update` to all given `bodies`.\n * @method _bodiesUpdate\n * @private\n * @param {body[]} bodies\n * @param {number} delta The amount of time elapsed between updates\n */\n Engine._bodiesUpdate = function(bodies, delta) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n if (body.isStatic || body.isSleeping)\n continue;\n\n Body.update(body, delta);\n }\n };\n\n /**\n * Applies `Body.updateVelocities` to all given `bodies`.\n * @method _bodiesUpdateVelocities\n * @private\n * @param {body[]} bodies\n */\n Engine._bodiesUpdateVelocities = function(bodies) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n Body.updateVelocities(bodies[i]);\n }\n };\n\n /**\n * A deprecated alias for `Runner.run`, use `Matter.Runner.run(engine)` instead and see `Matter.Runner` for more information.\n * @deprecated use Matter.Runner.run(engine) instead\n * @method run\n * @param {engine} engine\n */\n\n /**\n * Fired just before an update\n *\n * @event beforeUpdate\n * @param {object} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update and all collision events\n *\n * @event afterUpdate\n * @param {object} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that have started to collide in the current tick (if any)\n *\n * @event collisionStart\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that are colliding in the current tick (if any)\n *\n * @event collisionActive\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that have ended collision in the current tick (if any)\n *\n * @event collisionEnd\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` that specifies the number of position iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n *\n * @property positionIterations\n * @type number\n * @default 6\n */\n\n /**\n * An integer `Number` that specifies the number of velocity iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n *\n * @property velocityIterations\n * @type number\n * @default 4\n */\n\n /**\n * An integer `Number` that specifies the number of constraint iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n * The default value of `2` is usually very adequate.\n *\n * @property constraintIterations\n * @type number\n * @default 2\n */\n\n /**\n * A flag that specifies whether the engine should allow sleeping via the `Matter.Sleeping` module.\n * Sleeping can improve stability and performance, but often at the expense of accuracy.\n *\n * @property enableSleeping\n * @type boolean\n * @default false\n */\n\n /**\n * An `Object` containing properties regarding the timing systems of the engine. \n *\n * @property timing\n * @type object\n */\n\n /**\n * A `Number` that specifies the global scaling factor of time for all bodies.\n * A value of `0` freezes the simulation.\n * A value of `0.1` gives a slow-motion effect.\n * A value of `1.2` gives a speed-up effect.\n *\n * @property timing.timeScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that specifies the current simulation-time in milliseconds starting from `0`. \n * It is incremented on every `Engine.update` by the given `delta` argument. \n * \n * @property timing.timestamp\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that represents the total execution time elapsed during the last `Engine.update` in milliseconds.\n * It is updated by timing from the start of the last `Engine.update` call until it ends.\n *\n * This value will also include the total execution time of all event handlers directly or indirectly triggered by the engine update.\n * \n * @property timing.lastElapsed\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that represents the `delta` value used in the last engine update.\n * \n * @property timing.lastDelta\n * @type number\n * @default 0\n */\n\n /**\n * A `Matter.Detector` instance.\n *\n * @property detector\n * @type detector\n * @default a Matter.Detector instance\n */\n\n /**\n * A `Matter.Grid` instance.\n *\n * @deprecated replaced by `engine.detector`\n * @property grid\n * @type grid\n * @default a Matter.Grid instance\n */\n\n /**\n * Replaced by and now alias for `engine.grid`.\n *\n * @deprecated replaced by `engine.detector`\n * @property broadphase\n * @type grid\n * @default a Matter.Grid instance\n */\n\n /**\n * The root `Matter.Composite` instance that will contain all bodies, constraints and other composites to be simulated by this engine.\n *\n * @property world\n * @type composite\n * @default a Matter.Composite instance\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * An optional gravitational acceleration applied to all bodies in `engine.world` on every update.\n * \n * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet. For gravity in other contexts, disable this and apply forces as needed.\n * \n * To disable set the `scale` component to `0`.\n * \n * This is split into three components for ease of use: \n * a normalised direction (`x` and `y`) and magnitude (`scale`).\n *\n * @property gravity\n * @type object\n */\n\n /**\n * The gravitational direction normal `x` component, to be multiplied by `gravity.scale`.\n * \n * @property gravity.x\n * @type object\n * @default 0\n */\n\n /**\n * The gravitational direction normal `y` component, to be multiplied by `gravity.scale`.\n *\n * @property gravity.y\n * @type object\n * @default 1\n */\n\n /**\n * The magnitude of the gravitational acceleration.\n * \n * @property gravity.scale\n * @type object\n * @default 0.001\n */\n\n})();\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Resolver` module contains methods for resolving collision pairs.\n*\n* @class Resolver\n*/\n\nvar Resolver = {};\n\nmodule.exports = Resolver;\n\nvar Vertices = __webpack_require__(3);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\n\n(function() {\n\n Resolver._restingThresh = 2;\n Resolver._restingThreshTangent = Math.sqrt(6);\n Resolver._positionDampen = 0.9;\n Resolver._positionWarming = 0.8;\n Resolver._frictionNormalMultiplier = 5;\n Resolver._frictionMaxStatic = Number.MAX_VALUE;\n\n /**\n * Prepare pairs for position solving.\n * @method preSolvePosition\n * @param {pair[]} pairs\n */\n Resolver.preSolvePosition = function(pairs) {\n var i,\n pair,\n activeCount,\n pairsLength = pairs.length;\n\n // find total contacts on each body\n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n \n if (!pair.isActive)\n continue;\n \n activeCount = pair.activeContacts.length;\n pair.collision.parentA.totalContacts += activeCount;\n pair.collision.parentB.totalContacts += activeCount;\n }\n };\n\n /**\n * Find a solution for pair positions.\n * @method solvePosition\n * @param {pair[]} pairs\n * @param {number} delta\n * @param {number} [damping=1]\n */\n Resolver.solvePosition = function(pairs, delta, damping) {\n var i,\n pair,\n collision,\n bodyA,\n bodyB,\n normal,\n contactShare,\n positionImpulse,\n positionDampen = Resolver._positionDampen * (damping || 1),\n slopDampen = Common.clamp(delta / Common._baseDelta, 0, 1),\n pairsLength = pairs.length;\n\n // find impulses required to resolve penetration\n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n\n collision = pair.collision;\n bodyA = collision.parentA;\n bodyB = collision.parentB;\n normal = collision.normal;\n\n // get current separation between body edges involved in collision\n pair.separation = \n normal.x * (bodyB.positionImpulse.x + collision.penetration.x - bodyA.positionImpulse.x)\n + normal.y * (bodyB.positionImpulse.y + collision.penetration.y - bodyA.positionImpulse.y);\n }\n \n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n\n if (!pair.isActive || pair.isSensor)\n continue;\n \n collision = pair.collision;\n bodyA = collision.parentA;\n bodyB = collision.parentB;\n normal = collision.normal;\n positionImpulse = pair.separation - pair.slop * slopDampen;\n\n if (bodyA.isStatic || bodyB.isStatic)\n positionImpulse *= 2;\n \n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n contactShare = positionDampen / bodyA.totalContacts;\n bodyA.positionImpulse.x += normal.x * positionImpulse * contactShare;\n bodyA.positionImpulse.y += normal.y * positionImpulse * contactShare;\n }\n\n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n contactShare = positionDampen / bodyB.totalContacts;\n bodyB.positionImpulse.x -= normal.x * positionImpulse * contactShare;\n bodyB.positionImpulse.y -= normal.y * positionImpulse * contactShare;\n }\n }\n };\n\n /**\n * Apply position resolution.\n * @method postSolvePosition\n * @param {body[]} bodies\n */\n Resolver.postSolvePosition = function(bodies) {\n var positionWarming = Resolver._positionWarming,\n bodiesLength = bodies.length,\n verticesTranslate = Vertices.translate,\n boundsUpdate = Bounds.update;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i],\n positionImpulse = body.positionImpulse,\n positionImpulseX = positionImpulse.x,\n positionImpulseY = positionImpulse.y,\n velocity = body.velocity;\n\n // reset contact count\n body.totalContacts = 0;\n\n if (positionImpulseX !== 0 || positionImpulseY !== 0) {\n // update body geometry\n for (var j = 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n verticesTranslate(part.vertices, positionImpulse);\n boundsUpdate(part.bounds, part.vertices, velocity);\n part.position.x += positionImpulseX;\n part.position.y += positionImpulseY;\n }\n\n // move the body without changing velocity\n body.positionPrev.x += positionImpulseX;\n body.positionPrev.y += positionImpulseY;\n\n if (positionImpulseX * velocity.x + positionImpulseY * velocity.y < 0) {\n // reset cached impulse if the body has velocity along it\n positionImpulse.x = 0;\n positionImpulse.y = 0;\n } else {\n // warm the next iteration\n positionImpulse.x *= positionWarming;\n positionImpulse.y *= positionWarming;\n }\n }\n }\n };\n\n /**\n * Prepare pairs for velocity solving.\n * @method preSolveVelocity\n * @param {pair[]} pairs\n */\n Resolver.preSolveVelocity = function(pairs) {\n var pairsLength = pairs.length,\n i,\n j;\n \n for (i = 0; i < pairsLength; i++) {\n var pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n \n var contacts = pair.activeContacts,\n contactsLength = contacts.length,\n collision = pair.collision,\n bodyA = collision.parentA,\n bodyB = collision.parentB,\n normal = collision.normal,\n tangent = collision.tangent;\n \n // resolve each contact\n for (j = 0; j < contactsLength; j++) {\n var contact = contacts[j],\n contactVertex = contact.vertex,\n normalImpulse = contact.normalImpulse,\n tangentImpulse = contact.tangentImpulse;\n \n if (normalImpulse !== 0 || tangentImpulse !== 0) {\n // total impulse from contact\n var impulseX = normal.x * normalImpulse + tangent.x * tangentImpulse,\n impulseY = normal.y * normalImpulse + tangent.y * tangentImpulse;\n \n // apply impulse from contact\n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n bodyA.positionPrev.x += impulseX * bodyA.inverseMass;\n bodyA.positionPrev.y += impulseY * bodyA.inverseMass;\n bodyA.anglePrev += bodyA.inverseInertia * (\n (contactVertex.x - bodyA.position.x) * impulseY\n - (contactVertex.y - bodyA.position.y) * impulseX\n );\n }\n \n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n bodyB.positionPrev.x -= impulseX * bodyB.inverseMass;\n bodyB.positionPrev.y -= impulseY * bodyB.inverseMass;\n bodyB.anglePrev -= bodyB.inverseInertia * (\n (contactVertex.x - bodyB.position.x) * impulseY \n - (contactVertex.y - bodyB.position.y) * impulseX\n );\n }\n }\n }\n }\n };\n\n /**\n * Find a solution for pair velocities.\n * @method solveVelocity\n * @param {pair[]} pairs\n * @param {number} delta\n */\n Resolver.solveVelocity = function(pairs, delta) {\n var timeScale = delta / Common._baseDelta,\n timeScaleSquared = timeScale * timeScale,\n timeScaleCubed = timeScaleSquared * timeScale,\n restingThresh = -Resolver._restingThresh * timeScale,\n restingThreshTangent = Resolver._restingThreshTangent,\n frictionNormalMultiplier = Resolver._frictionNormalMultiplier * timeScale,\n frictionMaxStatic = Resolver._frictionMaxStatic,\n pairsLength = pairs.length,\n tangentImpulse,\n maxFriction,\n i,\n j;\n\n for (i = 0; i < pairsLength; i++) {\n var pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n \n var collision = pair.collision,\n bodyA = collision.parentA,\n bodyB = collision.parentB,\n bodyAVelocity = bodyA.velocity,\n bodyBVelocity = bodyB.velocity,\n normalX = collision.normal.x,\n normalY = collision.normal.y,\n tangentX = collision.tangent.x,\n tangentY = collision.tangent.y,\n contacts = pair.activeContacts,\n contactsLength = contacts.length,\n contactShare = 1 / contactsLength,\n inverseMassTotal = bodyA.inverseMass + bodyB.inverseMass,\n friction = pair.friction * pair.frictionStatic * frictionNormalMultiplier;\n\n // update body velocities\n bodyAVelocity.x = bodyA.position.x - bodyA.positionPrev.x;\n bodyAVelocity.y = bodyA.position.y - bodyA.positionPrev.y;\n bodyBVelocity.x = bodyB.position.x - bodyB.positionPrev.x;\n bodyBVelocity.y = bodyB.position.y - bodyB.positionPrev.y;\n bodyA.angularVelocity = bodyA.angle - bodyA.anglePrev;\n bodyB.angularVelocity = bodyB.angle - bodyB.anglePrev;\n\n // resolve each contact\n for (j = 0; j < contactsLength; j++) {\n var contact = contacts[j],\n contactVertex = contact.vertex;\n\n var offsetAX = contactVertex.x - bodyA.position.x,\n offsetAY = contactVertex.y - bodyA.position.y,\n offsetBX = contactVertex.x - bodyB.position.x,\n offsetBY = contactVertex.y - bodyB.position.y;\n \n var velocityPointAX = bodyAVelocity.x - offsetAY * bodyA.angularVelocity,\n velocityPointAY = bodyAVelocity.y + offsetAX * bodyA.angularVelocity,\n velocityPointBX = bodyBVelocity.x - offsetBY * bodyB.angularVelocity,\n velocityPointBY = bodyBVelocity.y + offsetBX * bodyB.angularVelocity;\n\n var relativeVelocityX = velocityPointAX - velocityPointBX,\n relativeVelocityY = velocityPointAY - velocityPointBY;\n\n var normalVelocity = normalX * relativeVelocityX + normalY * relativeVelocityY,\n tangentVelocity = tangentX * relativeVelocityX + tangentY * relativeVelocityY;\n\n // coulomb friction\n var normalOverlap = pair.separation + normalVelocity;\n var normalForce = Math.min(normalOverlap, 1);\n normalForce = normalOverlap < 0 ? 0 : normalForce;\n\n var frictionLimit = normalForce * friction;\n\n if (tangentVelocity < -frictionLimit || tangentVelocity > frictionLimit) {\n maxFriction = (tangentVelocity > 0 ? tangentVelocity : -tangentVelocity);\n tangentImpulse = pair.friction * (tangentVelocity > 0 ? 1 : -1) * timeScaleCubed;\n \n if (tangentImpulse < -maxFriction) {\n tangentImpulse = -maxFriction;\n } else if (tangentImpulse > maxFriction) {\n tangentImpulse = maxFriction;\n }\n } else {\n tangentImpulse = tangentVelocity;\n maxFriction = frictionMaxStatic;\n }\n\n // account for mass, inertia and contact offset\n var oAcN = offsetAX * normalY - offsetAY * normalX,\n oBcN = offsetBX * normalY - offsetBY * normalX,\n share = contactShare / (inverseMassTotal + bodyA.inverseInertia * oAcN * oAcN + bodyB.inverseInertia * oBcN * oBcN);\n\n // raw impulses\n var normalImpulse = (1 + pair.restitution) * normalVelocity * share;\n tangentImpulse *= share;\n\n // handle high velocity and resting collisions separately\n if (normalVelocity < restingThresh) {\n // high normal velocity so clear cached contact normal impulse\n contact.normalImpulse = 0;\n } else {\n // solve resting collision constraints using Erin Catto's method (GDC08)\n // impulse constraint tends to 0\n var contactNormalImpulse = contact.normalImpulse;\n contact.normalImpulse += normalImpulse;\n if (contact.normalImpulse > 0) contact.normalImpulse = 0;\n normalImpulse = contact.normalImpulse - contactNormalImpulse;\n }\n\n // handle high velocity and resting collisions separately\n if (tangentVelocity < -restingThreshTangent || tangentVelocity > restingThreshTangent) {\n // high tangent velocity so clear cached contact tangent impulse\n contact.tangentImpulse = 0;\n } else {\n // solve resting collision constraints using Erin Catto's method (GDC08)\n // tangent impulse tends to -tangentSpeed or +tangentSpeed\n var contactTangentImpulse = contact.tangentImpulse;\n contact.tangentImpulse += tangentImpulse;\n if (contact.tangentImpulse < -maxFriction) contact.tangentImpulse = -maxFriction;\n if (contact.tangentImpulse > maxFriction) contact.tangentImpulse = maxFriction;\n tangentImpulse = contact.tangentImpulse - contactTangentImpulse;\n }\n\n // total impulse from contact\n var impulseX = normalX * normalImpulse + tangentX * tangentImpulse,\n impulseY = normalY * normalImpulse + tangentY * tangentImpulse;\n \n // apply impulse from contact\n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n bodyA.positionPrev.x += impulseX * bodyA.inverseMass;\n bodyA.positionPrev.y += impulseY * bodyA.inverseMass;\n bodyA.anglePrev += (offsetAX * impulseY - offsetAY * impulseX) * bodyA.inverseInertia;\n }\n\n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n bodyB.positionPrev.x -= impulseX * bodyB.inverseMass;\n bodyB.positionPrev.y -= impulseY * bodyB.inverseMass;\n bodyB.anglePrev -= (offsetBX * impulseY - offsetBY * impulseX) * bodyB.inverseInertia;\n }\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Pairs` module contains methods for creating and manipulating collision pair sets.\n*\n* @class Pairs\n*/\n\nvar Pairs = {};\n\nmodule.exports = Pairs;\n\nvar Pair = __webpack_require__(9);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new pairs structure.\n * @method create\n * @param {object} options\n * @return {pairs} A new pairs structure\n */\n Pairs.create = function(options) {\n return Common.extend({ \n table: {},\n list: [],\n collisionStart: [],\n collisionActive: [],\n collisionEnd: []\n }, options);\n };\n\n /**\n * Updates pairs given a list of collisions.\n * @method update\n * @param {object} pairs\n * @param {collision[]} collisions\n * @param {number} timestamp\n */\n Pairs.update = function(pairs, collisions, timestamp) {\n var pairsList = pairs.list,\n pairsListLength = pairsList.length,\n pairsTable = pairs.table,\n collisionsLength = collisions.length,\n collisionStart = pairs.collisionStart,\n collisionEnd = pairs.collisionEnd,\n collisionActive = pairs.collisionActive,\n collision,\n pairIndex,\n pair,\n i;\n\n // clear collision state arrays, but maintain old reference\n collisionStart.length = 0;\n collisionEnd.length = 0;\n collisionActive.length = 0;\n\n for (i = 0; i < pairsListLength; i++) {\n pairsList[i].confirmedActive = false;\n }\n\n for (i = 0; i < collisionsLength; i++) {\n collision = collisions[i];\n pair = collision.pair;\n\n if (pair) {\n // pair already exists (but may or may not be active)\n if (pair.isActive) {\n // pair exists and is active\n collisionActive.push(pair);\n } else {\n // pair exists but was inactive, so a collision has just started again\n collisionStart.push(pair);\n }\n\n // update the pair\n Pair.update(pair, collision, timestamp);\n pair.confirmedActive = true;\n } else {\n // pair did not exist, create a new pair\n pair = Pair.create(collision, timestamp);\n pairsTable[pair.id] = pair;\n\n // push the new pair\n collisionStart.push(pair);\n pairsList.push(pair);\n }\n }\n\n // find pairs that are no longer active\n var removePairIndex = [];\n pairsListLength = pairsList.length;\n\n for (i = 0; i < pairsListLength; i++) {\n pair = pairsList[i];\n \n if (!pair.confirmedActive) {\n Pair.setActive(pair, false, timestamp);\n collisionEnd.push(pair);\n\n if (!pair.collision.bodyA.isSleeping && !pair.collision.bodyB.isSleeping) {\n removePairIndex.push(i);\n }\n }\n }\n\n // remove inactive pairs\n for (i = 0; i < removePairIndex.length; i++) {\n pairIndex = removePairIndex[i] - i;\n pair = pairsList[pairIndex];\n pairsList.splice(pairIndex, 1);\n delete pairsTable[pair.id];\n }\n };\n\n /**\n * Clears the given pairs structure.\n * @method clear\n * @param {pairs} pairs\n * @return {pairs} pairs\n */\n Pairs.clear = function(pairs) {\n pairs.table = {};\n pairs.list.length = 0;\n pairs.collisionStart.length = 0;\n pairs.collisionActive.length = 0;\n pairs.collisionEnd.length = 0;\n return pairs;\n };\n\n})();\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Matter = module.exports = __webpack_require__(21);\r\n\r\nMatter.Axes = __webpack_require__(11);\r\nMatter.Bodies = __webpack_require__(12);\r\nMatter.Body = __webpack_require__(4);\r\nMatter.Bounds = __webpack_require__(1);\r\nMatter.Collision = __webpack_require__(8);\r\nMatter.Common = __webpack_require__(0);\r\nMatter.Composite = __webpack_require__(6);\r\nMatter.Composites = __webpack_require__(22);\r\nMatter.Constraint = __webpack_require__(10);\r\nMatter.Contact = __webpack_require__(16);\r\nMatter.Detector = __webpack_require__(13);\r\nMatter.Engine = __webpack_require__(17);\r\nMatter.Events = __webpack_require__(5);\r\nMatter.Grid = __webpack_require__(23);\r\nMatter.Mouse = __webpack_require__(14);\r\nMatter.MouseConstraint = __webpack_require__(24);\r\nMatter.Pair = __webpack_require__(9);\r\nMatter.Pairs = __webpack_require__(19);\r\nMatter.Plugin = __webpack_require__(15);\r\nMatter.Query = __webpack_require__(25);\r\nMatter.Render = __webpack_require__(26);\r\nMatter.Resolver = __webpack_require__(18);\r\nMatter.Runner = __webpack_require__(27);\r\nMatter.SAT = __webpack_require__(28);\r\nMatter.Sleeping = __webpack_require__(7);\r\nMatter.Svg = __webpack_require__(29);\r\nMatter.Vector = __webpack_require__(2);\r\nMatter.Vertices = __webpack_require__(3);\r\nMatter.World = __webpack_require__(30);\r\n\r\n// temporary back compatibility\r\nMatter.Engine.run = Matter.Runner.run;\r\nMatter.Common.deprecated(Matter.Engine, 'run', 'Engine.run ➤ use Matter.Runner.run(engine) instead');\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\r\n* The `Matter` module is the top level namespace. It also includes a function for installing plugins on top of the library.\r\n*\r\n* @class Matter\r\n*/\r\n\r\nvar Matter = {};\r\n\r\nmodule.exports = Matter;\r\n\r\nvar Plugin = __webpack_require__(15);\r\nvar Common = __webpack_require__(0);\r\n\r\n(function() {\r\n\r\n /**\r\n * The library name.\r\n * @property name\r\n * @readOnly\r\n * @type {String}\r\n */\r\n Matter.name = 'matter-js';\r\n\r\n /**\r\n * The library version.\r\n * @property version\r\n * @readOnly\r\n * @type {String}\r\n */\r\n Matter.version = true ? \"0.19.0\" : undefined;\r\n\r\n /**\r\n * A list of plugin dependencies to be installed. These are normally set and installed through `Matter.use`.\r\n * Alternatively you may set `Matter.uses` manually and install them by calling `Plugin.use(Matter)`.\r\n * @property uses\r\n * @type {Array}\r\n */\r\n Matter.uses = [];\r\n\r\n /**\r\n * The plugins that have been installed through `Matter.Plugin.install`. Read only.\r\n * @property used\r\n * @readOnly\r\n * @type {Array}\r\n */\r\n Matter.used = [];\r\n\r\n /**\r\n * Installs the given plugins on the `Matter` namespace.\r\n * This is a short-hand for `Plugin.use`, see it for more information.\r\n * Call this function once at the start of your code, with all of the plugins you wish to install as arguments.\r\n * Avoid calling this function multiple times unless you intend to manually control installation order.\r\n * @method use\r\n * @param ...plugin {Function} The plugin(s) to install on `base` (multi-argument).\r\n */\r\n Matter.use = function() {\r\n Plugin.use(Matter, Array.prototype.slice.call(arguments));\r\n };\r\n\r\n /**\r\n * Chains a function to excute before the original function on the given `path` relative to `Matter`.\r\n * See also docs for `Common.chain`.\r\n * @method before\r\n * @param {string} path The path relative to `Matter`\r\n * @param {function} func The function to chain before the original\r\n * @return {function} The chained function that replaced the original\r\n */\r\n Matter.before = function(path, func) {\r\n path = path.replace(/^Matter./, '');\r\n return Common.chainPathBefore(Matter, path, func);\r\n };\r\n\r\n /**\r\n * Chains a function to excute after the original function on the given `path` relative to `Matter`.\r\n * See also docs for `Common.chain`.\r\n * @method after\r\n * @param {string} path The path relative to `Matter`\r\n * @param {function} func The function to chain after the original\r\n * @return {function} The chained function that replaced the original\r\n */\r\n Matter.after = function(path, func) {\r\n path = path.replace(/^Matter./, '');\r\n return Common.chainPathAfter(Matter, path, func);\r\n };\r\n\r\n})();\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Composites` module contains factory methods for creating composite bodies\n* with commonly used configurations (such as stacks and chains).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Composites\n*/\n\nvar Composites = {};\n\nmodule.exports = Composites;\n\nvar Composite = __webpack_require__(6);\nvar Constraint = __webpack_require__(10);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\nvar Bodies = __webpack_require__(12);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Create a new composite containing bodies created in the callback in a grid arrangement.\n * This function uses the body's bounds to prevent overlaps.\n * @method stack\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {function} callback\n * @return {composite} A new composite containing objects created in the callback\n */\n Composites.stack = function(xx, yy, columns, rows, columnGap, rowGap, callback) {\n var stack = Composite.create({ label: 'Stack' }),\n x = xx,\n y = yy,\n lastBody,\n i = 0;\n\n for (var row = 0; row < rows; row++) {\n var maxHeight = 0;\n \n for (var column = 0; column < columns; column++) {\n var body = callback(x, y, column, row, lastBody, i);\n \n if (body) {\n var bodyHeight = body.bounds.max.y - body.bounds.min.y,\n bodyWidth = body.bounds.max.x - body.bounds.min.x; \n\n if (bodyHeight > maxHeight)\n maxHeight = bodyHeight;\n \n Body.translate(body, { x: bodyWidth * 0.5, y: bodyHeight * 0.5 });\n\n x = body.bounds.max.x + columnGap;\n\n Composite.addBody(stack, body);\n \n lastBody = body;\n i += 1;\n } else {\n x += columnGap;\n }\n }\n \n y += maxHeight + rowGap;\n x = xx;\n }\n\n return stack;\n };\n \n /**\n * Chains all bodies in the given composite together using constraints.\n * @method chain\n * @param {composite} composite\n * @param {number} xOffsetA\n * @param {number} yOffsetA\n * @param {number} xOffsetB\n * @param {number} yOffsetB\n * @param {object} options\n * @return {composite} A new composite containing objects chained together with constraints\n */\n Composites.chain = function(composite, xOffsetA, yOffsetA, xOffsetB, yOffsetB, options) {\n var bodies = composite.bodies;\n \n for (var i = 1; i < bodies.length; i++) {\n var bodyA = bodies[i - 1],\n bodyB = bodies[i],\n bodyAHeight = bodyA.bounds.max.y - bodyA.bounds.min.y,\n bodyAWidth = bodyA.bounds.max.x - bodyA.bounds.min.x, \n bodyBHeight = bodyB.bounds.max.y - bodyB.bounds.min.y,\n bodyBWidth = bodyB.bounds.max.x - bodyB.bounds.min.x;\n \n var defaults = {\n bodyA: bodyA,\n pointA: { x: bodyAWidth * xOffsetA, y: bodyAHeight * yOffsetA },\n bodyB: bodyB,\n pointB: { x: bodyBWidth * xOffsetB, y: bodyBHeight * yOffsetB }\n };\n \n var constraint = Common.extend(defaults, options);\n \n Composite.addConstraint(composite, Constraint.create(constraint));\n }\n\n composite.label += ' Chain';\n \n return composite;\n };\n\n /**\n * Connects bodies in the composite with constraints in a grid pattern, with optional cross braces.\n * @method mesh\n * @param {composite} composite\n * @param {number} columns\n * @param {number} rows\n * @param {boolean} crossBrace\n * @param {object} options\n * @return {composite} The composite containing objects meshed together with constraints\n */\n Composites.mesh = function(composite, columns, rows, crossBrace, options) {\n var bodies = composite.bodies,\n row,\n col,\n bodyA,\n bodyB,\n bodyC;\n \n for (row = 0; row < rows; row++) {\n for (col = 1; col < columns; col++) {\n bodyA = bodies[(col - 1) + (row * columns)];\n bodyB = bodies[col + (row * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options)));\n }\n\n if (row > 0) {\n for (col = 0; col < columns; col++) {\n bodyA = bodies[col + ((row - 1) * columns)];\n bodyB = bodies[col + (row * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options)));\n\n if (crossBrace && col > 0) {\n bodyC = bodies[(col - 1) + ((row - 1) * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options)));\n }\n\n if (crossBrace && col < columns - 1) {\n bodyC = bodies[(col + 1) + ((row - 1) * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options)));\n }\n }\n }\n }\n\n composite.label += ' Mesh';\n \n return composite;\n };\n \n /**\n * Create a new composite containing bodies created in the callback in a pyramid arrangement.\n * This function uses the body's bounds to prevent overlaps.\n * @method pyramid\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {function} callback\n * @return {composite} A new composite containing objects created in the callback\n */\n Composites.pyramid = function(xx, yy, columns, rows, columnGap, rowGap, callback) {\n return Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y, column, row, lastBody, i) {\n var actualRows = Math.min(rows, Math.ceil(columns / 2)),\n lastBodyWidth = lastBody ? lastBody.bounds.max.x - lastBody.bounds.min.x : 0;\n \n if (row > actualRows)\n return;\n \n // reverse row order\n row = actualRows - row;\n \n var start = row,\n end = columns - 1 - row;\n\n if (column < start || column > end)\n return;\n \n // retroactively fix the first body's position, since width was unknown\n if (i === 1) {\n Body.translate(lastBody, { x: (column + (columns % 2 === 1 ? 1 : -1)) * lastBodyWidth, y: 0 });\n }\n\n var xOffset = lastBody ? column * lastBodyWidth : 0;\n \n return callback(xx + xOffset + column * columnGap, y, column, row, lastBody, i);\n });\n };\n\n /**\n * This has now moved to the [newtonsCradle example](https://github.com/liabru/matter-js/blob/master/examples/newtonsCradle.js), follow that instead as this function is deprecated here.\n * @deprecated moved to newtonsCradle example\n * @method newtonsCradle\n * @param {number} xx\n * @param {number} yy\n * @param {number} number\n * @param {number} size\n * @param {number} length\n * @return {composite} A new composite newtonsCradle body\n */\n Composites.newtonsCradle = function(xx, yy, number, size, length) {\n var newtonsCradle = Composite.create({ label: 'Newtons Cradle' });\n\n for (var i = 0; i < number; i++) {\n var separation = 1.9,\n circle = Bodies.circle(xx + i * (size * separation), yy + length, size, \n { inertia: Infinity, restitution: 1, friction: 0, frictionAir: 0.0001, slop: 1 }),\n constraint = Constraint.create({ pointA: { x: xx + i * (size * separation), y: yy }, bodyB: circle });\n\n Composite.addBody(newtonsCradle, circle);\n Composite.addConstraint(newtonsCradle, constraint);\n }\n\n return newtonsCradle;\n };\n\n deprecated(Composites, 'newtonsCradle', 'Composites.newtonsCradle ➤ moved to newtonsCradle example');\n \n /**\n * This has now moved to the [car example](https://github.com/liabru/matter-js/blob/master/examples/car.js), follow that instead as this function is deprecated here.\n * @deprecated moved to car example\n * @method car\n * @param {number} xx\n * @param {number} yy\n * @param {number} width\n * @param {number} height\n * @param {number} wheelSize\n * @return {composite} A new composite car body\n */\n Composites.car = function(xx, yy, width, height, wheelSize) {\n var group = Body.nextGroup(true),\n wheelBase = 20,\n wheelAOffset = -width * 0.5 + wheelBase,\n wheelBOffset = width * 0.5 - wheelBase,\n wheelYOffset = 0;\n \n var car = Composite.create({ label: 'Car' }),\n body = Bodies.rectangle(xx, yy, width, height, { \n collisionFilter: {\n group: group\n },\n chamfer: {\n radius: height * 0.5\n },\n density: 0.0002\n });\n \n var wheelA = Bodies.circle(xx + wheelAOffset, yy + wheelYOffset, wheelSize, { \n collisionFilter: {\n group: group\n },\n friction: 0.8\n });\n \n var wheelB = Bodies.circle(xx + wheelBOffset, yy + wheelYOffset, wheelSize, { \n collisionFilter: {\n group: group\n },\n friction: 0.8\n });\n \n var axelA = Constraint.create({\n bodyB: body,\n pointB: { x: wheelAOffset, y: wheelYOffset },\n bodyA: wheelA,\n stiffness: 1,\n length: 0\n });\n \n var axelB = Constraint.create({\n bodyB: body,\n pointB: { x: wheelBOffset, y: wheelYOffset },\n bodyA: wheelB,\n stiffness: 1,\n length: 0\n });\n \n Composite.addBody(car, body);\n Composite.addBody(car, wheelA);\n Composite.addBody(car, wheelB);\n Composite.addConstraint(car, axelA);\n Composite.addConstraint(car, axelB);\n\n return car;\n };\n\n deprecated(Composites, 'car', 'Composites.car ➤ moved to car example');\n\n /**\n * This has now moved to the [softBody example](https://github.com/liabru/matter-js/blob/master/examples/softBody.js)\n * and the [cloth example](https://github.com/liabru/matter-js/blob/master/examples/cloth.js), follow those instead as this function is deprecated here.\n * @deprecated moved to softBody and cloth examples\n * @method softBody\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {boolean} crossBrace\n * @param {number} particleRadius\n * @param {} particleOptions\n * @param {} constraintOptions\n * @return {composite} A new composite softBody\n */\n Composites.softBody = function(xx, yy, columns, rows, columnGap, rowGap, crossBrace, particleRadius, particleOptions, constraintOptions) {\n particleOptions = Common.extend({ inertia: Infinity }, particleOptions);\n constraintOptions = Common.extend({ stiffness: 0.2, render: { type: 'line', anchors: false } }, constraintOptions);\n\n var softBody = Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y) {\n return Bodies.circle(x, y, particleRadius, particleOptions);\n });\n\n Composites.mesh(softBody, columns, rows, crossBrace, constraintOptions);\n\n softBody.label = 'Soft Body';\n\n return softBody;\n };\n\n deprecated(Composites, 'softBody', 'Composites.softBody ➤ moved to softBody and cloth examples');\n})();\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Detector`.\n*\n* All usage should be migrated to `Matter.Detector` or another alternative.\n* For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n*\n* The `Matter.Grid` module contains methods for creating and manipulating collision broadphase grid structures.\n*\n* @class Grid\n* @deprecated\n*/\n\nvar Grid = {};\n\nmodule.exports = Grid;\n\nvar Pair = __webpack_require__(9);\nvar Common = __webpack_require__(0);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Creates a new grid.\n * @deprecated replaced by Matter.Detector\n * @method create\n * @param {} options\n * @return {grid} A new grid\n */\n Grid.create = function(options) {\n var defaults = {\n buckets: {},\n pairs: {},\n pairsList: [],\n bucketWidth: 48,\n bucketHeight: 48\n };\n\n return Common.extend(defaults, options);\n };\n\n /**\n * The width of a single grid bucket.\n *\n * @property bucketWidth\n * @type number\n * @default 48\n */\n\n /**\n * The height of a single grid bucket.\n *\n * @property bucketHeight\n * @type number\n * @default 48\n */\n\n /**\n * Updates the grid.\n * @deprecated replaced by Matter.Detector\n * @method update\n * @param {grid} grid\n * @param {body[]} bodies\n * @param {engine} engine\n * @param {boolean} forceUpdate\n */\n Grid.update = function(grid, bodies, engine, forceUpdate) {\n var i, col, row,\n world = engine.world,\n buckets = grid.buckets,\n bucket,\n bucketId,\n gridChanged = false;\n\n for (i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (body.isSleeping && !forceUpdate)\n continue;\n\n // temporary back compatibility bounds check\n if (world.bounds && (body.bounds.max.x < world.bounds.min.x || body.bounds.min.x > world.bounds.max.x\n || body.bounds.max.y < world.bounds.min.y || body.bounds.min.y > world.bounds.max.y))\n continue;\n\n var newRegion = Grid._getRegion(grid, body);\n\n // if the body has changed grid region\n if (!body.region || newRegion.id !== body.region.id || forceUpdate) {\n\n if (!body.region || forceUpdate)\n body.region = newRegion;\n\n var union = Grid._regionUnion(newRegion, body.region);\n\n // update grid buckets affected by region change\n // iterate over the union of both regions\n for (col = union.startCol; col <= union.endCol; col++) {\n for (row = union.startRow; row <= union.endRow; row++) {\n bucketId = Grid._getBucketId(col, row);\n bucket = buckets[bucketId];\n\n var isInsideNewRegion = (col >= newRegion.startCol && col <= newRegion.endCol\n && row >= newRegion.startRow && row <= newRegion.endRow);\n\n var isInsideOldRegion = (col >= body.region.startCol && col <= body.region.endCol\n && row >= body.region.startRow && row <= body.region.endRow);\n\n // remove from old region buckets\n if (!isInsideNewRegion && isInsideOldRegion) {\n if (isInsideOldRegion) {\n if (bucket)\n Grid._bucketRemoveBody(grid, bucket, body);\n }\n }\n\n // add to new region buckets\n if (body.region === newRegion || (isInsideNewRegion && !isInsideOldRegion) || forceUpdate) {\n if (!bucket)\n bucket = Grid._createBucket(buckets, bucketId);\n Grid._bucketAddBody(grid, bucket, body);\n }\n }\n }\n\n // set the new region\n body.region = newRegion;\n\n // flag changes so we can update pairs\n gridChanged = true;\n }\n }\n\n // update pairs list only if pairs changed (i.e. a body changed region)\n if (gridChanged)\n grid.pairsList = Grid._createActivePairsList(grid);\n };\n\n deprecated(Grid, 'update', 'Grid.update ➤ replaced by Matter.Detector');\n\n /**\n * Clears the grid.\n * @deprecated replaced by Matter.Detector\n * @method clear\n * @param {grid} grid\n */\n Grid.clear = function(grid) {\n grid.buckets = {};\n grid.pairs = {};\n grid.pairsList = [];\n };\n\n deprecated(Grid, 'clear', 'Grid.clear ➤ replaced by Matter.Detector');\n\n /**\n * Finds the union of two regions.\n * @method _regionUnion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} regionA\n * @param {} regionB\n * @return {} region\n */\n Grid._regionUnion = function(regionA, regionB) {\n var startCol = Math.min(regionA.startCol, regionB.startCol),\n endCol = Math.max(regionA.endCol, regionB.endCol),\n startRow = Math.min(regionA.startRow, regionB.startRow),\n endRow = Math.max(regionA.endRow, regionB.endRow);\n\n return Grid._createRegion(startCol, endCol, startRow, endRow);\n };\n\n /**\n * Gets the region a given body falls in for a given grid.\n * @method _getRegion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} body\n * @return {} region\n */\n Grid._getRegion = function(grid, body) {\n var bounds = body.bounds,\n startCol = Math.floor(bounds.min.x / grid.bucketWidth),\n endCol = Math.floor(bounds.max.x / grid.bucketWidth),\n startRow = Math.floor(bounds.min.y / grid.bucketHeight),\n endRow = Math.floor(bounds.max.y / grid.bucketHeight);\n\n return Grid._createRegion(startCol, endCol, startRow, endRow);\n };\n\n /**\n * Creates a region.\n * @method _createRegion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} startCol\n * @param {} endCol\n * @param {} startRow\n * @param {} endRow\n * @return {} region\n */\n Grid._createRegion = function(startCol, endCol, startRow, endRow) {\n return { \n id: startCol + ',' + endCol + ',' + startRow + ',' + endRow,\n startCol: startCol, \n endCol: endCol, \n startRow: startRow, \n endRow: endRow \n };\n };\n\n /**\n * Gets the bucket id at the given position.\n * @method _getBucketId\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} column\n * @param {} row\n * @return {string} bucket id\n */\n Grid._getBucketId = function(column, row) {\n return 'C' + column + 'R' + row;\n };\n\n /**\n * Creates a bucket.\n * @method _createBucket\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} buckets\n * @param {} bucketId\n * @return {} bucket\n */\n Grid._createBucket = function(buckets, bucketId) {\n var bucket = buckets[bucketId] = [];\n return bucket;\n };\n\n /**\n * Adds a body to a bucket.\n * @method _bucketAddBody\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} bucket\n * @param {} body\n */\n Grid._bucketAddBody = function(grid, bucket, body) {\n var gridPairs = grid.pairs,\n pairId = Pair.id,\n bucketLength = bucket.length,\n i;\n\n // add new pairs\n for (i = 0; i < bucketLength; i++) {\n var bodyB = bucket[i];\n\n if (body.id === bodyB.id || (body.isStatic && bodyB.isStatic))\n continue;\n\n // keep track of the number of buckets the pair exists in\n // important for Grid.update to work\n var id = pairId(body, bodyB),\n pair = gridPairs[id];\n\n if (pair) {\n pair[2] += 1;\n } else {\n gridPairs[id] = [body, bodyB, 1];\n }\n }\n\n // add to bodies (after pairs, otherwise pairs with self)\n bucket.push(body);\n };\n\n /**\n * Removes a body from a bucket.\n * @method _bucketRemoveBody\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} bucket\n * @param {} body\n */\n Grid._bucketRemoveBody = function(grid, bucket, body) {\n var gridPairs = grid.pairs,\n pairId = Pair.id,\n i;\n\n // remove from bucket\n bucket.splice(Common.indexOf(bucket, body), 1);\n\n var bucketLength = bucket.length;\n\n // update pair counts\n for (i = 0; i < bucketLength; i++) {\n // keep track of the number of buckets the pair exists in\n // important for _createActivePairsList to work\n var pair = gridPairs[pairId(body, bucket[i])];\n\n if (pair)\n pair[2] -= 1;\n }\n };\n\n /**\n * Generates a list of the active pairs in the grid.\n * @method _createActivePairsList\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @return [] pairs\n */\n Grid._createActivePairsList = function(grid) {\n var pair,\n gridPairs = grid.pairs,\n pairKeys = Common.keys(gridPairs),\n pairKeysLength = pairKeys.length,\n pairs = [],\n k;\n\n // iterate over grid.pairs\n for (k = 0; k < pairKeysLength; k++) {\n pair = gridPairs[pairKeys[k]];\n\n // if pair exists in at least one bucket\n // it is a pair that needs further collision testing so push it\n if (pair[2] > 0) {\n pairs.push(pair);\n } else {\n delete gridPairs[pairKeys[k]];\n }\n }\n\n return pairs;\n };\n \n})();\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.MouseConstraint` module contains methods for creating mouse constraints.\n* Mouse constraints are used for allowing user interaction, providing the ability to move bodies via the mouse or touch.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class MouseConstraint\n*/\n\nvar MouseConstraint = {};\n\nmodule.exports = MouseConstraint;\n\nvar Vertices = __webpack_require__(3);\nvar Sleeping = __webpack_require__(7);\nvar Mouse = __webpack_require__(14);\nvar Events = __webpack_require__(5);\nvar Detector = __webpack_require__(13);\nvar Constraint = __webpack_require__(10);\nvar Composite = __webpack_require__(6);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\n\n(function() {\n\n /**\n * Creates a new mouse constraint.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {engine} engine\n * @param {} options\n * @return {MouseConstraint} A new MouseConstraint\n */\n MouseConstraint.create = function(engine, options) {\n var mouse = (engine ? engine.mouse : null) || (options ? options.mouse : null);\n\n if (!mouse) {\n if (engine && engine.render && engine.render.canvas) {\n mouse = Mouse.create(engine.render.canvas);\n } else if (options && options.element) {\n mouse = Mouse.create(options.element);\n } else {\n mouse = Mouse.create();\n Common.warn('MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected');\n }\n }\n\n var constraint = Constraint.create({ \n label: 'Mouse Constraint',\n pointA: mouse.position,\n pointB: { x: 0, y: 0 },\n length: 0.01, \n stiffness: 0.1,\n angularStiffness: 1,\n render: {\n strokeStyle: '#90EE90',\n lineWidth: 3\n }\n });\n\n var defaults = {\n type: 'mouseConstraint',\n mouse: mouse,\n element: null,\n body: null,\n constraint: constraint,\n collisionFilter: {\n category: 0x0001,\n mask: 0xFFFFFFFF,\n group: 0\n }\n };\n\n var mouseConstraint = Common.extend(defaults, options);\n\n Events.on(engine, 'beforeUpdate', function() {\n var allBodies = Composite.allBodies(engine.world);\n MouseConstraint.update(mouseConstraint, allBodies);\n MouseConstraint._triggerEvents(mouseConstraint);\n });\n\n return mouseConstraint;\n };\n\n /**\n * Updates the given mouse constraint.\n * @private\n * @method update\n * @param {MouseConstraint} mouseConstraint\n * @param {body[]} bodies\n */\n MouseConstraint.update = function(mouseConstraint, bodies) {\n var mouse = mouseConstraint.mouse,\n constraint = mouseConstraint.constraint,\n body = mouseConstraint.body;\n\n if (mouse.button === 0) {\n if (!constraint.bodyB) {\n for (var i = 0; i < bodies.length; i++) {\n body = bodies[i];\n if (Bounds.contains(body.bounds, mouse.position) \n && Detector.canCollide(body.collisionFilter, mouseConstraint.collisionFilter)) {\n for (var j = body.parts.length > 1 ? 1 : 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n if (Vertices.contains(part.vertices, mouse.position)) {\n constraint.pointA = mouse.position;\n constraint.bodyB = mouseConstraint.body = body;\n constraint.pointB = { x: mouse.position.x - body.position.x, y: mouse.position.y - body.position.y };\n constraint.angleB = body.angle;\n\n Sleeping.set(body, false);\n Events.trigger(mouseConstraint, 'startdrag', { mouse: mouse, body: body });\n\n break;\n }\n }\n }\n }\n } else {\n Sleeping.set(constraint.bodyB, false);\n constraint.pointA = mouse.position;\n }\n } else {\n constraint.bodyB = mouseConstraint.body = null;\n constraint.pointB = null;\n\n if (body)\n Events.trigger(mouseConstraint, 'enddrag', { mouse: mouse, body: body });\n }\n };\n\n /**\n * Triggers mouse constraint events.\n * @method _triggerEvents\n * @private\n * @param {mouse} mouseConstraint\n */\n MouseConstraint._triggerEvents = function(mouseConstraint) {\n var mouse = mouseConstraint.mouse,\n mouseEvents = mouse.sourceEvents;\n\n if (mouseEvents.mousemove)\n Events.trigger(mouseConstraint, 'mousemove', { mouse: mouse });\n\n if (mouseEvents.mousedown)\n Events.trigger(mouseConstraint, 'mousedown', { mouse: mouse });\n\n if (mouseEvents.mouseup)\n Events.trigger(mouseConstraint, 'mouseup', { mouse: mouse });\n\n // reset the mouse state ready for the next step\n Mouse.clearSourceEvents(mouse);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when the mouse has moved (or a touch moves) during the last step\n *\n * @event mousemove\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the mouse is down (or a touch has started) during the last step\n *\n * @event mousedown\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the mouse is up (or a touch has ended) during the last step\n *\n * @event mouseup\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the user starts dragging a body\n *\n * @event startdrag\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {body} event.body The body being dragged\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the user ends dragging a body\n *\n * @event enddrag\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {body} event.body The body that has stopped being dragged\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"constraint\"\n * @readOnly\n */\n\n /**\n * The `Mouse` instance in use. If not supplied in `MouseConstraint.create`, one will be created.\n *\n * @property mouse\n * @type mouse\n * @default mouse\n */\n\n /**\n * The `Body` that is currently being moved by the user, or `null` if no body.\n *\n * @property body\n * @type body\n * @default null\n */\n\n /**\n * The `Constraint` object that is used to move the body during interaction.\n *\n * @property constraint\n * @type constraint\n */\n\n /**\n * An `Object` that specifies the collision filter properties.\n * The collision filter allows the user to define which types of body this mouse constraint can interact with.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter\n * @type object\n */\n\n})();\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Query` module contains methods for performing collision queries.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Query\n*/\n\nvar Query = {};\n\nmodule.exports = Query;\n\nvar Vector = __webpack_require__(2);\nvar Collision = __webpack_require__(8);\nvar Bounds = __webpack_require__(1);\nvar Bodies = __webpack_require__(12);\nvar Vertices = __webpack_require__(3);\n\n(function() {\n\n /**\n * Returns a list of collisions between `body` and `bodies`.\n * @method collides\n * @param {body} body\n * @param {body[]} bodies\n * @return {collision[]} Collisions\n */\n Query.collides = function(body, bodies) {\n var collisions = [],\n bodiesLength = bodies.length,\n bounds = body.bounds,\n collides = Collision.collides,\n overlaps = Bounds.overlaps;\n\n for (var i = 0; i < bodiesLength; i++) {\n var bodyA = bodies[i],\n partsALength = bodyA.parts.length,\n partsAStart = partsALength === 1 ? 0 : 1;\n \n if (overlaps(bodyA.bounds, bounds)) {\n for (var j = partsAStart; j < partsALength; j++) {\n var part = bodyA.parts[j];\n\n if (overlaps(part.bounds, bounds)) {\n var collision = collides(part, body);\n\n if (collision) {\n collisions.push(collision);\n break;\n }\n }\n }\n }\n }\n\n return collisions;\n };\n\n /**\n * Casts a ray segment against a set of bodies and returns all collisions, ray width is optional. Intersection points are not provided.\n * @method ray\n * @param {body[]} bodies\n * @param {vector} startPoint\n * @param {vector} endPoint\n * @param {number} [rayWidth]\n * @return {collision[]} Collisions\n */\n Query.ray = function(bodies, startPoint, endPoint, rayWidth) {\n rayWidth = rayWidth || 1e-100;\n\n var rayAngle = Vector.angle(startPoint, endPoint),\n rayLength = Vector.magnitude(Vector.sub(startPoint, endPoint)),\n rayX = (endPoint.x + startPoint.x) * 0.5,\n rayY = (endPoint.y + startPoint.y) * 0.5,\n ray = Bodies.rectangle(rayX, rayY, rayLength, rayWidth, { angle: rayAngle }),\n collisions = Query.collides(ray, bodies);\n\n for (var i = 0; i < collisions.length; i += 1) {\n var collision = collisions[i];\n collision.body = collision.bodyB = collision.bodyA; \n }\n\n return collisions;\n };\n\n /**\n * Returns all bodies whose bounds are inside (or outside if set) the given set of bounds, from the given set of bodies.\n * @method region\n * @param {body[]} bodies\n * @param {bounds} bounds\n * @param {bool} [outside=false]\n * @return {body[]} The bodies matching the query\n */\n Query.region = function(bodies, bounds, outside) {\n var result = [];\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n overlaps = Bounds.overlaps(body.bounds, bounds);\n if ((overlaps && !outside) || (!overlaps && outside))\n result.push(body);\n }\n\n return result;\n };\n\n /**\n * Returns all bodies whose vertices contain the given point, from the given set of bodies.\n * @method point\n * @param {body[]} bodies\n * @param {vector} point\n * @return {body[]} The bodies matching the query\n */\n Query.point = function(bodies, point) {\n var result = [];\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n \n if (Bounds.contains(body.bounds, point)) {\n for (var j = body.parts.length === 1 ? 0 : 1; j < body.parts.length; j++) {\n var part = body.parts[j];\n\n if (Bounds.contains(part.bounds, point)\n && Vertices.contains(part.vertices, point)) {\n result.push(body);\n break;\n }\n }\n }\n }\n\n return result;\n };\n\n})();\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Render` module is a simple canvas based renderer for visualising instances of `Matter.Engine`.\n* It is intended for development and debugging purposes, but may also be suitable for simple games.\n* It includes a number of drawing options including wireframe, vector with support for sprites and viewports.\n*\n* @class Render\n*/\n\nvar Render = {};\n\nmodule.exports = Render;\n\nvar Body = __webpack_require__(4);\nvar Common = __webpack_require__(0);\nvar Composite = __webpack_require__(6);\nvar Bounds = __webpack_require__(1);\nvar Events = __webpack_require__(5);\nvar Vector = __webpack_require__(2);\nvar Mouse = __webpack_require__(14);\n\n(function() {\n\n var _requestAnimationFrame,\n _cancelAnimationFrame;\n\n if (typeof window !== 'undefined') {\n _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame\n || window.mozRequestAnimationFrame || window.msRequestAnimationFrame\n || function(callback){ window.setTimeout(function() { callback(Common.now()); }, 1000 / 60); };\n\n _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame\n || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;\n }\n\n Render._goodFps = 30;\n Render._goodDelta = 1000 / 60;\n\n /**\n * Creates a new renderer. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {object} [options]\n * @return {render} A new renderer\n */\n Render.create = function(options) {\n var defaults = {\n engine: null,\n element: null,\n canvas: null,\n mouse: null,\n frameRequestId: null,\n timing: {\n historySize: 60,\n delta: 0,\n deltaHistory: [],\n lastTime: 0,\n lastTimestamp: 0,\n lastElapsed: 0,\n timestampElapsed: 0,\n timestampElapsedHistory: [],\n engineDeltaHistory: [],\n engineElapsedHistory: [],\n elapsedHistory: []\n },\n options: {\n width: 800,\n height: 600,\n pixelRatio: 1,\n background: '#14151f',\n wireframeBackground: '#14151f',\n hasBounds: !!options.bounds,\n enabled: true,\n wireframes: true,\n showSleeping: true,\n showDebug: false,\n showStats: false,\n showPerformance: false,\n showBounds: false,\n showVelocity: false,\n showCollisions: false,\n showSeparations: false,\n showAxes: false,\n showPositions: false,\n showAngleIndicator: false,\n showIds: false,\n showVertexNumbers: false,\n showConvexHulls: false,\n showInternalEdges: false,\n showMousePosition: false\n }\n };\n\n var render = Common.extend(defaults, options);\n\n if (render.canvas) {\n render.canvas.width = render.options.width || render.canvas.width;\n render.canvas.height = render.options.height || render.canvas.height;\n }\n\n render.mouse = options.mouse;\n render.engine = options.engine;\n render.canvas = render.canvas || _createCanvas(render.options.width, render.options.height);\n render.context = render.canvas.getContext('2d');\n render.textures = {};\n\n render.bounds = render.bounds || {\n min: {\n x: 0,\n y: 0\n },\n max: {\n x: render.canvas.width,\n y: render.canvas.height\n }\n };\n\n // for temporary back compatibility only\n render.controller = Render;\n render.options.showBroadphase = false;\n\n if (render.options.pixelRatio !== 1) {\n Render.setPixelRatio(render, render.options.pixelRatio);\n }\n\n if (Common.isElement(render.element)) {\n render.element.appendChild(render.canvas);\n }\n\n return render;\n };\n\n /**\n * Continuously updates the render canvas on the `requestAnimationFrame` event.\n * @method run\n * @param {render} render\n */\n Render.run = function(render) {\n (function loop(time){\n render.frameRequestId = _requestAnimationFrame(loop);\n \n _updateTiming(render, time);\n\n Render.world(render, time);\n\n if (render.options.showStats || render.options.showDebug) {\n Render.stats(render, render.context, time);\n }\n\n if (render.options.showPerformance || render.options.showDebug) {\n Render.performance(render, render.context, time);\n }\n })();\n };\n\n /**\n * Ends execution of `Render.run` on the given `render`, by canceling the animation frame request event loop.\n * @method stop\n * @param {render} render\n */\n Render.stop = function(render) {\n _cancelAnimationFrame(render.frameRequestId);\n };\n\n /**\n * Sets the pixel ratio of the renderer and updates the canvas.\n * To automatically detect the correct ratio, pass the string `'auto'` for `pixelRatio`.\n * @method setPixelRatio\n * @param {render} render\n * @param {number} pixelRatio\n */\n Render.setPixelRatio = function(render, pixelRatio) {\n var options = render.options,\n canvas = render.canvas;\n\n if (pixelRatio === 'auto') {\n pixelRatio = _getPixelRatio(canvas);\n }\n\n options.pixelRatio = pixelRatio;\n canvas.setAttribute('data-pixel-ratio', pixelRatio);\n canvas.width = options.width * pixelRatio;\n canvas.height = options.height * pixelRatio;\n canvas.style.width = options.width + 'px';\n canvas.style.height = options.height + 'px';\n };\n\n /**\n * Positions and sizes the viewport around the given object bounds.\n * Objects must have at least one of the following properties:\n * - `object.bounds`\n * - `object.position`\n * - `object.min` and `object.max`\n * - `object.x` and `object.y`\n * @method lookAt\n * @param {render} render\n * @param {object[]} objects\n * @param {vector} [padding]\n * @param {bool} [center=true]\n */\n Render.lookAt = function(render, objects, padding, center) {\n center = typeof center !== 'undefined' ? center : true;\n objects = Common.isArray(objects) ? objects : [objects];\n padding = padding || {\n x: 0,\n y: 0\n };\n\n // find bounds of all objects\n var bounds = {\n min: { x: Infinity, y: Infinity },\n max: { x: -Infinity, y: -Infinity }\n };\n\n for (var i = 0; i < objects.length; i += 1) {\n var object = objects[i],\n min = object.bounds ? object.bounds.min : (object.min || object.position || object),\n max = object.bounds ? object.bounds.max : (object.max || object.position || object);\n\n if (min && max) {\n if (min.x < bounds.min.x)\n bounds.min.x = min.x;\n\n if (max.x > bounds.max.x)\n bounds.max.x = max.x;\n\n if (min.y < bounds.min.y)\n bounds.min.y = min.y;\n\n if (max.y > bounds.max.y)\n bounds.max.y = max.y;\n }\n }\n\n // find ratios\n var width = (bounds.max.x - bounds.min.x) + 2 * padding.x,\n height = (bounds.max.y - bounds.min.y) + 2 * padding.y,\n viewHeight = render.canvas.height,\n viewWidth = render.canvas.width,\n outerRatio = viewWidth / viewHeight,\n innerRatio = width / height,\n scaleX = 1,\n scaleY = 1;\n\n // find scale factor\n if (innerRatio > outerRatio) {\n scaleY = innerRatio / outerRatio;\n } else {\n scaleX = outerRatio / innerRatio;\n }\n\n // enable bounds\n render.options.hasBounds = true;\n\n // position and size\n render.bounds.min.x = bounds.min.x;\n render.bounds.max.x = bounds.min.x + width * scaleX;\n render.bounds.min.y = bounds.min.y;\n render.bounds.max.y = bounds.min.y + height * scaleY;\n\n // center\n if (center) {\n render.bounds.min.x += width * 0.5 - (width * scaleX) * 0.5;\n render.bounds.max.x += width * 0.5 - (width * scaleX) * 0.5;\n render.bounds.min.y += height * 0.5 - (height * scaleY) * 0.5;\n render.bounds.max.y += height * 0.5 - (height * scaleY) * 0.5;\n }\n\n // padding\n render.bounds.min.x -= padding.x;\n render.bounds.max.x -= padding.x;\n render.bounds.min.y -= padding.y;\n render.bounds.max.y -= padding.y;\n\n // update mouse\n if (render.mouse) {\n Mouse.setScale(render.mouse, {\n x: (render.bounds.max.x - render.bounds.min.x) / render.canvas.width,\n y: (render.bounds.max.y - render.bounds.min.y) / render.canvas.height\n });\n\n Mouse.setOffset(render.mouse, render.bounds.min);\n }\n };\n\n /**\n * Applies viewport transforms based on `render.bounds` to a render context.\n * @method startViewTransform\n * @param {render} render\n */\n Render.startViewTransform = function(render) {\n var boundsWidth = render.bounds.max.x - render.bounds.min.x,\n boundsHeight = render.bounds.max.y - render.bounds.min.y,\n boundsScaleX = boundsWidth / render.options.width,\n boundsScaleY = boundsHeight / render.options.height;\n\n render.context.setTransform(\n render.options.pixelRatio / boundsScaleX, 0, 0, \n render.options.pixelRatio / boundsScaleY, 0, 0\n );\n \n render.context.translate(-render.bounds.min.x, -render.bounds.min.y);\n };\n\n /**\n * Resets all transforms on the render context.\n * @method endViewTransform\n * @param {render} render\n */\n Render.endViewTransform = function(render) {\n render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0);\n };\n\n /**\n * Renders the given `engine`'s `Matter.World` object.\n * This is the entry point for all rendering and should be called every time the scene changes.\n * @method world\n * @param {render} render\n */\n Render.world = function(render, time) {\n var startTime = Common.now(),\n engine = render.engine,\n world = engine.world,\n canvas = render.canvas,\n context = render.context,\n options = render.options,\n timing = render.timing;\n\n var allBodies = Composite.allBodies(world),\n allConstraints = Composite.allConstraints(world),\n background = options.wireframes ? options.wireframeBackground : options.background,\n bodies = [],\n constraints = [],\n i;\n\n var event = {\n timestamp: engine.timing.timestamp\n };\n\n Events.trigger(render, 'beforeRender', event);\n\n // apply background if it has changed\n if (render.currentBackground !== background)\n _applyBackground(render, background);\n\n // clear the canvas with a transparent fill, to allow the canvas background to show\n context.globalCompositeOperation = 'source-in';\n context.fillStyle = \"transparent\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.globalCompositeOperation = 'source-over';\n\n // handle bounds\n if (options.hasBounds) {\n // filter out bodies that are not in view\n for (i = 0; i < allBodies.length; i++) {\n var body = allBodies[i];\n if (Bounds.overlaps(body.bounds, render.bounds))\n bodies.push(body);\n }\n\n // filter out constraints that are not in view\n for (i = 0; i < allConstraints.length; i++) {\n var constraint = allConstraints[i],\n bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n pointAWorld = constraint.pointA,\n pointBWorld = constraint.pointB;\n\n if (bodyA) pointAWorld = Vector.add(bodyA.position, constraint.pointA);\n if (bodyB) pointBWorld = Vector.add(bodyB.position, constraint.pointB);\n\n if (!pointAWorld || !pointBWorld)\n continue;\n\n if (Bounds.contains(render.bounds, pointAWorld) || Bounds.contains(render.bounds, pointBWorld))\n constraints.push(constraint);\n }\n\n // transform the view\n Render.startViewTransform(render);\n\n // update mouse\n if (render.mouse) {\n Mouse.setScale(render.mouse, {\n x: (render.bounds.max.x - render.bounds.min.x) / render.options.width,\n y: (render.bounds.max.y - render.bounds.min.y) / render.options.height\n });\n\n Mouse.setOffset(render.mouse, render.bounds.min);\n }\n } else {\n constraints = allConstraints;\n bodies = allBodies;\n\n if (render.options.pixelRatio !== 1) {\n render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0);\n }\n }\n\n if (!options.wireframes || (engine.enableSleeping && options.showSleeping)) {\n // fully featured rendering of bodies\n Render.bodies(render, bodies, context);\n } else {\n if (options.showConvexHulls)\n Render.bodyConvexHulls(render, bodies, context);\n\n // optimised method for wireframes only\n Render.bodyWireframes(render, bodies, context);\n }\n\n if (options.showBounds)\n Render.bodyBounds(render, bodies, context);\n\n if (options.showAxes || options.showAngleIndicator)\n Render.bodyAxes(render, bodies, context);\n\n if (options.showPositions)\n Render.bodyPositions(render, bodies, context);\n\n if (options.showVelocity)\n Render.bodyVelocity(render, bodies, context);\n\n if (options.showIds)\n Render.bodyIds(render, bodies, context);\n\n if (options.showSeparations)\n Render.separations(render, engine.pairs.list, context);\n\n if (options.showCollisions)\n Render.collisions(render, engine.pairs.list, context);\n\n if (options.showVertexNumbers)\n Render.vertexNumbers(render, bodies, context);\n\n if (options.showMousePosition)\n Render.mousePosition(render, render.mouse, context);\n\n Render.constraints(constraints, context);\n\n if (options.hasBounds) {\n // revert view transforms\n Render.endViewTransform(render);\n }\n\n Events.trigger(render, 'afterRender', event);\n\n // log the time elapsed computing this update\n timing.lastElapsed = Common.now() - startTime;\n };\n\n /**\n * Renders statistics about the engine and world useful for debugging.\n * @private\n * @method stats\n * @param {render} render\n * @param {RenderingContext} context\n * @param {Number} time\n */\n Render.stats = function(render, context, time) {\n var engine = render.engine,\n world = engine.world,\n bodies = Composite.allBodies(world),\n parts = 0,\n width = 55,\n height = 44,\n x = 0,\n y = 0;\n \n // count parts\n for (var i = 0; i < bodies.length; i += 1) {\n parts += bodies[i].parts.length;\n }\n\n // sections\n var sections = {\n 'Part': parts,\n 'Body': bodies.length,\n 'Cons': Composite.allConstraints(world).length,\n 'Comp': Composite.allComposites(world).length,\n 'Pair': engine.pairs.list.length\n };\n\n // background\n context.fillStyle = '#0e0f19';\n context.fillRect(x, y, width * 5.5, height);\n\n context.font = '12px Arial';\n context.textBaseline = 'top';\n context.textAlign = 'right';\n\n // sections\n for (var key in sections) {\n var section = sections[key];\n // label\n context.fillStyle = '#aaa';\n context.fillText(key, x + width, y + 8);\n\n // value\n context.fillStyle = '#eee';\n context.fillText(section, x + width, y + 26);\n\n x += width;\n }\n };\n\n /**\n * Renders engine and render performance information.\n * @private\n * @method performance\n * @param {render} render\n * @param {RenderingContext} context\n */\n Render.performance = function(render, context) {\n var engine = render.engine,\n timing = render.timing,\n deltaHistory = timing.deltaHistory,\n elapsedHistory = timing.elapsedHistory,\n timestampElapsedHistory = timing.timestampElapsedHistory,\n engineDeltaHistory = timing.engineDeltaHistory,\n engineElapsedHistory = timing.engineElapsedHistory,\n lastEngineDelta = engine.timing.lastDelta;\n \n var deltaMean = _mean(deltaHistory),\n elapsedMean = _mean(elapsedHistory),\n engineDeltaMean = _mean(engineDeltaHistory),\n engineElapsedMean = _mean(engineElapsedHistory),\n timestampElapsedMean = _mean(timestampElapsedHistory),\n rateMean = (timestampElapsedMean / deltaMean) || 0,\n fps = (1000 / deltaMean) || 0;\n\n var graphHeight = 4,\n gap = 12,\n width = 60,\n height = 34,\n x = 10,\n y = 69;\n\n // background\n context.fillStyle = '#0e0f19';\n context.fillRect(0, 50, gap * 4 + width * 5 + 22, height);\n\n // show FPS\n Render.status(\n context, x, y, width, graphHeight, deltaHistory.length, \n Math.round(fps) + ' fps', \n fps / Render._goodFps,\n function(i) { return (deltaHistory[i] / deltaMean) - 1; }\n );\n\n // show engine delta\n Render.status(\n context, x + gap + width, y, width, graphHeight, engineDeltaHistory.length,\n lastEngineDelta.toFixed(2) + ' dt', \n Render._goodDelta / lastEngineDelta,\n function(i) { return (engineDeltaHistory[i] / engineDeltaMean) - 1; }\n );\n\n // show engine update time\n Render.status(\n context, x + (gap + width) * 2, y, width, graphHeight, engineElapsedHistory.length,\n engineElapsedMean.toFixed(2) + ' ut', \n 1 - (engineElapsedMean / Render._goodFps),\n function(i) { return (engineElapsedHistory[i] / engineElapsedMean) - 1; }\n );\n\n // show render time\n Render.status(\n context, x + (gap + width) * 3, y, width, graphHeight, elapsedHistory.length,\n elapsedMean.toFixed(2) + ' rt', \n 1 - (elapsedMean / Render._goodFps),\n function(i) { return (elapsedHistory[i] / elapsedMean) - 1; }\n );\n\n // show effective speed\n Render.status(\n context, x + (gap + width) * 4, y, width, graphHeight, timestampElapsedHistory.length, \n rateMean.toFixed(2) + ' x', \n rateMean * rateMean * rateMean,\n function(i) { return (((timestampElapsedHistory[i] / deltaHistory[i]) / rateMean) || 0) - 1; }\n );\n };\n\n /**\n * Renders a label, indicator and a chart.\n * @private\n * @method status\n * @param {RenderingContext} context\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {number} count\n * @param {string} label\n * @param {string} indicator\n * @param {function} plotY\n */\n Render.status = function(context, x, y, width, height, count, label, indicator, plotY) {\n // background\n context.strokeStyle = '#888';\n context.fillStyle = '#444';\n context.lineWidth = 1;\n context.fillRect(x, y + 7, width, 1);\n\n // chart\n context.beginPath();\n context.moveTo(x, y + 7 - height * Common.clamp(0.4 * plotY(0), -2, 2));\n for (var i = 0; i < width; i += 1) {\n context.lineTo(x + i, y + 7 - (i < count ? height * Common.clamp(0.4 * plotY(i), -2, 2) : 0));\n }\n context.stroke();\n\n // indicator\n context.fillStyle = 'hsl(' + Common.clamp(25 + 95 * indicator, 0, 120) + ',100%,60%)';\n context.fillRect(x, y - 7, 4, 4);\n\n // label\n context.font = '12px Arial';\n context.textBaseline = 'middle';\n context.textAlign = 'right';\n context.fillStyle = '#eee';\n context.fillText(label, x + width, y - 5);\n };\n\n /**\n * Description\n * @private\n * @method constraints\n * @param {constraint[]} constraints\n * @param {RenderingContext} context\n */\n Render.constraints = function(constraints, context) {\n var c = context;\n\n for (var i = 0; i < constraints.length; i++) {\n var constraint = constraints[i];\n\n if (!constraint.render.visible || !constraint.pointA || !constraint.pointB)\n continue;\n\n var bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n start,\n end;\n\n if (bodyA) {\n start = Vector.add(bodyA.position, constraint.pointA);\n } else {\n start = constraint.pointA;\n }\n\n if (constraint.render.type === 'pin') {\n c.beginPath();\n c.arc(start.x, start.y, 3, 0, 2 * Math.PI);\n c.closePath();\n } else {\n if (bodyB) {\n end = Vector.add(bodyB.position, constraint.pointB);\n } else {\n end = constraint.pointB;\n }\n\n c.beginPath();\n c.moveTo(start.x, start.y);\n\n if (constraint.render.type === 'spring') {\n var delta = Vector.sub(end, start),\n normal = Vector.perp(Vector.normalise(delta)),\n coils = Math.ceil(Common.clamp(constraint.length / 5, 12, 20)),\n offset;\n\n for (var j = 1; j < coils; j += 1) {\n offset = j % 2 === 0 ? 1 : -1;\n\n c.lineTo(\n start.x + delta.x * (j / coils) + normal.x * offset * 4,\n start.y + delta.y * (j / coils) + normal.y * offset * 4\n );\n }\n }\n\n c.lineTo(end.x, end.y);\n }\n\n if (constraint.render.lineWidth) {\n c.lineWidth = constraint.render.lineWidth;\n c.strokeStyle = constraint.render.strokeStyle;\n c.stroke();\n }\n\n if (constraint.render.anchors) {\n c.fillStyle = constraint.render.strokeStyle;\n c.beginPath();\n c.arc(start.x, start.y, 3, 0, 2 * Math.PI);\n c.arc(end.x, end.y, 3, 0, 2 * Math.PI);\n c.closePath();\n c.fill();\n }\n }\n };\n\n /**\n * Description\n * @private\n * @method bodies\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodies = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n showInternalEdges = options.showInternalEdges || !options.wireframes,\n body,\n part,\n i,\n k;\n\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {\n part = body.parts[k];\n\n if (!part.render.visible)\n continue;\n\n if (options.showSleeping && body.isSleeping) {\n c.globalAlpha = 0.5 * part.render.opacity;\n } else if (part.render.opacity !== 1) {\n c.globalAlpha = part.render.opacity;\n }\n\n if (part.render.sprite && part.render.sprite.texture && !options.wireframes) {\n // part sprite\n var sprite = part.render.sprite,\n texture = _getTexture(render, sprite.texture);\n\n c.translate(part.position.x, part.position.y);\n c.rotate(part.angle);\n\n c.drawImage(\n texture,\n texture.width * -sprite.xOffset * sprite.xScale,\n texture.height * -sprite.yOffset * sprite.yScale,\n texture.width * sprite.xScale,\n texture.height * sprite.yScale\n );\n\n // revert translation, hopefully faster than save / restore\n c.rotate(-part.angle);\n c.translate(-part.position.x, -part.position.y);\n } else {\n // part polygon\n if (part.circleRadius) {\n c.beginPath();\n c.arc(part.position.x, part.position.y, part.circleRadius, 0, 2 * Math.PI);\n } else {\n c.beginPath();\n c.moveTo(part.vertices[0].x, part.vertices[0].y);\n\n for (var j = 1; j < part.vertices.length; j++) {\n if (!part.vertices[j - 1].isInternal || showInternalEdges) {\n c.lineTo(part.vertices[j].x, part.vertices[j].y);\n } else {\n c.moveTo(part.vertices[j].x, part.vertices[j].y);\n }\n\n if (part.vertices[j].isInternal && !showInternalEdges) {\n c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y);\n }\n }\n\n c.lineTo(part.vertices[0].x, part.vertices[0].y);\n c.closePath();\n }\n\n if (!options.wireframes) {\n c.fillStyle = part.render.fillStyle;\n\n if (part.render.lineWidth) {\n c.lineWidth = part.render.lineWidth;\n c.strokeStyle = part.render.strokeStyle;\n c.stroke();\n }\n\n c.fill();\n } else {\n c.lineWidth = 1;\n c.strokeStyle = '#bbb';\n c.stroke();\n }\n }\n\n c.globalAlpha = 1;\n }\n }\n };\n\n /**\n * Optimised method for drawing body wireframes in one pass\n * @private\n * @method bodyWireframes\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyWireframes = function(render, bodies, context) {\n var c = context,\n showInternalEdges = render.options.showInternalEdges,\n body,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n // render all bodies\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {\n part = body.parts[k];\n\n c.moveTo(part.vertices[0].x, part.vertices[0].y);\n\n for (j = 1; j < part.vertices.length; j++) {\n if (!part.vertices[j - 1].isInternal || showInternalEdges) {\n c.lineTo(part.vertices[j].x, part.vertices[j].y);\n } else {\n c.moveTo(part.vertices[j].x, part.vertices[j].y);\n }\n\n if (part.vertices[j].isInternal && !showInternalEdges) {\n c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y);\n }\n }\n\n c.lineTo(part.vertices[0].x, part.vertices[0].y);\n }\n }\n\n c.lineWidth = 1;\n c.strokeStyle = '#bbb';\n c.stroke();\n };\n\n /**\n * Optimised method for drawing body convex hull wireframes in one pass\n * @private\n * @method bodyConvexHulls\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyConvexHulls = function(render, bodies, context) {\n var c = context,\n body,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n // render convex hulls\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible || body.parts.length === 1)\n continue;\n\n c.moveTo(body.vertices[0].x, body.vertices[0].y);\n\n for (j = 1; j < body.vertices.length; j++) {\n c.lineTo(body.vertices[j].x, body.vertices[j].y);\n }\n\n c.lineTo(body.vertices[0].x, body.vertices[0].y);\n }\n\n c.lineWidth = 1;\n c.strokeStyle = 'rgba(255,255,255,0.2)';\n c.stroke();\n };\n\n /**\n * Renders body vertex numbers.\n * @private\n * @method vertexNumbers\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.vertexNumbers = function(render, bodies, context) {\n var c = context,\n i,\n j,\n k;\n\n for (i = 0; i < bodies.length; i++) {\n var parts = bodies[i].parts;\n for (k = parts.length > 1 ? 1 : 0; k < parts.length; k++) {\n var part = parts[k];\n for (j = 0; j < part.vertices.length; j++) {\n c.fillStyle = 'rgba(255,255,255,0.2)';\n c.fillText(i + '_' + j, part.position.x + (part.vertices[j].x - part.position.x) * 0.8, part.position.y + (part.vertices[j].y - part.position.y) * 0.8);\n }\n }\n }\n };\n\n /**\n * Renders mouse position.\n * @private\n * @method mousePosition\n * @param {render} render\n * @param {mouse} mouse\n * @param {RenderingContext} context\n */\n Render.mousePosition = function(render, mouse, context) {\n var c = context;\n c.fillStyle = 'rgba(255,255,255,0.8)';\n c.fillText(mouse.position.x + ' ' + mouse.position.y, mouse.position.x + 5, mouse.position.y - 5);\n };\n\n /**\n * Draws body bounds\n * @private\n * @method bodyBounds\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyBounds = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options;\n\n c.beginPath();\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (body.render.visible) {\n var parts = bodies[i].parts;\n for (var j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n var part = parts[j];\n c.rect(part.bounds.min.x, part.bounds.min.y, part.bounds.max.x - part.bounds.min.x, part.bounds.max.y - part.bounds.min.y);\n }\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,255,255,0.08)';\n } else {\n c.strokeStyle = 'rgba(0,0,0,0.1)';\n }\n\n c.lineWidth = 1;\n c.stroke();\n };\n\n /**\n * Draws body angle indicators and axes\n * @private\n * @method bodyAxes\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyAxes = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n for (i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n parts = body.parts;\n\n if (!body.render.visible)\n continue;\n\n if (options.showAxes) {\n // render all axes\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n part = parts[j];\n for (k = 0; k < part.axes.length; k++) {\n var axis = part.axes[k];\n c.moveTo(part.position.x, part.position.y);\n c.lineTo(part.position.x + axis.x * 20, part.position.y + axis.y * 20);\n }\n }\n } else {\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n part = parts[j];\n for (k = 0; k < part.axes.length; k++) {\n // render a single axis indicator\n c.moveTo(part.position.x, part.position.y);\n c.lineTo((part.vertices[0].x + part.vertices[part.vertices.length-1].x) / 2,\n (part.vertices[0].y + part.vertices[part.vertices.length-1].y) / 2);\n }\n }\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'indianred';\n c.lineWidth = 1;\n } else {\n c.strokeStyle = 'rgba(255, 255, 255, 0.4)';\n c.globalCompositeOperation = 'overlay';\n c.lineWidth = 2;\n }\n\n c.stroke();\n c.globalCompositeOperation = 'source-over';\n };\n\n /**\n * Draws body positions\n * @private\n * @method bodyPositions\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyPositions = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n body,\n part,\n i,\n k;\n\n c.beginPath();\n\n // render current positions\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = 0; k < body.parts.length; k++) {\n part = body.parts[k];\n c.arc(part.position.x, part.position.y, 3, 0, 2 * Math.PI, false);\n c.closePath();\n }\n }\n\n if (options.wireframes) {\n c.fillStyle = 'indianred';\n } else {\n c.fillStyle = 'rgba(0,0,0,0.5)';\n }\n c.fill();\n\n c.beginPath();\n\n // render previous positions\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n if (body.render.visible) {\n c.arc(body.positionPrev.x, body.positionPrev.y, 2, 0, 2 * Math.PI, false);\n c.closePath();\n }\n }\n\n c.fillStyle = 'rgba(255,165,0,0.8)';\n c.fill();\n };\n\n /**\n * Draws body velocity\n * @private\n * @method bodyVelocity\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyVelocity = function(render, bodies, context) {\n var c = context;\n\n c.beginPath();\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n var velocity = Body.getVelocity(body);\n\n c.moveTo(body.position.x, body.position.y);\n c.lineTo(body.position.x + velocity.x, body.position.y + velocity.y);\n }\n\n c.lineWidth = 3;\n c.strokeStyle = 'cornflowerblue';\n c.stroke();\n };\n\n /**\n * Draws body ids\n * @private\n * @method bodyIds\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyIds = function(render, bodies, context) {\n var c = context,\n i,\n j;\n\n for (i = 0; i < bodies.length; i++) {\n if (!bodies[i].render.visible)\n continue;\n\n var parts = bodies[i].parts;\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n var part = parts[j];\n c.font = \"12px Arial\";\n c.fillStyle = 'rgba(255,255,255,0.5)';\n c.fillText(part.id, part.position.x + 10, part.position.y - 10);\n }\n }\n };\n\n /**\n * Description\n * @private\n * @method collisions\n * @param {render} render\n * @param {pair[]} pairs\n * @param {RenderingContext} context\n */\n Render.collisions = function(render, pairs, context) {\n var c = context,\n options = render.options,\n pair,\n collision,\n corrected,\n bodyA,\n bodyB,\n i,\n j;\n\n c.beginPath();\n\n // render collision positions\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n for (j = 0; j < pair.activeContacts.length; j++) {\n var contact = pair.activeContacts[j],\n vertex = contact.vertex;\n c.rect(vertex.x - 1.5, vertex.y - 1.5, 3.5, 3.5);\n }\n }\n\n if (options.wireframes) {\n c.fillStyle = 'rgba(255,255,255,0.7)';\n } else {\n c.fillStyle = 'orange';\n }\n c.fill();\n\n c.beginPath();\n\n // render collision normals\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n\n if (pair.activeContacts.length > 0) {\n var normalPosX = pair.activeContacts[0].vertex.x,\n normalPosY = pair.activeContacts[0].vertex.y;\n\n if (pair.activeContacts.length === 2) {\n normalPosX = (pair.activeContacts[0].vertex.x + pair.activeContacts[1].vertex.x) / 2;\n normalPosY = (pair.activeContacts[0].vertex.y + pair.activeContacts[1].vertex.y) / 2;\n }\n\n if (collision.bodyB === collision.supports[0].body || collision.bodyA.isStatic === true) {\n c.moveTo(normalPosX - collision.normal.x * 8, normalPosY - collision.normal.y * 8);\n } else {\n c.moveTo(normalPosX + collision.normal.x * 8, normalPosY + collision.normal.y * 8);\n }\n\n c.lineTo(normalPosX, normalPosY);\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,165,0,0.7)';\n } else {\n c.strokeStyle = 'orange';\n }\n\n c.lineWidth = 1;\n c.stroke();\n };\n\n /**\n * Description\n * @private\n * @method separations\n * @param {render} render\n * @param {pair[]} pairs\n * @param {RenderingContext} context\n */\n Render.separations = function(render, pairs, context) {\n var c = context,\n options = render.options,\n pair,\n collision,\n corrected,\n bodyA,\n bodyB,\n i,\n j;\n\n c.beginPath();\n\n // render separations\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n bodyA = collision.bodyA;\n bodyB = collision.bodyB;\n\n var k = 1;\n\n if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5;\n if (bodyB.isStatic) k = 0;\n\n c.moveTo(bodyB.position.x, bodyB.position.y);\n c.lineTo(bodyB.position.x - collision.penetration.x * k, bodyB.position.y - collision.penetration.y * k);\n\n k = 1;\n\n if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5;\n if (bodyA.isStatic) k = 0;\n\n c.moveTo(bodyA.position.x, bodyA.position.y);\n c.lineTo(bodyA.position.x + collision.penetration.x * k, bodyA.position.y + collision.penetration.y * k);\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,165,0,0.5)';\n } else {\n c.strokeStyle = 'orange';\n }\n c.stroke();\n };\n\n /**\n * Description\n * @private\n * @method inspector\n * @param {inspector} inspector\n * @param {RenderingContext} context\n */\n Render.inspector = function(inspector, context) {\n var engine = inspector.engine,\n selected = inspector.selected,\n render = inspector.render,\n options = render.options,\n bounds;\n\n if (options.hasBounds) {\n var boundsWidth = render.bounds.max.x - render.bounds.min.x,\n boundsHeight = render.bounds.max.y - render.bounds.min.y,\n boundsScaleX = boundsWidth / render.options.width,\n boundsScaleY = boundsHeight / render.options.height;\n\n context.scale(1 / boundsScaleX, 1 / boundsScaleY);\n context.translate(-render.bounds.min.x, -render.bounds.min.y);\n }\n\n for (var i = 0; i < selected.length; i++) {\n var item = selected[i].data;\n\n context.translate(0.5, 0.5);\n context.lineWidth = 1;\n context.strokeStyle = 'rgba(255,165,0,0.9)';\n context.setLineDash([1,2]);\n\n switch (item.type) {\n\n case 'body':\n\n // render body selections\n bounds = item.bounds;\n context.beginPath();\n context.rect(Math.floor(bounds.min.x - 3), Math.floor(bounds.min.y - 3),\n Math.floor(bounds.max.x - bounds.min.x + 6), Math.floor(bounds.max.y - bounds.min.y + 6));\n context.closePath();\n context.stroke();\n\n break;\n\n case 'constraint':\n\n // render constraint selections\n var point = item.pointA;\n if (item.bodyA)\n point = item.pointB;\n context.beginPath();\n context.arc(point.x, point.y, 10, 0, 2 * Math.PI);\n context.closePath();\n context.stroke();\n\n break;\n\n }\n\n context.setLineDash([]);\n context.translate(-0.5, -0.5);\n }\n\n // render selection region\n if (inspector.selectStart !== null) {\n context.translate(0.5, 0.5);\n context.lineWidth = 1;\n context.strokeStyle = 'rgba(255,165,0,0.6)';\n context.fillStyle = 'rgba(255,165,0,0.1)';\n bounds = inspector.selectBounds;\n context.beginPath();\n context.rect(Math.floor(bounds.min.x), Math.floor(bounds.min.y),\n Math.floor(bounds.max.x - bounds.min.x), Math.floor(bounds.max.y - bounds.min.y));\n context.closePath();\n context.stroke();\n context.fill();\n context.translate(-0.5, -0.5);\n }\n\n if (options.hasBounds)\n context.setTransform(1, 0, 0, 1, 0, 0);\n };\n\n /**\n * Updates render timing.\n * @method _updateTiming\n * @private\n * @param {render} render\n * @param {number} time\n */\n var _updateTiming = function(render, time) {\n var engine = render.engine,\n timing = render.timing,\n historySize = timing.historySize,\n timestamp = engine.timing.timestamp;\n\n timing.delta = time - timing.lastTime || Render._goodDelta;\n timing.lastTime = time;\n\n timing.timestampElapsed = timestamp - timing.lastTimestamp || 0;\n timing.lastTimestamp = timestamp;\n\n timing.deltaHistory.unshift(timing.delta);\n timing.deltaHistory.length = Math.min(timing.deltaHistory.length, historySize);\n\n timing.engineDeltaHistory.unshift(engine.timing.lastDelta);\n timing.engineDeltaHistory.length = Math.min(timing.engineDeltaHistory.length, historySize);\n\n timing.timestampElapsedHistory.unshift(timing.timestampElapsed);\n timing.timestampElapsedHistory.length = Math.min(timing.timestampElapsedHistory.length, historySize);\n\n timing.engineElapsedHistory.unshift(engine.timing.lastElapsed);\n timing.engineElapsedHistory.length = Math.min(timing.engineElapsedHistory.length, historySize);\n\n timing.elapsedHistory.unshift(timing.lastElapsed);\n timing.elapsedHistory.length = Math.min(timing.elapsedHistory.length, historySize);\n };\n\n /**\n * Returns the mean value of the given numbers.\n * @method _mean\n * @private\n * @param {Number[]} values\n * @return {Number} the mean of given values\n */\n var _mean = function(values) {\n var result = 0;\n for (var i = 0; i < values.length; i += 1) {\n result += values[i];\n }\n return (result / values.length) || 0;\n };\n\n /**\n * @method _createCanvas\n * @private\n * @param {} width\n * @param {} height\n * @return canvas\n */\n var _createCanvas = function(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n canvas.oncontextmenu = function() { return false; };\n canvas.onselectstart = function() { return false; };\n return canvas;\n };\n\n /**\n * Gets the pixel ratio of the canvas.\n * @method _getPixelRatio\n * @private\n * @param {HTMLElement} canvas\n * @return {Number} pixel ratio\n */\n var _getPixelRatio = function(canvas) {\n var context = canvas.getContext('2d'),\n devicePixelRatio = window.devicePixelRatio || 1,\n backingStorePixelRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio\n || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio\n || context.backingStorePixelRatio || 1;\n\n return devicePixelRatio / backingStorePixelRatio;\n };\n\n /**\n * Gets the requested texture (an Image) via its path\n * @method _getTexture\n * @private\n * @param {render} render\n * @param {string} imagePath\n * @return {Image} texture\n */\n var _getTexture = function(render, imagePath) {\n var image = render.textures[imagePath];\n\n if (image)\n return image;\n\n image = render.textures[imagePath] = new Image();\n image.src = imagePath;\n\n return image;\n };\n\n /**\n * Applies the background to the canvas using CSS.\n * @method applyBackground\n * @private\n * @param {render} render\n * @param {string} background\n */\n var _applyBackground = function(render, background) {\n var cssBackground = background;\n\n if (/(jpg|gif|png)$/.test(background))\n cssBackground = 'url(' + background + ')';\n\n render.canvas.style.background = cssBackground;\n render.canvas.style.backgroundSize = \"contain\";\n render.currentBackground = background;\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired before rendering\n *\n * @event beforeRender\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after rendering\n *\n * @event afterRender\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A back-reference to the `Matter.Render` module.\n *\n * @deprecated\n * @property controller\n * @type render\n */\n\n /**\n * A reference to the `Matter.Engine` instance to be used.\n *\n * @property engine\n * @type engine\n */\n\n /**\n * A reference to the element where the canvas is to be inserted (if `render.canvas` has not been specified)\n *\n * @property element\n * @type HTMLElement\n * @default null\n */\n\n /**\n * The canvas element to render to. If not specified, one will be created if `render.element` has been specified.\n *\n * @property canvas\n * @type HTMLCanvasElement\n * @default null\n */\n\n /**\n * A `Bounds` object that specifies the drawing view region.\n * Rendering will be automatically transformed and scaled to fit within the canvas size (`render.options.width` and `render.options.height`).\n * This allows for creating views that can pan or zoom around the scene.\n * You must also set `render.options.hasBounds` to `true` to enable bounded rendering.\n *\n * @property bounds\n * @type bounds\n */\n\n /**\n * The 2d rendering context from the `render.canvas` element.\n *\n * @property context\n * @type CanvasRenderingContext2D\n */\n\n /**\n * The sprite texture cache.\n *\n * @property textures\n * @type {}\n */\n\n /**\n * The mouse to render if `render.options.showMousePosition` is enabled.\n *\n * @property mouse\n * @type mouse\n * @default null\n */\n\n /**\n * The configuration options of the renderer.\n *\n * @property options\n * @type {}\n */\n\n /**\n * The target width in pixels of the `render.canvas` to be created.\n * See also the `options.pixelRatio` property to change render quality.\n *\n * @property options.width\n * @type number\n * @default 800\n */\n\n /**\n * The target height in pixels of the `render.canvas` to be created.\n * See also the `options.pixelRatio` property to change render quality.\n *\n * @property options.height\n * @type number\n * @default 600\n */\n\n /**\n * The [pixel ratio](https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio) to use when rendering.\n *\n * @property options.pixelRatio\n * @type number\n * @default 1\n */\n\n /**\n * A CSS background color string to use when `render.options.wireframes` is disabled.\n * This may be also set to `'transparent'` or equivalent.\n *\n * @property options.background\n * @type string\n * @default '#14151f'\n */\n\n /**\n * A CSS background color string to use when `render.options.wireframes` is enabled.\n * This may be also set to `'transparent'` or equivalent.\n *\n * @property options.wireframeBackground\n * @type string\n * @default '#14151f'\n */\n\n /**\n * A flag that specifies if `render.bounds` should be used when rendering.\n *\n * @property options.hasBounds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable all debug information overlays together. \n * This includes and has priority over the values of:\n *\n * - `render.options.showStats`\n * - `render.options.showPerformance`\n *\n * @property options.showDebug\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the engine stats info overlay. \n * From left to right, the values shown are:\n *\n * - body parts total\n * - body total\n * - constraints total\n * - composites total\n * - collision pairs total\n *\n * @property options.showStats\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable performance charts. \n * From left to right, the values shown are:\n *\n * - average render frequency (e.g. 60 fps)\n * - exact engine delta time used for last update (e.g. 16.66ms)\n * - average engine execution duration (e.g. 5.00ms)\n * - average render execution duration (e.g. 0.40ms)\n * - average effective play speed (e.g. '1.00x' is 'real-time')\n *\n * Each value is recorded over a fixed sample of past frames (60 frames).\n *\n * A chart shown below each value indicates the variance from the average over the sample.\n * The more stable or fixed the value is the flatter the chart will appear.\n *\n * @property options.showPerformance\n * @type boolean\n * @default false\n */\n \n /**\n * A flag to enable or disable rendering entirely.\n *\n * @property options.enabled\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to toggle wireframe rendering otherwise solid fill rendering is used.\n *\n * @property options.wireframes\n * @type boolean\n * @default true\n */\n\n /**\n * A flag to enable or disable sleeping bodies indicators.\n *\n * @property options.showSleeping\n * @type boolean\n * @default true\n */\n\n /**\n * A flag to enable or disable the debug information overlay.\n *\n * @property options.showDebug\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the collision broadphase debug overlay.\n *\n * @deprecated no longer implemented\n * @property options.showBroadphase\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body bounds debug overlay.\n *\n * @property options.showBounds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body velocity debug overlay.\n *\n * @property options.showVelocity\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body collisions debug overlay.\n *\n * @property options.showCollisions\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the collision resolver separations debug overlay.\n *\n * @property options.showSeparations\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body axes debug overlay.\n *\n * @property options.showAxes\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body positions debug overlay.\n *\n * @property options.showPositions\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body angle debug overlay.\n *\n * @property options.showAngleIndicator\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body and part ids debug overlay.\n *\n * @property options.showIds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body vertex numbers debug overlay.\n *\n * @property options.showVertexNumbers\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body convex hulls debug overlay.\n *\n * @property options.showConvexHulls\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body internal edges debug overlay.\n *\n * @property options.showInternalEdges\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the mouse position debug overlay.\n *\n * @property options.showMousePosition\n * @type boolean\n * @default false\n */\n\n})();\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Runner` module is an optional utility which provides a game loop, \n* that handles continuously updating a `Matter.Engine` for you within a browser.\n* It is intended for development and debugging purposes, but may also be suitable for simple games.\n* If you are using your own game loop instead, then you do not need the `Matter.Runner` module.\n* Instead just call `Engine.update(engine, delta)` in your own loop.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Runner\n*/\n\nvar Runner = {};\n\nmodule.exports = Runner;\n\nvar Events = __webpack_require__(5);\nvar Engine = __webpack_require__(17);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n var _requestAnimationFrame,\n _cancelAnimationFrame;\n\n if (typeof window !== 'undefined') {\n _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame\n || window.mozRequestAnimationFrame || window.msRequestAnimationFrame;\n \n _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame \n || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;\n }\n\n if (!_requestAnimationFrame) {\n var _frameTimeout;\n\n _requestAnimationFrame = function(callback){ \n _frameTimeout = setTimeout(function() { \n callback(Common.now()); \n }, 1000 / 60);\n };\n\n _cancelAnimationFrame = function() {\n clearTimeout(_frameTimeout);\n };\n }\n\n /**\n * Creates a new Runner. The options parameter is an object that specifies any properties you wish to override the defaults.\n * @method create\n * @param {} options\n */\n Runner.create = function(options) {\n var defaults = {\n fps: 60,\n deltaSampleSize: 60,\n counterTimestamp: 0,\n frameCounter: 0,\n deltaHistory: [],\n timePrev: null,\n frameRequestId: null,\n isFixed: false,\n enabled: true\n };\n\n var runner = Common.extend(defaults, options);\n\n runner.delta = runner.delta || 1000 / runner.fps;\n runner.deltaMin = runner.deltaMin || 1000 / runner.fps;\n runner.deltaMax = runner.deltaMax || 1000 / (runner.fps * 0.5);\n runner.fps = 1000 / runner.delta;\n\n return runner;\n };\n\n /**\n * Continuously ticks a `Matter.Engine` by calling `Runner.tick` on the `requestAnimationFrame` event.\n * @method run\n * @param {engine} engine\n */\n Runner.run = function(runner, engine) {\n // create runner if engine is first argument\n if (typeof runner.positionIterations !== 'undefined') {\n engine = runner;\n runner = Runner.create();\n }\n\n (function run(time){\n runner.frameRequestId = _requestAnimationFrame(run);\n\n if (time && runner.enabled) {\n Runner.tick(runner, engine, time);\n }\n })();\n\n return runner;\n };\n\n /**\n * A game loop utility that updates the engine and renderer by one step (a 'tick').\n * Features delta smoothing, time correction and fixed or dynamic timing.\n * Consider just `Engine.update(engine, delta)` if you're using your own loop.\n * @method tick\n * @param {runner} runner\n * @param {engine} engine\n * @param {number} time\n */\n Runner.tick = function(runner, engine, time) {\n var timing = engine.timing,\n delta;\n\n if (runner.isFixed) {\n // fixed timestep\n delta = runner.delta;\n } else {\n // dynamic timestep based on wall clock between calls\n delta = (time - runner.timePrev) || runner.delta;\n runner.timePrev = time;\n\n // optimistically filter delta over a few frames, to improve stability\n runner.deltaHistory.push(delta);\n runner.deltaHistory = runner.deltaHistory.slice(-runner.deltaSampleSize);\n delta = Math.min.apply(null, runner.deltaHistory);\n\n // limit delta\n delta = delta < runner.deltaMin ? runner.deltaMin : delta;\n delta = delta > runner.deltaMax ? runner.deltaMax : delta;\n\n // update engine timing object\n runner.delta = delta;\n }\n\n // create an event object\n var event = {\n timestamp: timing.timestamp\n };\n\n Events.trigger(runner, 'beforeTick', event);\n\n // fps counter\n runner.frameCounter += 1;\n if (time - runner.counterTimestamp >= 1000) {\n runner.fps = runner.frameCounter * ((time - runner.counterTimestamp) / 1000);\n runner.counterTimestamp = time;\n runner.frameCounter = 0;\n }\n\n Events.trigger(runner, 'tick', event);\n\n // update\n Events.trigger(runner, 'beforeUpdate', event);\n\n Engine.update(engine, delta);\n\n Events.trigger(runner, 'afterUpdate', event);\n\n Events.trigger(runner, 'afterTick', event);\n };\n\n /**\n * Ends execution of `Runner.run` on the given `runner`, by canceling the animation frame request event loop.\n * If you wish to only temporarily pause the engine, see `engine.enabled` instead.\n * @method stop\n * @param {runner} runner\n */\n Runner.stop = function(runner) {\n _cancelAnimationFrame(runner.frameRequestId);\n };\n\n /**\n * Alias for `Runner.run`.\n * @method start\n * @param {runner} runner\n * @param {engine} engine\n */\n Runner.start = function(runner, engine) {\n Runner.run(runner, engine);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired at the start of a tick, before any updates to the engine or timing\n *\n * @event beforeTick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after engine timing updated, but just before update\n *\n * @event tick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired at the end of a tick, after engine update and after rendering\n *\n * @event afterTick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired before update\n *\n * @event beforeUpdate\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after update\n *\n * @event afterUpdate\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A flag that specifies whether the runner is running or not.\n *\n * @property enabled\n * @type boolean\n * @default true\n */\n\n /**\n * A `Boolean` that specifies if the runner should use a fixed timestep (otherwise it is variable).\n * If timing is fixed, then the apparent simulation speed will change depending on the frame rate (but behaviour will be deterministic).\n * If the timing is variable, then the apparent simulation speed will be constant (approximately, but at the cost of determininism).\n *\n * @property isFixed\n * @type boolean\n * @default false\n */\n\n /**\n * A `Number` that specifies the time step between updates in milliseconds.\n * If `engine.timing.isFixed` is set to `true`, then `delta` is fixed.\n * If it is `false`, then `delta` can dynamically change to maintain the correct apparent simulation speed.\n *\n * @property delta\n * @type number\n * @default 1000 / 60\n */\n\n})();\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Collision`.\n*\n* All usage should be migrated to `Matter.Collision`.\n* For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n*\n* The `Matter.SAT` module contains methods for detecting collisions using the Separating Axis Theorem.\n*\n* @class SAT\n* @deprecated\n*/\n\nvar SAT = {};\n\nmodule.exports = SAT;\n\nvar Collision = __webpack_require__(8);\nvar Common = __webpack_require__(0);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Detect collision between two bodies using the Separating Axis Theorem.\n * @deprecated replaced by Collision.collides\n * @method collides\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {collision} collision\n */\n SAT.collides = function(bodyA, bodyB) {\n return Collision.collides(bodyA, bodyB);\n };\n\n deprecated(SAT, 'collides', 'SAT.collides ➤ replaced by Collision.collides');\n\n})();\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Svg` module contains methods for converting SVG images into an array of vector points.\n*\n* To use this module you also need the SVGPathSeg polyfill: https://github.com/progers/pathseg\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Svg\n*/\n\nvar Svg = {};\n\nmodule.exports = Svg;\n\nvar Bounds = __webpack_require__(1);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Converts an SVG path into an array of vector points.\n * If the input path forms a concave shape, you must decompose the result into convex parts before use.\n * See `Bodies.fromVertices` which provides support for this.\n * Note that this function is not guaranteed to support complex paths (such as those with holes).\n * You must load the `pathseg.js` polyfill on newer browsers.\n * @method pathToVertices\n * @param {SVGPathElement} path\n * @param {Number} [sampleLength=15]\n * @return {Vector[]} points\n */\n Svg.pathToVertices = function(path, sampleLength) {\n if (typeof window !== 'undefined' && !('SVGPathSeg' in window)) {\n Common.warn('Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.');\n }\n\n // https://github.com/wout/svg.topoly.js/blob/master/svg.topoly.js\n var i, il, total, point, segment, segments, \n segmentsQueue, lastSegment, \n lastPoint, segmentIndex, points = [],\n lx, ly, length = 0, x = 0, y = 0;\n\n sampleLength = sampleLength || 15;\n\n var addPoint = function(px, py, pathSegType) {\n // all odd-numbered path types are relative except PATHSEG_CLOSEPATH (1)\n var isRelative = pathSegType % 2 === 1 && pathSegType > 1;\n\n // when the last point doesn't equal the current point add the current point\n if (!lastPoint || px != lastPoint.x || py != lastPoint.y) {\n if (lastPoint && isRelative) {\n lx = lastPoint.x;\n ly = lastPoint.y;\n } else {\n lx = 0;\n ly = 0;\n }\n\n var point = {\n x: lx + px,\n y: ly + py\n };\n\n // set last point\n if (isRelative || !lastPoint) {\n lastPoint = point;\n }\n\n points.push(point);\n\n x = lx + px;\n y = ly + py;\n }\n };\n\n var addSegmentPoint = function(segment) {\n var segType = segment.pathSegTypeAsLetter.toUpperCase();\n\n // skip path ends\n if (segType === 'Z') \n return;\n\n // map segment to x and y\n switch (segType) {\n\n case 'M':\n case 'L':\n case 'T':\n case 'C':\n case 'S':\n case 'Q':\n x = segment.x;\n y = segment.y;\n break;\n case 'H':\n x = segment.x;\n break;\n case 'V':\n y = segment.y;\n break;\n }\n\n addPoint(x, y, segment.pathSegType);\n };\n\n // ensure path is absolute\n Svg._svgPathToAbsolute(path);\n\n // get total length\n total = path.getTotalLength();\n\n // queue segments\n segments = [];\n for (i = 0; i < path.pathSegList.numberOfItems; i += 1)\n segments.push(path.pathSegList.getItem(i));\n\n segmentsQueue = segments.concat();\n\n // sample through path\n while (length < total) {\n // get segment at position\n segmentIndex = path.getPathSegAtLength(length);\n segment = segments[segmentIndex];\n\n // new segment\n if (segment != lastSegment) {\n while (segmentsQueue.length && segmentsQueue[0] != segment)\n addSegmentPoint(segmentsQueue.shift());\n\n lastSegment = segment;\n }\n\n // add points in between when curving\n // TODO: adaptive sampling\n switch (segment.pathSegTypeAsLetter.toUpperCase()) {\n\n case 'C':\n case 'T':\n case 'S':\n case 'Q':\n case 'A':\n point = path.getPointAtLength(length);\n addPoint(point.x, point.y, 0);\n break;\n\n }\n\n // increment by sample value\n length += sampleLength;\n }\n\n // add remaining segments not passed by sampling\n for (i = 0, il = segmentsQueue.length; i < il; ++i)\n addSegmentPoint(segmentsQueue[i]);\n\n return points;\n };\n\n Svg._svgPathToAbsolute = function(path) {\n // http://phrogz.net/convert-svg-path-to-all-absolute-commands\n // Copyright (c) Gavin Kistner\n // http://phrogz.net/js/_ReuseLicense.txt\n // Modifications: tidy formatting and naming\n var x0, y0, x1, y1, x2, y2, segs = path.pathSegList,\n x = 0, y = 0, len = segs.numberOfItems;\n\n for (var i = 0; i < len; ++i) {\n var seg = segs.getItem(i),\n segType = seg.pathSegTypeAsLetter;\n\n if (/[MLHVCSQTA]/.test(segType)) {\n if ('x' in seg) x = seg.x;\n if ('y' in seg) y = seg.y;\n } else {\n if ('x1' in seg) x1 = x + seg.x1;\n if ('x2' in seg) x2 = x + seg.x2;\n if ('y1' in seg) y1 = y + seg.y1;\n if ('y2' in seg) y2 = y + seg.y2;\n if ('x' in seg) x += seg.x;\n if ('y' in seg) y += seg.y;\n\n switch (segType) {\n\n case 'm':\n segs.replaceItem(path.createSVGPathSegMovetoAbs(x, y), i);\n break;\n case 'l':\n segs.replaceItem(path.createSVGPathSegLinetoAbs(x, y), i);\n break;\n case 'h':\n segs.replaceItem(path.createSVGPathSegLinetoHorizontalAbs(x), i);\n break;\n case 'v':\n segs.replaceItem(path.createSVGPathSegLinetoVerticalAbs(y), i);\n break;\n case 'c':\n segs.replaceItem(path.createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2), i);\n break;\n case 's':\n segs.replaceItem(path.createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2), i);\n break;\n case 'q':\n segs.replaceItem(path.createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1), i);\n break;\n case 't':\n segs.replaceItem(path.createSVGPathSegCurvetoQuadraticSmoothAbs(x, y), i);\n break;\n case 'a':\n segs.replaceItem(path.createSVGPathSegArcAbs(x, y, seg.r1, seg.r2, seg.angle, seg.largeArcFlag, seg.sweepFlag), i);\n break;\n case 'z':\n case 'Z':\n x = x0;\n y = y0;\n break;\n\n }\n }\n\n if (segType == 'M' || segType == 'm') {\n x0 = x;\n y0 = y;\n }\n }\n };\n\n})();\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Composite`.\n*\n* All usage should be migrated to the equivalent functions found on `Matter.Composite`.\n* For example `World.add(world, body)` now becomes `Composite.add(world, body)`.\n*\n* The property `world.gravity` has been moved to `engine.gravity`.\n*\n* For back-compatibility purposes this module will remain as a direct alias to `Matter.Composite` in the short term during migration.\n* Eventually this alias module will be marked as deprecated and then later removed in a future release.\n*\n* @class World\n*/\n\nvar World = {};\n\nmodule.exports = World;\n\nvar Composite = __webpack_require__(6);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * See above, aliases for back compatibility only\n */\n World.create = Composite.create;\n World.add = Composite.add;\n World.remove = Composite.remove;\n World.clear = Composite.clear;\n World.addComposite = Composite.addComposite;\n World.addBody = Composite.addBody;\n World.addConstraint = Composite.addConstraint;\n\n})();\n\n\n/***/ })\n/******/ ]);\n});","export default \"data:image/png;base64,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\"","export default \"__VITE_ASSET__jxVNOxAL__\"","export default \"__VITE_ASSET__6oiBdNSa__\"","export default \"__VITE_ASSET__Tr2jfyMH__\"","export default \"__VITE_ASSET__5PCFRB9K__\"","export default \"__VITE_ASSET__vCY2DKox__\"","export default \"__VITE_ASSET__pwi7X4WA__\"","export default \"__VITE_ASSET__FHo$_cPe__\"","export default \"__VITE_ASSET__96NfZHFx__\"","export default \"__VITE_ASSET__02ELKlnP__\"","import b1 from '../../assets/block/1.png'\nimport b2 from '../../assets/block/2.png'\nimport b3 from '../../assets/block/3.png'\nimport b4 from '../../assets/block/4.png'\nimport b5 from '../../assets/block/5.png'\nimport b6 from '../../assets/block/6.png'\nimport b7 from '../../assets/block/7.png'\nimport b8 from '../../assets/block/8.png'\nimport b9 from '../../assets/block/9.png'\nimport b10 from '../../assets/block/10.png'\n\ntype Block = {\n size: number;\n color: string;\n score: number;\n};\n\nconst lineColor = '#1E1E1E'\n\nconst blocks: { [key: number]: Block } = {\n 1: {size: 30, color: '#94E9F6', score: 2},\n 2: {size: 40, color: '#97FFC6', score: 4},\n 3: {size: 55, color: '#FFB7E7', score: 6},\n 4: {size: 70, color: '#FFC8B7', score: 8},\n 5: {size: 90, color: '#FFDB98', score: 16},\n 6: {size: 110, color: '#60C7FF', score: 32},\n 7: {size: 125, color: '#43F091', score: 64},\n 8: {size: 140, color: '#FF8FDA', score: 128},\n 9: {size: 150, color: '#FF9A7A', score: 256},\n 10: {size: 160, color: '#FFC964', score: 512},\n}\n\n// const blocks: { [key: number]: Block } = {\n// 1: { size: 26, color: '#FFB7E7', score: 2},\n// 2: { size: 40, color: '#FFC8B7', score: 4},\n// 3: { size: 54, color: '#FFDB98', score: 6},\n// 4: { size: 90, color: '#97FFC6', score: 8},\n// 5: { size: 100, color: '#94E9F6', score: 16},\n// 6: { size: 120, color: '#FF8FDA', score: 32},\n// 7: { size: 140, color: '#FF9A7A', score: 64},\n// 8: { size: 160, color: '#FFC964', score: 128},\n// 9: { size: 160, color: '#43F091', score: 256},\n// 10: { size: 200, color: '#60C7FF', score: 512},\n// };\n\nexport {lineColor, blocks}\n\nexport const Background: { [key: number]: string } = {\n 1: b1,\n 2: b2,\n 3: b3,\n 4: b4,\n 5: b5,\n 6: b6,\n 7: b7,\n 8: b8,\n 9: b9,\n 10: b10\n}\n","import {Bodies} from 'matter-js'\nimport {Background, blocks, lineColor} from '../pages/play/setting.ts'\n\nexport const createBlock = (index: number, x: number, y: number, ratio: number, isStatic: boolean = false) => {\n const block = blocks[index]\n const background = Background[index]\n const circle = Bodies.circle(x, y, block.size * ratio / 2, {\n isStatic,\n label: String(index),\n render: {\n fillStyle: block.color,\n lineWidth: 8,\n strokeStyle: lineColor,\n sprite: {\n texture: background,\n xScale: 1 / 3 * ratio,\n yScale: 1 / 3 * ratio,\n }\n }\n })\n return circle\n}\n","/*\n * @param count 몇 번째 블럭인지\n */\nexport const getBlockIndex = (count: number) => {\n const _count = count > 6 ? 6 : count\n return Math.floor(Math.random() * (_count - 1)) + 1 // 1 ~ count\n}\n","const RATIO = 560 / 360\n\nexport const getDynamicCanvasHeight = (width: number) => {\n return width * RATIO\n}\n","import {Bodies, Composite, World} from 'matter-js'\n\nexport const setField = (world: World, width: number, height: number) => {\n const bottom = Bodies.rectangle(width / 2, height, width, 30, {\n isStatic: true,\n restitution: 1,\n render: {fillStyle: '#81685A'}\n })\n const left = Bodies.rectangle(0, height / 2, 1, height, {\n isStatic: true,\n render: {fillStyle: '#FFFFFF'}\n })\n const right = Bodies.rectangle(width, height / 2, 1, height, {\n isStatic: true,\n render: {fillStyle: '#FFFFFF'}\n })\n const line = Bodies.rectangle(width / 2, 120, width, 2, {\n isStatic: true,\n isSensor: true,\n label: 'line',\n render: {fillStyle: '#FF6C6C'}\n })\n Composite.add(world, [line, bottom, left, right])\n}\n","import {ref} from 'vue'\n\nexport const useTimer = (limit: number, callback: () => void) => {\n const count = ref(undefined)\n let interval: undefined | number = undefined\n\n const clear = () => {\n if (interval) {\n clearInterval(interval)\n interval = undefined\n }\n }\n\n const start = () => {\n count.value = limit\n if (interval) {\n return\n }\n interval = setInterval(() => {\n if (count.value) {\n count.value = count.value - 1\n }\n if (count.value === 0) {\n clear()\n callback()\n }\n }, 1000)\n }\n\n const reset = () => {\n count.value = undefined\n clear()\n }\n\n return {count, reset, start}\n}\n","import {Body, Engine, Events, Render, Runner, World} from 'matter-js'\nimport {blocks} from '../pages/play/setting.ts'\nimport {createBlock, getBlockIndex, getDynamicCanvasHeight, setField} from '../utils'\nimport {onMounted, Ref, ref} from 'vue'\nimport {useTimer} from './use-timer.ts'\n\nexport const usePlayer = (\n element: Ref,\n) => {\n const engine = Engine.create(\n {\n gravity: {x: 0, y: 0.4},\n timing: {timeScale: 1.5}\n })\n const runner = Runner.create()\n\n const collisions = new Set()\n\n let width = 0\n let height = 0\n let ratio = 1\n const groundHeightRef = ref(0)\n\n let isSetBlock: boolean = false\n let currentBlock: Body | undefined = undefined\n let totalBlockCount = 0\n let canvasOffsetX = 0\n\n const gameOverRef = ref(false)\n const nextBlockRef = ref(0)\n const scoreRef = ref(0)\n\n onMounted(() => {\n if (!element.value) {\n return\n }\n width = element.value.clientWidth\n height = getDynamicCanvasHeight(width)\n ratio = width / 380\n canvasOffsetX = element.value?.getBoundingClientRect().x\n groundHeightRef.value = element.value?.clientHeight - height\n setNextBlock()\n addBlock()\n\n const render = Render.create({\n canvas: element.value,\n engine,\n options: {\n wireframes: false,\n background: 'transparent',\n width,\n height,\n pixelRatio: window.devicePixelRatio\n }\n })\n\n setField(engine.world, width, height)\n Render.run(render)\n Runner.run(runner, engine)\n\n element.value.addEventListener('mousemove', (event: MouseEvent) => {\n onDrag(event.offsetX)\n })\n\n element.value.addEventListener('mouseup', () => {\n drop()\n })\n\n element.value.addEventListener('touchmove', (event: TouchEvent) => {\n const x = event.touches[0].clientX - canvasOffsetX\n if (element?.value?.clientWidth && x > 0 && x < element.value.clientWidth) {\n onDrag(x)\n }\n }, {passive: true})\n\n element.value.addEventListener('touchend', () => {\n drop()\n })\n })\n\n Events.on(engine, 'collisionStart', (event) => {\n event.pairs.forEach((collision) => {\n if (collision.bodyA.label === 'line' || collision.bodyB.label === 'line') {\n const circle = collision.bodyA.label === 'line' ? collision.bodyB.id : collision.bodyA.id\n addCollisions(circle)\n }\n\n if (collision.bodyA.label !== collision.bodyB.label) {\n return\n }\n\n if (collision.bodyA.label === 'removed' || collision.bodyB.label === 'removed') {\n return\n }\n\n const index = Number(collision.bodyA.label)\n if (index === 10) {\n return\n }\n\n collision.bodyA.label = 'removed'\n collision.bodyB.label = 'removed'\n\n scoreRef.value = scoreRef.value + (blocks[index].score)\n\n const newBlock = createBlock(index + 1, collision.collision.supports[0].x, collision.collision.supports[0].y, ratio)\n World.remove(engine.world, [collision.bodyA, collision.bodyB])\n World.add(engine.world, newBlock)\n }\n )\n })\n\n Events.on(engine, 'collisionEnd', (event) => {\n event.pairs.forEach((collision) => {\n if (collision.bodyA.label === 'line' || collision.bodyB.label === 'line') {\n const circle = collision.bodyA.label === 'line' ? collision.bodyB.id : collision.bodyA.id\n removeCollisions(circle)\n }\n })\n })\n\n const {start, reset} = useTimer(3, () => {\n endGame()\n })\n\n const setLineCollisionTimer = () => {\n if (collisions.size > 0) {\n start()\n return\n }\n reset()\n }\n\n const addCollisions = (id: number) => {\n collisions.add(id)\n setLineCollisionTimer()\n }\n\n const removeCollisions = (id: number) => {\n collisions.delete(id)\n setLineCollisionTimer()\n }\n\n const addBlock = () => {\n // currentBlockRef.value = createBlock(4, widthRef.value / 2, 60, ratioRef.value, true)\n currentBlock = createBlock(nextBlockRef.value, width / 2, 60, ratio, true)\n isSetBlock = false\n World.add(engine.world, currentBlock)\n setNextBlock()\n }\n\n const setNextBlock = () => {\n totalBlockCount += 1\n nextBlockRef.value = getBlockIndex(totalBlockCount)\n }\n\n const drop = () => {\n if (gameOverRef.value) {\n return\n }\n if (!currentBlock || isSetBlock) {\n return\n }\n isSetBlock = true\n Body.setStatic(currentBlock, false)\n setTimeout(() => {\n addBlock()\n }, 1000)\n }\n\n const onDrag = (x: number) => {\n if (gameOverRef.value) {\n return\n }\n if (!currentBlock || isSetBlock) {\n return\n }\n Body.setPosition(currentBlock, {x, y: 60})\n }\n\n const endGame = () => {\n gameOverRef.value = true\n }\n\n const replay = () => {\n scoreRef.value = 0\n\n collisions.clear()\n reset()\n\n gameOverRef.value = false\n\n totalBlockCount = 0\n\n World.clear(engine.world, false)\n setField(engine.world, width, height)\n\n setNextBlock()\n addBlock()\n }\n\n return {replay, nextBlockRef, groundHeightRef, gameOverRef, scoreRef}\n}\n","\n\n","export default \"data:image/svg+xml,%3csvg%20width='38'%20height='32'%20viewBox='0%200%2038%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","import {defineStore} from 'pinia'\nimport {ref} from 'vue'\n\nexport const useUserStore = defineStore('user', () => {\n const nickName = ref('')\n return {nickName}\n})\n","export default \"__VITE_ASSET__LNgfJuKf__\"","\n\n","export default \"__VITE_ASSET__Afdibq8G__\"","export default \"__VITE_ASSET__0aHIITih__\"","export default \"__VITE_ASSET__M4vI1m5K__\"","\n","\n","\n\n","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20style='fill:%20%23489B6D'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='inherit'%20d='M12%202C10.6868%202%209.38642%202.25866%208.17317%202.7612C6.95991%203.26375%205.85752%204.00035%204.92893%204.92893C3.05357%206.8043%202%209.34784%202%2012C2%2016.42%204.87%2020.17%208.84%2021.5C9.34%2021.58%209.5%2021.27%209.5%2021V19.31C6.73%2019.91%206.14%2017.97%206.14%2017.97C5.68%2016.81%205.03%2016.5%205.03%2016.5C4.12%2015.88%205.1%2015.9%205.1%2015.9C6.1%2015.97%206.63%2016.93%206.63%2016.93C7.5%2018.45%208.97%2018%209.54%2017.76C9.63%2017.11%209.89%2016.67%2010.17%2016.42C7.95%2016.17%205.62%2015.31%205.62%2011.5C5.62%2010.39%206%209.5%206.65%208.79C6.55%208.54%206.2%207.5%206.75%206.15C6.75%206.15%207.59%205.88%209.5%207.17C10.29%206.95%2011.15%206.84%2012%206.84C12.85%206.84%2013.71%206.95%2014.5%207.17C16.41%205.88%2017.25%206.15%2017.25%206.15C17.8%207.5%2017.45%208.54%2017.35%208.79C18%209.5%2018.38%2010.39%2018.38%2011.5C18.38%2015.32%2016.04%2016.16%2013.81%2016.41C14.17%2016.72%2014.5%2017.33%2014.5%2018.26V21C14.5%2021.27%2014.66%2021.59%2015.17%2021.5C19.14%2020.16%2022%2016.42%2022%2012C22%2010.6868%2021.7413%209.38642%2021.2388%208.17317C20.7362%206.95991%2019.9997%205.85752%2019.0711%204.92893C18.1425%204.00035%2017.0401%203.26375%2015.8268%202.7612C14.6136%202.25866%2013.3132%202%2012%202Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='55'%20height='22'%20viewBox='0%200%2055%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.95809%201.72925C11.5932%201.69208%2014.0155%201.65407%2015.6513%201.65407C16.7795%201.65407%2017.9096%201.58814%2019.034%201.5156C20.3055%201.43357%2021.6106%201.51164%2022.8836%201.51164C24.1659%201.51164%2025.4435%201.44043%2026.7292%201.44043C29.9809%201.44043%2033.2319%201.48987%2036.4816%201.5789C39.2326%201.65427%2042.0226%201.66875%2044.6357%202.63526C46.4858%203.31952%2048.3613%203.90303%2050.0085%205.00117C50.9551%205.63226%2051.9846%206.40982%2052.6118%207.36708C53.3073%208.42859%2053.3821%209.8471%2053.1815%2011.0505C53.0459%2011.864%2052.6656%2012.6858%2052.3902%2013.4599C52.2596%2013.8272%2052.1021%2014.1492%2051.9155%2014.4886C51.6444%2014.9815%2051.3987%2015.481%2051.1203%2015.9683C50.7634%2016.5928%2050.2688%2017.343%2049.6603%2017.7486C49.2024%2018.0539%2048.6696%2018.2164%2048.1965%2018.4924C47.6444%2018.8145%2046.9121%2019.0579%2046.2974%2019.2283C44.8748%2019.6227%2043.4239%2019.8606%2041.9612%2020.0631C40.1719%2020.3109%2038.3583%2020.2411%2036.5568%2020.2411C34.9588%2020.2411%2033.3596%2020.2221%2031.7617%2020.2411C30.0172%2020.2619%2028.2692%2020.3716%2026.5234%2020.3836C25.5083%2020.3905%2024.5065%2020.6117%2023.4968%2020.7001C22.6192%2020.7769%2021.7303%2020.7396%2020.85%2020.7396C17.4521%2020.7396%2014.1614%2020.3402%2010.8404%2019.616C8.30368%2019.0629%205.74602%2018.2158%203.5448%2016.807C2.48459%2016.1285%201.81672%2015.0333%201.76838%2013.7764C1.65416%2010.8066%201.66275%207.85901%202.83265%205.08821C3.50052%203.50642%205.47022%202.78585%206.9275%202.19214C7.24625%202.06228%207.60611%202.04422%207.94429%201.99432C8.62044%201.89456%209.26937%201.7449%209.95809%201.72925Z'%20fill='%2366BE8B'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.909%2013.1409C23.2956%2013.1409%2024.6932%2013.1463%2025.7989%2012.1634C26.0518%2011.9385%2026.7028%2010.8607%2026.4884%2010.4971C26.202%2010.0113%2024.9009%2010.0517%2024.4714%2010.0416C23.9373%2010.0291%2023.2157%2010.1122%2022.7374%2010.4026C22.1385%2010.7663%2021.8001%2011.168%2021.7289%2011.9356C21.6569%2012.7131%2022.1321%2013.6008%2022.6294%2014.1185C23.2268%2014.7403%2024.2371%2015.4404%2025.1043%2015.4404C26.0964%2015.4404%2027.0415%2015.0405%2028.0217%2015.0405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M29.8217%2010.9404H34.3217'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M32.5217%208.24048C32.5029%208.57958%2032.4041%208.93656%2032.3417%209.27048C32.1679%2010.2009%2032.1066%2011.1439%2031.9817%2012.0805C31.8364%2013.1701%2031.6217%2014.3426%2031.6217%2015.4405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M38.4458%2010.9404C37.8164%2011.0019%2037.2365%2012.1706%2037.133%2012.6759C37.003%2013.3111%2036.8827%2014.3195%2037.4143%2014.8389C37.877%2015.2909%2038.6357%2015.5034%2039.2845%2015.4242C39.7187%2015.3711%2040.5741%2014.6222%2040.7483%2014.2332C41.0389%2013.5843%2041.4228%2012.7137%2040.9567%2012.0397C40.797%2011.8088%2040.5748%2011.5565%2040.3212%2011.4188C40.1812%2011.3429%2039.9542%2011.2938%2039.8523%2011.1695C39.6835%2010.9633%2039.8716%2011.2288%2040.0451%2011.3527C40.5276%2011.6971%2040.9926%2012.051%2041.4672%2012.4062C41.9513%2012.7684%2042.4245%2013.1383%2042.9362%2013.4597C43.0899%2013.5561%2043.2193%2013.6302%2043.3217%2013.7803'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M12.9738%206.44043C12.9354%207.12336%2012.7347%207.78117%2012.7275%208.48097C12.7144%209.74646%2012.7275%2011.0127%2012.7275%2012.2783C12.7275%2013.1657%2013.0217%2015.8278%2013.0217%2014.9404C13.0217%2013.8437%2012.8802%2012.655%2013.5281%2011.731C14.1557%2010.8358%2015.5416%2010.9404%2016.5184%2010.9404C17.5439%2010.9404%2018.9647%2011.3184%2019.0092%2012.5485C19.0297%2013.115%2019.0692%2013.5833%2018.7081%2014.0418C18.1068%2014.8051%2016.9377%2014.8162%2016.0531%2015.0148C15.258%2015.1932%2014.4057%2015.4404%2013.5897%2015.4404'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","\n\n","\n\n","export const isOpen = () => {\n const targetTime = new Date('2024-03-18T19:00:00+09:00')\n const current = new Date()\n return current < targetTime\n}\n","\n\n","export default \"__VITE_ASSET__TxXt11_M__\"","export default \"data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.27295%201.38288C2.72656%201.38288%204.55953%201.24929%205.94683%201.67319C6.16152%201.73879%206.20919%202.32808%206.30971%202.48604C6.64759%203.01699%206.99995%203.63674%207.22417%204.22786C7.6944%205.46757%207.94133%206.84558%208.16765%208.14695C8.25945%208.67479%208.45796%209.35081%208.45796%209.87426'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M8.26127%2013.6484C8.16865%2013.66%208.08112%2013.7385%208%2013.7791'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__kh1ql9HY__\"","export default \"__VITE_ASSET__SRhcpZYV__\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2252%2020.4625%2012.6416%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1535%2023.3097%2014.4184C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8567%2024.1704%2016.3618%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3163C24.847%2018.8784%2025%2019.4522%2025%2020.0444C25%2020.2445%2024.913%2020.1797%2024.811%2020.0909C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.69%2021.5281%2018.6961C21.1936%2018.7005%2021.1426%2019.2521%2021.0588%2019.5717C20.8524%2020.359%2020.7209%2021.1802%2020.5749%2021.9869C20.5277%2022.248%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6895C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8942%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.174%2019.77%2021.087%2019.7298%2021.0105C19.3458%2020.2799%2018.8508%2019.5357%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9285C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1548C9.88096%2022.2865%209.45315%2023.1384%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1806%207.75245%2020.1839C7.41864%2020.1896%207.06751%2020.2314%206.73911%2020.3027C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5791C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6721C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9953%205.5771%2019.7562%205.70916%2019.5097C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1055C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5371%2014.688%2012.2615C15.7635%2011.9854%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M11%207.4445C11.0533%206.00462%2013.0492%205.82818%2014.0803%206.11689C14.5781%206.25627%2014.9933%206.72901%2015.3491%207.0848C15.9737%207.70949%2016.1343%208.38864%2016.1208%209.25606C16.1081%2010.0653%2015.7485%2010.8814%2015.2183%2011.4796C14.8644%2011.8789%2014.4805%2012.2684%2014.0313%2012.5587C13.545%2012.8729%2012.8888%2013.2083%2012.3243%2013.3337C12.1671%2013.3686%2011.5016%2013.6629%2011.6409%2013.713C12.6555%2014.0783%2013.7368%2014.2927%2014.7735%2014.5861C15.3355%2014.7451%2015.8982%2014.8825%2016.4739%2014.9785'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__E$BVrZNO__\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2253%2020.4625%2012.6417%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1536%2023.3097%2014.4185C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8568%2024.1704%2016.3619%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3164C24.847%2018.8784%2025%2019.4522%2025%2020.0445C25%2020.2446%2024.913%2020.1797%2024.811%2020.091C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.6901%2021.5281%2018.6961C21.1936%2018.7006%2021.1426%2019.2521%2021.0588%2019.5718C20.8524%2020.3591%2020.7209%2021.1802%2020.5749%2021.987C20.5277%2022.2481%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6896C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8943%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.1741%2019.77%2021.087%2019.7298%2021.0106C19.3458%2020.2799%2018.8508%2019.5358%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9286C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1549C9.88096%2022.2865%209.45315%2023.1385%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1807%207.75245%2020.184C7.41864%2020.1896%207.06751%2020.2315%206.73911%2020.3028C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5792C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6722C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9954%205.5771%2019.7562%205.70916%2019.5098C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1056C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5372%2014.688%2012.2616C15.7635%2011.9855%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23D88F4B'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M19.668%2012.6527C18.6089%2012.6066%2017.5663%2012.389%2016.5097%2012.3135C14.7245%2012.186%2012.9339%2011.9495%2011.1389%2012.0646C11.1233%2012.0656%2010.5327%2012.1373%2010.5476%2012.0552C10.5843%2011.8534%2010.7626%2011.5724%2010.8495%2011.3862C11.4861%2010.0219%2012.3305%208.72783%2013.3264%207.59615C13.6097%207.27421%2013.8747%206.9252%2014.2039%206.64708C14.3214%206.54779%2014.6786%206.18033%2014.8387%206.18033C14.8687%206.18033%2014.8413%206.30049%2014.8387%206.31102C14.8005%206.46356%2014.793%206.61388%2014.8076%206.77155C14.8898%207.66205%2015.2584%208.51072%2015.3677%209.40405C15.4721%2010.2575%2015.5897%2011.1052%2015.6664%2011.9619C15.714%2012.4938%2015.8375%2013.0301%2015.8593%2013.5613C15.8791%2014.0425%2015.9713%2014.5257%2015.9713%2015.0051'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","\n\n","import {zaxios} from '../zaxios.ts'\n\nexport interface GetRankParams {\n pageNumber: number,\n dateTime: number,\n}\n\nexport interface RankItem {\n nickName: string,\n score: number,\n rank: number\n}\n\nexport interface GetRankResult {\n nextPageNumber: number\n rankList: RankItem[],\n totalCount: number\n}\n\nexport const getRank = async (params: GetRankParams): Promise => {\n const response = await zaxios.get('/rank', {\n params\n })\n return response.data\n}\n","import {useInfiniteQuery} from '@tanstack/vue-query'\nimport {getRank} from '../fetch/getRank.ts'\n\nexport const useGetInfiniteRank = () => {\n const date = Date.now()\n return useInfiniteQuery({\n queryKey: ['rank'],\n queryFn: ({pageParam}) => getRank({\n pageNumber: pageParam,\n dateTime: date\n }),\n initialPageParam: 0,\n getNextPageParam: (lastPage) => {\n return lastPage.nextPageNumber\n }\n })\n}\n","export default \"data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_694_3918)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.5%2044C29.6717%2044%2034.6316%2041.9455%2038.2886%2038.2886C41.9455%2034.6316%2044%2029.6717%2044%2024.5C44%2019.3283%2041.9455%2014.3684%2038.2886%2010.7114C34.6316%207.05446%2029.6717%205%2024.5%205C19.3283%205%2014.3684%207.05446%2010.7114%2010.7114C7.05446%2014.3684%205%2019.3283%205%2024.5C5%2029.6717%207.05446%2034.6316%2010.7114%2038.2886C14.3684%2041.9455%2019.3283%2044%2024.5%2044ZM24.5%2048.5C30.8652%2048.5%2036.9697%2045.9714%2041.4706%2041.4706C45.9714%2036.9697%2048.5%2030.8652%2048.5%2024.5C48.5%2018.1348%2045.9714%2012.0303%2041.4706%207.52944C36.9697%203.02856%2030.8652%200.5%2024.5%200.5C18.1348%200.5%2012.0303%203.02856%207.52944%207.52944C3.02856%2012.0303%200.5%2018.1348%200.5%2024.5C0.5%2030.8652%203.02856%2036.9697%207.52944%2041.4706C12.0303%2045.9714%2018.1348%2048.5%2024.5%2048.5ZM27.5%2033.5C27.5%2034.2957%2027.1839%2035.0587%2026.6213%2035.6213C26.0587%2036.1839%2025.2956%2036.5%2024.5%2036.5C23.7044%2036.5%2022.9413%2036.1839%2022.3787%2035.6213C21.8161%2035.0587%2021.5%2034.2957%2021.5%2033.5C21.5%2032.7043%2021.8161%2031.9413%2022.3787%2031.3787C22.9413%2030.8161%2023.7044%2030.5%2024.5%2030.5C25.2956%2030.5%2026.0587%2030.8161%2026.6213%2031.3787C27.1839%2031.9413%2027.5%2032.7043%2027.5%2033.5ZM26.75%2014.75C26.75%2014.1533%2026.5129%2013.581%2026.091%2013.159C25.669%2012.7371%2025.0967%2012.5%2024.5%2012.5C23.9033%2012.5%2023.331%2012.7371%2022.909%2013.159C22.4871%2013.581%2022.25%2014.1533%2022.25%2014.75V25.25C22.25%2025.8467%2022.4871%2026.419%2022.909%2026.841C23.331%2027.2629%2023.9033%2027.5%2024.5%2027.5C25.0967%2027.5%2025.669%2027.2629%2026.091%2026.841C26.5129%2026.419%2026.75%2025.8467%2026.75%2025.25V14.75Z'%20fill='%23489B6D'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_694_3918'%3e%3crect%20width='48'%20height='48'%20fill='white'%20transform='translate(0.5%200.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","\n\n","\n\n\n","export default \"__VITE_ASSET__wOmEtW9b__\"","export default \"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2011.3335C8.18889%2011.3335%208.34733%2011.2695%208.47533%2011.1415C8.60333%2011.0135%208.66711%2010.8553%208.66667%2010.6668V8.00016C8.66667%207.81127%208.60267%207.65305%208.47467%207.5255C8.34667%207.39794%208.18844%207.33394%208%207.3335C7.81111%207.3335%207.65289%207.3975%207.52533%207.5255C7.39778%207.6535%207.33378%207.81172%207.33333%208.00016V10.6668C7.33333%2010.8557%207.39733%2011.0142%207.52533%2011.1422C7.65333%2011.2702%207.81155%2011.3339%208%2011.3335ZM8%206.00016C8.18889%206.00016%208.34733%205.93616%208.47533%205.80816C8.60333%205.68016%208.66711%205.52194%208.66667%205.3335C8.66667%205.14461%208.60267%204.98639%208.47467%204.85883C8.34667%204.73127%208.18844%204.66727%208%204.66683C7.81111%204.66683%207.65289%204.73083%207.52533%204.85883C7.39778%204.98683%207.33378%205.14505%207.33333%205.3335C7.33333%205.52239%207.39733%205.68083%207.52533%205.80883C7.65333%205.93683%207.81155%206.00061%208%206.00016ZM8%2014.6668C7.07778%2014.6668%206.21111%2014.4917%205.4%2014.1415C4.58889%2013.7913%203.88333%2013.3164%203.28333%2012.7168C2.68333%2012.1168%202.20844%2011.4113%201.85867%2010.6002C1.50889%209.78905%201.33378%208.92239%201.33333%208.00016C1.33333%207.07794%201.50844%206.21127%201.85867%205.40016C2.20889%204.58905%202.68378%203.8835%203.28333%203.2835C3.88333%202.6835%204.58889%202.20861%205.4%201.85883C6.21111%201.50905%207.07778%201.33394%208%201.3335C8.92222%201.3335%209.78889%201.50861%2010.6%201.85883C11.4111%202.20905%2012.1167%202.68394%2012.7167%203.2835C13.3167%203.8835%2013.7918%204.58905%2014.142%205.40016C14.4922%206.21127%2014.6671%207.07794%2014.6667%208.00016C14.6667%208.92239%2014.4916%209.78905%2014.1413%2010.6002C13.7911%2011.4113%2013.3162%2012.1168%2012.7167%2012.7168C12.1167%2013.3168%2011.4111%2013.7919%2010.6%2014.1422C9.78889%2014.4924%208.92222%2014.6673%208%2014.6668Z'%20fill='%23489B6D'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__L532ConD__\"","\n\n","export default \"__VITE_ASSET___n73MeCh__\"","\n\n","\n\n","import {createRouter, createWebHistory} from 'vue-router'\nimport PlayPage from '../pages/play/PlayPage.vue'\nimport HomePage from '../pages/home/HomePage.vue'\nimport RankPage from '../pages/rank/RankPage.vue'\nimport DevHomePage from '../event-pages/home/DevHomePage.vue'\n\nconst routes = [\n {\n path: '/',\n component: HomePage,\n },\n {\n path: '/play',\n component: PlayPage,\n },\n {\n path: '/rank',\n component: RankPage,\n },\n {\n path: '/dev',\n component: DevHomePage,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory('/'),\n routes,\n})\n\nexport default router\n","import {createApp} from 'vue'\nimport {createPinia} from 'pinia'\nimport {VueQueryPlugin} from '@tanstack/vue-query'\nimport './style.css'\nimport App from './App.vue'\nimport router from './router'\n\nconst pinia = createPinia()\nconst app = createApp(App)\n\napp.use(pinia)\napp.use(router)\napp.use(VueQueryPlugin)\napp.mount('#app')\n"],"names":["makeMap","str","expectsLowerCase","map","list","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","key","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","looseToNumber","n","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","activeEffectScope","EffectScope","detached","currentEffectScope","fromParent","l","last","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","createDep","effects","dep","wasTracked","trackOpBit","newTracked","initDepMarkers","deps","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","parent","lastShouldTrack","shouldTrack","cleanupEffect","effect2","trackStack","pauseTracking","resetTracking","track","target","type","depsMap","trackEffects","debuggerEventExtraInfo","shouldTrack2","trigger","newValue","oldTarget","newLength","key2","triggerEffects","triggerEffect","getDepFromReactive","object","isNonTrackableKeys","builtInSymbols","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","toRaw","BaseReactiveHandler","_isReadonly","_shallow","receiver","isReadonly2","shallow","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","readonly","reactive","MutableReactiveHandler","isReadonly","isShallow","hadKey","result","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","get","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","has","size","add","set","get2","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","raw","markRaw","trackRefValue","ref2","triggerRefValue","newVal","r","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","useDirectValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","source","defaultValue","ComputedRefImpl","getter","_setter","isSSR","self","computed","getterOrOptions","debugOptions","setter","onlyGetter","callWithErrorHandling","instance","err","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","cb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","a","b","comparator","diff","emit","event","rawArgs","props","modelArg","modifiersKey","number","trim","handlerName","handler","onceHandler","normalizeEmitsOptions","comp","appContext","asMixin","cached","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","options","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","Component","vnode","withProxy","propsOptions","slots","attrs","render","renderCache","data","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","keys","shapeFlag","filterModelListeners","cloneVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","updateHOCHostEl","NULL_DYNAMIC_COMPONENT","isSuspense","queueEffectWithSuspense","suspense","watchPostEffect","doWatch","INITIAL_WATCHER_VALUE","watch","immediate","deep","flush","onTrack","onTrigger","currentInstance","forceTrigger","isMultiSource","isShallow$1","s","traverse","cleanup","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","useSSRContext","queuePostRenderEffect","unwatch","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","path","segments","invokeDirectiveHook","bindings","oldBindings","binding","hook","defineComponent","extraOptions","isAsyncWrapper","isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","hooks","createHook","lifecycle","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","renderList","renderItem","index","renderSlot","fallback","noSlotted","slot","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","Fragment","vnodes","child","isVNode","getPublicInstance","isStatefulComponent","getExposeProxy","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","state","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","descriptor","normalizePropsOrEmits","applyOptions","callHook","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","directives","filters","resolveInjections","methodHandler","opt","createWatcher","provides","provide","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","inject","h","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","isSVG","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","initProps","rawProps","isStateful","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","match","isSameType","expectedTypes","t","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","children","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","isSameVNodeType","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","nextSibling","next","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","mountChildren","setScopeId","unmountChildren","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","subTree","parentVNode","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","updateComponentPreRender","componentUpdateFn","bu","u","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","update","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","doRemove","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","allowed","ch1","ch2","len","arrI","isTeleport","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","style","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","getCurrentInstance","internalSetCurrentInstance","globalCurrentInstanceSetters","settersKey","setupResult","setupStatefulComponent","setup","setupContext","createSetupContext","resolvedResult","handleSetupResult","e","finishComponentSetup","compile","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","getAttrsProxy","computed$1","propsOrChildren","ssrContextKey","svgNS","doc","templateContainer","nodeOps","tag","is","node","selector","content","before","wrapper","vtcKey","patchClass","transitionClasses","vShowOldKey","patchStyle","isCssString","setStyle","currentDisplay","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","isNativeOn","patchProp","shouldSetAsProp","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","rendererOptions","renderer","ensureRenderer","createApp","mount","containerOrSelector","normalizeContainer","isVue2","activePinia","setActivePinia","pinia","piniaSymbol","o","MutationType","createPinia","_p","toBeInstalled","noop","addSubscription","subscriptions","removeSubscription","idx","triggerSubscriptions","fallbackRunWithContext","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","assign","isComputed","createOptionsStore","hot","actions","getters","initialState","store","localState","computedGetters","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","wrapAction","action","afterCallbackList","onErrorCallbackList","after","onError","error","partialStore","stopWatcher","setupStore","actionValue","extender","defineStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","Subscribable","listener","isServer","functionalUpdate","updater","input","isValidTimeout","timeUntilStale","updatedAt","staleTime","matchQuery","query","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","hasObjectPrototype","prot","sleep","ms","resolve","replaceData","prevData","addToEnd","items","max","newItems","addToStart","skipToken","FocusManager","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","focused","isFocused","focusManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","outerResolve","outerReject","cancel","cancelOptions","reject","cancelRetry","continueRetry","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","retry","retryDelay","delay","shouldRetry","createNotifyManager","transactions","notifyFn","batchNotifyFn","scheduleFn","setScheduler","batch","schedule","batchCalls","originalQueue","notifyManager","Removable","_gcTimeout","newGcTime","Query","_setOptions","_dispatch","_initialState","_revertState","_cache","_promise","_retryer","_observers","_defaultOptions","_abortSignalConsumed","__privateMethod","setOptions_fn","getDefaultState","newData","dispatch_fn","setStateOptions","observer","x","fetchOptions","abortController","queryFnContext","addSignalProperty","fetchFn","_b","_c","_d","reducer","hasData","initialDataUpdatedAt","QueryCache","_queries","client","queryHash","queryInMap","defaultedFilters","queries","Mutation","_mutationCache","variables","executeMutation","restored","_f","_e","_h","_g","_j","_i","_l","_k","_n","_m","_o","_r","_q","_t","_s","MutationCache","_mutations","_mutationId","_resuming","__privateWrapper","pausedMutations","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","empty","cancelled","queryFn","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","hasNextPage","hasPreviousPage","QueryClient","_queryCache","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","cachedData","defaultedOptions","queryCache","refetchFilters","defaultedCancelOptions","promises","defaults","queryDefault","QueryObserver","_executeFetch","_updateStaleTimeout","_computeRefetchInterval","_updateRefetchInterval","_updateTimers","_clearStaleTimeout","_clearRefetchInterval","_updateQuery","_notify","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","updateQuery_fn","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","prevResult","prevResultState","prevResultOptions","queryInitialState","errorUpdatedAt","isPlaceholderData","fetchOnMount","fetchOptionally","selectError","placeholderData","isFetching","isPending","isError","isLoading","isStale","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","timeout","nextInterval","shouldLoadOnMount","field","optimisticResult","InfiniteQueryObserver","isRefetching","isFetchingNextPage","isFetchingPreviousPage","MutationObserver","_updateResult","_currentMutation","_mutateOptions","updateResult_fn","VUE_QUERY_CLIENT","getClientKey","suffix","updateState","cloneDeep","customize","cloneDeepUnref","prototype","shouldThrowError","throwOnError","params","useQueryClient","queryClient","QC","MC","vueQueryConfig","VueQueryPlugin","clientKey","clientConfig","persisterUnmount","originalUnmount","useBaseQuery","Observer","clonedOptions","defaulted","unsubscribe","isRestoring","refetch","stopWatch","useInfiniteQuery","useMutation","mutationOptions","mutate","mutateOptions","resultRefs","isBrowser","isESModule","applyToParams","newParams","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","location","currentLocation","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","position","toPosition","segment","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","pauseListeners","listen","teardown","beforeUnloadListener","history","destroy","buildState","back","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","score","pattern","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re","subPattern","parse","stringify","avoidDuplicatedSlash","compareScoreArray","comparePathParserScore","aScore","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","isRecordChildOf","paramsFromLocation","k","matched","parentMatcher","mergeMetaFields","normalizeRecordProps","propsObject","meta","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","reset","guardToPromiseFn","guard","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","link","elClass","getLinkClass","RouterLink","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","injectedDepth","depth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","currentName","ViewComponent","routePropsOption","routeProps","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","runWithContext","installedApps","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","isReady","scrollBehavior","started","reactiveRoute","unmountApp","recordFrom","recordTo","useRouter","_sfc_render","_ctx","_openBlock","_createElementBlock","_hoisted_1","n3","n4","n5","n6","n7","n8","n9","n10","__props","Block","block","gameOver","replay","home","gameOverZzio","f","clsx","falsyToString","cx","cva","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","getCompoundVariantClassNames","param1","cvClass","cvClassName","compoundVariantOptions","rankBanner","coinSm","giftZzio","arrow","bind","toString","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","isNumber","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","forEach","allOwnKeys","findKey","_global","isContextDefined","merge","caseless","assignValue","targetKey","stripBOM","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","endsWith","toArray","isTypedArray","TypedArray","forEachEntry","iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","ALPHA","DIGIT","ALPHABET","generateString","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","utils$1","AxiosError","code","request","response","utils","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","deleted","deleteHeader","format","targets","asStrings","first","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","isCancel","CanceledError","settle","validateStatus","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","isXHRAdapterSupported","xhrAdapter","requestData","requestHeaders","responseType","withXSRFToken","onCanceled","username","password","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","protocol","knownAdapters","renderReason","reason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","desc","opts","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","CancelToken$1","spread","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","axios","axios$1","zaxios","postRank","usePostRank","rank","heightRef","coin","factory","module","this","modules","installedModules","__webpack_require__","moduleId","exports","mode","ns","property","Common","argsStart","deepClone","begin","parts","temp","choices","_seededRandom","colorString","warning","haystack","needle","func","graph","visited","neighbors","neighbor","funcs","lastResult","decomp","global","Bounds","vertices","bounds","velocity","vertex","point","boundsA","boundsB","vector","deltaX","deltaY","Vector","y","angle","output","cos","sin","magnitude","vectorA","vectorB","vectorC","scalar","negate","Vertices","points","body","pathPattern","area","centre","cross","average","signed","mass","numerator","denominator","verticesLength","translateX","translateY","pointX","pointY","dx","dy","nextVertex","scaleX","scaleY","radius","quality","qualityMin","qualityMax","newVertices","prevVertex","currentRadius","prevNormal","nextNormal","diagonalRadius","radiusVector","midNormal","scaledVertex","precision","alpha","theta","vertexA","vertexB","z","upper","lower","Body","Sleeping","Axes","_initProperties","isNonColliding","defaultFillStyle","defaultStrokeStyle","defaultLineWidth","settings","isStatic","part","moment","density","inertia","autoHull","hull","hullCentre","relative","updateVelocity","timeScale","speed","translation","rotation","totalArea","totalInertia","deltaTime","deltaTimeSquared","correction","frictionAir","velocityPrevX","velocityPrevY","bodyVelocity","properties","Events","eventNames","names","callbacks","newCallbacks","eventClone","events","Composite","composite","isModified","updateParents","updateChildren","childComposite","objects","compositeA","compositeB","constraint","keepStatic","bodies","constraints","composites","recursive","motionSleepThreshold","angularSpeed","motion","minMotion","maxMotion","pairs","collision","bodyA","bodyB","sleepingBody","movingBody","isSleeping","wasSleeping","Collision","Pair","_supports","_overlapAB","_overlapBA","minOverlap","normal","supports","minAxis","minAxisX","minAxisY","supportsB","supportCount","supportsA","verticesA","verticesB","axes","verticesALength","verticesBLength","verticesAX","verticesAY","verticesBX","verticesBY","axesLength","overlapMin","overlapAxisNumber","overlap","overlapAB","overlapBA","dot","axis","axisX","axisY","minA","minB","maxA","maxB","projection","bodyAPositionX","bodyAPositionY","normalX","normalY","nearestDistance","vertexC","distance","Contact","timestamp","contacts","activeContacts","parentA","parentB","parentAVerticesLength","support","contactId","contact","Constraint","initialPointA","initialPointB","impulse","fixedA","fixedB","pointA","pointB","pointAWorld","pointBWorld","currentLength","difference","isRigid","stiffness","damping","massTotal","inertiaTotal","resistanceTotal","torque","share","normalVelocity","relativeVelocity","zero","gradient","xx","Bodies","width","height","rectangle","chamfer","slope","roof","x1","x2","x3","verticesPath","trapezoid","maxSides","circle","sides","yy","polygon","vertexSets","flagInternal","removeCollinear","minimumArea","removeDuplicatePoints","canDecomp","isConvex","isConcave","concave","decomposed","chunk","chunkVertices","coincident_max_dist","partA","partB","pav","pbv","da","db","Detector","detector","collisions","bodiesLength","canCollide","collides","boundXMax","boundYMax","boundYMin","bodyAStatic","partsALength","partsASingle","partsBLength","partsAStart","partsBStart","filterA","filterB","Mouse","element","mouse","touches","scale","pixelRatio","elementBounds","rootNode","scrollX","scrollY","Plugin","registered","pluginVersion","registeredVersion","dependency","plugins","dependencies","sortedDependencies","tracked","parsedBase","range","major","minor","Engine","Resolver","Pairs","engine","startTime","world","timing","allBodies","allConstraints","positionDamping","engineA","engineB","gravity","gravityScale","activeCount","pairsLength","contactShare","positionImpulse","positionDampen","slopDampen","positionWarming","verticesTranslate","boundsUpdate","positionImpulseX","positionImpulseY","contactsLength","tangent","contactVertex","normalImpulse","tangentImpulse","impulseX","impulseY","timeScaleSquared","timeScaleCubed","restingThresh","restingThreshTangent","frictionNormalMultiplier","frictionMaxStatic","maxFriction","bodyAVelocity","bodyBVelocity","tangentX","tangentY","inverseMassTotal","friction","offsetAX","offsetAY","offsetBX","offsetBY","velocityPointAX","velocityPointAY","velocityPointBX","velocityPointBY","relativeVelocityX","relativeVelocityY","tangentVelocity","normalOverlap","normalForce","frictionLimit","oAcN","oBcN","contactNormalImpulse","contactTangentImpulse","pairsList","pairsListLength","pairsTable","collisionsLength","collisionStart","collisionEnd","collisionActive","pairIndex","removePairIndex","Matter","Composites","deprecated","columns","rows","columnGap","rowGap","lastBody","row","maxHeight","column","bodyHeight","bodyWidth","xOffsetA","yOffsetA","xOffsetB","yOffsetB","bodyAHeight","bodyAWidth","bodyBHeight","bodyBWidth","crossBrace","col","bodyC","actualRows","lastBodyWidth","xOffset","newtonsCradle","separation","wheelSize","group","wheelBase","wheelAOffset","wheelBOffset","wheelYOffset","car","wheelA","wheelB","axelA","axelB","particleRadius","particleOptions","constraintOptions","softBody","Grid","grid","forceUpdate","buckets","bucket","bucketId","gridChanged","newRegion","union","isInsideNewRegion","isInsideOldRegion","regionA","regionB","startCol","endCol","startRow","endRow","gridPairs","pairId","bucketLength","pairKeys","pairKeysLength","MouseConstraint","mouseConstraint","mouseEvents","overlaps","startPoint","endPoint","rayWidth","rayAngle","rayLength","rayX","rayY","ray","outside","Render","_requestAnimationFrame","_cancelAnimationFrame","_createCanvas","loop","time","_updateTiming","canvas","_getPixelRatio","padding","center","viewHeight","viewWidth","outerRatio","innerRatio","boundsWidth","boundsHeight","boundsScaleX","boundsScaleY","background","_applyBackground","sections","section","deltaHistory","elapsedHistory","timestampElapsedHistory","engineDeltaHistory","engineElapsedHistory","lastEngineDelta","deltaMean","_mean","elapsedMean","engineDeltaMean","engineElapsedMean","timestampElapsedMean","rateMean","fps","graphHeight","gap","count","label","indicator","plotY","coils","showInternalEdges","sprite","texture","_getTexture","normalPosX","normalPosY","inspector","selected","historySize","devicePixelRatio","backingStorePixelRatio","imagePath","image","cssBackground","Runner","_frameTimeout","runner","SAT","Svg","sampleLength","il","segmentsQueue","lastSegment","lastPoint","segmentIndex","lx","ly","addPoint","px","py","pathSegType","isRelative","addSegmentPoint","segType","x0","y0","y1","y2","segs","seg","World","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","lineColor","blocks","Background","ratio","getBlockIndex","_count","RATIO","getDynamicCanvasHeight","setField","bottom","left","right","useTimer","limit","interval","usePlayer","groundHeightRef","isSetBlock","totalBlockCount","canvasOffsetX","gameOverRef","nextBlockRef","scoreRef","setNextBlock","addBlock","onDrag","drop","addCollisions","newBlock","removeCollisions","endGame","setLineCollisionTimer","_hoisted_3","_createElementVNode","_hoisted_2","_hoisted_4","useUserStore","playBackground","userStore","goBack","goRank","zzioGame","title$1","illustration","github","beta","titleRef","textRef","__emit","filled","onInupt","isOpen","closedRef","onClickPlay","onClickRank","labelLine","medalZzio","medal1","medal2","medal3","medal4","getRank","useGetInfiniteRank","date","pageParam","lastPage","OFFSET","fetchNextPage","totalCountRef","winner","showUpButton","isStarted","onScroll","offsetHeight","scrollTop","scrollHeight","isEnd","scrollUp","title","event$1","remainingTime","remainingDays","formattedTime","hours","minutes","seconds","currentRef","isOpenRef","closeTime","HomePage","PlayPage","RankPage","DevHomePage","App"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,48,49,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,104]} \ No newline at end of file +{"version":3,"file":"index-hu_6JyrI.js","sources":["../../node_modules/.pnpm/@vue+shared@3.3.11/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/.pnpm/@vue+reactivity@3.3.11/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-core@3.3.11/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-dom@3.3.11/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/.pnpm/vue-demi@0.14.7_vue@3.3.11/node_modules/vue-demi/lib/index.mjs","../../node_modules/.pnpm/pinia@2.1.7_typescript@5.2.2_vue@3.3.11/node_modules/pinia/dist/pinia.mjs","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.26.3/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/useQueryClient.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/vueQueryPlugin.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/useBaseQuery.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/useInfiniteQuery.js","../../node_modules/.pnpm/@tanstack+vue-query@5.26.3_vue@3.3.11/node_modules/@tanstack/vue-query/build/modern/useMutation.js","../../node_modules/.pnpm/vue-router@4.2.5_vue@3.3.11/node_modules/vue-router/dist/vue-router.mjs","../../src/components/Layout.vue","../../src/assets/next/n1.png","../../src/assets/next/n2.png","../../src/assets/next/n3.png","../../src/assets/next/n4.png","../../src/assets/next/n5.png","../../src/assets/next/n6.png","../../src/assets/next/n7.png","../../src/assets/next/n8.png","../../src/assets/next/n9.png","../../src/assets/next/n10.png","../../src/pages/play/_components/NextBlock.vue","../../src/assets/game-over.svg","../../src/assets/replay.svg","../../src/assets/home.svg","../../src/assets/game-over-zzio.svg","../../node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs","../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.mjs","../../src/components/button/ZRoundButton.vue","../../src/assets/rank-banner.png","../../src/assets/coin-sm.svg","../../src/assets/gift-zzio.svg","../../src/assets/arrow.svg","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/bind.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/utils.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/AxiosError.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/null.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/toFormData.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/buildURL.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/defaults/transitional.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/browser/index.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/common/utils.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/platform/index.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/defaults/index.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/transformData.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/cancel/isCancel.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/settle.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/cookies.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/buildFullPath.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/speedometer.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/adapters/xhr.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/adapters/adapters.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/mergeConfig.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/env/data.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/validator.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/core/Axios.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/spread.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/.pnpm/axios@1.6.7/node_modules/axios/lib/axios.js","../../src/requests/zaxios.ts","../../src/requests/fetch/postRank.ts","../../src/requests/use/usePostRank.ts","../../src/pages/play/_components/GameOver.vue","../../src/pages/play/_components/Ground.vue","../../src/assets/coin.svg","../../node_modules/.pnpm/matter-js@0.19.0/node_modules/matter-js/build/matter.js","../../src/assets/block/1.png","../../src/assets/block/2.png","../../src/assets/block/3.png","../../src/assets/block/4.png","../../src/assets/block/5.png","../../src/assets/block/6.png","../../src/assets/block/7.png","../../src/assets/block/8.png","../../src/assets/block/9.png","../../src/assets/block/10.png","../../src/pages/play/setting.ts","../../src/utils/create-block.ts","../../src/utils/get-block-index.ts","../../src/utils/get-dynamic-canvas-size.ts","../../src/utils/set-field.ts","../../src/hooks/use-timer.ts","../../src/hooks/use-player.ts","../../src/components/ZHeader.vue","../../src/assets/back.svg","../../src/stores/user.ts","../../src/assets/play-background.svg","../../src/pages/play/PlayPage.vue","../../src/assets/zzio-game.svg","../../src/assets/title-beta.svg","../../src/assets/illustration.svg","../../src/components/button/_assets/LeftLine.vue","../../src/components/button/_assets/RightLine.vue","../../src/components/button/ZButton.vue","../../src/assets/github-green.svg","../../src/assets/beta.svg","../../src/pages/home/_components/Notice.vue","../../src/components/ZInput.vue","../../src/utils/check-open.ts","../../src/pages/home/HomePage.vue","../../src/assets/rank.svg","../../src/assets/label-line.svg","../../src/assets/medal-zzio.svg","../../src/assets/medal1.svg","../../src/assets/medal2.svg","../../src/assets/medal3.svg","../../src/assets/medal4.svg","../../src/pages/rank/_components/Rank.vue","../../src/requests/fetch/getRank.ts","../../src/requests/use/useGetInfiniteRank.ts","../../src/assets/error.svg","../../src/components/ZLoading.vue","../../src/pages/rank/RankPage.vue","../../src/assets/title.svg","../../src/assets/info.svg","../../src/assets/event.svg","../../src/event-pages/home/_components/Notice.vue","../../src/assets/event-white.svg","../../src/event-pages/home/_components/Counter.vue","../../src/event-pages/home/DevHomePage.vue","../../src/router/index.ts","../../src/main.ts"],"sourcesContent":["function makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect2) {\n const { deps } = effect2;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect2);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { effect: activeEffect, target, type, key } : void 0;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (!!(process.env.NODE_ENV !== \"production\") && activeEffect.onTrack) {\n activeEffect.onTrack(\n extend(\n {\n effect: activeEffect\n },\n debuggerEventExtraInfo\n )\n );\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = !!(process.env.NODE_ENV !== \"production\") ? { target, type, key, newValue, oldValue, oldTarget } : void 0;\n if (deps.length === 1) {\n if (deps[0]) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(deps[0], eventInfo);\n } else {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(createDep(effects), eventInfo);\n } else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect2 of effects) {\n if (effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n for (const effect2 of effects) {\n if (!effect2.computed) {\n triggerEffect(effect2, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect2, debuggerEventExtraInfo) {\n if (effect2 !== activeEffect || effect2.allowRecurse) {\n if (!!(process.env.NODE_ENV !== \"production\") && effect2.onTrigger) {\n effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n if (effect2.scheduler) {\n effect2.scheduler();\n } else {\n effect2.run();\n }\n }\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _shallow = false) {\n this._isReadonly = _isReadonly;\n this._shallow = _shallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, shallow = this._shallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(false, shallow);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!this._shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(shallow = false) {\n super(true, shallow);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref2) {\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n trackEffects(ref2.dep || (ref2.dep = createDep()), {\n target: ref2,\n type: \"get\",\n key: \"value\"\n });\n } else {\n trackEffects(ref2.dep || (ref2.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref2, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n triggerEffects(dep, {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n });\n } else {\n triggerEffects(dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n console.warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst tick = /* @__PURE__ */ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = void 0;\n this._dirty = true;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n } else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(\n true\n /* computedTrigger */\n );\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return this._value = this.effect.run();\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n return toRaw(this)._get();\n }\n}\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, getCurrentScope, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, void 0];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n /* do not include inferred name to avoid breaking existing code */\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else {\n suspense.pendingId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n isSVG,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n next(activeBranch),\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n let { anchor: anchor2 } = suspense;\n if (activeBranch) {\n anchor2 = next(activeBranch);\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor2, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n isSVG2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n isSVG,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n document.createElement(\"div\"),\n null,\n isSVG,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n /* hydrating */\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = vnode.el = branch.el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n var _a;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n /* do not throw in dev if user provided error component */\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n isSVG,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, \"\"));\n warn(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn(`Cannot mutate \n","export default \"data:image/svg+xml,%3csvg%20width='185'%20height='37'%20viewBox='0%200%20185%2037'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M23.4694%207.95518C21.997%206.70688%2020.0195%206.41223%2018.1614%206.41223C11.8952%206.41223%207.47036%208.38623%203.72574%2013.6984C3.02871%2014.6872%202.02975%2016.0504%201.73171%2017.27C1.11513%2019.7931%202.03722%2022.9521%202.54617%2025.3562C3.01634%2027.577%203.09501%2031.3632%205.18615%2032.8137C7.4063%2034.3538%209.31842%2034.8524%2011.8984%2034.6424C16.1031%2034.3002%2021.3045%2035.0085%2023.8485%2030.9708C25.3739%2028.5499%2025.2387%2026.156%2025.2387%2023.3846'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M16.1206%2024.5332C18.6681%2024.5332%2022.1089%2024.8539%2024.46%2023.8101C25.5347%2023.3329%2026.8223%2025.5178%2027.0082%2026.2977C27.3172%2027.5941%2028.0047%2028.8553%2028.1085%2030.2027C28.1479%2030.7143%2028.4979%2032.6679%2028.8903%2032.8639'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M45.5195%2018.9062C43.713%2018.9062%2041.8658%2018.7818%2040.0681%2018.9381C36.2347%2019.2714%2033.7237%2023.2894%2033.501%2026.7963C33.281%2030.2618%2033.2558%2031.0222%2036.2426%2031.5941C38.8324%2032.09%2042.1692%2033.9881%2044.2921%2031.8651C46.9026%2029.2547%2046.954%2027.0863%2046.954%2023.6243C46.954%2022.8699%2046.954%2022.1154%2046.954%2021.3609C46.954%2020.2014%2047.8089%2021.7147%2048.1336%2022.0941C51.3013%2025.7954%2054.4514%2029.5097%2057.5698%2033.2519'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M61.6381%2020.0537C61.6381%2021.7372%2062.2023%2023.4454%2062.6423%2025.0587C63.1023%2026.7457%2063.1996%2028.3964%2063.503%2030.0956C63.5397%2030.3013%2063.9334%2032.0179%2063.9334%2030.9564C63.9334%2028.6842%2064.3213%2026.5351%2064.7303%2024.2936C65.0731%2022.4155%2065.0927%2020.4723%2066.7069%2019.2886C68.0889%2018.2751%2068.2489%2018.1957%2069.1137%2019.6552C70.4103%2021.8431%2070.9237%2024.058%2071.409%2026.5252C71.6709%2027.8565%2071.807%2029.3128%2072.1901%2030.6057C72.5145%2031.7008%2072.2413%2030.174%2072.1901%2029.7768C71.7889%2026.6677%2071.4451%2021.4418%2073.529%2018.7626C74.3927%2017.6521%2077.3345%2021.2185%2078.0559%2022.1896C79.2855%2023.8449%2079.7521%2025.9628%2080.6381%2027.8003C80.952%2028.4514%2081.4351%2029.0699%2081.4351%2029.8087'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M84.8779%2024.9314C88.411%2024.9314%2091.9289%2024.6692%2095.4618%2024.6445C97.2723%2024.6318%2099.0792%2024.5265%20100.881%2024.3575C101.722%2024.2787%20100.539%2022.6444%20100.371%2022.3651C98.1466%2018.6573%2093.4209%2016.2697%2089.3091%2018.6193C88.3747%2019.1532%2087.7471%2020.572%2087.7471%2021.6319C87.7471%2022.9352%2087.9762%2024.2014%2088.1774%2025.4893C88.2736%2026.1048%2088.1463%2028.3941%2088.9585%2028.725C91.2752%2029.6689%2093.4985%2030.7979%2096.0675%2030.9406C97.0674%2030.9961%2098.6352%2031.2531%2099.5105%2030.6696'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M128.673%201.97827C125.774%204.39382%20124.402%206.86071%20122.951%2010.4263C120.878%2015.5174%20119.486%2021.4132%20122.058%2026.5572C123.395%2029.2315%20125.527%2031.4883%20128.657%2031.2275C130.832%2031.0462%20134.234%2030.0047%20136.101%2028.8046C139.748%2026.4601%20139.862%2019.3628%20139.862%2015.7501C139.862%2012.1221%20139.322%207.54722%20136.133%205.42123'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M145.314%2017.7585C145.314%2020.0361%20146.94%2022.8141%20147.864%2024.8676C148.314%2025.8674%20148.34%2027.0432%20149.187%2026.3659C149.547%2026.0784%20149.733%2025.3173%20149.968%2024.9314C150.702%2023.7254%20151.478%2022.5438%20152.295%2021.3928C152.999%2020.4007%20153.542%2019.3307%20154.208%2018.3324'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M159.946%2022.6363C162.329%2022.7852%20167.174%2024.139%20168.538%2021.2973C170.36%2017.5004%20164.404%2016.564%20161.955%2016.9139C160.772%2017.0829%20159.925%2018.3952%20159.596%2019.4164C158.844%2021.7461%20161.08%2023.8794%20162.465%2025.5054C163.229%2026.4021%20165.738%2028.7064%20166.896%2027.8644C167.871%2027.1554%20170.837%2027.8943%20171.997%2028.0876'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M177.448%2018.0455C177.559%2019.0398%20178.226%2019.8639%20178.596%2020.7552C179.176%2022.1549%20179.17%2024.1885%20179.17%2025.7284C179.17%2026.1851%20178.941%2027.3717%20179.233%2027.7367C179.632%2028.2343%20178.845%2025.8489%20178.739%2025.3617C178.372%2023.6722%20178.375%2021.8003%20179.313%2020.3408C180.093%2019.1282%20182.021%2017.7585%20183.473%2017.7585'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='24'%20viewBox='0%200%2020%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.82205%207.21589C1.69799%205.97529%201.30287%204.89144%201.62129%203.61774C1.85076%202.69986%204.09944%202.44983%204.55541%202.35143C7.48579%201.71907%2010.5606%201.12752%2013.5662%201.02336C14.8054%200.980419%2015.3672%201.79215%2016.1375%202.6294C17.3154%203.90983%2018.1631%205.05896%2018.3303%206.81438C18.4926%208.51806%2018.4244%209.76023%2017.9751%2011.4318C17.4987%2013.2044%2016.6239%2014.5602%2015.2958%2015.8329C13.9439%2017.1285%2012.4993%2018.5086%2010.6862%2019.1222C8.43473%2019.8843%205.35043%2018.6103%203.90682%2016.8058'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.96465%2014.165C6.0624%2015.0673%205.05937%2015.8567%203.97648%2016.4583C3.5156%2016.7143%204.31379%2018.1121%204.43204%2018.5199C4.67598%2019.361%205.05164%2020.1566%205.26595%2021.0062C5.35625%2021.3641%205.41003%2021.7576%205.57481%2022.0872'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='27'%20height='28'%20viewBox='0%200%2027%2028'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.18318%207.00292C8.70656%205.2824%2012.3997%202.9563%2014.2866%202.02173C14.2866%202.02173%2014.8832%202.61948%2015.0474%202.6664C15.4959%202.79455%2016.1389%203.36089%2016.5049%203.65543C17.9568%204.824%2019.5572%205.83512%2020.7173%207.35529C21.52%208.4071%2022.5307%209.34097%2023.2519%2010.4505C23.8801%2011.417%2024.5944%2012.3271%2025.242%2013.2815C25.3369%2013.4213%2026.1835%2014.7508%2025.8026%2014.779C25.4613%2014.8043%2025.066%2014.8224%2024.7295%2014.8871C24.0748%2015.013%2023.3668%2014.8956%2022.7034%2014.9392C22.3182%2014.9645%2021.9585%2015.0673%2021.5702%2015.0673C21.3286%2015.0673%2021.3499%2015.6677%2021.3499%2015.8601C21.3499%2017.4481%2021.1337%2019.0287%2021.1337%2020.6171C21.1337%2021.7162%2020.9575%2022.8015%2020.9215%2023.9005C20.9032%2024.4588%2020.8577%2025.0037%2020.7894%2025.5582C20.7708%2025.7084%2020.7943%2026.1086%2020.6292%2026.1829C20.2391%2026.3585%2019.6908%2026.311%2019.2598%2026.311C17.7708%2026.311%2016.2655%2026.3781%2014.7871%2026.1669C12.6155%2025.8566%2010.35%2025.8786%208.1602%2025.8786C7.6708%2025.8786%207.72775%2025.6701%207.72775%2025.2299C7.72775%2023.4468%207.39509%2021.6983%206.97496%2019.9684C6.71287%2018.8892%206.57455%2017.7665%206.57455%2016.657C6.57455%2016.2185%206.56854%2015.7901%206.6306%2015.3556C6.64647%2015.2446%206.7108%2014.8953%206.6306%2014.795C6.54591%2014.6892%206.2751%2014.7126%206.17813%2014.7069C5.64321%2014.6755%205.10811%2014.6497%204.57246%2014.6349C3.72344%2014.6113%202.86447%2014.6217%202.0178%2014.5468C1.87123%2014.5338%201.63271%2014.5257%201.50526%2014.4347C1.44289%2014.3901%201.95469%2013.7833%201.99377%2013.7379C2.27258%2013.4145%202.48111%2013.0473%202.6905%2012.6768C3.86252%2010.6033%205.61401%208.77515%207.18318%207.00292Z'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__uqunmf0g__\"","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","\n\n","export default \"__VITE_ASSET__JH4Bhidu__\"","export default \"data:image/svg+xml,%3csvg%20width='19'%20height='19'%20viewBox='0%200%2019%2019'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.43059%201.02173C8.92229%201.02173%209.53439%201.02275%209.97498%201.27106C10.5034%201.27106%2012.5403%202.22615%2013.0052%202.45905C14.0392%202.97705%2015.371%203.51223%2015.9696%204.57836C16.7893%206.03845%2017.6095%207.16875%2017.9458%208.85366C18.0986%209.61892%2017.8799%2010.3522%2017.8799%2011.1196C17.8799%2012.048%2017.6975%2013.0301%2017.2212%2013.8403C16.362%2015.3016%2015.2688%2016.7749%2013.5029%2016.9496C11.889%2017.1093%2010.0937%2016.9919%208.49647%2016.7149C6.89916%2016.4379%203.35156%2016.2248%202.47261%2014.4636C2.06266%2013.6422%201.62576%2013.0587%201.34543%2012.1536C0.965334%2010.9266%200.934584%209.60991%201.08193%208.34033C1.28432%206.59645%201.69217%205.01032%203.12404%203.8377C4.23262%202.92984%205.51234%202.22705%206.78373%201.57906C7.30733%201.31219%207.83266%201.02173%208.43059%201.02173Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M7%207.12347C7.31959%207.01947%207.73803%207.03886%208.0731%207.03189C8.69347%207.01898%209.31513%207.02927%209.93567%207.02927C10.2532%207.02927%2010.5774%207.01257%2010.8947%207.02927C11.0553%207.03773%2010.9775%207.55206%2010.9591%207.6311C10.8308%208.18224%2010.3287%208.6837%209.88304%209.05456C9.17184%209.64635%208.40718%2010.2032%207.64327%2010.7397C7.46968%2010.8616%207.21317%2011.0028%207.09357%2011.1741C7.01759%2011.2828%206.99859%2011.2601%207.22807%2011.3154C7.72868%2011.436%208.2552%2011.48%208.76608%2011.5509C9.6289%2011.6704%2010.4852%2011.824%2011.348%2011.9434C11.5601%2011.9727%2011.7838%2012.0219%2012%2012.0219'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__x9F0pF87__\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17%2014L12%209L7%2014'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios, {AxiosInstance, CreateAxiosDefaults} from 'axios'\n\nconst config: CreateAxiosDefaults = {\n baseURL: 'https://3.35.245.28.nip.io'\n}\n\nexport const zaxios: AxiosInstance = axios.create(config)\n","import {zaxios} from '../zaxios.ts'\n\nexport interface PostRankParams {\n nickName: string,\n score: number\n}\n\nexport interface PostRankResult {\n userId: number\n rank: number\n count: number\n currentTime: number\n}\n\nexport const postRank = async (params: PostRankParams): Promise => {\n const response = await zaxios.post('/rank', params)\n return response.data\n}\n","import {postRank, PostRankParams} from '../fetch/postRank.ts'\nimport {useMutation} from '@tanstack/vue-query'\n\nexport const usePostRank = () => {\n return useMutation({\n mutationFn: (params: PostRankParams) => postRank(params),\n })\n}\n","\n\n","\n\n\n","export default \"data:image/svg+xml,%3csvg%20width='27'%20height='32'%20viewBox='0%200%2027%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.6751%2013.9973C22.0094%2013.0074%2021.4337%2011.9797%2020.7618%2011C18.0659%2011%2013.2394%2012.3628%2010.721%2013.3337C9.5596%2013.7815%208.51678%2014.2514%207.56378%2015.131C6.41118%2016.1949%205.7163%2017.3982%204.85279%2018.6537C4.26802%2019.504%203.6337%2020.8005%203.69252%2021.8502C3.74063%2022.7086%204.29889%2023.4778%204.39537%2024.3387C4.47243%2025.0262%204.94275%2025.7335%205.29904%2026.3075C5.41578%2026.4955%205.53843%2026.678%205.70067%2026.8273C6.11779%2027.2113%206.77047%2027.887%207.35739%2028.0163C7.77046%2028.1073%208.18879%2028.3071%208.56786%2028.4145C8.7991%2028.48%209.58367%2028.6032%209.71696%2028.7684C9.9764%2029.0899%2010.704%2028.9942%2011.0111%2029.2606C11.3322%2029.5391%2011.9475%2029.6032%2012.3499%2029.7362C13.5928%2030.1469%2014.8972%2029.97%2016.1877%2029.9131C17.9245%2029.8366%2019.9897%2029.4132%2021.6097%2028.8292C22.9624%2028.3416%2023.8858%2027.4229%2024.7725%2026.3241C25.3628%2025.5926%2025.1578%2024.8156%2025.4998%2023.9437C25.4998%2022.2917%2024.4865%2017.7774%2024.2705%2017.0279C24.1799%2016.7138%2023.8308%2016.0193%2023.6234%2015.7725C23.2005%2015.2695%2023.0384%2014.5376%2022.6751%2013.9973Z'%20fill='%23FFAF00'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M11.394%204.88757C12.0487%204.88757%2012.8637%204.88894%2013.4503%205.21956C14.1539%205.21956%2016.866%206.49125%2017.4851%206.80135C18.8619%207.49106%2020.6351%208.20366%2021.4321%209.6232C22.5235%2011.5673%2023.6156%2013.0723%2024.0634%2015.3157C24.2668%2016.3346%2023.9757%2017.311%2023.9757%2018.3328C23.9757%2019.569%2023.7328%2020.8766%2023.0986%2021.9553C21.9546%2023.901%2020.499%2025.8627%2018.1478%2026.0954C15.9988%2026.308%2013.6084%2026.1517%2011.4817%2025.7829C9.35491%2025.4141%204.63133%2025.1304%203.46101%2022.7853C2.91517%2021.6915%202.33344%2020.9146%201.96018%2019.7096C1.45409%2018.0758%201.41314%2016.3226%201.60933%2014.6322C1.87882%2012.3103%202.42186%2010.1983%204.32838%208.63702C5.80445%207.4282%207.50838%206.49245%209.20122%205.62965C9.89839%205.27432%2010.5979%204.88757%2011.394%204.88757Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M9.48914%2013.0118C9.91466%2012.8733%2010.4718%2012.8991%2010.918%2012.8898C11.744%2012.8726%2012.5717%2012.8863%2013.398%2012.8863C13.8207%2012.8863%2014.2525%2012.8641%2014.6749%2012.8863C14.8888%2012.8976%2014.7851%2013.5824%2014.7606%2013.6877C14.5898%2014.4215%2013.9213%2015.0892%2013.3279%2015.583C12.3809%2016.371%2011.3628%2017.1124%2010.3456%2017.8267C10.1145%2017.9891%209.77297%2018.1771%209.61372%2018.4051C9.51256%2018.5499%209.48725%2018.5196%209.79281%2018.5932C10.4594%2018.7538%2011.1604%2018.8125%2011.8407%2018.9068C12.9895%2019.066%2014.1296%2019.2704%2015.2784%2019.4294C15.5609%2019.4685%2015.8587%2019.5339%2016.1466%2019.5339'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.7046%2026.567C14.7046%2026.8579%2014.7319%2027.3589%2014.9399%2027.5669'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M20.3511%2025.2731C20.4794%2025.6296%2020.6433%2025.9734%2020.7628%2026.3318'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","/*!\n * matter-js 0.19.0 by @liabru\n * http://brm.io/matter-js/\n * License MIT\n * \n * The MIT License (MIT)\n * \n * Copyright (c) Liam Brummitt and contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Matter\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Matter\"] = factory();\n\telse\n\t\troot[\"Matter\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Common` module contains utility functions that are common to all modules.\n*\n* @class Common\n*/\n\nvar Common = {};\n\nmodule.exports = Common;\n\n(function() {\n\n Common._baseDelta = 1000 / 60;\n Common._nextId = 0;\n Common._seed = 0;\n Common._nowStartTime = +(new Date());\n Common._warnedOnce = {};\n Common._decomp = null;\n \n /**\n * Extends the object in the first argument using the object in the second argument.\n * @method extend\n * @param {} obj\n * @param {boolean} deep\n * @return {} obj extended\n */\n Common.extend = function(obj, deep) {\n var argsStart,\n args,\n deepClone;\n\n if (typeof deep === 'boolean') {\n argsStart = 2;\n deepClone = deep;\n } else {\n argsStart = 1;\n deepClone = true;\n }\n\n for (var i = argsStart; i < arguments.length; i++) {\n var source = arguments[i];\n\n if (source) {\n for (var prop in source) {\n if (deepClone && source[prop] && source[prop].constructor === Object) {\n if (!obj[prop] || obj[prop].constructor === Object) {\n obj[prop] = obj[prop] || {};\n Common.extend(obj[prop], deepClone, source[prop]);\n } else {\n obj[prop] = source[prop];\n }\n } else {\n obj[prop] = source[prop];\n }\n }\n }\n }\n \n return obj;\n };\n\n /**\n * Creates a new clone of the object, if deep is true references will also be cloned.\n * @method clone\n * @param {} obj\n * @param {bool} deep\n * @return {} obj cloned\n */\n Common.clone = function(obj, deep) {\n return Common.extend({}, deep, obj);\n };\n\n /**\n * Returns the list of keys for the given object.\n * @method keys\n * @param {} obj\n * @return {string[]} keys\n */\n Common.keys = function(obj) {\n if (Object.keys)\n return Object.keys(obj);\n\n // avoid hasOwnProperty for performance\n var keys = [];\n for (var key in obj)\n keys.push(key);\n return keys;\n };\n\n /**\n * Returns the list of values for the given object.\n * @method values\n * @param {} obj\n * @return {array} Array of the objects property values\n */\n Common.values = function(obj) {\n var values = [];\n \n if (Object.keys) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n \n // avoid hasOwnProperty for performance\n for (var key in obj)\n values.push(obj[key]);\n return values;\n };\n\n /**\n * Gets a value from `base` relative to the `path` string.\n * @method get\n * @param {} obj The base object\n * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n * @param {number} [begin] Path slice begin\n * @param {number} [end] Path slice end\n * @return {} The object at the given path\n */\n Common.get = function(obj, path, begin, end) {\n path = path.split('.').slice(begin, end);\n\n for (var i = 0; i < path.length; i += 1) {\n obj = obj[path[i]];\n }\n\n return obj;\n };\n\n /**\n * Sets a value on `base` relative to the given `path` string.\n * @method set\n * @param {} obj The base object\n * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n * @param {} val The value to set\n * @param {number} [begin] Path slice begin\n * @param {number} [end] Path slice end\n * @return {} Pass through `val` for chaining\n */\n Common.set = function(obj, path, val, begin, end) {\n var parts = path.split('.').slice(begin, end);\n Common.get(obj, path, 0, -1)[parts[parts.length - 1]] = val;\n return val;\n };\n\n /**\n * Shuffles the given array in-place.\n * The function uses a seeded random generator.\n * @method shuffle\n * @param {array} array\n * @return {array} array shuffled randomly\n */\n Common.shuffle = function(array) {\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Common.random() * (i + 1));\n var temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n return array;\n };\n\n /**\n * Randomly chooses a value from a list with equal probability.\n * The function uses a seeded random generator.\n * @method choose\n * @param {array} choices\n * @return {object} A random choice object from the array\n */\n Common.choose = function(choices) {\n return choices[Math.floor(Common.random() * choices.length)];\n };\n\n /**\n * Returns true if the object is a HTMLElement, otherwise false.\n * @method isElement\n * @param {object} obj\n * @return {boolean} True if the object is a HTMLElement, otherwise false\n */\n Common.isElement = function(obj) {\n if (typeof HTMLElement !== 'undefined') {\n return obj instanceof HTMLElement;\n }\n\n return !!(obj && obj.nodeType && obj.nodeName);\n };\n\n /**\n * Returns true if the object is an array.\n * @method isArray\n * @param {object} obj\n * @return {boolean} True if the object is an array, otherwise false\n */\n Common.isArray = function(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n\n /**\n * Returns true if the object is a function.\n * @method isFunction\n * @param {object} obj\n * @return {boolean} True if the object is a function, otherwise false\n */\n Common.isFunction = function(obj) {\n return typeof obj === \"function\";\n };\n\n /**\n * Returns true if the object is a plain object.\n * @method isPlainObject\n * @param {object} obj\n * @return {boolean} True if the object is a plain object, otherwise false\n */\n Common.isPlainObject = function(obj) {\n return typeof obj === 'object' && obj.constructor === Object;\n };\n\n /**\n * Returns true if the object is a string.\n * @method isString\n * @param {object} obj\n * @return {boolean} True if the object is a string, otherwise false\n */\n Common.isString = function(obj) {\n return toString.call(obj) === '[object String]';\n };\n \n /**\n * Returns the given value clamped between a minimum and maximum value.\n * @method clamp\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @return {number} The value clamped between min and max inclusive\n */\n Common.clamp = function(value, min, max) {\n if (value < min)\n return min;\n if (value > max)\n return max;\n return value;\n };\n \n /**\n * Returns the sign of the given value.\n * @method sign\n * @param {number} value\n * @return {number} -1 if negative, +1 if 0 or positive\n */\n Common.sign = function(value) {\n return value < 0 ? -1 : 1;\n };\n \n /**\n * Returns the current timestamp since the time origin (e.g. from page load).\n * The result is in milliseconds and will use high-resolution timing if available.\n * @method now\n * @return {number} the current timestamp in milliseconds\n */\n Common.now = function() {\n if (typeof window !== 'undefined' && window.performance) {\n if (window.performance.now) {\n return window.performance.now();\n } else if (window.performance.webkitNow) {\n return window.performance.webkitNow();\n }\n }\n\n if (Date.now) {\n return Date.now();\n }\n\n return (new Date()) - Common._nowStartTime;\n };\n \n /**\n * Returns a random value between a minimum and a maximum value inclusive.\n * The function uses a seeded random generator.\n * @method random\n * @param {number} min\n * @param {number} max\n * @return {number} A random number between min and max inclusive\n */\n Common.random = function(min, max) {\n min = (typeof min !== \"undefined\") ? min : 0;\n max = (typeof max !== \"undefined\") ? max : 1;\n return min + _seededRandom() * (max - min);\n };\n\n var _seededRandom = function() {\n // https://en.wikipedia.org/wiki/Linear_congruential_generator\n Common._seed = (Common._seed * 9301 + 49297) % 233280;\n return Common._seed / 233280;\n };\n\n /**\n * Converts a CSS hex colour string into an integer.\n * @method colorToNumber\n * @param {string} colorString\n * @return {number} An integer representing the CSS hex string\n */\n Common.colorToNumber = function(colorString) {\n colorString = colorString.replace('#','');\n\n if (colorString.length == 3) {\n colorString = colorString.charAt(0) + colorString.charAt(0)\n + colorString.charAt(1) + colorString.charAt(1)\n + colorString.charAt(2) + colorString.charAt(2);\n }\n\n return parseInt(colorString, 16);\n };\n\n /**\n * The console logging level to use, where each level includes all levels above and excludes the levels below.\n * The default level is 'debug' which shows all console messages. \n *\n * Possible level values are:\n * - 0 = None\n * - 1 = Debug\n * - 2 = Info\n * - 3 = Warn\n * - 4 = Error\n * @static\n * @property logLevel\n * @type {Number}\n * @default 1\n */\n Common.logLevel = 1;\n\n /**\n * Shows a `console.log` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method log\n * @param ...objs {} The objects to log.\n */\n Common.log = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 3) {\n console.log.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Shows a `console.info` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method info\n * @param ...objs {} The objects to log.\n */\n Common.info = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 2) {\n console.info.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Shows a `console.warn` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method warn\n * @param ...objs {} The objects to log.\n */\n Common.warn = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 3) {\n console.warn.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Uses `Common.warn` to log the given message one time only.\n * @method warnOnce\n * @param ...objs {} The objects to log.\n */\n Common.warnOnce = function() {\n var message = Array.prototype.slice.call(arguments).join(' ');\n\n if (!Common._warnedOnce[message]) {\n Common.warn(message);\n Common._warnedOnce[message] = true;\n }\n };\n\n /**\n * Shows a deprecated console warning when the function on the given object is called.\n * The target function will be replaced with a new function that first shows the warning\n * and then calls the original function.\n * @method deprecated\n * @param {object} obj The object or module\n * @param {string} name The property name of the function on obj\n * @param {string} warning The one-time message to show if the function is called\n */\n Common.deprecated = function(obj, prop, warning) {\n obj[prop] = Common.chain(function() {\n Common.warnOnce('🔅 deprecated 🔅', warning);\n }, obj[prop]);\n };\n\n /**\n * Returns the next unique sequential ID.\n * @method nextId\n * @return {Number} Unique sequential ID\n */\n Common.nextId = function() {\n return Common._nextId++;\n };\n\n /**\n * A cross browser compatible indexOf implementation.\n * @method indexOf\n * @param {array} haystack\n * @param {object} needle\n * @return {number} The position of needle in haystack, otherwise -1.\n */\n Common.indexOf = function(haystack, needle) {\n if (haystack.indexOf)\n return haystack.indexOf(needle);\n\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle)\n return i;\n }\n\n return -1;\n };\n\n /**\n * A cross browser compatible array map implementation.\n * @method map\n * @param {array} list\n * @param {function} func\n * @return {array} Values from list transformed by func.\n */\n Common.map = function(list, func) {\n if (list.map) {\n return list.map(func);\n }\n\n var mapped = [];\n\n for (var i = 0; i < list.length; i += 1) {\n mapped.push(func(list[i]));\n }\n\n return mapped;\n };\n\n /**\n * Takes a directed graph and returns the partially ordered set of vertices in topological order.\n * Circular dependencies are allowed.\n * @method topologicalSort\n * @param {object} graph\n * @return {array} Partially ordered set of vertices in topological order.\n */\n Common.topologicalSort = function(graph) {\n // https://github.com/mgechev/javascript-algorithms\n // Copyright (c) Minko Gechev (MIT license)\n // Modifications: tidy formatting and naming\n var result = [],\n visited = [],\n temp = [];\n\n for (var node in graph) {\n if (!visited[node] && !temp[node]) {\n Common._topologicalSort(node, visited, temp, graph, result);\n }\n }\n\n return result;\n };\n\n Common._topologicalSort = function(node, visited, temp, graph, result) {\n var neighbors = graph[node] || [];\n temp[node] = true;\n\n for (var i = 0; i < neighbors.length; i += 1) {\n var neighbor = neighbors[i];\n\n if (temp[neighbor]) {\n // skip circular dependencies\n continue;\n }\n\n if (!visited[neighbor]) {\n Common._topologicalSort(neighbor, visited, temp, graph, result);\n }\n }\n\n temp[node] = false;\n visited[node] = true;\n\n result.push(node);\n };\n\n /**\n * Takes _n_ functions as arguments and returns a new function that calls them in order.\n * The arguments applied when calling the new function will also be applied to every function passed.\n * The value of `this` refers to the last value returned in the chain that was not `undefined`.\n * Therefore if a passed function does not return a value, the previously returned value is maintained.\n * After all passed functions have been called the new function returns the last returned value (if any).\n * If any of the passed functions are a chain, then the chain will be flattened.\n * @method chain\n * @param ...funcs {function} The functions to chain.\n * @return {function} A new function that calls the passed functions in order.\n */\n Common.chain = function() {\n var funcs = [];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var func = arguments[i];\n\n if (func._chained) {\n // flatten already chained functions\n funcs.push.apply(funcs, func._chained);\n } else {\n funcs.push(func);\n }\n }\n\n var chain = function() {\n // https://github.com/GoogleChrome/devtools-docs/issues/53#issuecomment-51941358\n var lastResult,\n args = new Array(arguments.length);\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n args[i] = arguments[i];\n }\n\n for (i = 0; i < funcs.length; i += 1) {\n var result = funcs[i].apply(lastResult, args);\n\n if (typeof result !== 'undefined') {\n lastResult = result;\n }\n }\n\n return lastResult;\n };\n\n chain._chained = funcs;\n\n return chain;\n };\n\n /**\n * Chains a function to excute before the original function on the given `path` relative to `base`.\n * See also docs for `Common.chain`.\n * @method chainPathBefore\n * @param {} base The base object\n * @param {string} path The path relative to `base`\n * @param {function} func The function to chain before the original\n * @return {function} The chained function that replaced the original\n */\n Common.chainPathBefore = function(base, path, func) {\n return Common.set(base, path, Common.chain(\n func,\n Common.get(base, path)\n ));\n };\n\n /**\n * Chains a function to excute after the original function on the given `path` relative to `base`.\n * See also docs for `Common.chain`.\n * @method chainPathAfter\n * @param {} base The base object\n * @param {string} path The path relative to `base`\n * @param {function} func The function to chain after the original\n * @return {function} The chained function that replaced the original\n */\n Common.chainPathAfter = function(base, path, func) {\n return Common.set(base, path, Common.chain(\n Common.get(base, path),\n func\n ));\n };\n\n /**\n * Provide the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module to enable\n * concave vertex decomposition support when using `Bodies.fromVertices` e.g. `Common.setDecomp(require('poly-decomp'))`.\n * @method setDecomp\n * @param {} decomp The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module.\n */\n Common.setDecomp = function(decomp) {\n Common._decomp = decomp;\n };\n\n /**\n * Returns the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module provided through `Common.setDecomp`,\n * otherwise returns the global `decomp` if set.\n * @method getDecomp\n * @return {} The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module if provided.\n */\n Common.getDecomp = function() {\n // get user provided decomp if set\n var decomp = Common._decomp;\n\n try {\n // otherwise from window global\n if (!decomp && typeof window !== 'undefined') {\n decomp = window.decomp;\n }\n \n // otherwise from node global\n if (!decomp && typeof global !== 'undefined') {\n decomp = global.decomp;\n }\n } catch (e) {\n // decomp not available\n decomp = null;\n }\n\n return decomp;\n };\n})();\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Bounds` module contains methods for creating and manipulating axis-aligned bounding boxes (AABB).\n*\n* @class Bounds\n*/\n\nvar Bounds = {};\n\nmodule.exports = Bounds;\n\n(function() {\n\n /**\n * Creates a new axis-aligned bounding box (AABB) for the given vertices.\n * @method create\n * @param {vertices} vertices\n * @return {bounds} A new bounds object\n */\n Bounds.create = function(vertices) {\n var bounds = { \n min: { x: 0, y: 0 }, \n max: { x: 0, y: 0 }\n };\n\n if (vertices)\n Bounds.update(bounds, vertices);\n \n return bounds;\n };\n\n /**\n * Updates bounds using the given vertices and extends the bounds given a velocity.\n * @method update\n * @param {bounds} bounds\n * @param {vertices} vertices\n * @param {vector} velocity\n */\n Bounds.update = function(bounds, vertices, velocity) {\n bounds.min.x = Infinity;\n bounds.max.x = -Infinity;\n bounds.min.y = Infinity;\n bounds.max.y = -Infinity;\n\n for (var i = 0; i < vertices.length; i++) {\n var vertex = vertices[i];\n if (vertex.x > bounds.max.x) bounds.max.x = vertex.x;\n if (vertex.x < bounds.min.x) bounds.min.x = vertex.x;\n if (vertex.y > bounds.max.y) bounds.max.y = vertex.y;\n if (vertex.y < bounds.min.y) bounds.min.y = vertex.y;\n }\n \n if (velocity) {\n if (velocity.x > 0) {\n bounds.max.x += velocity.x;\n } else {\n bounds.min.x += velocity.x;\n }\n \n if (velocity.y > 0) {\n bounds.max.y += velocity.y;\n } else {\n bounds.min.y += velocity.y;\n }\n }\n };\n\n /**\n * Returns true if the bounds contains the given point.\n * @method contains\n * @param {bounds} bounds\n * @param {vector} point\n * @return {boolean} True if the bounds contain the point, otherwise false\n */\n Bounds.contains = function(bounds, point) {\n return point.x >= bounds.min.x && point.x <= bounds.max.x \n && point.y >= bounds.min.y && point.y <= bounds.max.y;\n };\n\n /**\n * Returns true if the two bounds intersect.\n * @method overlaps\n * @param {bounds} boundsA\n * @param {bounds} boundsB\n * @return {boolean} True if the bounds overlap, otherwise false\n */\n Bounds.overlaps = function(boundsA, boundsB) {\n return (boundsA.min.x <= boundsB.max.x && boundsA.max.x >= boundsB.min.x\n && boundsA.max.y >= boundsB.min.y && boundsA.min.y <= boundsB.max.y);\n };\n\n /**\n * Translates the bounds by the given vector.\n * @method translate\n * @param {bounds} bounds\n * @param {vector} vector\n */\n Bounds.translate = function(bounds, vector) {\n bounds.min.x += vector.x;\n bounds.max.x += vector.x;\n bounds.min.y += vector.y;\n bounds.max.y += vector.y;\n };\n\n /**\n * Shifts the bounds to the given position.\n * @method shift\n * @param {bounds} bounds\n * @param {vector} position\n */\n Bounds.shift = function(bounds, position) {\n var deltaX = bounds.max.x - bounds.min.x,\n deltaY = bounds.max.y - bounds.min.y;\n \n bounds.min.x = position.x;\n bounds.max.x = position.x + deltaX;\n bounds.min.y = position.y;\n bounds.max.y = position.y + deltaY;\n };\n \n})();\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Vector` module contains methods for creating and manipulating vectors.\n* Vectors are the basis of all the geometry related operations in the engine.\n* A `Matter.Vector` object is of the form `{ x: 0, y: 0 }`.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Vector\n*/\n\n// TODO: consider params for reusing vector objects\n\nvar Vector = {};\n\nmodule.exports = Vector;\n\n(function() {\n\n /**\n * Creates a new vector.\n * @method create\n * @param {number} x\n * @param {number} y\n * @return {vector} A new vector\n */\n Vector.create = function(x, y) {\n return { x: x || 0, y: y || 0 };\n };\n\n /**\n * Returns a new vector with `x` and `y` copied from the given `vector`.\n * @method clone\n * @param {vector} vector\n * @return {vector} A new cloned vector\n */\n Vector.clone = function(vector) {\n return { x: vector.x, y: vector.y };\n };\n\n /**\n * Returns the magnitude (length) of a vector.\n * @method magnitude\n * @param {vector} vector\n * @return {number} The magnitude of the vector\n */\n Vector.magnitude = function(vector) {\n return Math.sqrt((vector.x * vector.x) + (vector.y * vector.y));\n };\n\n /**\n * Returns the magnitude (length) of a vector (therefore saving a `sqrt` operation).\n * @method magnitudeSquared\n * @param {vector} vector\n * @return {number} The squared magnitude of the vector\n */\n Vector.magnitudeSquared = function(vector) {\n return (vector.x * vector.x) + (vector.y * vector.y);\n };\n\n /**\n * Rotates the vector about (0, 0) by specified angle.\n * @method rotate\n * @param {vector} vector\n * @param {number} angle\n * @param {vector} [output]\n * @return {vector} The vector rotated about (0, 0)\n */\n Vector.rotate = function(vector, angle, output) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n if (!output) output = {};\n var x = vector.x * cos - vector.y * sin;\n output.y = vector.x * sin + vector.y * cos;\n output.x = x;\n return output;\n };\n\n /**\n * Rotates the vector about a specified point by specified angle.\n * @method rotateAbout\n * @param {vector} vector\n * @param {number} angle\n * @param {vector} point\n * @param {vector} [output]\n * @return {vector} A new vector rotated about the point\n */\n Vector.rotateAbout = function(vector, angle, point, output) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n if (!output) output = {};\n var x = point.x + ((vector.x - point.x) * cos - (vector.y - point.y) * sin);\n output.y = point.y + ((vector.x - point.x) * sin + (vector.y - point.y) * cos);\n output.x = x;\n return output;\n };\n\n /**\n * Normalises a vector (such that its magnitude is `1`).\n * @method normalise\n * @param {vector} vector\n * @return {vector} A new vector normalised\n */\n Vector.normalise = function(vector) {\n var magnitude = Vector.magnitude(vector);\n if (magnitude === 0)\n return { x: 0, y: 0 };\n return { x: vector.x / magnitude, y: vector.y / magnitude };\n };\n\n /**\n * Returns the dot-product of two vectors.\n * @method dot\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The dot product of the two vectors\n */\n Vector.dot = function(vectorA, vectorB) {\n return (vectorA.x * vectorB.x) + (vectorA.y * vectorB.y);\n };\n\n /**\n * Returns the cross-product of two vectors.\n * @method cross\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The cross product of the two vectors\n */\n Vector.cross = function(vectorA, vectorB) {\n return (vectorA.x * vectorB.y) - (vectorA.y * vectorB.x);\n };\n\n /**\n * Returns the cross-product of three vectors.\n * @method cross3\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} vectorC\n * @return {number} The cross product of the three vectors\n */\n Vector.cross3 = function(vectorA, vectorB, vectorC) {\n return (vectorB.x - vectorA.x) * (vectorC.y - vectorA.y) - (vectorB.y - vectorA.y) * (vectorC.x - vectorA.x);\n };\n\n /**\n * Adds the two vectors.\n * @method add\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} [output]\n * @return {vector} A new vector of vectorA and vectorB added\n */\n Vector.add = function(vectorA, vectorB, output) {\n if (!output) output = {};\n output.x = vectorA.x + vectorB.x;\n output.y = vectorA.y + vectorB.y;\n return output;\n };\n\n /**\n * Subtracts the two vectors.\n * @method sub\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} [output]\n * @return {vector} A new vector of vectorA and vectorB subtracted\n */\n Vector.sub = function(vectorA, vectorB, output) {\n if (!output) output = {};\n output.x = vectorA.x - vectorB.x;\n output.y = vectorA.y - vectorB.y;\n return output;\n };\n\n /**\n * Multiplies a vector and a scalar.\n * @method mult\n * @param {vector} vector\n * @param {number} scalar\n * @return {vector} A new vector multiplied by scalar\n */\n Vector.mult = function(vector, scalar) {\n return { x: vector.x * scalar, y: vector.y * scalar };\n };\n\n /**\n * Divides a vector and a scalar.\n * @method div\n * @param {vector} vector\n * @param {number} scalar\n * @return {vector} A new vector divided by scalar\n */\n Vector.div = function(vector, scalar) {\n return { x: vector.x / scalar, y: vector.y / scalar };\n };\n\n /**\n * Returns the perpendicular vector. Set `negate` to true for the perpendicular in the opposite direction.\n * @method perp\n * @param {vector} vector\n * @param {bool} [negate=false]\n * @return {vector} The perpendicular vector\n */\n Vector.perp = function(vector, negate) {\n negate = negate === true ? -1 : 1;\n return { x: negate * -vector.y, y: negate * vector.x };\n };\n\n /**\n * Negates both components of a vector such that it points in the opposite direction.\n * @method neg\n * @param {vector} vector\n * @return {vector} The negated vector\n */\n Vector.neg = function(vector) {\n return { x: -vector.x, y: -vector.y };\n };\n\n /**\n * Returns the angle between the vector `vectorB - vectorA` and the x-axis in radians.\n * @method angle\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The angle in radians\n */\n Vector.angle = function(vectorA, vectorB) {\n return Math.atan2(vectorB.y - vectorA.y, vectorB.x - vectorA.x);\n };\n\n /**\n * Temporary vector pool (not thread-safe).\n * @property _temp\n * @type {vector[]}\n * @private\n */\n Vector._temp = [\n Vector.create(), Vector.create(), \n Vector.create(), Vector.create(), \n Vector.create(), Vector.create()\n ];\n\n})();\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Vertices` module contains methods for creating and manipulating sets of vertices.\n* A set of vertices is an array of `Matter.Vector` with additional indexing properties inserted by `Vertices.create`.\n* A `Matter.Body` maintains a set of vertices to represent the shape of the object (its convex hull).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Vertices\n*/\n\nvar Vertices = {};\n\nmodule.exports = Vertices;\n\nvar Vector = __webpack_require__(2);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new set of `Matter.Body` compatible vertices.\n * The `points` argument accepts an array of `Matter.Vector` points orientated around the origin `(0, 0)`, for example:\n *\n * [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]\n *\n * The `Vertices.create` method returns a new array of vertices, which are similar to Matter.Vector objects,\n * but with some additional references required for efficient collision detection routines.\n *\n * Vertices must be specified in clockwise order.\n *\n * Note that the `body` argument is not optional, a `Matter.Body` reference must be provided.\n *\n * @method create\n * @param {vector[]} points\n * @param {body} body\n */\n Vertices.create = function(points, body) {\n var vertices = [];\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i],\n vertex = {\n x: point.x,\n y: point.y,\n index: i,\n body: body,\n isInternal: false\n };\n\n vertices.push(vertex);\n }\n\n return vertices;\n };\n\n /**\n * Parses a string containing ordered x y pairs separated by spaces (and optionally commas), \n * into a `Matter.Vertices` object for the given `Matter.Body`.\n * For parsing SVG paths, see `Svg.pathToVertices`.\n * @method fromPath\n * @param {string} path\n * @param {body} body\n * @return {vertices} vertices\n */\n Vertices.fromPath = function(path, body) {\n var pathPattern = /L?\\s*([-\\d.e]+)[\\s,]*([-\\d.e]+)*/ig,\n points = [];\n\n path.replace(pathPattern, function(match, x, y) {\n points.push({ x: parseFloat(x), y: parseFloat(y) });\n });\n\n return Vertices.create(points, body);\n };\n\n /**\n * Returns the centre (centroid) of the set of vertices.\n * @method centre\n * @param {vertices} vertices\n * @return {vector} The centre point\n */\n Vertices.centre = function(vertices) {\n var area = Vertices.area(vertices, true),\n centre = { x: 0, y: 0 },\n cross,\n temp,\n j;\n\n for (var i = 0; i < vertices.length; i++) {\n j = (i + 1) % vertices.length;\n cross = Vector.cross(vertices[i], vertices[j]);\n temp = Vector.mult(Vector.add(vertices[i], vertices[j]), cross);\n centre = Vector.add(centre, temp);\n }\n\n return Vector.div(centre, 6 * area);\n };\n\n /**\n * Returns the average (mean) of the set of vertices.\n * @method mean\n * @param {vertices} vertices\n * @return {vector} The average point\n */\n Vertices.mean = function(vertices) {\n var average = { x: 0, y: 0 };\n\n for (var i = 0; i < vertices.length; i++) {\n average.x += vertices[i].x;\n average.y += vertices[i].y;\n }\n\n return Vector.div(average, vertices.length);\n };\n\n /**\n * Returns the area of the set of vertices.\n * @method area\n * @param {vertices} vertices\n * @param {bool} signed\n * @return {number} The area\n */\n Vertices.area = function(vertices, signed) {\n var area = 0,\n j = vertices.length - 1;\n\n for (var i = 0; i < vertices.length; i++) {\n area += (vertices[j].x - vertices[i].x) * (vertices[j].y + vertices[i].y);\n j = i;\n }\n\n if (signed)\n return area / 2;\n\n return Math.abs(area) / 2;\n };\n\n /**\n * Returns the moment of inertia (second moment of area) of the set of vertices given the total mass.\n * @method inertia\n * @param {vertices} vertices\n * @param {number} mass\n * @return {number} The polygon's moment of inertia\n */\n Vertices.inertia = function(vertices, mass) {\n var numerator = 0,\n denominator = 0,\n v = vertices,\n cross,\n j;\n\n // find the polygon's moment of inertia, using second moment of area\n // from equations at http://www.physicsforums.com/showthread.php?t=25293\n for (var n = 0; n < v.length; n++) {\n j = (n + 1) % v.length;\n cross = Math.abs(Vector.cross(v[j], v[n]));\n numerator += cross * (Vector.dot(v[j], v[j]) + Vector.dot(v[j], v[n]) + Vector.dot(v[n], v[n]));\n denominator += cross;\n }\n\n return (mass / 6) * (numerator / denominator);\n };\n\n /**\n * Translates the set of vertices in-place.\n * @method translate\n * @param {vertices} vertices\n * @param {vector} vector\n * @param {number} scalar\n */\n Vertices.translate = function(vertices, vector, scalar) {\n scalar = typeof scalar !== 'undefined' ? scalar : 1;\n\n var verticesLength = vertices.length,\n translateX = vector.x * scalar,\n translateY = vector.y * scalar,\n i;\n \n for (i = 0; i < verticesLength; i++) {\n vertices[i].x += translateX;\n vertices[i].y += translateY;\n }\n\n return vertices;\n };\n\n /**\n * Rotates the set of vertices in-place.\n * @method rotate\n * @param {vertices} vertices\n * @param {number} angle\n * @param {vector} point\n */\n Vertices.rotate = function(vertices, angle, point) {\n if (angle === 0)\n return;\n\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n pointX = point.x,\n pointY = point.y,\n verticesLength = vertices.length,\n vertex,\n dx,\n dy,\n i;\n\n for (i = 0; i < verticesLength; i++) {\n vertex = vertices[i];\n dx = vertex.x - pointX;\n dy = vertex.y - pointY;\n vertex.x = pointX + (dx * cos - dy * sin);\n vertex.y = pointY + (dx * sin + dy * cos);\n }\n\n return vertices;\n };\n\n /**\n * Returns `true` if the `point` is inside the set of `vertices`.\n * @method contains\n * @param {vertices} vertices\n * @param {vector} point\n * @return {boolean} True if the vertices contains point, otherwise false\n */\n Vertices.contains = function(vertices, point) {\n var pointX = point.x,\n pointY = point.y,\n verticesLength = vertices.length,\n vertex = vertices[verticesLength - 1],\n nextVertex;\n\n for (var i = 0; i < verticesLength; i++) {\n nextVertex = vertices[i];\n\n if ((pointX - vertex.x) * (nextVertex.y - vertex.y) \n + (pointY - vertex.y) * (vertex.x - nextVertex.x) > 0) {\n return false;\n }\n\n vertex = nextVertex;\n }\n\n return true;\n };\n\n /**\n * Scales the vertices from a point (default is centre) in-place.\n * @method scale\n * @param {vertices} vertices\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} point\n */\n Vertices.scale = function(vertices, scaleX, scaleY, point) {\n if (scaleX === 1 && scaleY === 1)\n return vertices;\n\n point = point || Vertices.centre(vertices);\n\n var vertex,\n delta;\n\n for (var i = 0; i < vertices.length; i++) {\n vertex = vertices[i];\n delta = Vector.sub(vertex, point);\n vertices[i].x = point.x + delta.x * scaleX;\n vertices[i].y = point.y + delta.y * scaleY;\n }\n\n return vertices;\n };\n\n /**\n * Chamfers a set of vertices by giving them rounded corners, returns a new set of vertices.\n * The radius parameter is a single number or an array to specify the radius for each vertex.\n * @method chamfer\n * @param {vertices} vertices\n * @param {number[]} radius\n * @param {number} quality\n * @param {number} qualityMin\n * @param {number} qualityMax\n */\n Vertices.chamfer = function(vertices, radius, quality, qualityMin, qualityMax) {\n if (typeof radius === 'number') {\n radius = [radius];\n } else {\n radius = radius || [8];\n }\n\n // quality defaults to -1, which is auto\n quality = (typeof quality !== 'undefined') ? quality : -1;\n qualityMin = qualityMin || 2;\n qualityMax = qualityMax || 14;\n\n var newVertices = [];\n\n for (var i = 0; i < vertices.length; i++) {\n var prevVertex = vertices[i - 1 >= 0 ? i - 1 : vertices.length - 1],\n vertex = vertices[i],\n nextVertex = vertices[(i + 1) % vertices.length],\n currentRadius = radius[i < radius.length ? i : radius.length - 1];\n\n if (currentRadius === 0) {\n newVertices.push(vertex);\n continue;\n }\n\n var prevNormal = Vector.normalise({ \n x: vertex.y - prevVertex.y, \n y: prevVertex.x - vertex.x\n });\n\n var nextNormal = Vector.normalise({ \n x: nextVertex.y - vertex.y, \n y: vertex.x - nextVertex.x\n });\n\n var diagonalRadius = Math.sqrt(2 * Math.pow(currentRadius, 2)),\n radiusVector = Vector.mult(Common.clone(prevNormal), currentRadius),\n midNormal = Vector.normalise(Vector.mult(Vector.add(prevNormal, nextNormal), 0.5)),\n scaledVertex = Vector.sub(vertex, Vector.mult(midNormal, diagonalRadius));\n\n var precision = quality;\n\n if (quality === -1) {\n // automatically decide precision\n precision = Math.pow(currentRadius, 0.32) * 1.75;\n }\n\n precision = Common.clamp(precision, qualityMin, qualityMax);\n\n // use an even value for precision, more likely to reduce axes by using symmetry\n if (precision % 2 === 1)\n precision += 1;\n\n var alpha = Math.acos(Vector.dot(prevNormal, nextNormal)),\n theta = alpha / precision;\n\n for (var j = 0; j < precision; j++) {\n newVertices.push(Vector.add(Vector.rotate(radiusVector, theta * j), scaledVertex));\n }\n }\n\n return newVertices;\n };\n\n /**\n * Sorts the input vertices into clockwise order in place.\n * @method clockwiseSort\n * @param {vertices} vertices\n * @return {vertices} vertices\n */\n Vertices.clockwiseSort = function(vertices) {\n var centre = Vertices.mean(vertices);\n\n vertices.sort(function(vertexA, vertexB) {\n return Vector.angle(centre, vertexA) - Vector.angle(centre, vertexB);\n });\n\n return vertices;\n };\n\n /**\n * Returns true if the vertices form a convex shape (vertices must be in clockwise order).\n * @method isConvex\n * @param {vertices} vertices\n * @return {bool} `true` if the `vertices` are convex, `false` if not (or `null` if not computable).\n */\n Vertices.isConvex = function(vertices) {\n // http://paulbourke.net/geometry/polygonmesh/\n // Copyright (c) Paul Bourke (use permitted)\n\n var flag = 0,\n n = vertices.length,\n i,\n j,\n k,\n z;\n\n if (n < 3)\n return null;\n\n for (i = 0; i < n; i++) {\n j = (i + 1) % n;\n k = (i + 2) % n;\n z = (vertices[j].x - vertices[i].x) * (vertices[k].y - vertices[j].y);\n z -= (vertices[j].y - vertices[i].y) * (vertices[k].x - vertices[j].x);\n\n if (z < 0) {\n flag |= 1;\n } else if (z > 0) {\n flag |= 2;\n }\n\n if (flag === 3) {\n return false;\n }\n }\n\n if (flag !== 0){\n return true;\n } else {\n return null;\n }\n };\n\n /**\n * Returns the convex hull of the input vertices as a new array of points.\n * @method hull\n * @param {vertices} vertices\n * @return [vertex] vertices\n */\n Vertices.hull = function(vertices) {\n // http://geomalgorithms.com/a10-_hull-1.html\n\n var upper = [],\n lower = [], \n vertex,\n i;\n\n // sort vertices on x-axis (y-axis for ties)\n vertices = vertices.slice(0);\n vertices.sort(function(vertexA, vertexB) {\n var dx = vertexA.x - vertexB.x;\n return dx !== 0 ? dx : vertexA.y - vertexB.y;\n });\n\n // build lower hull\n for (i = 0; i < vertices.length; i += 1) {\n vertex = vertices[i];\n\n while (lower.length >= 2 \n && Vector.cross3(lower[lower.length - 2], lower[lower.length - 1], vertex) <= 0) {\n lower.pop();\n }\n\n lower.push(vertex);\n }\n\n // build upper hull\n for (i = vertices.length - 1; i >= 0; i -= 1) {\n vertex = vertices[i];\n\n while (upper.length >= 2 \n && Vector.cross3(upper[upper.length - 2], upper[upper.length - 1], vertex) <= 0) {\n upper.pop();\n }\n\n upper.push(vertex);\n }\n\n // concatenation of the lower and upper hulls gives the convex hull\n // omit last points because they are repeated at the beginning of the other list\n upper.pop();\n lower.pop();\n\n return upper.concat(lower);\n };\n\n})();\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Body` module contains methods for creating and manipulating rigid bodies.\n* For creating bodies with common configurations such as rectangles, circles and other polygons see the module `Matter.Bodies`.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n\n* @class Body\n*/\n\nvar Body = {};\n\nmodule.exports = Body;\n\nvar Vertices = __webpack_require__(3);\nvar Vector = __webpack_require__(2);\nvar Sleeping = __webpack_require__(7);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\nvar Axes = __webpack_require__(11);\n\n(function() {\n\n Body._timeCorrection = true;\n Body._inertiaScale = 4;\n Body._nextCollidingGroupId = 1;\n Body._nextNonCollidingGroupId = -1;\n Body._nextCategory = 0x0001;\n Body._baseDelta = 1000 / 60;\n\n /**\n * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * Vertices must be specified in clockwise order.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} options\n * @return {body} body\n */\n Body.create = function(options) {\n var defaults = {\n id: Common.nextId(),\n type: 'body',\n label: 'Body',\n parts: [],\n plugin: {},\n angle: 0,\n vertices: Vertices.fromPath('L 0 0 L 40 0 L 40 40 L 0 40'),\n position: { x: 0, y: 0 },\n force: { x: 0, y: 0 },\n torque: 0,\n positionImpulse: { x: 0, y: 0 },\n constraintImpulse: { x: 0, y: 0, angle: 0 },\n totalContacts: 0,\n speed: 0,\n angularSpeed: 0,\n velocity: { x: 0, y: 0 },\n angularVelocity: 0,\n isSensor: false,\n isStatic: false,\n isSleeping: false,\n motion: 0,\n sleepThreshold: 60,\n density: 0.001,\n restitution: 0,\n friction: 0.1,\n frictionStatic: 0.5,\n frictionAir: 0.01,\n collisionFilter: {\n category: 0x0001,\n mask: 0xFFFFFFFF,\n group: 0\n },\n slop: 0.05,\n timeScale: 1,\n render: {\n visible: true,\n opacity: 1,\n strokeStyle: null,\n fillStyle: null,\n lineWidth: null,\n sprite: {\n xScale: 1,\n yScale: 1,\n xOffset: 0,\n yOffset: 0\n }\n },\n events: null,\n bounds: null,\n chamfer: null,\n circleRadius: 0,\n positionPrev: null,\n anglePrev: 0,\n parent: null,\n axes: null,\n area: 0,\n mass: 0,\n inertia: 0,\n deltaTime: 1000 / 60,\n _original: null\n };\n\n var body = Common.extend(defaults, options);\n\n _initProperties(body, options);\n\n return body;\n };\n\n /**\n * Returns the next unique group index for which bodies will collide.\n * If `isNonColliding` is `true`, returns the next unique group index for which bodies will _not_ collide.\n * See `body.collisionFilter` for more information.\n * @method nextGroup\n * @param {bool} [isNonColliding=false]\n * @return {Number} Unique group index\n */\n Body.nextGroup = function(isNonColliding) {\n if (isNonColliding)\n return Body._nextNonCollidingGroupId--;\n\n return Body._nextCollidingGroupId++;\n };\n\n /**\n * Returns the next unique category bitfield (starting after the initial default category `0x0001`).\n * There are 32 available. See `body.collisionFilter` for more information.\n * @method nextCategory\n * @return {Number} Unique category bitfield\n */\n Body.nextCategory = function() {\n Body._nextCategory = Body._nextCategory << 1;\n return Body._nextCategory;\n };\n\n /**\n * Initialises body properties.\n * @method _initProperties\n * @private\n * @param {body} body\n * @param {} [options]\n */\n var _initProperties = function(body, options) {\n options = options || {};\n\n // init required properties (order is important)\n Body.set(body, {\n bounds: body.bounds || Bounds.create(body.vertices),\n positionPrev: body.positionPrev || Vector.clone(body.position),\n anglePrev: body.anglePrev || body.angle,\n vertices: body.vertices,\n parts: body.parts || [body],\n isStatic: body.isStatic,\n isSleeping: body.isSleeping,\n parent: body.parent || body\n });\n\n Vertices.rotate(body.vertices, body.angle, body.position);\n Axes.rotate(body.axes, body.angle);\n Bounds.update(body.bounds, body.vertices, body.velocity);\n\n // allow options to override the automatically calculated properties\n Body.set(body, {\n axes: options.axes || body.axes,\n area: options.area || body.area,\n mass: options.mass || body.mass,\n inertia: options.inertia || body.inertia\n });\n\n // render properties\n var defaultFillStyle = (body.isStatic ? '#14151f' : Common.choose(['#f19648', '#f5d259', '#f55a3c', '#063e7b', '#ececd1'])),\n defaultStrokeStyle = body.isStatic ? '#555' : '#ccc',\n defaultLineWidth = body.isStatic && body.render.fillStyle === null ? 1 : 0;\n body.render.fillStyle = body.render.fillStyle || defaultFillStyle;\n body.render.strokeStyle = body.render.strokeStyle || defaultStrokeStyle;\n body.render.lineWidth = body.render.lineWidth || defaultLineWidth;\n body.render.sprite.xOffset += -(body.bounds.min.x - body.position.x) / (body.bounds.max.x - body.bounds.min.x);\n body.render.sprite.yOffset += -(body.bounds.min.y - body.position.y) / (body.bounds.max.y - body.bounds.min.y);\n };\n\n /**\n * Given a property and a value (or map of), sets the property(s) on the body, using the appropriate setter functions if they exist.\n * Prefer to use the actual setter functions in performance critical situations.\n * @method set\n * @param {body} body\n * @param {} settings A property name (or map of properties and values) to set on the body.\n * @param {} value The value to set if `settings` is a single property name.\n */\n Body.set = function(body, settings, value) {\n var property;\n\n if (typeof settings === 'string') {\n property = settings;\n settings = {};\n settings[property] = value;\n }\n\n for (property in settings) {\n if (!Object.prototype.hasOwnProperty.call(settings, property))\n continue;\n\n value = settings[property];\n switch (property) {\n\n case 'isStatic':\n Body.setStatic(body, value);\n break;\n case 'isSleeping':\n Sleeping.set(body, value);\n break;\n case 'mass':\n Body.setMass(body, value);\n break;\n case 'density':\n Body.setDensity(body, value);\n break;\n case 'inertia':\n Body.setInertia(body, value);\n break;\n case 'vertices':\n Body.setVertices(body, value);\n break;\n case 'position':\n Body.setPosition(body, value);\n break;\n case 'angle':\n Body.setAngle(body, value);\n break;\n case 'velocity':\n Body.setVelocity(body, value);\n break;\n case 'angularVelocity':\n Body.setAngularVelocity(body, value);\n break;\n case 'speed':\n Body.setSpeed(body, value);\n break;\n case 'angularSpeed':\n Body.setAngularSpeed(body, value);\n break;\n case 'parts':\n Body.setParts(body, value);\n break;\n case 'centre':\n Body.setCentre(body, value);\n break;\n default:\n body[property] = value;\n\n }\n }\n };\n\n /**\n * Sets the body as static, including isStatic flag and setting mass and inertia to Infinity.\n * @method setStatic\n * @param {body} body\n * @param {bool} isStatic\n */\n Body.setStatic = function(body, isStatic) {\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.isStatic = isStatic;\n\n if (isStatic) {\n part._original = {\n restitution: part.restitution,\n friction: part.friction,\n mass: part.mass,\n inertia: part.inertia,\n density: part.density,\n inverseMass: part.inverseMass,\n inverseInertia: part.inverseInertia\n };\n\n part.restitution = 0;\n part.friction = 1;\n part.mass = part.inertia = part.density = Infinity;\n part.inverseMass = part.inverseInertia = 0;\n\n part.positionPrev.x = part.position.x;\n part.positionPrev.y = part.position.y;\n part.anglePrev = part.angle;\n part.angularVelocity = 0;\n part.speed = 0;\n part.angularSpeed = 0;\n part.motion = 0;\n } else if (part._original) {\n part.restitution = part._original.restitution;\n part.friction = part._original.friction;\n part.mass = part._original.mass;\n part.inertia = part._original.inertia;\n part.density = part._original.density;\n part.inverseMass = part._original.inverseMass;\n part.inverseInertia = part._original.inverseInertia;\n\n part._original = null;\n }\n }\n };\n\n /**\n * Sets the mass of the body. Inverse mass, density and inertia are automatically updated to reflect the change.\n * @method setMass\n * @param {body} body\n * @param {number} mass\n */\n Body.setMass = function(body, mass) {\n var moment = body.inertia / (body.mass / 6);\n body.inertia = moment * (mass / 6);\n body.inverseInertia = 1 / body.inertia;\n\n body.mass = mass;\n body.inverseMass = 1 / body.mass;\n body.density = body.mass / body.area;\n };\n\n /**\n * Sets the density of the body. Mass and inertia are automatically updated to reflect the change.\n * @method setDensity\n * @param {body} body\n * @param {number} density\n */\n Body.setDensity = function(body, density) {\n Body.setMass(body, density * body.area);\n body.density = density;\n };\n\n /**\n * Sets the moment of inertia of the body. This is the second moment of area in two dimensions.\n * Inverse inertia is automatically updated to reflect the change. Mass is not changed.\n * @method setInertia\n * @param {body} body\n * @param {number} inertia\n */\n Body.setInertia = function(body, inertia) {\n body.inertia = inertia;\n body.inverseInertia = 1 / body.inertia;\n };\n\n /**\n * Sets the body's vertices and updates body properties accordingly, including inertia, area and mass (with respect to `body.density`).\n * Vertices will be automatically transformed to be orientated around their centre of mass as the origin.\n * They are then automatically translated to world space based on `body.position`.\n *\n * The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array).\n * Vertices must form a convex hull. Concave vertices must be decomposed into convex parts.\n * \n * @method setVertices\n * @param {body} body\n * @param {vector[]} vertices\n */\n Body.setVertices = function(body, vertices) {\n // change vertices\n if (vertices[0].body === body) {\n body.vertices = vertices;\n } else {\n body.vertices = Vertices.create(vertices, body);\n }\n\n // update properties\n body.axes = Axes.fromVertices(body.vertices);\n body.area = Vertices.area(body.vertices);\n Body.setMass(body, body.density * body.area);\n\n // orient vertices around the centre of mass at origin (0, 0)\n var centre = Vertices.centre(body.vertices);\n Vertices.translate(body.vertices, centre, -1);\n\n // update inertia while vertices are at origin (0, 0)\n Body.setInertia(body, Body._inertiaScale * Vertices.inertia(body.vertices, body.mass));\n\n // update geometry\n Vertices.translate(body.vertices, body.position);\n Bounds.update(body.bounds, body.vertices, body.velocity);\n };\n\n /**\n * Sets the parts of the `body` and updates mass, inertia and centroid.\n * Each part will have its parent set to `body`.\n * By default the convex hull will be automatically computed and set on `body`, unless `autoHull` is set to `false.`\n * Note that this method will ensure that the first part in `body.parts` will always be the `body`.\n * @method setParts\n * @param {body} body\n * @param {body[]} parts\n * @param {bool} [autoHull=true]\n */\n Body.setParts = function(body, parts, autoHull) {\n var i;\n\n // add all the parts, ensuring that the first part is always the parent body\n parts = parts.slice(0);\n body.parts.length = 0;\n body.parts.push(body);\n body.parent = body;\n\n for (i = 0; i < parts.length; i++) {\n var part = parts[i];\n if (part !== body) {\n part.parent = body;\n body.parts.push(part);\n }\n }\n\n if (body.parts.length === 1)\n return;\n\n autoHull = typeof autoHull !== 'undefined' ? autoHull : true;\n\n // find the convex hull of all parts to set on the parent body\n if (autoHull) {\n var vertices = [];\n for (i = 0; i < parts.length; i++) {\n vertices = vertices.concat(parts[i].vertices);\n }\n\n Vertices.clockwiseSort(vertices);\n\n var hull = Vertices.hull(vertices),\n hullCentre = Vertices.centre(hull);\n\n Body.setVertices(body, hull);\n Vertices.translate(body.vertices, hullCentre);\n }\n\n // sum the properties of all compound parts of the parent body\n var total = Body._totalProperties(body);\n\n body.area = total.area;\n body.parent = body;\n body.position.x = total.centre.x;\n body.position.y = total.centre.y;\n body.positionPrev.x = total.centre.x;\n body.positionPrev.y = total.centre.y;\n\n Body.setMass(body, total.mass);\n Body.setInertia(body, total.inertia);\n Body.setPosition(body, total.centre);\n };\n\n /**\n * Set the centre of mass of the body. \n * The `centre` is a vector in world-space unless `relative` is set, in which case it is a translation.\n * The centre of mass is the point the body rotates about and can be used to simulate non-uniform density.\n * This is equal to moving `body.position` but not the `body.vertices`.\n * Invalid if the `centre` falls outside the body's convex hull.\n * @method setCentre\n * @param {body} body\n * @param {vector} centre\n * @param {bool} relative\n */\n Body.setCentre = function(body, centre, relative) {\n if (!relative) {\n body.positionPrev.x = centre.x - (body.position.x - body.positionPrev.x);\n body.positionPrev.y = centre.y - (body.position.y - body.positionPrev.y);\n body.position.x = centre.x;\n body.position.y = centre.y;\n } else {\n body.positionPrev.x += centre.x;\n body.positionPrev.y += centre.y;\n body.position.x += centre.x;\n body.position.y += centre.y;\n }\n };\n\n /**\n * Sets the position of the body. By default velocity is unchanged.\n * If `updateVelocity` is `true` then velocity is inferred from the change in position.\n * @method setPosition\n * @param {body} body\n * @param {vector} position\n * @param {boolean} [updateVelocity=false]\n */\n Body.setPosition = function(body, position, updateVelocity) {\n var delta = Vector.sub(position, body.position);\n\n if (updateVelocity) {\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n body.velocity.x = delta.x;\n body.velocity.y = delta.y;\n body.speed = Vector.magnitude(delta);\n } else {\n body.positionPrev.x += delta.x;\n body.positionPrev.y += delta.y;\n }\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.position.x += delta.x;\n part.position.y += delta.y;\n Vertices.translate(part.vertices, delta);\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n };\n\n /**\n * Sets the angle of the body. By default angular velocity is unchanged.\n * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle.\n * @method setAngle\n * @param {body} body\n * @param {number} angle\n * @param {boolean} [updateVelocity=false]\n */\n Body.setAngle = function(body, angle, updateVelocity) {\n var delta = angle - body.angle;\n \n if (updateVelocity) {\n body.anglePrev = body.angle;\n body.angularVelocity = delta;\n body.angularSpeed = Math.abs(delta);\n } else {\n body.anglePrev += delta;\n }\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.angle += delta;\n Vertices.rotate(part.vertices, delta, body.position);\n Axes.rotate(part.axes, delta);\n Bounds.update(part.bounds, part.vertices, body.velocity);\n if (i > 0) {\n Vector.rotateAbout(part.position, delta, body.position, part.position);\n }\n }\n };\n\n /**\n * Sets the current linear velocity of the body. \n * Affects body speed.\n * @method setVelocity\n * @param {body} body\n * @param {vector} velocity\n */\n Body.setVelocity = function(body, velocity) {\n var timeScale = body.deltaTime / Body._baseDelta;\n body.positionPrev.x = body.position.x - velocity.x * timeScale;\n body.positionPrev.y = body.position.y - velocity.y * timeScale;\n body.velocity.x = (body.position.x - body.positionPrev.x) / timeScale;\n body.velocity.y = (body.position.y - body.positionPrev.y) / timeScale;\n body.speed = Vector.magnitude(body.velocity);\n };\n\n /**\n * Gets the current linear velocity of the body.\n * @method getVelocity\n * @param {body} body\n * @return {vector} velocity\n */\n Body.getVelocity = function(body) {\n var timeScale = Body._baseDelta / body.deltaTime;\n\n return {\n x: (body.position.x - body.positionPrev.x) * timeScale,\n y: (body.position.y - body.positionPrev.y) * timeScale\n };\n };\n\n /**\n * Gets the current linear speed of the body. \n * Equivalent to the magnitude of its velocity.\n * @method getSpeed\n * @param {body} body\n * @return {number} speed\n */\n Body.getSpeed = function(body) {\n return Vector.magnitude(Body.getVelocity(body));\n };\n\n /**\n * Sets the current linear speed of the body. \n * Direction is maintained. Affects body velocity.\n * @method setSpeed\n * @param {body} body\n * @param {number} speed\n */\n Body.setSpeed = function(body, speed) {\n Body.setVelocity(body, Vector.mult(Vector.normalise(Body.getVelocity(body)), speed));\n };\n\n /**\n * Sets the current rotational velocity of the body. \n * Affects body angular speed.\n * @method setAngularVelocity\n * @param {body} body\n * @param {number} velocity\n */\n Body.setAngularVelocity = function(body, velocity) {\n var timeScale = body.deltaTime / Body._baseDelta;\n body.anglePrev = body.angle - velocity * timeScale;\n body.angularVelocity = (body.angle - body.anglePrev) / timeScale;\n body.angularSpeed = Math.abs(body.angularVelocity);\n };\n\n /**\n * Gets the current rotational velocity of the body.\n * @method getAngularVelocity\n * @param {body} body\n * @return {number} angular velocity\n */\n Body.getAngularVelocity = function(body) {\n return (body.angle - body.anglePrev) * Body._baseDelta / body.deltaTime;\n };\n\n /**\n * Gets the current rotational speed of the body. \n * Equivalent to the magnitude of its angular velocity.\n * @method getAngularSpeed\n * @param {body} body\n * @return {number} angular speed\n */\n Body.getAngularSpeed = function(body) {\n return Math.abs(Body.getAngularVelocity(body));\n };\n\n /**\n * Sets the current rotational speed of the body. \n * Direction is maintained. Affects body angular velocity.\n * @method setAngularSpeed\n * @param {body} body\n * @param {number} speed\n */\n Body.setAngularSpeed = function(body, speed) {\n Body.setAngularVelocity(body, Common.sign(Body.getAngularVelocity(body)) * speed);\n };\n\n /**\n * Moves a body by a given vector relative to its current position. By default velocity is unchanged.\n * If `updateVelocity` is `true` then velocity is inferred from the change in position.\n * @method translate\n * @param {body} body\n * @param {vector} translation\n * @param {boolean} [updateVelocity=false]\n */\n Body.translate = function(body, translation, updateVelocity) {\n Body.setPosition(body, Vector.add(body.position, translation), updateVelocity);\n };\n\n /**\n * Rotates a body by a given angle relative to its current angle. By default angular velocity is unchanged.\n * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle.\n * @method rotate\n * @param {body} body\n * @param {number} rotation\n * @param {vector} [point]\n * @param {boolean} [updateVelocity=false]\n */\n Body.rotate = function(body, rotation, point, updateVelocity) {\n if (!point) {\n Body.setAngle(body, body.angle + rotation, updateVelocity);\n } else {\n var cos = Math.cos(rotation),\n sin = Math.sin(rotation),\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + (dx * cos - dy * sin),\n y: point.y + (dx * sin + dy * cos)\n }, updateVelocity);\n\n Body.setAngle(body, body.angle + rotation, updateVelocity);\n }\n };\n\n /**\n * Scales the body, including updating physical properties (mass, area, axes, inertia), from a world-space point (default is body centre).\n * @method scale\n * @param {body} body\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} [point]\n */\n Body.scale = function(body, scaleX, scaleY, point) {\n var totalArea = 0,\n totalInertia = 0;\n\n point = point || body.position;\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n\n // scale vertices\n Vertices.scale(part.vertices, scaleX, scaleY, point);\n\n // update properties\n part.axes = Axes.fromVertices(part.vertices);\n part.area = Vertices.area(part.vertices);\n Body.setMass(part, body.density * part.area);\n\n // update inertia (requires vertices to be at origin)\n Vertices.translate(part.vertices, { x: -part.position.x, y: -part.position.y });\n Body.setInertia(part, Body._inertiaScale * Vertices.inertia(part.vertices, part.mass));\n Vertices.translate(part.vertices, { x: part.position.x, y: part.position.y });\n\n if (i > 0) {\n totalArea += part.area;\n totalInertia += part.inertia;\n }\n\n // scale position\n part.position.x = point.x + (part.position.x - point.x) * scaleX;\n part.position.y = point.y + (part.position.y - point.y) * scaleY;\n\n // update bounds\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n\n // handle parent body\n if (body.parts.length > 1) {\n body.area = totalArea;\n\n if (!body.isStatic) {\n Body.setMass(body, body.density * totalArea);\n Body.setInertia(body, totalInertia);\n }\n }\n\n // handle circles\n if (body.circleRadius) { \n if (scaleX === scaleY) {\n body.circleRadius *= scaleX;\n } else {\n // body is no longer a circle\n body.circleRadius = null;\n }\n }\n };\n\n /**\n * Performs an update by integrating the equations of motion on the `body`.\n * This is applied every update by `Matter.Engine` automatically.\n * @method update\n * @param {body} body\n * @param {number} [deltaTime=16.666]\n */\n Body.update = function(body, deltaTime) {\n deltaTime = (typeof deltaTime !== 'undefined' ? deltaTime : (1000 / 60)) * body.timeScale;\n\n var deltaTimeSquared = deltaTime * deltaTime,\n correction = Body._timeCorrection ? deltaTime / (body.deltaTime || deltaTime) : 1;\n\n // from the previous step\n var frictionAir = 1 - body.frictionAir * (deltaTime / Common._baseDelta),\n velocityPrevX = (body.position.x - body.positionPrev.x) * correction,\n velocityPrevY = (body.position.y - body.positionPrev.y) * correction;\n\n // update velocity with Verlet integration\n body.velocity.x = (velocityPrevX * frictionAir) + (body.force.x / body.mass) * deltaTimeSquared;\n body.velocity.y = (velocityPrevY * frictionAir) + (body.force.y / body.mass) * deltaTimeSquared;\n\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n body.position.x += body.velocity.x;\n body.position.y += body.velocity.y;\n body.deltaTime = deltaTime;\n\n // update angular velocity with Verlet integration\n body.angularVelocity = ((body.angle - body.anglePrev) * frictionAir * correction) + (body.torque / body.inertia) * deltaTimeSquared;\n body.anglePrev = body.angle;\n body.angle += body.angularVelocity;\n\n // transform the body geometry\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n\n Vertices.translate(part.vertices, body.velocity);\n \n if (i > 0) {\n part.position.x += body.velocity.x;\n part.position.y += body.velocity.y;\n }\n\n if (body.angularVelocity !== 0) {\n Vertices.rotate(part.vertices, body.angularVelocity, body.position);\n Axes.rotate(part.axes, body.angularVelocity);\n if (i > 0) {\n Vector.rotateAbout(part.position, body.angularVelocity, body.position, part.position);\n }\n }\n\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n };\n\n /**\n * Updates properties `body.velocity`, `body.speed`, `body.angularVelocity` and `body.angularSpeed` which are normalised in relation to `Body._baseDelta`.\n * @method updateVelocities\n * @param {body} body\n */\n Body.updateVelocities = function(body) {\n var timeScale = Body._baseDelta / body.deltaTime,\n bodyVelocity = body.velocity;\n\n bodyVelocity.x = (body.position.x - body.positionPrev.x) * timeScale;\n bodyVelocity.y = (body.position.y - body.positionPrev.y) * timeScale;\n body.speed = Math.sqrt((bodyVelocity.x * bodyVelocity.x) + (bodyVelocity.y * bodyVelocity.y));\n\n body.angularVelocity = (body.angle - body.anglePrev) * timeScale;\n body.angularSpeed = Math.abs(body.angularVelocity);\n };\n\n /**\n * Applies the `force` to the `body` from the force origin `position` in world-space, over a single timestep, including applying any resulting angular torque.\n * \n * Forces are useful for effects like gravity, wind or rocket thrust, but can be difficult in practice when precise control is needed. In these cases see `Body.setVelocity` and `Body.setPosition` as an alternative.\n * \n * The force from this function is only applied once for the duration of a single timestep, in other words the duration depends directly on the current engine update `delta` and the rate of calls to this function.\n * \n * Therefore to account for time, you should apply the force constantly over as many engine updates as equivalent to the intended duration.\n * \n * If all or part of the force duration is some fraction of a timestep, first multiply the force by `duration / timestep`.\n * \n * The force origin `position` in world-space must also be specified. Passing `body.position` will result in zero angular effect as the force origin would be at the centre of mass.\n * \n * The `body` will take time to accelerate under a force, the resulting effect depends on duration of the force, the body mass and other forces on the body including friction combined.\n * @method applyForce\n * @param {body} body\n * @param {vector} position The force origin in world-space. Pass `body.position` to avoid angular torque.\n * @param {vector} force\n */\n Body.applyForce = function(body, position, force) {\n var offset = { x: position.x - body.position.x, y: position.y - body.position.y };\n body.force.x += force.x;\n body.force.y += force.y;\n body.torque += offset.x * force.y - offset.y * force.x;\n };\n\n /**\n * Returns the sums of the properties of all compound parts of the parent body.\n * @method _totalProperties\n * @private\n * @param {body} body\n * @return {}\n */\n Body._totalProperties = function(body) {\n // from equations at:\n // https://ecourses.ou.edu/cgi-bin/ebook.cgi?doc=&topic=st&chap_sec=07.2&page=theory\n // http://output.to/sideway/default.asp?qno=121100087\n\n var properties = {\n mass: 0,\n area: 0,\n inertia: 0,\n centre: { x: 0, y: 0 }\n };\n\n // sum the properties of all compound parts of the parent body\n for (var i = body.parts.length === 1 ? 0 : 1; i < body.parts.length; i++) {\n var part = body.parts[i],\n mass = part.mass !== Infinity ? part.mass : 1;\n\n properties.mass += mass;\n properties.area += part.area;\n properties.inertia += part.inertia;\n properties.centre = Vector.add(properties.centre, Vector.mult(part.position, mass));\n }\n\n properties.centre = Vector.div(properties.centre, properties.mass);\n\n return properties;\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when a body starts sleeping (where `this` is the body).\n *\n * @event sleepStart\n * @this {body} The body that has started sleeping\n * @param {} event An event object\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a body ends sleeping (where `this` is the body).\n *\n * @event sleepEnd\n * @this {body} The body that has ended sleeping\n * @param {} event An event object\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Body.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * _Read only_. Set by `Body.create`.\n * \n * A `String` denoting the type of object.\n *\n * @readOnly\n * @property type\n * @type string\n * @default \"body\"\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage bodies.\n *\n * @property label\n * @type string\n * @default \"Body\"\n */\n\n /**\n * _Read only_. Use `Body.setParts` to set. \n * \n * An array of bodies that make up this body. \n * The first body in the array must always be a self reference to the current body instance.\n * All bodies in the `parts` array together form a single rigid compound body.\n * Parts are allowed to overlap, have gaps or holes or even form concave bodies.\n * Parts themselves should never be added to a `World`, only the parent body should be.\n * Use `Body.setParts` when setting parts to ensure correct updates of all properties.\n *\n * @readOnly\n * @property parts\n * @type body[]\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * _Read only_. Updated by `Body.setParts`.\n * \n * A reference to the body that this is a part of. See `body.parts`.\n * This is a self reference if the body is not a part of another body.\n *\n * @readOnly\n * @property parent\n * @type body\n */\n\n /**\n * A `Number` specifying the angle of the body, in radians.\n *\n * @property angle\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setVertices` or `Body.setParts` to set. See also `Bodies.fromVertices`.\n * \n * An array of `Vector` objects that specify the convex hull of the rigid body.\n * These should be provided about the origin `(0, 0)`. E.g.\n *\n * `[{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]`\n * \n * Vertices must always be convex, in clockwise order and must not contain any duplicate points.\n * \n * Concave vertices should be decomposed into convex `parts`, see `Bodies.fromVertices` and `Body.setParts`.\n *\n * When set the vertices are translated such that `body.position` is at the centre of mass.\n * Many other body properties are automatically calculated from these vertices when set including `density`, `area` and `inertia`.\n * \n * The module `Matter.Vertices` contains useful methods for working with vertices.\n *\n * @readOnly\n * @property vertices\n * @type vector[]\n */\n\n /**\n * _Read only_. Use `Body.setPosition` to set. \n * \n * A `Vector` that specifies the current world-space position of the body.\n * \n * @readOnly\n * @property position\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that accumulates the total force applied to the body for a single update.\n * Force is zeroed after every `Engine.update`, so constant forces should be applied for every update they are needed. See also `Body.applyForce`.\n * \n * @property force\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Number` that accumulates the total torque (turning force) applied to the body for a single update. See also `Body.applyForce`.\n * Torque is zeroed after every `Engine.update`, so constant torques should be applied for every update they are needed.\n *\n * Torques result in angular acceleration on every update, which depends on body inertia and the engine update delta.\n * \n * @property torque\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setSpeed` to set. \n * \n * See `Body.getSpeed` for details.\n * \n * Equivalent to the magnitude of `body.velocity` (always positive).\n * \n * @readOnly\n * @property speed\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setVelocity` to set. \n * \n * See `Body.getVelocity` for details.\n * \n * Equivalent to the magnitude of `body.angularVelocity` (always positive).\n * \n * @readOnly\n * @property velocity\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * _Read only_. Use `Body.setAngularSpeed` to set. \n * \n * See `Body.getAngularSpeed` for details.\n * \n * \n * @readOnly\n * @property angularSpeed\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setAngularVelocity` to set. \n * \n * See `Body.getAngularVelocity` for details.\n * \n *\n * @readOnly\n * @property angularVelocity\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setStatic` to set. \n * \n * A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed.\n *\n * @readOnly\n * @property isStatic\n * @type boolean\n * @default false\n */\n\n /**\n * A flag that indicates whether a body is a sensor. Sensor triggers collision events, but doesn't react with colliding body physically.\n *\n * @property isSensor\n * @type boolean\n * @default false\n */\n\n /**\n * _Read only_. Use `Sleeping.set` to set. \n * \n * A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken.\n *\n * @readOnly\n * @property isSleeping\n * @type boolean\n * @default false\n */\n\n /**\n * _Read only_. Calculated during engine update only when sleeping is enabled.\n * \n * A `Number` that loosely measures the amount of movement a body currently has.\n *\n * Derived from `body.speed^2 + body.angularSpeed^2`. See `Sleeping.update`.\n * \n * @readOnly\n * @property motion\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the length of time during which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine).\n * \n * @property sleepThreshold\n * @type number\n * @default 60\n */\n\n /**\n * _Read only_. Use `Body.setDensity` to set. \n * \n * A `Number` that defines the density of the body (mass per unit area).\n * \n * Mass will also be updated when set.\n *\n * @readOnly\n * @property density\n * @type number\n * @default 0.001\n */\n\n /**\n * _Read only_. Use `Body.setMass` to set. \n * \n * A `Number` that defines the mass of the body.\n * \n * Density will also be updated when set.\n * \n * @readOnly\n * @property mass\n * @type number\n */\n\n /**\n * _Read only_. Use `Body.setMass` to set. \n * \n * A `Number` that defines the inverse mass of the body (`1 / mass`).\n *\n * @readOnly\n * @property inverseMass\n * @type number\n */\n\n /**\n * _Read only_. Automatically calculated when vertices, mass or density are set or set through `Body.setInertia`.\n * \n * A `Number` that defines the moment of inertia of the body. This is the second moment of area in two dimensions.\n * \n * Can be manually set to `Infinity` to prevent rotation of the body. See `Body.setInertia`.\n * \n * @readOnly\n * @property inertia\n * @type number\n */\n\n /**\n * _Read only_. Automatically calculated when vertices, mass or density are set or calculated by `Body.setInertia`.\n * \n * A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`).\n * \n * @readOnly\n * @property inverseInertia\n * @type number\n */\n\n /**\n * A `Number` that defines the restitution (elasticity) of the body. The value is always positive and is in the range `(0, 1)`.\n * A value of `0` means collisions may be perfectly inelastic and no bouncing may occur. \n * A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy.\n * Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula:\n *\n * `Math.max(bodyA.restitution, bodyB.restitution)`\n *\n * @property restitution\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the friction of the body. The value is always positive and is in the range `(0, 1)`.\n * A value of `0` means that the body may slide indefinitely.\n * A value of `1` means the body may come to a stop almost instantly after a force is applied.\n *\n * The effects of the value may be non-linear. \n * High values may be unstable depending on the body.\n * The engine uses a Coulomb friction model including static and kinetic friction.\n * Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula:\n *\n * `Math.min(bodyA.friction, bodyB.friction)`\n *\n * @property friction\n * @type number\n * @default 0.1\n */\n\n /**\n * A `Number` that defines the static friction of the body (in the Coulomb friction model). \n * A value of `0` means the body will never 'stick' when it is nearly stationary and only dynamic `friction` is used.\n * The higher the value (e.g. `10`), the more force it will take to initially get the body moving when nearly stationary.\n * This value is multiplied with the `friction` property to make it easier to change `friction` and maintain an appropriate amount of static friction.\n *\n * @property frictionStatic\n * @type number\n * @default 0.5\n */\n\n /**\n * A `Number` that defines the air friction of the body (air resistance). \n * A value of `0` means the body will never slow as it moves through space.\n * The higher the value, the faster a body slows when moving through space.\n * The effects of the value are non-linear. \n *\n * @property frictionAir\n * @type number\n * @default 0.01\n */\n\n /**\n * An `Object` that specifies the collision filtering properties of this body.\n *\n * Collisions between two bodies will obey the following rules:\n * - If the two bodies have the same non-zero value of `collisionFilter.group`,\n * they will always collide if the value is positive, and they will never collide\n * if the value is negative.\n * - If the two bodies have different values of `collisionFilter.group` or if one\n * (or both) of the bodies has a value of 0, then the category/mask rules apply as follows:\n *\n * Each body belongs to a collision category, given by `collisionFilter.category`. This\n * value is used as a bit field and the category should have only one bit set, meaning that\n * the value of this property is a power of two in the range [1, 2^31]. Thus, there are 32\n * different collision categories available.\n *\n * Each body also defines a collision bitmask, given by `collisionFilter.mask` which specifies\n * the categories it collides with (the value is the bitwise AND value of all these categories).\n *\n * Using the category/mask rules, two bodies `A` and `B` collide if each includes the other's\n * category in its mask, i.e. `(categoryA & maskB) !== 0` and `(categoryB & maskA) !== 0`\n * are both true.\n *\n * @property collisionFilter\n * @type object\n */\n\n /**\n * An Integer `Number`, that specifies the collision group this body belongs to.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.group\n * @type object\n * @default 0\n */\n\n /**\n * A bit field that specifies the collision category this body belongs to.\n * The category value should have only one bit set, for example `0x0001`.\n * This means there are up to 32 unique collision categories available.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.category\n * @type object\n * @default 1\n */\n\n /**\n * A bit mask that specifies the collision categories this body may collide with.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.mask\n * @type object\n * @default -1\n */\n\n /**\n * A `Number` that specifies a thin boundary around the body where it is allowed to slightly sink into other bodies.\n * \n * This is required for proper collision response, including friction and restitution effects.\n * \n * The default should generally suffice in most cases. You may need to decrease this value for very small bodies that are nearing the default value in scale.\n *\n * @property slop\n * @type number\n * @default 0.05\n */\n\n /**\n * A `Number` that specifies per-body time scaling.\n *\n * @property timeScale\n * @type number\n * @default 1\n */\n\n /**\n * _Read only_. Updated during engine update.\n * \n * A `Number` that records the last delta time value used to update this body.\n * Used to calculate speed and velocity.\n *\n * @readOnly\n * @property deltaTime\n * @type number\n * @default 1000 / 60\n */\n\n /**\n * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n *\n * @property render\n * @type object\n */\n\n /**\n * A flag that indicates if the body should be rendered.\n *\n * @property render.visible\n * @type boolean\n * @default true\n */\n\n /**\n * Sets the opacity to use when rendering.\n *\n * @property render.opacity\n * @type number\n * @default 1\n */\n\n /**\n * An `Object` that defines the sprite properties to use when rendering, if any.\n *\n * @property render.sprite\n * @type object\n */\n\n /**\n * An `String` that defines the path to the image to use as the sprite texture, if any.\n *\n * @property render.sprite.texture\n * @type string\n */\n \n /**\n * A `Number` that defines the scaling in the x-axis for the sprite, if any.\n *\n * @property render.sprite.xScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that defines the scaling in the y-axis for the sprite, if any.\n *\n * @property render.sprite.yScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that defines the offset in the x-axis for the sprite (normalised by texture width).\n *\n * @property render.sprite.xOffset\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the offset in the y-axis for the sprite (normalised by texture height).\n *\n * @property render.sprite.yOffset\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the line width to use when rendering the body outline (if a sprite is not defined).\n * A value of `0` means no outline will be rendered.\n *\n * @property render.lineWidth\n * @type number\n * @default 0\n */\n\n /**\n * A `String` that defines the fill style to use when rendering the body (if a sprite is not defined).\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.fillStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * A `String` that defines the stroke style to use when rendering the body outline (if a sprite is not defined).\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.strokeStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * _Read only_. Calculated automatically when vertices are set.\n * \n * An array of unique axis vectors (edge normals) used for collision detection.\n * These are automatically calculated when vertices are set.\n * They are constantly updated by `Body.update` during the simulation.\n *\n * @readOnly\n * @property axes\n * @type vector[]\n */\n \n /**\n * _Read only_. Calculated automatically when vertices are set.\n * \n * A `Number` that measures the area of the body's convex hull.\n * \n * @readOnly\n * @property area\n * @type string\n * @default \n */\n\n /**\n * A `Bounds` object that defines the AABB region for the body.\n * It is automatically calculated when vertices are set and constantly updated by `Body.update` during simulation.\n * \n * @property bounds\n * @type bounds\n */\n\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Events` module contains methods to fire and listen to events on other objects.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Events\n*/\n\nvar Events = {};\n\nmodule.exports = Events;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Subscribes a callback function to the given object's `eventName`.\n * @method on\n * @param {} object\n * @param {string} eventNames\n * @param {function} callback\n */\n Events.on = function(object, eventNames, callback) {\n var names = eventNames.split(' '),\n name;\n\n for (var i = 0; i < names.length; i++) {\n name = names[i];\n object.events = object.events || {};\n object.events[name] = object.events[name] || [];\n object.events[name].push(callback);\n }\n\n return callback;\n };\n\n /**\n * Removes the given event callback. If no callback, clears all callbacks in `eventNames`. If no `eventNames`, clears all events.\n * @method off\n * @param {} object\n * @param {string} eventNames\n * @param {function} callback\n */\n Events.off = function(object, eventNames, callback) {\n if (!eventNames) {\n object.events = {};\n return;\n }\n\n // handle Events.off(object, callback)\n if (typeof eventNames === 'function') {\n callback = eventNames;\n eventNames = Common.keys(object.events).join(' ');\n }\n\n var names = eventNames.split(' ');\n\n for (var i = 0; i < names.length; i++) {\n var callbacks = object.events[names[i]],\n newCallbacks = [];\n\n if (callback && callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n if (callbacks[j] !== callback)\n newCallbacks.push(callbacks[j]);\n }\n }\n\n object.events[names[i]] = newCallbacks;\n }\n };\n\n /**\n * Fires all the callbacks subscribed to the given object's `eventName`, in the order they subscribed, if any.\n * @method trigger\n * @param {} object\n * @param {string} eventNames\n * @param {} event\n */\n Events.trigger = function(object, eventNames, event) {\n var names,\n name,\n callbacks,\n eventClone;\n\n var events = object.events;\n \n if (events && Common.keys(events).length > 0) {\n if (!event)\n event = {};\n\n names = eventNames.split(' ');\n\n for (var i = 0; i < names.length; i++) {\n name = names[i];\n callbacks = events[name];\n\n if (callbacks) {\n eventClone = Common.clone(event, false);\n eventClone.name = name;\n eventClone.source = object;\n\n for (var j = 0; j < callbacks.length; j++) {\n callbacks[j].apply(object, [eventClone]);\n }\n }\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* A composite is a collection of `Matter.Body`, `Matter.Constraint` and other `Matter.Composite` objects.\n*\n* They are a container that can represent complex objects made of multiple parts, even if they are not physically connected.\n* A composite could contain anything from a single body all the way up to a whole world.\n* \n* When making any changes to composites, use the included functions rather than changing their properties directly.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Composite\n*/\n\nvar Composite = {};\n\nmodule.exports = Composite;\n\nvar Events = __webpack_require__(5);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\nvar Body = __webpack_require__(4);\n\n(function() {\n\n /**\n * Creates a new composite. The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properites section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} [options]\n * @return {composite} A new composite\n */\n Composite.create = function(options) {\n return Common.extend({ \n id: Common.nextId(),\n type: 'composite',\n parent: null,\n isModified: false,\n bodies: [], \n constraints: [], \n composites: [],\n label: 'Composite',\n plugin: {},\n cache: {\n allBodies: null,\n allConstraints: null,\n allComposites: null\n }\n }, options);\n };\n\n /**\n * Sets the composite's `isModified` flag. \n * If `updateParents` is true, all parents will be set (default: false).\n * If `updateChildren` is true, all children will be set (default: false).\n * @private\n * @method setModified\n * @param {composite} composite\n * @param {boolean} isModified\n * @param {boolean} [updateParents=false]\n * @param {boolean} [updateChildren=false]\n */\n Composite.setModified = function(composite, isModified, updateParents, updateChildren) {\n composite.isModified = isModified;\n\n if (isModified && composite.cache) {\n composite.cache.allBodies = null;\n composite.cache.allConstraints = null;\n composite.cache.allComposites = null;\n }\n\n if (updateParents && composite.parent) {\n Composite.setModified(composite.parent, isModified, updateParents, updateChildren);\n }\n\n if (updateChildren) {\n for (var i = 0; i < composite.composites.length; i++) {\n var childComposite = composite.composites[i];\n Composite.setModified(childComposite, isModified, updateParents, updateChildren);\n }\n }\n };\n\n /**\n * Generic single or multi-add function. Adds a single or an array of body(s), constraint(s) or composite(s) to the given composite.\n * Triggers `beforeAdd` and `afterAdd` events on the `composite`.\n * @method add\n * @param {composite} composite\n * @param {object|array} object A single or an array of body(s), constraint(s) or composite(s)\n * @return {composite} The original composite with the objects added\n */\n Composite.add = function(composite, object) {\n var objects = [].concat(object);\n\n Events.trigger(composite, 'beforeAdd', { object: object });\n\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n\n switch (obj.type) {\n\n case 'body':\n // skip adding compound parts\n if (obj.parent !== obj) {\n Common.warn('Composite.add: skipped adding a compound body part (you must add its parent instead)');\n break;\n }\n\n Composite.addBody(composite, obj);\n break;\n case 'constraint':\n Composite.addConstraint(composite, obj);\n break;\n case 'composite':\n Composite.addComposite(composite, obj);\n break;\n case 'mouseConstraint':\n Composite.addConstraint(composite, obj.constraint);\n break;\n\n }\n }\n\n Events.trigger(composite, 'afterAdd', { object: object });\n\n return composite;\n };\n\n /**\n * Generic remove function. Removes one or many body(s), constraint(s) or a composite(s) to the given composite.\n * Optionally searching its children recursively.\n * Triggers `beforeRemove` and `afterRemove` events on the `composite`.\n * @method remove\n * @param {composite} composite\n * @param {object|array} object\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the objects removed\n */\n Composite.remove = function(composite, object, deep) {\n var objects = [].concat(object);\n\n Events.trigger(composite, 'beforeRemove', { object: object });\n\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n\n switch (obj.type) {\n\n case 'body':\n Composite.removeBody(composite, obj, deep);\n break;\n case 'constraint':\n Composite.removeConstraint(composite, obj, deep);\n break;\n case 'composite':\n Composite.removeComposite(composite, obj, deep);\n break;\n case 'mouseConstraint':\n Composite.removeConstraint(composite, obj.constraint);\n break;\n\n }\n }\n\n Events.trigger(composite, 'afterRemove', { object: object });\n\n return composite;\n };\n\n /**\n * Adds a composite to the given composite.\n * @private\n * @method addComposite\n * @param {composite} compositeA\n * @param {composite} compositeB\n * @return {composite} The original compositeA with the objects from compositeB added\n */\n Composite.addComposite = function(compositeA, compositeB) {\n compositeA.composites.push(compositeB);\n compositeB.parent = compositeA;\n Composite.setModified(compositeA, true, true, false);\n return compositeA;\n };\n\n /**\n * Removes a composite from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeComposite\n * @param {composite} compositeA\n * @param {composite} compositeB\n * @param {boolean} [deep=false]\n * @return {composite} The original compositeA with the composite removed\n */\n Composite.removeComposite = function(compositeA, compositeB, deep) {\n var position = Common.indexOf(compositeA.composites, compositeB);\n if (position !== -1) {\n Composite.removeCompositeAt(compositeA, position);\n }\n\n if (deep) {\n for (var i = 0; i < compositeA.composites.length; i++){\n Composite.removeComposite(compositeA.composites[i], compositeB, true);\n }\n }\n\n return compositeA;\n };\n\n /**\n * Removes a composite from the given composite.\n * @private\n * @method removeCompositeAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the composite removed\n */\n Composite.removeCompositeAt = function(composite, position) {\n composite.composites.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Adds a body to the given composite.\n * @private\n * @method addBody\n * @param {composite} composite\n * @param {body} body\n * @return {composite} The original composite with the body added\n */\n Composite.addBody = function(composite, body) {\n composite.bodies.push(body);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes a body from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeBody\n * @param {composite} composite\n * @param {body} body\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the body removed\n */\n Composite.removeBody = function(composite, body, deep) {\n var position = Common.indexOf(composite.bodies, body);\n if (position !== -1) {\n Composite.removeBodyAt(composite, position);\n }\n\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.removeBody(composite.composites[i], body, true);\n }\n }\n\n return composite;\n };\n\n /**\n * Removes a body from the given composite.\n * @private\n * @method removeBodyAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the body removed\n */\n Composite.removeBodyAt = function(composite, position) {\n composite.bodies.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Adds a constraint to the given composite.\n * @private\n * @method addConstraint\n * @param {composite} composite\n * @param {constraint} constraint\n * @return {composite} The original composite with the constraint added\n */\n Composite.addConstraint = function(composite, constraint) {\n composite.constraints.push(constraint);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes a constraint from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeConstraint\n * @param {composite} composite\n * @param {constraint} constraint\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the constraint removed\n */\n Composite.removeConstraint = function(composite, constraint, deep) {\n var position = Common.indexOf(composite.constraints, constraint);\n if (position !== -1) {\n Composite.removeConstraintAt(composite, position);\n }\n\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.removeConstraint(composite.composites[i], constraint, true);\n }\n }\n\n return composite;\n };\n\n /**\n * Removes a body from the given composite.\n * @private\n * @method removeConstraintAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the constraint removed\n */\n Composite.removeConstraintAt = function(composite, position) {\n composite.constraints.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes all bodies, constraints and composites from the given composite.\n * Optionally clearing its children recursively.\n * @method clear\n * @param {composite} composite\n * @param {boolean} keepStatic\n * @param {boolean} [deep=false]\n */\n Composite.clear = function(composite, keepStatic, deep) {\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.clear(composite.composites[i], keepStatic, true);\n }\n }\n \n if (keepStatic) {\n composite.bodies = composite.bodies.filter(function(body) { return body.isStatic; });\n } else {\n composite.bodies.length = 0;\n }\n\n composite.constraints.length = 0;\n composite.composites.length = 0;\n\n Composite.setModified(composite, true, true, false);\n\n return composite;\n };\n\n /**\n * Returns all bodies in the given composite, including all bodies in its children, recursively.\n * @method allBodies\n * @param {composite} composite\n * @return {body[]} All the bodies\n */\n Composite.allBodies = function(composite) {\n if (composite.cache && composite.cache.allBodies) {\n return composite.cache.allBodies;\n }\n\n var bodies = [].concat(composite.bodies);\n\n for (var i = 0; i < composite.composites.length; i++)\n bodies = bodies.concat(Composite.allBodies(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allBodies = bodies;\n }\n\n return bodies;\n };\n\n /**\n * Returns all constraints in the given composite, including all constraints in its children, recursively.\n * @method allConstraints\n * @param {composite} composite\n * @return {constraint[]} All the constraints\n */\n Composite.allConstraints = function(composite) {\n if (composite.cache && composite.cache.allConstraints) {\n return composite.cache.allConstraints;\n }\n\n var constraints = [].concat(composite.constraints);\n\n for (var i = 0; i < composite.composites.length; i++)\n constraints = constraints.concat(Composite.allConstraints(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allConstraints = constraints;\n }\n\n return constraints;\n };\n\n /**\n * Returns all composites in the given composite, including all composites in its children, recursively.\n * @method allComposites\n * @param {composite} composite\n * @return {composite[]} All the composites\n */\n Composite.allComposites = function(composite) {\n if (composite.cache && composite.cache.allComposites) {\n return composite.cache.allComposites;\n }\n\n var composites = [].concat(composite.composites);\n\n for (var i = 0; i < composite.composites.length; i++)\n composites = composites.concat(Composite.allComposites(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allComposites = composites;\n }\n\n return composites;\n };\n\n /**\n * Searches the composite recursively for an object matching the type and id supplied, null if not found.\n * @method get\n * @param {composite} composite\n * @param {number} id\n * @param {string} type\n * @return {object} The requested object, if found\n */\n Composite.get = function(composite, id, type) {\n var objects,\n object;\n\n switch (type) {\n case 'body':\n objects = Composite.allBodies(composite);\n break;\n case 'constraint':\n objects = Composite.allConstraints(composite);\n break;\n case 'composite':\n objects = Composite.allComposites(composite).concat(composite);\n break;\n }\n\n if (!objects)\n return null;\n\n object = objects.filter(function(object) { \n return object.id.toString() === id.toString(); \n });\n\n return object.length === 0 ? null : object[0];\n };\n\n /**\n * Moves the given object(s) from compositeA to compositeB (equal to a remove followed by an add).\n * @method move\n * @param {compositeA} compositeA\n * @param {object[]} objects\n * @param {compositeB} compositeB\n * @return {composite} Returns compositeA\n */\n Composite.move = function(compositeA, objects, compositeB) {\n Composite.remove(compositeA, objects);\n Composite.add(compositeB, objects);\n return compositeA;\n };\n\n /**\n * Assigns new ids for all objects in the composite, recursively.\n * @method rebase\n * @param {composite} composite\n * @return {composite} Returns composite\n */\n Composite.rebase = function(composite) {\n var objects = Composite.allBodies(composite)\n .concat(Composite.allConstraints(composite))\n .concat(Composite.allComposites(composite));\n\n for (var i = 0; i < objects.length; i++) {\n objects[i].id = Common.nextId();\n }\n\n return composite;\n };\n\n /**\n * Translates all children in the composite by a given vector relative to their current positions, \n * without imparting any velocity.\n * @method translate\n * @param {composite} composite\n * @param {vector} translation\n * @param {bool} [recursive=true]\n */\n Composite.translate = function(composite, translation, recursive) {\n var bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n Body.translate(bodies[i], translation);\n }\n\n return composite;\n };\n\n /**\n * Rotates all children in the composite by a given angle about the given point, without imparting any angular velocity.\n * @method rotate\n * @param {composite} composite\n * @param {number} rotation\n * @param {vector} point\n * @param {bool} [recursive=true]\n */\n Composite.rotate = function(composite, rotation, point, recursive) {\n var cos = Math.cos(rotation),\n sin = Math.sin(rotation),\n bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + (dx * cos - dy * sin),\n y: point.y + (dx * sin + dy * cos)\n });\n\n Body.rotate(body, rotation);\n }\n\n return composite;\n };\n\n /**\n * Scales all children in the composite, including updating physical properties (mass, area, axes, inertia), from a world-space point.\n * @method scale\n * @param {composite} composite\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} point\n * @param {bool} [recursive=true]\n */\n Composite.scale = function(composite, scaleX, scaleY, point, recursive) {\n var bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + dx * scaleX,\n y: point.y + dy * scaleY\n });\n\n Body.scale(body, scaleX, scaleY);\n }\n\n return composite;\n };\n\n /**\n * Returns the union of the bounds of all of the composite's bodies.\n * @method bounds\n * @param {composite} composite The composite.\n * @returns {bounds} The composite bounds.\n */\n Composite.bounds = function(composite) {\n var bodies = Composite.allBodies(composite),\n vertices = [];\n\n for (var i = 0; i < bodies.length; i += 1) {\n var body = bodies[i];\n vertices.push(body.bounds.min, body.bounds.max);\n }\n\n return Bounds.create(vertices);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when a call to `Composite.add` is made, before objects have been added.\n *\n * @event beforeAdd\n * @param {} event An event object\n * @param {} event.object The object(s) to be added (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.add` is made, after objects have been added.\n *\n * @event afterAdd\n * @param {} event An event object\n * @param {} event.object The object(s) that have been added (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.remove` is made, before objects have been removed.\n *\n * @event beforeRemove\n * @param {} event An event object\n * @param {} event.object The object(s) to be removed (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.remove` is made, after objects have been removed.\n *\n * @event afterRemove\n * @param {} event An event object\n * @param {} event.object The object(s) that have been removed (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"composite\"\n * @readOnly\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage composites.\n *\n * @property label\n * @type string\n * @default \"Composite\"\n */\n\n /**\n * A flag that specifies whether the composite has been modified during the current step.\n * This is automatically managed when bodies, constraints or composites are added or removed.\n *\n * @property isModified\n * @type boolean\n * @default false\n */\n\n /**\n * The `Composite` that is the parent of this composite. It is automatically managed by the `Matter.Composite` methods.\n *\n * @property parent\n * @type composite\n * @default null\n */\n\n /**\n * An array of `Body` that are _direct_ children of this composite.\n * To add or remove bodies you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allBodies` method.\n *\n * @property bodies\n * @type body[]\n * @default []\n */\n\n /**\n * An array of `Constraint` that are _direct_ children of this composite.\n * To add or remove constraints you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allConstraints` method.\n *\n * @property constraints\n * @type constraint[]\n * @default []\n */\n\n /**\n * An array of `Composite` that are _direct_ children of this composite.\n * To add or remove composites you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allComposites` method.\n *\n * @property composites\n * @type composite[]\n * @default []\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * An object used for storing cached results for performance reasons.\n * This is used internally only and is automatically managed.\n *\n * @private\n * @property cache\n * @type {}\n */\n\n})();\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Sleeping` module contains methods to manage the sleeping state of bodies.\n*\n* @class Sleeping\n*/\n\nvar Sleeping = {};\n\nmodule.exports = Sleeping;\n\nvar Body = __webpack_require__(4);\nvar Events = __webpack_require__(5);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Sleeping._motionWakeThreshold = 0.18;\n Sleeping._motionSleepThreshold = 0.08;\n Sleeping._minBias = 0.9;\n\n /**\n * Puts bodies to sleep or wakes them up depending on their motion.\n * @method update\n * @param {body[]} bodies\n * @param {number} delta\n */\n Sleeping.update = function(bodies, delta) {\n var timeScale = delta / Common._baseDelta,\n motionSleepThreshold = Sleeping._motionSleepThreshold;\n \n // update bodies sleeping status\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n speed = Body.getSpeed(body),\n angularSpeed = Body.getAngularSpeed(body),\n motion = speed * speed + angularSpeed * angularSpeed;\n\n // wake up bodies if they have a force applied\n if (body.force.x !== 0 || body.force.y !== 0) {\n Sleeping.set(body, false);\n continue;\n }\n\n var minMotion = Math.min(body.motion, motion),\n maxMotion = Math.max(body.motion, motion);\n \n // biased average motion estimation between frames\n body.motion = Sleeping._minBias * minMotion + (1 - Sleeping._minBias) * maxMotion;\n\n if (body.sleepThreshold > 0 && body.motion < motionSleepThreshold) {\n body.sleepCounter += 1;\n \n if (body.sleepCounter >= body.sleepThreshold / timeScale) {\n Sleeping.set(body, true);\n }\n } else if (body.sleepCounter > 0) {\n body.sleepCounter -= 1;\n }\n }\n };\n\n /**\n * Given a set of colliding pairs, wakes the sleeping bodies involved.\n * @method afterCollisions\n * @param {pair[]} pairs\n */\n Sleeping.afterCollisions = function(pairs) {\n var motionSleepThreshold = Sleeping._motionSleepThreshold;\n\n // wake up bodies involved in collisions\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n \n // don't wake inactive pairs\n if (!pair.isActive)\n continue;\n\n var collision = pair.collision,\n bodyA = collision.bodyA.parent, \n bodyB = collision.bodyB.parent;\n \n // don't wake if at least one body is static\n if ((bodyA.isSleeping && bodyB.isSleeping) || bodyA.isStatic || bodyB.isStatic)\n continue;\n \n if (bodyA.isSleeping || bodyB.isSleeping) {\n var sleepingBody = (bodyA.isSleeping && !bodyA.isStatic) ? bodyA : bodyB,\n movingBody = sleepingBody === bodyA ? bodyB : bodyA;\n\n if (!sleepingBody.isStatic && movingBody.motion > motionSleepThreshold) {\n Sleeping.set(sleepingBody, false);\n }\n }\n }\n };\n \n /**\n * Set a body as sleeping or awake.\n * @method set\n * @param {body} body\n * @param {boolean} isSleeping\n */\n Sleeping.set = function(body, isSleeping) {\n var wasSleeping = body.isSleeping;\n\n if (isSleeping) {\n body.isSleeping = true;\n body.sleepCounter = body.sleepThreshold;\n\n body.positionImpulse.x = 0;\n body.positionImpulse.y = 0;\n\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n\n body.anglePrev = body.angle;\n body.speed = 0;\n body.angularSpeed = 0;\n body.motion = 0;\n\n if (!wasSleeping) {\n Events.trigger(body, 'sleepStart');\n }\n } else {\n body.isSleeping = false;\n body.sleepCounter = 0;\n\n if (wasSleeping) {\n Events.trigger(body, 'sleepEnd');\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Collision` module contains methods for detecting collisions between a given pair of bodies.\n*\n* For efficient detection between a list of bodies, see `Matter.Detector` and `Matter.Query`.\n*\n* See `Matter.Engine` for collision events.\n*\n* @class Collision\n*/\n\nvar Collision = {};\n\nmodule.exports = Collision;\n\nvar Vertices = __webpack_require__(3);\nvar Pair = __webpack_require__(9);\n\n(function() {\n var _supports = [];\n\n var _overlapAB = {\n overlap: 0,\n axis: null\n };\n\n var _overlapBA = {\n overlap: 0,\n axis: null\n };\n\n /**\n * Creates a new collision record.\n * @method create\n * @param {body} bodyA The first body part represented by the collision record\n * @param {body} bodyB The second body part represented by the collision record\n * @return {collision} A new collision record\n */\n Collision.create = function(bodyA, bodyB) {\n return { \n pair: null,\n collided: false,\n bodyA: bodyA,\n bodyB: bodyB,\n parentA: bodyA.parent,\n parentB: bodyB.parent,\n depth: 0,\n normal: { x: 0, y: 0 },\n tangent: { x: 0, y: 0 },\n penetration: { x: 0, y: 0 },\n supports: []\n };\n };\n\n /**\n * Detect collision between two bodies.\n * @method collides\n * @param {body} bodyA\n * @param {body} bodyB\n * @param {pairs} [pairs] Optionally reuse collision records from existing pairs.\n * @return {collision|null} A collision record if detected, otherwise null\n */\n Collision.collides = function(bodyA, bodyB, pairs) {\n Collision._overlapAxes(_overlapAB, bodyA.vertices, bodyB.vertices, bodyA.axes);\n\n if (_overlapAB.overlap <= 0) {\n return null;\n }\n\n Collision._overlapAxes(_overlapBA, bodyB.vertices, bodyA.vertices, bodyB.axes);\n\n if (_overlapBA.overlap <= 0) {\n return null;\n }\n\n // reuse collision records for gc efficiency\n var pair = pairs && pairs.table[Pair.id(bodyA, bodyB)],\n collision;\n\n if (!pair) {\n collision = Collision.create(bodyA, bodyB);\n collision.collided = true;\n collision.bodyA = bodyA.id < bodyB.id ? bodyA : bodyB;\n collision.bodyB = bodyA.id < bodyB.id ? bodyB : bodyA;\n collision.parentA = collision.bodyA.parent;\n collision.parentB = collision.bodyB.parent;\n } else {\n collision = pair.collision;\n }\n\n bodyA = collision.bodyA;\n bodyB = collision.bodyB;\n\n var minOverlap;\n\n if (_overlapAB.overlap < _overlapBA.overlap) {\n minOverlap = _overlapAB;\n } else {\n minOverlap = _overlapBA;\n }\n\n var normal = collision.normal,\n supports = collision.supports,\n minAxis = minOverlap.axis,\n minAxisX = minAxis.x,\n minAxisY = minAxis.y;\n\n // ensure normal is facing away from bodyA\n if (minAxisX * (bodyB.position.x - bodyA.position.x) + minAxisY * (bodyB.position.y - bodyA.position.y) < 0) {\n normal.x = minAxisX;\n normal.y = minAxisY;\n } else {\n normal.x = -minAxisX;\n normal.y = -minAxisY;\n }\n \n collision.tangent.x = -normal.y;\n collision.tangent.y = normal.x;\n\n collision.depth = minOverlap.overlap;\n\n collision.penetration.x = normal.x * collision.depth;\n collision.penetration.y = normal.y * collision.depth;\n\n // find support points, there is always either exactly one or two\n var supportsB = Collision._findSupports(bodyA, bodyB, normal, 1),\n supportCount = 0;\n\n // find the supports from bodyB that are inside bodyA\n if (Vertices.contains(bodyA.vertices, supportsB[0])) {\n supports[supportCount++] = supportsB[0];\n }\n\n if (Vertices.contains(bodyA.vertices, supportsB[1])) {\n supports[supportCount++] = supportsB[1];\n }\n\n // find the supports from bodyA that are inside bodyB\n if (supportCount < 2) {\n var supportsA = Collision._findSupports(bodyB, bodyA, normal, -1);\n\n if (Vertices.contains(bodyB.vertices, supportsA[0])) {\n supports[supportCount++] = supportsA[0];\n }\n\n if (supportCount < 2 && Vertices.contains(bodyB.vertices, supportsA[1])) {\n supports[supportCount++] = supportsA[1];\n }\n }\n\n // account for the edge case of overlapping but no vertex containment\n if (supportCount === 0) {\n supports[supportCount++] = supportsB[0];\n }\n\n // update supports array size\n supports.length = supportCount;\n\n return collision;\n };\n\n /**\n * Find the overlap between two sets of vertices.\n * @method _overlapAxes\n * @private\n * @param {object} result\n * @param {vertices} verticesA\n * @param {vertices} verticesB\n * @param {axes} axes\n */\n Collision._overlapAxes = function(result, verticesA, verticesB, axes) {\n var verticesALength = verticesA.length,\n verticesBLength = verticesB.length,\n verticesAX = verticesA[0].x,\n verticesAY = verticesA[0].y,\n verticesBX = verticesB[0].x,\n verticesBY = verticesB[0].y,\n axesLength = axes.length,\n overlapMin = Number.MAX_VALUE,\n overlapAxisNumber = 0,\n overlap,\n overlapAB,\n overlapBA,\n dot,\n i,\n j;\n\n for (i = 0; i < axesLength; i++) {\n var axis = axes[i],\n axisX = axis.x,\n axisY = axis.y,\n minA = verticesAX * axisX + verticesAY * axisY,\n minB = verticesBX * axisX + verticesBY * axisY,\n maxA = minA,\n maxB = minB;\n \n for (j = 1; j < verticesALength; j += 1) {\n dot = verticesA[j].x * axisX + verticesA[j].y * axisY;\n\n if (dot > maxA) { \n maxA = dot;\n } else if (dot < minA) { \n minA = dot;\n }\n }\n\n for (j = 1; j < verticesBLength; j += 1) {\n dot = verticesB[j].x * axisX + verticesB[j].y * axisY;\n\n if (dot > maxB) { \n maxB = dot;\n } else if (dot < minB) { \n minB = dot;\n }\n }\n\n overlapAB = maxA - minB;\n overlapBA = maxB - minA;\n overlap = overlapAB < overlapBA ? overlapAB : overlapBA;\n\n if (overlap < overlapMin) {\n overlapMin = overlap;\n overlapAxisNumber = i;\n\n if (overlap <= 0) {\n // can not be intersecting\n break;\n }\n } \n }\n\n result.axis = axes[overlapAxisNumber];\n result.overlap = overlapMin;\n };\n\n /**\n * Projects vertices on an axis and returns an interval.\n * @method _projectToAxis\n * @private\n * @param {} projection\n * @param {} vertices\n * @param {} axis\n */\n Collision._projectToAxis = function(projection, vertices, axis) {\n var min = vertices[0].x * axis.x + vertices[0].y * axis.y,\n max = min;\n\n for (var i = 1; i < vertices.length; i += 1) {\n var dot = vertices[i].x * axis.x + vertices[i].y * axis.y;\n\n if (dot > max) { \n max = dot; \n } else if (dot < min) { \n min = dot; \n }\n }\n\n projection.min = min;\n projection.max = max;\n };\n\n /**\n * Finds supporting vertices given two bodies along a given direction using hill-climbing.\n * @method _findSupports\n * @private\n * @param {body} bodyA\n * @param {body} bodyB\n * @param {vector} normal\n * @param {number} direction\n * @return [vector]\n */\n Collision._findSupports = function(bodyA, bodyB, normal, direction) {\n var vertices = bodyB.vertices,\n verticesLength = vertices.length,\n bodyAPositionX = bodyA.position.x,\n bodyAPositionY = bodyA.position.y,\n normalX = normal.x * direction,\n normalY = normal.y * direction,\n nearestDistance = Number.MAX_VALUE,\n vertexA,\n vertexB,\n vertexC,\n distance,\n j;\n\n // find deepest vertex relative to the axis\n for (j = 0; j < verticesLength; j += 1) {\n vertexB = vertices[j];\n distance = normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y);\n\n // convex hill-climbing\n if (distance < nearestDistance) {\n nearestDistance = distance;\n vertexA = vertexB;\n }\n }\n\n // measure next vertex\n vertexC = vertices[(verticesLength + vertexA.index - 1) % verticesLength];\n nearestDistance = normalX * (bodyAPositionX - vertexC.x) + normalY * (bodyAPositionY - vertexC.y);\n\n // compare with previous vertex\n vertexB = vertices[(vertexA.index + 1) % verticesLength];\n if (normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y) < nearestDistance) {\n _supports[0] = vertexA;\n _supports[1] = vertexB;\n\n return _supports;\n }\n\n _supports[0] = vertexA;\n _supports[1] = vertexC;\n\n return _supports;\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A reference to the pair using this collision record, if there is one.\n *\n * @property pair\n * @type {pair|null}\n * @default null\n */\n\n /**\n * A flag that indicates if the bodies were colliding when the collision was last updated.\n * \n * @property collided\n * @type boolean\n * @default false\n */\n\n /**\n * The first body part represented by the collision (see also `collision.parentA`).\n * \n * @property bodyA\n * @type body\n */\n\n /**\n * The second body part represented by the collision (see also `collision.parentB`).\n * \n * @property bodyB\n * @type body\n */\n\n /**\n * The first body represented by the collision (i.e. `collision.bodyA.parent`).\n * \n * @property parentA\n * @type body\n */\n\n /**\n * The second body represented by the collision (i.e. `collision.bodyB.parent`).\n * \n * @property parentB\n * @type body\n */\n\n /**\n * A `Number` that represents the minimum separating distance between the bodies along the collision normal.\n *\n * @readOnly\n * @property depth\n * @type number\n * @default 0\n */\n\n /**\n * A normalised `Vector` that represents the direction between the bodies that provides the minimum separating distance.\n *\n * @property normal\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A normalised `Vector` that is the tangent direction to the collision normal.\n *\n * @property tangent\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that represents the direction and depth of the collision.\n *\n * @property penetration\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * An array of body vertices that represent the support points in the collision.\n * These are the deepest vertices (along the collision normal) of each body that are contained by the other body's vertices.\n *\n * @property supports\n * @type vector[]\n * @default []\n */\n\n})();\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Pair` module contains methods for creating and manipulating collision pairs.\n*\n* @class Pair\n*/\n\nvar Pair = {};\n\nmodule.exports = Pair;\n\nvar Contact = __webpack_require__(16);\n\n(function() {\n \n /**\n * Creates a pair.\n * @method create\n * @param {collision} collision\n * @param {number} timestamp\n * @return {pair} A new pair\n */\n Pair.create = function(collision, timestamp) {\n var bodyA = collision.bodyA,\n bodyB = collision.bodyB;\n\n var pair = {\n id: Pair.id(bodyA, bodyB),\n bodyA: bodyA,\n bodyB: bodyB,\n collision: collision,\n contacts: [],\n activeContacts: [],\n separation: 0,\n isActive: true,\n confirmedActive: true,\n isSensor: bodyA.isSensor || bodyB.isSensor,\n timeCreated: timestamp,\n timeUpdated: timestamp,\n inverseMass: 0,\n friction: 0,\n frictionStatic: 0,\n restitution: 0,\n slop: 0\n };\n\n Pair.update(pair, collision, timestamp);\n\n return pair;\n };\n\n /**\n * Updates a pair given a collision.\n * @method update\n * @param {pair} pair\n * @param {collision} collision\n * @param {number} timestamp\n */\n Pair.update = function(pair, collision, timestamp) {\n var contacts = pair.contacts,\n supports = collision.supports,\n activeContacts = pair.activeContacts,\n parentA = collision.parentA,\n parentB = collision.parentB,\n parentAVerticesLength = parentA.vertices.length;\n \n pair.isActive = true;\n pair.timeUpdated = timestamp;\n pair.collision = collision;\n pair.separation = collision.depth;\n pair.inverseMass = parentA.inverseMass + parentB.inverseMass;\n pair.friction = parentA.friction < parentB.friction ? parentA.friction : parentB.friction;\n pair.frictionStatic = parentA.frictionStatic > parentB.frictionStatic ? parentA.frictionStatic : parentB.frictionStatic;\n pair.restitution = parentA.restitution > parentB.restitution ? parentA.restitution : parentB.restitution;\n pair.slop = parentA.slop > parentB.slop ? parentA.slop : parentB.slop;\n\n collision.pair = pair;\n activeContacts.length = 0;\n \n for (var i = 0; i < supports.length; i++) {\n var support = supports[i],\n contactId = support.body === parentA ? support.index : parentAVerticesLength + support.index,\n contact = contacts[contactId];\n\n if (contact) {\n activeContacts.push(contact);\n } else {\n activeContacts.push(contacts[contactId] = Contact.create(support));\n }\n }\n };\n \n /**\n * Set a pair as active or inactive.\n * @method setActive\n * @param {pair} pair\n * @param {bool} isActive\n * @param {number} timestamp\n */\n Pair.setActive = function(pair, isActive, timestamp) {\n if (isActive) {\n pair.isActive = true;\n pair.timeUpdated = timestamp;\n } else {\n pair.isActive = false;\n pair.activeContacts.length = 0;\n }\n };\n\n /**\n * Get the id for the given pair.\n * @method id\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {string} Unique pairId\n */\n Pair.id = function(bodyA, bodyB) {\n if (bodyA.id < bodyB.id) {\n return 'A' + bodyA.id + 'B' + bodyB.id;\n } else {\n return 'A' + bodyB.id + 'B' + bodyA.id;\n }\n };\n\n})();\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Constraint` module contains methods for creating and manipulating constraints.\n* Constraints are used for specifying that a fixed distance must be maintained between two bodies (or a body and a fixed world-space position).\n* The stiffness of constraints can be modified to create springs or elastic.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Constraint\n*/\n\nvar Constraint = {};\n\nmodule.exports = Constraint;\n\nvar Vertices = __webpack_require__(3);\nvar Vector = __webpack_require__(2);\nvar Sleeping = __webpack_require__(7);\nvar Bounds = __webpack_require__(1);\nvar Axes = __webpack_require__(11);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Constraint._warming = 0.4;\n Constraint._torqueDampen = 1;\n Constraint._minLength = 0.000001;\n\n /**\n * Creates a new constraint.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * To simulate a revolute constraint (or pin joint) set `length: 0` and a high `stiffness` value (e.g. `0.7` or above).\n * If the constraint is unstable, try lowering the `stiffness` value and / or increasing `engine.constraintIterations`.\n * For compound bodies, constraints must be applied to the parent body (not one of its parts).\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} options\n * @return {constraint} constraint\n */\n Constraint.create = function(options) {\n var constraint = options;\n\n // if bodies defined but no points, use body centre\n if (constraint.bodyA && !constraint.pointA)\n constraint.pointA = { x: 0, y: 0 };\n if (constraint.bodyB && !constraint.pointB)\n constraint.pointB = { x: 0, y: 0 };\n\n // calculate static length using initial world space points\n var initialPointA = constraint.bodyA ? Vector.add(constraint.bodyA.position, constraint.pointA) : constraint.pointA,\n initialPointB = constraint.bodyB ? Vector.add(constraint.bodyB.position, constraint.pointB) : constraint.pointB,\n length = Vector.magnitude(Vector.sub(initialPointA, initialPointB));\n \n constraint.length = typeof constraint.length !== 'undefined' ? constraint.length : length;\n\n // option defaults\n constraint.id = constraint.id || Common.nextId();\n constraint.label = constraint.label || 'Constraint';\n constraint.type = 'constraint';\n constraint.stiffness = constraint.stiffness || (constraint.length > 0 ? 1 : 0.7);\n constraint.damping = constraint.damping || 0;\n constraint.angularStiffness = constraint.angularStiffness || 0;\n constraint.angleA = constraint.bodyA ? constraint.bodyA.angle : constraint.angleA;\n constraint.angleB = constraint.bodyB ? constraint.bodyB.angle : constraint.angleB;\n constraint.plugin = {};\n\n // render\n var render = {\n visible: true,\n lineWidth: 2,\n strokeStyle: '#ffffff',\n type: 'line',\n anchors: true\n };\n\n if (constraint.length === 0 && constraint.stiffness > 0.1) {\n render.type = 'pin';\n render.anchors = false;\n } else if (constraint.stiffness < 0.9) {\n render.type = 'spring';\n }\n\n constraint.render = Common.extend(render, constraint.render);\n\n return constraint;\n };\n\n /**\n * Prepares for solving by constraint warming.\n * @private\n * @method preSolveAll\n * @param {body[]} bodies\n */\n Constraint.preSolveAll = function(bodies) {\n for (var i = 0; i < bodies.length; i += 1) {\n var body = bodies[i],\n impulse = body.constraintImpulse;\n\n if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) {\n continue;\n }\n\n body.position.x += impulse.x;\n body.position.y += impulse.y;\n body.angle += impulse.angle;\n }\n };\n\n /**\n * Solves all constraints in a list of collisions.\n * @private\n * @method solveAll\n * @param {constraint[]} constraints\n * @param {number} delta\n */\n Constraint.solveAll = function(constraints, delta) {\n var timeScale = Common.clamp(delta / Common._baseDelta, 0, 1);\n\n // Solve fixed constraints first.\n for (var i = 0; i < constraints.length; i += 1) {\n var constraint = constraints[i],\n fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic),\n fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic);\n\n if (fixedA || fixedB) {\n Constraint.solve(constraints[i], timeScale);\n }\n }\n\n // Solve free constraints last.\n for (i = 0; i < constraints.length; i += 1) {\n constraint = constraints[i];\n fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic);\n fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic);\n\n if (!fixedA && !fixedB) {\n Constraint.solve(constraints[i], timeScale);\n }\n }\n };\n\n /**\n * Solves a distance constraint with Gauss-Siedel method.\n * @private\n * @method solve\n * @param {constraint} constraint\n * @param {number} timeScale\n */\n Constraint.solve = function(constraint, timeScale) {\n var bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n pointA = constraint.pointA,\n pointB = constraint.pointB;\n\n if (!bodyA && !bodyB)\n return;\n\n // update reference angle\n if (bodyA && !bodyA.isStatic) {\n Vector.rotate(pointA, bodyA.angle - constraint.angleA, pointA);\n constraint.angleA = bodyA.angle;\n }\n \n // update reference angle\n if (bodyB && !bodyB.isStatic) {\n Vector.rotate(pointB, bodyB.angle - constraint.angleB, pointB);\n constraint.angleB = bodyB.angle;\n }\n\n var pointAWorld = pointA,\n pointBWorld = pointB;\n\n if (bodyA) pointAWorld = Vector.add(bodyA.position, pointA);\n if (bodyB) pointBWorld = Vector.add(bodyB.position, pointB);\n\n if (!pointAWorld || !pointBWorld)\n return;\n\n var delta = Vector.sub(pointAWorld, pointBWorld),\n currentLength = Vector.magnitude(delta);\n\n // prevent singularity\n if (currentLength < Constraint._minLength) {\n currentLength = Constraint._minLength;\n }\n\n // solve distance constraint with Gauss-Siedel method\n var difference = (currentLength - constraint.length) / currentLength,\n isRigid = constraint.stiffness >= 1 || constraint.length === 0,\n stiffness = isRigid ? constraint.stiffness * timeScale \n : constraint.stiffness * timeScale * timeScale,\n damping = constraint.damping * timeScale,\n force = Vector.mult(delta, difference * stiffness),\n massTotal = (bodyA ? bodyA.inverseMass : 0) + (bodyB ? bodyB.inverseMass : 0),\n inertiaTotal = (bodyA ? bodyA.inverseInertia : 0) + (bodyB ? bodyB.inverseInertia : 0),\n resistanceTotal = massTotal + inertiaTotal,\n torque,\n share,\n normal,\n normalVelocity,\n relativeVelocity;\n \n if (damping > 0) {\n var zero = Vector.create();\n normal = Vector.div(delta, currentLength);\n\n relativeVelocity = Vector.sub(\n bodyB && Vector.sub(bodyB.position, bodyB.positionPrev) || zero,\n bodyA && Vector.sub(bodyA.position, bodyA.positionPrev) || zero\n );\n\n normalVelocity = Vector.dot(normal, relativeVelocity);\n }\n\n if (bodyA && !bodyA.isStatic) {\n share = bodyA.inverseMass / massTotal;\n\n // keep track of applied impulses for post solving\n bodyA.constraintImpulse.x -= force.x * share;\n bodyA.constraintImpulse.y -= force.y * share;\n\n // apply forces\n bodyA.position.x -= force.x * share;\n bodyA.position.y -= force.y * share;\n\n // apply damping\n if (damping > 0) {\n bodyA.positionPrev.x -= damping * normal.x * normalVelocity * share;\n bodyA.positionPrev.y -= damping * normal.y * normalVelocity * share;\n }\n\n // apply torque\n torque = (Vector.cross(pointA, force) / resistanceTotal) * Constraint._torqueDampen * bodyA.inverseInertia * (1 - constraint.angularStiffness);\n bodyA.constraintImpulse.angle -= torque;\n bodyA.angle -= torque;\n }\n\n if (bodyB && !bodyB.isStatic) {\n share = bodyB.inverseMass / massTotal;\n\n // keep track of applied impulses for post solving\n bodyB.constraintImpulse.x += force.x * share;\n bodyB.constraintImpulse.y += force.y * share;\n \n // apply forces\n bodyB.position.x += force.x * share;\n bodyB.position.y += force.y * share;\n\n // apply damping\n if (damping > 0) {\n bodyB.positionPrev.x += damping * normal.x * normalVelocity * share;\n bodyB.positionPrev.y += damping * normal.y * normalVelocity * share;\n }\n\n // apply torque\n torque = (Vector.cross(pointB, force) / resistanceTotal) * Constraint._torqueDampen * bodyB.inverseInertia * (1 - constraint.angularStiffness);\n bodyB.constraintImpulse.angle += torque;\n bodyB.angle += torque;\n }\n\n };\n\n /**\n * Performs body updates required after solving constraints.\n * @private\n * @method postSolveAll\n * @param {body[]} bodies\n */\n Constraint.postSolveAll = function(bodies) {\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n impulse = body.constraintImpulse;\n\n if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) {\n continue;\n }\n\n Sleeping.set(body, false);\n\n // update geometry and reset\n for (var j = 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n \n Vertices.translate(part.vertices, impulse);\n\n if (j > 0) {\n part.position.x += impulse.x;\n part.position.y += impulse.y;\n }\n\n if (impulse.angle !== 0) {\n Vertices.rotate(part.vertices, impulse.angle, body.position);\n Axes.rotate(part.axes, impulse.angle);\n if (j > 0) {\n Vector.rotateAbout(part.position, impulse.angle, body.position, part.position);\n }\n }\n\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n\n // dampen the cached impulse for warming next step\n impulse.angle *= Constraint._warming;\n impulse.x *= Constraint._warming;\n impulse.y *= Constraint._warming;\n }\n };\n\n /**\n * Returns the world-space position of `constraint.pointA`, accounting for `constraint.bodyA`.\n * @method pointAWorld\n * @param {constraint} constraint\n * @returns {vector} the world-space position\n */\n Constraint.pointAWorld = function(constraint) {\n return {\n x: (constraint.bodyA ? constraint.bodyA.position.x : 0) \n + (constraint.pointA ? constraint.pointA.x : 0),\n y: (constraint.bodyA ? constraint.bodyA.position.y : 0) \n + (constraint.pointA ? constraint.pointA.y : 0)\n };\n };\n\n /**\n * Returns the world-space position of `constraint.pointB`, accounting for `constraint.bodyB`.\n * @method pointBWorld\n * @param {constraint} constraint\n * @returns {vector} the world-space position\n */\n Constraint.pointBWorld = function(constraint) {\n return {\n x: (constraint.bodyB ? constraint.bodyB.position.x : 0) \n + (constraint.pointB ? constraint.pointB.x : 0),\n y: (constraint.bodyB ? constraint.bodyB.position.y : 0) \n + (constraint.pointB ? constraint.pointB.y : 0)\n };\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"constraint\"\n * @readOnly\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage bodies.\n *\n * @property label\n * @type string\n * @default \"Constraint\"\n */\n\n /**\n * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n *\n * @property render\n * @type object\n */\n\n /**\n * A flag that indicates if the constraint should be rendered.\n *\n * @property render.visible\n * @type boolean\n * @default true\n */\n\n /**\n * A `Number` that defines the line width to use when rendering the constraint outline.\n * A value of `0` means no outline will be rendered.\n *\n * @property render.lineWidth\n * @type number\n * @default 2\n */\n\n /**\n * A `String` that defines the stroke style to use when rendering the constraint outline.\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.strokeStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * A `String` that defines the constraint rendering type. \n * The possible values are 'line', 'pin', 'spring'.\n * An appropriate render type will be automatically chosen unless one is given in options.\n *\n * @property render.type\n * @type string\n * @default 'line'\n */\n\n /**\n * A `Boolean` that defines if the constraint's anchor points should be rendered.\n *\n * @property render.anchors\n * @type boolean\n * @default true\n */\n\n /**\n * The first possible `Body` that this constraint is attached to.\n *\n * @property bodyA\n * @type body\n * @default null\n */\n\n /**\n * The second possible `Body` that this constraint is attached to.\n *\n * @property bodyB\n * @type body\n * @default null\n */\n\n /**\n * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyA` if defined, otherwise a world-space position.\n *\n * @property pointA\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyB` if defined, otherwise a world-space position.\n *\n * @property pointB\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Number` that specifies the stiffness of the constraint, i.e. the rate at which it returns to its resting `constraint.length`.\n * A value of `1` means the constraint should be very stiff.\n * A value of `0.2` means the constraint acts like a soft spring.\n *\n * @property stiffness\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that specifies the damping of the constraint, \n * i.e. the amount of resistance applied to each body based on their velocities to limit the amount of oscillation.\n * Damping will only be apparent when the constraint also has a very low `stiffness`.\n * A value of `0.1` means the constraint will apply heavy damping, resulting in little to no oscillation.\n * A value of `0` means the constraint will apply no damping.\n *\n * @property damping\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that specifies the target resting length of the constraint. \n * It is calculated automatically in `Constraint.create` from initial positions of the `constraint.bodyA` and `constraint.bodyB`.\n *\n * @property length\n * @type number\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n})();\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Axes` module contains methods for creating and manipulating sets of axes.\n*\n* @class Axes\n*/\n\nvar Axes = {};\n\nmodule.exports = Axes;\n\nvar Vector = __webpack_require__(2);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new set of axes from the given vertices.\n * @method fromVertices\n * @param {vertices} vertices\n * @return {axes} A new axes from the given vertices\n */\n Axes.fromVertices = function(vertices) {\n var axes = {};\n\n // find the unique axes, using edge normal gradients\n for (var i = 0; i < vertices.length; i++) {\n var j = (i + 1) % vertices.length, \n normal = Vector.normalise({ \n x: vertices[j].y - vertices[i].y, \n y: vertices[i].x - vertices[j].x\n }),\n gradient = (normal.y === 0) ? Infinity : (normal.x / normal.y);\n \n // limit precision\n gradient = gradient.toFixed(3).toString();\n axes[gradient] = normal;\n }\n\n return Common.values(axes);\n };\n\n /**\n * Rotates a set of axes by the given angle.\n * @method rotate\n * @param {axes} axes\n * @param {number} angle\n */\n Axes.rotate = function(axes, angle) {\n if (angle === 0)\n return;\n \n var cos = Math.cos(angle),\n sin = Math.sin(angle);\n\n for (var i = 0; i < axes.length; i++) {\n var axis = axes[i],\n xx;\n xx = axis.x * cos - axis.y * sin;\n axis.y = axis.x * sin + axis.y * cos;\n axis.x = xx;\n }\n };\n\n})();\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Bodies` module contains factory methods for creating rigid body models \n* with commonly used body configurations (such as rectangles, circles and other polygons).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Bodies\n*/\n\n// TODO: true circle bodies\n\nvar Bodies = {};\n\nmodule.exports = Bodies;\n\nvar Vertices = __webpack_require__(3);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\nvar Bounds = __webpack_require__(1);\nvar Vector = __webpack_require__(2);\n\n(function() {\n\n /**\n * Creates a new rigid body model with a rectangle hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method rectangle\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {object} [options]\n * @return {body} A new rectangle body\n */\n Bodies.rectangle = function(x, y, width, height, options) {\n options = options || {};\n\n var rectangle = { \n label: 'Rectangle Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath('L 0 0 L ' + width + ' 0 L ' + width + ' ' + height + ' L 0 ' + height)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n rectangle.vertices = Vertices.chamfer(rectangle.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, rectangle, options));\n };\n \n /**\n * Creates a new rigid body model with a trapezoid hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method trapezoid\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {number} slope\n * @param {object} [options]\n * @return {body} A new trapezoid body\n */\n Bodies.trapezoid = function(x, y, width, height, slope, options) {\n options = options || {};\n\n slope *= 0.5;\n var roof = (1 - (slope * 2)) * width;\n \n var x1 = width * slope,\n x2 = x1 + roof,\n x3 = x2 + x1,\n verticesPath;\n\n if (slope < 0.5) {\n verticesPath = 'L 0 0 L ' + x1 + ' ' + (-height) + ' L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0';\n } else {\n verticesPath = 'L 0 0 L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0';\n }\n\n var trapezoid = { \n label: 'Trapezoid Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath(verticesPath)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n trapezoid.vertices = Vertices.chamfer(trapezoid.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, trapezoid, options));\n };\n\n /**\n * Creates a new rigid body model with a circle hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method circle\n * @param {number} x\n * @param {number} y\n * @param {number} radius\n * @param {object} [options]\n * @param {number} [maxSides]\n * @return {body} A new circle body\n */\n Bodies.circle = function(x, y, radius, options, maxSides) {\n options = options || {};\n\n var circle = {\n label: 'Circle Body',\n circleRadius: radius\n };\n \n // approximate circles with polygons until true circles implemented in SAT\n maxSides = maxSides || 25;\n var sides = Math.ceil(Math.max(10, Math.min(maxSides, radius)));\n\n // optimisation: always use even number of sides (half the number of unique axes)\n if (sides % 2 === 1)\n sides += 1;\n\n return Bodies.polygon(x, y, sides, radius, Common.extend({}, circle, options));\n };\n\n /**\n * Creates a new rigid body model with a regular polygon hull with the given number of sides. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method polygon\n * @param {number} x\n * @param {number} y\n * @param {number} sides\n * @param {number} radius\n * @param {object} [options]\n * @return {body} A new regular polygon body\n */\n Bodies.polygon = function(x, y, sides, radius, options) {\n options = options || {};\n\n if (sides < 3)\n return Bodies.circle(x, y, radius, options);\n\n var theta = 2 * Math.PI / sides,\n path = '',\n offset = theta * 0.5;\n\n for (var i = 0; i < sides; i += 1) {\n var angle = offset + (i * theta),\n xx = Math.cos(angle) * radius,\n yy = Math.sin(angle) * radius;\n\n path += 'L ' + xx.toFixed(3) + ' ' + yy.toFixed(3) + ' ';\n }\n\n var polygon = { \n label: 'Polygon Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath(path)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n polygon.vertices = Vertices.chamfer(polygon.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, polygon, options));\n };\n\n /**\n * Utility to create a compound body based on set(s) of vertices.\n * \n * _Note:_ To optionally enable automatic concave vertices decomposition the [poly-decomp](https://github.com/schteppe/poly-decomp.js) \n * package must be first installed and provided see `Common.setDecomp`, otherwise the convex hull of each vertex set will be used.\n * \n * The resulting vertices are reorientated about their centre of mass,\n * and offset such that `body.position` corresponds to this point.\n * \n * The resulting offset may be found if needed by subtracting `body.bounds` from the original input bounds.\n * To later move the centre of mass see `Body.setCentre`.\n * \n * Note that automatic conconcave decomposition results are not always optimal. \n * For best results, simplify the input vertices as much as possible first.\n * By default this function applies some addtional simplification to help.\n * \n * Some outputs may also require further manual processing afterwards to be robust.\n * In particular some parts may need to be overlapped to avoid collision gaps.\n * Thin parts and sharp points should be avoided or removed where possible.\n *\n * The options parameter object specifies any `Matter.Body` properties you wish to override the defaults.\n * \n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method fromVertices\n * @param {number} x\n * @param {number} y\n * @param {array} vertexSets One or more arrays of vertex points e.g. `[[{ x: 0, y: 0 }...], ...]`.\n * @param {object} [options] The body options.\n * @param {bool} [flagInternal=false] Optionally marks internal edges with `isInternal`.\n * @param {number} [removeCollinear=0.01] Threshold when simplifying vertices along the same edge.\n * @param {number} [minimumArea=10] Threshold when removing small parts.\n * @param {number} [removeDuplicatePoints=0.01] Threshold when simplifying nearby vertices.\n * @return {body}\n */\n Bodies.fromVertices = function(x, y, vertexSets, options, flagInternal, removeCollinear, minimumArea, removeDuplicatePoints) {\n var decomp = Common.getDecomp(),\n canDecomp,\n body,\n parts,\n isConvex,\n isConcave,\n vertices,\n i,\n j,\n k,\n v,\n z;\n\n // check decomp is as expected\n canDecomp = Boolean(decomp && decomp.quickDecomp);\n\n options = options || {};\n parts = [];\n\n flagInternal = typeof flagInternal !== 'undefined' ? flagInternal : false;\n removeCollinear = typeof removeCollinear !== 'undefined' ? removeCollinear : 0.01;\n minimumArea = typeof minimumArea !== 'undefined' ? minimumArea : 10;\n removeDuplicatePoints = typeof removeDuplicatePoints !== 'undefined' ? removeDuplicatePoints : 0.01;\n\n // ensure vertexSets is an array of arrays\n if (!Common.isArray(vertexSets[0])) {\n vertexSets = [vertexSets];\n }\n\n for (v = 0; v < vertexSets.length; v += 1) {\n vertices = vertexSets[v];\n isConvex = Vertices.isConvex(vertices);\n isConcave = !isConvex;\n\n if (isConcave && !canDecomp) {\n Common.warnOnce(\n 'Bodies.fromVertices: Install the \\'poly-decomp\\' library and use Common.setDecomp or provide \\'decomp\\' as a global to decompose concave vertices.'\n );\n }\n\n if (isConvex || !canDecomp) {\n if (isConvex) {\n vertices = Vertices.clockwiseSort(vertices);\n } else {\n // fallback to convex hull when decomposition is not possible\n vertices = Vertices.hull(vertices);\n }\n\n parts.push({\n position: { x: x, y: y },\n vertices: vertices\n });\n } else {\n // initialise a decomposition\n var concave = vertices.map(function(vertex) {\n return [vertex.x, vertex.y];\n });\n\n // vertices are concave and simple, we can decompose into parts\n decomp.makeCCW(concave);\n if (removeCollinear !== false)\n decomp.removeCollinearPoints(concave, removeCollinear);\n if (removeDuplicatePoints !== false && decomp.removeDuplicatePoints)\n decomp.removeDuplicatePoints(concave, removeDuplicatePoints);\n\n // use the quick decomposition algorithm (Bayazit)\n var decomposed = decomp.quickDecomp(concave);\n\n // for each decomposed chunk\n for (i = 0; i < decomposed.length; i++) {\n var chunk = decomposed[i];\n\n // convert vertices into the correct structure\n var chunkVertices = chunk.map(function(vertices) {\n return {\n x: vertices[0],\n y: vertices[1]\n };\n });\n\n // skip small chunks\n if (minimumArea > 0 && Vertices.area(chunkVertices) < minimumArea)\n continue;\n\n // create a compound part\n parts.push({\n position: Vertices.centre(chunkVertices),\n vertices: chunkVertices\n });\n }\n }\n }\n\n // create body parts\n for (i = 0; i < parts.length; i++) {\n parts[i] = Body.create(Common.extend(parts[i], options));\n }\n\n // flag internal edges (coincident part edges)\n if (flagInternal) {\n var coincident_max_dist = 5;\n\n for (i = 0; i < parts.length; i++) {\n var partA = parts[i];\n\n for (j = i + 1; j < parts.length; j++) {\n var partB = parts[j];\n\n if (Bounds.overlaps(partA.bounds, partB.bounds)) {\n var pav = partA.vertices,\n pbv = partB.vertices;\n\n // iterate vertices of both parts\n for (k = 0; k < partA.vertices.length; k++) {\n for (z = 0; z < partB.vertices.length; z++) {\n // find distances between the vertices\n var da = Vector.magnitudeSquared(Vector.sub(pav[(k + 1) % pav.length], pbv[z])),\n db = Vector.magnitudeSquared(Vector.sub(pav[k], pbv[(z + 1) % pbv.length]));\n\n // if both vertices are very close, consider the edge concident (internal)\n if (da < coincident_max_dist && db < coincident_max_dist) {\n pav[k].isInternal = true;\n pbv[z].isInternal = true;\n }\n }\n }\n\n }\n }\n }\n }\n\n if (parts.length > 1) {\n // create the parent body to be returned, that contains generated compound parts\n body = Body.create(Common.extend({ parts: parts.slice(0) }, options));\n\n // offset such that body.position is at the centre off mass\n Body.setPosition(body, { x: x, y: y });\n\n return body;\n } else {\n return parts[0];\n }\n };\n\n})();\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Detector` module contains methods for efficiently detecting collisions between a list of bodies using a broadphase algorithm.\n*\n* @class Detector\n*/\n\nvar Detector = {};\n\nmodule.exports = Detector;\n\nvar Common = __webpack_require__(0);\nvar Collision = __webpack_require__(8);\n\n(function() {\n\n /**\n * Creates a new collision detector.\n * @method create\n * @param {} options\n * @return {detector} A new collision detector\n */\n Detector.create = function(options) {\n var defaults = {\n bodies: [],\n pairs: null\n };\n\n return Common.extend(defaults, options);\n };\n\n /**\n * Sets the list of bodies in the detector.\n * @method setBodies\n * @param {detector} detector\n * @param {body[]} bodies\n */\n Detector.setBodies = function(detector, bodies) {\n detector.bodies = bodies.slice(0);\n };\n\n /**\n * Clears the detector including its list of bodies.\n * @method clear\n * @param {detector} detector\n */\n Detector.clear = function(detector) {\n detector.bodies = [];\n };\n\n /**\n * Efficiently finds all collisions among all the bodies in `detector.bodies` using a broadphase algorithm.\n * \n * _Note:_ The specific ordering of collisions returned is not guaranteed between releases and may change for performance reasons.\n * If a specific ordering is required then apply a sort to the resulting array.\n * @method collisions\n * @param {detector} detector\n * @return {collision[]} collisions\n */\n Detector.collisions = function(detector) {\n var collisions = [],\n pairs = detector.pairs,\n bodies = detector.bodies,\n bodiesLength = bodies.length,\n canCollide = Detector.canCollide,\n collides = Collision.collides,\n i,\n j;\n\n bodies.sort(Detector._compareBoundsX);\n\n for (i = 0; i < bodiesLength; i++) {\n var bodyA = bodies[i],\n boundsA = bodyA.bounds,\n boundXMax = bodyA.bounds.max.x,\n boundYMax = bodyA.bounds.max.y,\n boundYMin = bodyA.bounds.min.y,\n bodyAStatic = bodyA.isStatic || bodyA.isSleeping,\n partsALength = bodyA.parts.length,\n partsASingle = partsALength === 1;\n\n for (j = i + 1; j < bodiesLength; j++) {\n var bodyB = bodies[j],\n boundsB = bodyB.bounds;\n\n if (boundsB.min.x > boundXMax) {\n break;\n }\n\n if (boundYMax < boundsB.min.y || boundYMin > boundsB.max.y) {\n continue;\n }\n\n if (bodyAStatic && (bodyB.isStatic || bodyB.isSleeping)) {\n continue;\n }\n\n if (!canCollide(bodyA.collisionFilter, bodyB.collisionFilter)) {\n continue;\n }\n\n var partsBLength = bodyB.parts.length;\n\n if (partsASingle && partsBLength === 1) {\n var collision = collides(bodyA, bodyB, pairs);\n\n if (collision) {\n collisions.push(collision);\n }\n } else {\n var partsAStart = partsALength > 1 ? 1 : 0,\n partsBStart = partsBLength > 1 ? 1 : 0;\n \n for (var k = partsAStart; k < partsALength; k++) {\n var partA = bodyA.parts[k],\n boundsA = partA.bounds;\n\n for (var z = partsBStart; z < partsBLength; z++) {\n var partB = bodyB.parts[z],\n boundsB = partB.bounds;\n\n if (boundsA.min.x > boundsB.max.x || boundsA.max.x < boundsB.min.x\n || boundsA.max.y < boundsB.min.y || boundsA.min.y > boundsB.max.y) {\n continue;\n }\n\n var collision = collides(partA, partB, pairs);\n\n if (collision) {\n collisions.push(collision);\n }\n }\n }\n }\n }\n }\n\n return collisions;\n };\n\n /**\n * Returns `true` if both supplied collision filters will allow a collision to occur.\n * See `body.collisionFilter` for more information.\n * @method canCollide\n * @param {} filterA\n * @param {} filterB\n * @return {bool} `true` if collision can occur\n */\n Detector.canCollide = function(filterA, filterB) {\n if (filterA.group === filterB.group && filterA.group !== 0)\n return filterA.group > 0;\n\n return (filterA.mask & filterB.category) !== 0 && (filterB.mask & filterA.category) !== 0;\n };\n\n /**\n * The comparison function used in the broadphase algorithm.\n * Returns the signed delta of the bodies bounds on the x-axis.\n * @private\n * @method _sortCompare\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {number} The signed delta used for sorting\n */\n Detector._compareBoundsX = function(bodyA, bodyB) {\n return bodyA.bounds.min.x - bodyB.bounds.min.x;\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * The array of `Matter.Body` between which the detector finds collisions.\n * \n * _Note:_ The order of bodies in this array _is not fixed_ and will be continually managed by the detector.\n * @property bodies\n * @type body[]\n * @default []\n */\n\n /**\n * Optional. A `Matter.Pairs` object from which previous collision objects may be reused. Intended for internal `Matter.Engine` usage.\n * @property pairs\n * @type {pairs|null}\n * @default null\n */\n\n})();\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Mouse` module contains methods for creating and manipulating mouse inputs.\n*\n* @class Mouse\n*/\n\nvar Mouse = {};\n\nmodule.exports = Mouse;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a mouse input.\n * @method create\n * @param {HTMLElement} element\n * @return {mouse} A new mouse\n */\n Mouse.create = function(element) {\n var mouse = {};\n\n if (!element) {\n Common.log('Mouse.create: element was undefined, defaulting to document.body', 'warn');\n }\n \n mouse.element = element || document.body;\n mouse.absolute = { x: 0, y: 0 };\n mouse.position = { x: 0, y: 0 };\n mouse.mousedownPosition = { x: 0, y: 0 };\n mouse.mouseupPosition = { x: 0, y: 0 };\n mouse.offset = { x: 0, y: 0 };\n mouse.scale = { x: 1, y: 1 };\n mouse.wheelDelta = 0;\n mouse.button = -1;\n mouse.pixelRatio = parseInt(mouse.element.getAttribute('data-pixel-ratio'), 10) || 1;\n\n mouse.sourceEvents = {\n mousemove: null,\n mousedown: null,\n mouseup: null,\n mousewheel: null\n };\n \n mouse.mousemove = function(event) { \n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n mouse.button = 0;\n event.preventDefault();\n }\n\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.sourceEvents.mousemove = event;\n };\n \n mouse.mousedown = function(event) {\n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n mouse.button = 0;\n event.preventDefault();\n } else {\n mouse.button = event.button;\n }\n\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.mousedownPosition.x = mouse.position.x;\n mouse.mousedownPosition.y = mouse.position.y;\n mouse.sourceEvents.mousedown = event;\n };\n \n mouse.mouseup = function(event) {\n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n event.preventDefault();\n }\n \n mouse.button = -1;\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.mouseupPosition.x = mouse.position.x;\n mouse.mouseupPosition.y = mouse.position.y;\n mouse.sourceEvents.mouseup = event;\n };\n\n mouse.mousewheel = function(event) {\n mouse.wheelDelta = Math.max(-1, Math.min(1, event.wheelDelta || -event.detail));\n event.preventDefault();\n };\n\n Mouse.setElement(mouse, mouse.element);\n\n return mouse;\n };\n\n /**\n * Sets the element the mouse is bound to (and relative to).\n * @method setElement\n * @param {mouse} mouse\n * @param {HTMLElement} element\n */\n Mouse.setElement = function(mouse, element) {\n mouse.element = element;\n\n element.addEventListener('mousemove', mouse.mousemove);\n element.addEventListener('mousedown', mouse.mousedown);\n element.addEventListener('mouseup', mouse.mouseup);\n \n element.addEventListener('mousewheel', mouse.mousewheel);\n element.addEventListener('DOMMouseScroll', mouse.mousewheel);\n\n element.addEventListener('touchmove', mouse.mousemove);\n element.addEventListener('touchstart', mouse.mousedown);\n element.addEventListener('touchend', mouse.mouseup);\n };\n\n /**\n * Clears all captured source events.\n * @method clearSourceEvents\n * @param {mouse} mouse\n */\n Mouse.clearSourceEvents = function(mouse) {\n mouse.sourceEvents.mousemove = null;\n mouse.sourceEvents.mousedown = null;\n mouse.sourceEvents.mouseup = null;\n mouse.sourceEvents.mousewheel = null;\n mouse.wheelDelta = 0;\n };\n\n /**\n * Sets the mouse position offset.\n * @method setOffset\n * @param {mouse} mouse\n * @param {vector} offset\n */\n Mouse.setOffset = function(mouse, offset) {\n mouse.offset.x = offset.x;\n mouse.offset.y = offset.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n };\n\n /**\n * Sets the mouse position scale.\n * @method setScale\n * @param {mouse} mouse\n * @param {vector} scale\n */\n Mouse.setScale = function(mouse, scale) {\n mouse.scale.x = scale.x;\n mouse.scale.y = scale.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n };\n \n /**\n * Gets the mouse position relative to an element given a screen pixel ratio.\n * @method _getRelativeMousePosition\n * @private\n * @param {} event\n * @param {} element\n * @param {number} pixelRatio\n * @return {}\n */\n Mouse._getRelativeMousePosition = function(event, element, pixelRatio) {\n var elementBounds = element.getBoundingClientRect(),\n rootNode = (document.documentElement || document.body.parentNode || document.body),\n scrollX = (window.pageXOffset !== undefined) ? window.pageXOffset : rootNode.scrollLeft,\n scrollY = (window.pageYOffset !== undefined) ? window.pageYOffset : rootNode.scrollTop,\n touches = event.changedTouches,\n x, y;\n \n if (touches) {\n x = touches[0].pageX - elementBounds.left - scrollX;\n y = touches[0].pageY - elementBounds.top - scrollY;\n } else {\n x = event.pageX - elementBounds.left - scrollX;\n y = event.pageY - elementBounds.top - scrollY;\n }\n\n return { \n x: x / (element.clientWidth / (element.width || element.clientWidth) * pixelRatio),\n y: y / (element.clientHeight / (element.height || element.clientHeight) * pixelRatio)\n };\n };\n\n})();\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Plugin` module contains functions for registering and installing plugins on modules.\n*\n* @class Plugin\n*/\n\nvar Plugin = {};\n\nmodule.exports = Plugin;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Plugin._registry = {};\n\n /**\n * Registers a plugin object so it can be resolved later by name.\n * @method register\n * @param plugin {} The plugin to register.\n * @return {object} The plugin.\n */\n Plugin.register = function(plugin) {\n if (!Plugin.isPlugin(plugin)) {\n Common.warn('Plugin.register:', Plugin.toString(plugin), 'does not implement all required fields.');\n }\n\n if (plugin.name in Plugin._registry) {\n var registered = Plugin._registry[plugin.name],\n pluginVersion = Plugin.versionParse(plugin.version).number,\n registeredVersion = Plugin.versionParse(registered.version).number;\n\n if (pluginVersion > registeredVersion) {\n Common.warn('Plugin.register:', Plugin.toString(registered), 'was upgraded to', Plugin.toString(plugin));\n Plugin._registry[plugin.name] = plugin;\n } else if (pluginVersion < registeredVersion) {\n Common.warn('Plugin.register:', Plugin.toString(registered), 'can not be downgraded to', Plugin.toString(plugin));\n } else if (plugin !== registered) {\n Common.warn('Plugin.register:', Plugin.toString(plugin), 'is already registered to different plugin object');\n }\n } else {\n Plugin._registry[plugin.name] = plugin;\n }\n\n return plugin;\n };\n\n /**\n * Resolves a dependency to a plugin object from the registry if it exists. \n * The `dependency` may contain a version, but only the name matters when resolving.\n * @method resolve\n * @param dependency {string} The dependency.\n * @return {object} The plugin if resolved, otherwise `undefined`.\n */\n Plugin.resolve = function(dependency) {\n return Plugin._registry[Plugin.dependencyParse(dependency).name];\n };\n\n /**\n * Returns a pretty printed plugin name and version.\n * @method toString\n * @param plugin {} The plugin.\n * @return {string} Pretty printed plugin name and version.\n */\n Plugin.toString = function(plugin) {\n return typeof plugin === 'string' ? plugin : (plugin.name || 'anonymous') + '@' + (plugin.version || plugin.range || '0.0.0');\n };\n\n /**\n * Returns `true` if the object meets the minimum standard to be considered a plugin.\n * This means it must define the following properties:\n * - `name`\n * - `version`\n * - `install`\n * @method isPlugin\n * @param obj {} The obj to test.\n * @return {boolean} `true` if the object can be considered a plugin otherwise `false`.\n */\n Plugin.isPlugin = function(obj) {\n return obj && obj.name && obj.version && obj.install;\n };\n\n /**\n * Returns `true` if a plugin with the given `name` been installed on `module`.\n * @method isUsed\n * @param module {} The module.\n * @param name {string} The plugin name.\n * @return {boolean} `true` if a plugin with the given `name` been installed on `module`, otherwise `false`.\n */\n Plugin.isUsed = function(module, name) {\n return module.used.indexOf(name) > -1;\n };\n\n /**\n * Returns `true` if `plugin.for` is applicable to `module` by comparing against `module.name` and `module.version`.\n * If `plugin.for` is not specified then it is assumed to be applicable.\n * The value of `plugin.for` is a string of the format `'module-name'` or `'module-name@version'`.\n * @method isFor\n * @param plugin {} The plugin.\n * @param module {} The module.\n * @return {boolean} `true` if `plugin.for` is applicable to `module`, otherwise `false`.\n */\n Plugin.isFor = function(plugin, module) {\n var parsed = plugin.for && Plugin.dependencyParse(plugin.for);\n return !plugin.for || (module.name === parsed.name && Plugin.versionSatisfies(module.version, parsed.range));\n };\n\n /**\n * Installs the plugins by calling `plugin.install` on each plugin specified in `plugins` if passed, otherwise `module.uses`.\n * For installing plugins on `Matter` see the convenience function `Matter.use`.\n * Plugins may be specified either by their name or a reference to the plugin object.\n * Plugins themselves may specify further dependencies, but each plugin is installed only once.\n * Order is important, a topological sort is performed to find the best resulting order of installation.\n * This sorting attempts to satisfy every dependency's requested ordering, but may not be exact in all cases.\n * This function logs the resulting status of each dependency in the console, along with any warnings.\n * - A green tick ✅ indicates a dependency was resolved and installed.\n * - An orange diamond 🔶 indicates a dependency was resolved but a warning was thrown for it or one if its dependencies.\n * - A red cross ❌ indicates a dependency could not be resolved.\n * Avoid calling this function multiple times on the same module unless you intend to manually control installation order.\n * @method use\n * @param module {} The module install plugins on.\n * @param [plugins=module.uses] {} The plugins to install on module (optional, defaults to `module.uses`).\n */\n Plugin.use = function(module, plugins) {\n module.uses = (module.uses || []).concat(plugins || []);\n\n if (module.uses.length === 0) {\n Common.warn('Plugin.use:', Plugin.toString(module), 'does not specify any dependencies to install.');\n return;\n }\n\n var dependencies = Plugin.dependencies(module),\n sortedDependencies = Common.topologicalSort(dependencies),\n status = [];\n\n for (var i = 0; i < sortedDependencies.length; i += 1) {\n if (sortedDependencies[i] === module.name) {\n continue;\n }\n\n var plugin = Plugin.resolve(sortedDependencies[i]);\n\n if (!plugin) {\n status.push('❌ ' + sortedDependencies[i]);\n continue;\n }\n\n if (Plugin.isUsed(module, plugin.name)) {\n continue;\n }\n\n if (!Plugin.isFor(plugin, module)) {\n Common.warn('Plugin.use:', Plugin.toString(plugin), 'is for', plugin.for, 'but installed on', Plugin.toString(module) + '.');\n plugin._warned = true;\n }\n\n if (plugin.install) {\n plugin.install(module);\n } else {\n Common.warn('Plugin.use:', Plugin.toString(plugin), 'does not specify an install function.');\n plugin._warned = true;\n }\n\n if (plugin._warned) {\n status.push('🔶 ' + Plugin.toString(plugin));\n delete plugin._warned;\n } else {\n status.push('✅ ' + Plugin.toString(plugin));\n }\n\n module.used.push(plugin.name);\n }\n\n if (status.length > 0) {\n Common.info(status.join(' '));\n }\n };\n\n /**\n * Recursively finds all of a module's dependencies and returns a flat dependency graph.\n * @method dependencies\n * @param module {} The module.\n * @return {object} A dependency graph.\n */\n Plugin.dependencies = function(module, tracked) {\n var parsedBase = Plugin.dependencyParse(module),\n name = parsedBase.name;\n\n tracked = tracked || {};\n\n if (name in tracked) {\n return;\n }\n\n module = Plugin.resolve(module) || module;\n\n tracked[name] = Common.map(module.uses || [], function(dependency) {\n if (Plugin.isPlugin(dependency)) {\n Plugin.register(dependency);\n }\n\n var parsed = Plugin.dependencyParse(dependency),\n resolved = Plugin.resolve(dependency);\n\n if (resolved && !Plugin.versionSatisfies(resolved.version, parsed.range)) {\n Common.warn(\n 'Plugin.dependencies:', Plugin.toString(resolved), 'does not satisfy',\n Plugin.toString(parsed), 'used by', Plugin.toString(parsedBase) + '.'\n );\n\n resolved._warned = true;\n module._warned = true;\n } else if (!resolved) {\n Common.warn(\n 'Plugin.dependencies:', Plugin.toString(dependency), 'used by',\n Plugin.toString(parsedBase), 'could not be resolved.'\n );\n\n module._warned = true;\n }\n\n return parsed.name;\n });\n\n for (var i = 0; i < tracked[name].length; i += 1) {\n Plugin.dependencies(tracked[name][i], tracked);\n }\n\n return tracked;\n };\n\n /**\n * Parses a dependency string into its components.\n * The `dependency` is a string of the format `'module-name'` or `'module-name@version'`.\n * See documentation for `Plugin.versionParse` for a description of the format.\n * This function can also handle dependencies that are already resolved (e.g. a module object).\n * @method dependencyParse\n * @param dependency {string} The dependency of the format `'module-name'` or `'module-name@version'`.\n * @return {object} The dependency parsed into its components.\n */\n Plugin.dependencyParse = function(dependency) {\n if (Common.isString(dependency)) {\n var pattern = /^[\\w-]+(@(\\*|[\\^~]?\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-+]+)?))?$/;\n\n if (!pattern.test(dependency)) {\n Common.warn('Plugin.dependencyParse:', dependency, 'is not a valid dependency string.');\n }\n\n return {\n name: dependency.split('@')[0],\n range: dependency.split('@')[1] || '*'\n };\n }\n\n return {\n name: dependency.name,\n range: dependency.range || dependency.version\n };\n };\n\n /**\n * Parses a version string into its components. \n * Versions are strictly of the format `x.y.z` (as in [semver](http://semver.org/)).\n * Versions may optionally have a prerelease tag in the format `x.y.z-alpha`.\n * Ranges are a strict subset of [npm ranges](https://docs.npmjs.com/misc/semver#advanced-range-syntax).\n * Only the following range types are supported:\n * - Tilde ranges e.g. `~1.2.3`\n * - Caret ranges e.g. `^1.2.3`\n * - Greater than ranges e.g. `>1.2.3`\n * - Greater than or equal ranges e.g. `>=1.2.3`\n * - Exact version e.g. `1.2.3`\n * - Any version `*`\n * @method versionParse\n * @param range {string} The version string.\n * @return {object} The version range parsed into its components.\n */\n Plugin.versionParse = function(range) {\n var pattern = /^(\\*)|(\\^|~|>=|>)?\\s*((\\d+)\\.(\\d+)\\.(\\d+))(-[0-9A-Za-z-+]+)?$/;\n\n if (!pattern.test(range)) {\n Common.warn('Plugin.versionParse:', range, 'is not a valid version or range.');\n }\n\n var parts = pattern.exec(range);\n var major = Number(parts[4]);\n var minor = Number(parts[5]);\n var patch = Number(parts[6]);\n\n return {\n isRange: Boolean(parts[1] || parts[2]),\n version: parts[3],\n range: range,\n operator: parts[1] || parts[2] || '',\n major: major,\n minor: minor,\n patch: patch,\n parts: [major, minor, patch],\n prerelease: parts[7],\n number: major * 1e8 + minor * 1e4 + patch\n };\n };\n\n /**\n * Returns `true` if `version` satisfies the given `range`.\n * See documentation for `Plugin.versionParse` for a description of the format.\n * If a version or range is not specified, then any version (`*`) is assumed to satisfy.\n * @method versionSatisfies\n * @param version {string} The version string.\n * @param range {string} The range string.\n * @return {boolean} `true` if `version` satisfies `range`, otherwise `false`.\n */\n Plugin.versionSatisfies = function(version, range) {\n range = range || '*';\n\n var r = Plugin.versionParse(range),\n v = Plugin.versionParse(version);\n\n if (r.isRange) {\n if (r.operator === '*' || version === '*') {\n return true;\n }\n\n if (r.operator === '>') {\n return v.number > r.number;\n }\n\n if (r.operator === '>=') {\n return v.number >= r.number;\n }\n\n if (r.operator === '~') {\n return v.major === r.major && v.minor === r.minor && v.patch >= r.patch;\n }\n\n if (r.operator === '^') {\n if (r.major > 0) {\n return v.major === r.major && v.number >= r.number;\n }\n\n if (r.minor > 0) {\n return v.minor === r.minor && v.patch >= r.patch;\n }\n\n return v.patch === r.patch;\n }\n }\n\n return version === range || version === '*';\n };\n\n})();\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Contact` module contains methods for creating and manipulating collision contacts.\n*\n* @class Contact\n*/\n\nvar Contact = {};\n\nmodule.exports = Contact;\n\n(function() {\n\n /**\n * Creates a new contact.\n * @method create\n * @param {vertex} vertex\n * @return {contact} A new contact\n */\n Contact.create = function(vertex) {\n return {\n vertex: vertex,\n normalImpulse: 0,\n tangentImpulse: 0\n };\n };\n\n})();\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Engine` module contains methods for creating and manipulating engines.\n* An engine is a controller that manages updating the simulation of the world.\n* See `Matter.Runner` for an optional game loop utility.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Engine\n*/\n\nvar Engine = {};\n\nmodule.exports = Engine;\n\nvar Sleeping = __webpack_require__(7);\nvar Resolver = __webpack_require__(18);\nvar Detector = __webpack_require__(13);\nvar Pairs = __webpack_require__(19);\nvar Events = __webpack_require__(5);\nvar Composite = __webpack_require__(6);\nvar Constraint = __webpack_require__(10);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\n\n(function() {\n\n /**\n * Creates a new engine. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {object} [options]\n * @return {engine} engine\n */\n Engine.create = function(options) {\n options = options || {};\n\n var defaults = {\n positionIterations: 6,\n velocityIterations: 4,\n constraintIterations: 2,\n enableSleeping: false,\n events: [],\n plugin: {},\n gravity: {\n x: 0,\n y: 1,\n scale: 0.001\n },\n timing: {\n timestamp: 0,\n timeScale: 1,\n lastDelta: 0,\n lastElapsed: 0\n }\n };\n\n var engine = Common.extend(defaults, options);\n\n engine.world = options.world || Composite.create({ label: 'World' });\n engine.pairs = options.pairs || Pairs.create();\n engine.detector = options.detector || Detector.create();\n\n // for temporary back compatibility only\n engine.grid = { buckets: [] };\n engine.world.gravity = engine.gravity;\n engine.broadphase = engine.grid;\n engine.metrics = {};\n \n return engine;\n };\n\n /**\n * Moves the simulation forward in time by `delta` milliseconds.\n * Triggers `beforeUpdate` and `afterUpdate` events.\n * Triggers `collisionStart`, `collisionActive` and `collisionEnd` events.\n * @method update\n * @param {engine} engine\n * @param {number} [delta=16.666]\n */\n Engine.update = function(engine, delta) {\n var startTime = Common.now();\n\n var world = engine.world,\n detector = engine.detector,\n pairs = engine.pairs,\n timing = engine.timing,\n timestamp = timing.timestamp,\n i;\n\n delta = typeof delta !== 'undefined' ? delta : Common._baseDelta;\n delta *= timing.timeScale;\n\n // increment timestamp\n timing.timestamp += delta;\n timing.lastDelta = delta;\n\n // create an event object\n var event = {\n timestamp: timing.timestamp,\n delta: delta\n };\n\n Events.trigger(engine, 'beforeUpdate', event);\n\n // get all bodies and all constraints in the world\n var allBodies = Composite.allBodies(world),\n allConstraints = Composite.allConstraints(world);\n\n // if the world has changed\n if (world.isModified) {\n // update the detector bodies\n Detector.setBodies(detector, allBodies);\n\n // reset all composite modified flags\n Composite.setModified(world, false, false, true);\n }\n\n // update sleeping if enabled\n if (engine.enableSleeping)\n Sleeping.update(allBodies, delta);\n\n // apply gravity to all bodies\n Engine._bodiesApplyGravity(allBodies, engine.gravity);\n\n // update all body position and rotation by integration\n if (delta > 0) {\n Engine._bodiesUpdate(allBodies, delta);\n }\n\n // update all constraints (first pass)\n Constraint.preSolveAll(allBodies);\n for (i = 0; i < engine.constraintIterations; i++) {\n Constraint.solveAll(allConstraints, delta);\n }\n Constraint.postSolveAll(allBodies);\n\n // find all collisions\n detector.pairs = engine.pairs;\n var collisions = Detector.collisions(detector);\n\n // update collision pairs\n Pairs.update(pairs, collisions, timestamp);\n\n // wake up bodies involved in collisions\n if (engine.enableSleeping)\n Sleeping.afterCollisions(pairs.list);\n\n // trigger collision events\n if (pairs.collisionStart.length > 0)\n Events.trigger(engine, 'collisionStart', { pairs: pairs.collisionStart });\n\n // iteratively resolve position between collisions\n var positionDamping = Common.clamp(20 / engine.positionIterations, 0, 1);\n \n Resolver.preSolvePosition(pairs.list);\n for (i = 0; i < engine.positionIterations; i++) {\n Resolver.solvePosition(pairs.list, delta, positionDamping);\n }\n Resolver.postSolvePosition(allBodies);\n\n // update all constraints (second pass)\n Constraint.preSolveAll(allBodies);\n for (i = 0; i < engine.constraintIterations; i++) {\n Constraint.solveAll(allConstraints, delta);\n }\n Constraint.postSolveAll(allBodies);\n\n // iteratively resolve velocity between collisions\n Resolver.preSolveVelocity(pairs.list);\n for (i = 0; i < engine.velocityIterations; i++) {\n Resolver.solveVelocity(pairs.list, delta);\n }\n\n // update body speed and velocity properties\n Engine._bodiesUpdateVelocities(allBodies);\n\n // trigger collision events\n if (pairs.collisionActive.length > 0)\n Events.trigger(engine, 'collisionActive', { pairs: pairs.collisionActive });\n\n if (pairs.collisionEnd.length > 0)\n Events.trigger(engine, 'collisionEnd', { pairs: pairs.collisionEnd });\n\n // clear force buffers\n Engine._bodiesClearForces(allBodies);\n\n Events.trigger(engine, 'afterUpdate', event);\n\n // log the time elapsed computing this update\n engine.timing.lastElapsed = Common.now() - startTime;\n\n return engine;\n };\n \n /**\n * Merges two engines by keeping the configuration of `engineA` but replacing the world with the one from `engineB`.\n * @method merge\n * @param {engine} engineA\n * @param {engine} engineB\n */\n Engine.merge = function(engineA, engineB) {\n Common.extend(engineA, engineB);\n \n if (engineB.world) {\n engineA.world = engineB.world;\n\n Engine.clear(engineA);\n\n var bodies = Composite.allBodies(engineA.world);\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n Sleeping.set(body, false);\n body.id = Common.nextId();\n }\n }\n };\n\n /**\n * Clears the engine pairs and detector.\n * @method clear\n * @param {engine} engine\n */\n Engine.clear = function(engine) {\n Pairs.clear(engine.pairs);\n Detector.clear(engine.detector);\n };\n\n /**\n * Zeroes the `body.force` and `body.torque` force buffers.\n * @method _bodiesClearForces\n * @private\n * @param {body[]} bodies\n */\n Engine._bodiesClearForces = function(bodies) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n // reset force buffers\n body.force.x = 0;\n body.force.y = 0;\n body.torque = 0;\n }\n };\n\n /**\n * Applies gravitational acceleration to all `bodies`.\n * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet.\n * \n * @method _bodiesApplyGravity\n * @private\n * @param {body[]} bodies\n * @param {vector} gravity\n */\n Engine._bodiesApplyGravity = function(bodies, gravity) {\n var gravityScale = typeof gravity.scale !== 'undefined' ? gravity.scale : 0.001,\n bodiesLength = bodies.length;\n\n if ((gravity.x === 0 && gravity.y === 0) || gravityScale === 0) {\n return;\n }\n \n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n if (body.isStatic || body.isSleeping)\n continue;\n\n // add the resultant force of gravity\n body.force.y += body.mass * gravity.y * gravityScale;\n body.force.x += body.mass * gravity.x * gravityScale;\n }\n };\n\n /**\n * Applies `Body.update` to all given `bodies`.\n * @method _bodiesUpdate\n * @private\n * @param {body[]} bodies\n * @param {number} delta The amount of time elapsed between updates\n */\n Engine._bodiesUpdate = function(bodies, delta) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n if (body.isStatic || body.isSleeping)\n continue;\n\n Body.update(body, delta);\n }\n };\n\n /**\n * Applies `Body.updateVelocities` to all given `bodies`.\n * @method _bodiesUpdateVelocities\n * @private\n * @param {body[]} bodies\n */\n Engine._bodiesUpdateVelocities = function(bodies) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n Body.updateVelocities(bodies[i]);\n }\n };\n\n /**\n * A deprecated alias for `Runner.run`, use `Matter.Runner.run(engine)` instead and see `Matter.Runner` for more information.\n * @deprecated use Matter.Runner.run(engine) instead\n * @method run\n * @param {engine} engine\n */\n\n /**\n * Fired just before an update\n *\n * @event beforeUpdate\n * @param {object} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update and all collision events\n *\n * @event afterUpdate\n * @param {object} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that have started to collide in the current tick (if any)\n *\n * @event collisionStart\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that are colliding in the current tick (if any)\n *\n * @event collisionActive\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that have ended collision in the current tick (if any)\n *\n * @event collisionEnd\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` that specifies the number of position iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n *\n * @property positionIterations\n * @type number\n * @default 6\n */\n\n /**\n * An integer `Number` that specifies the number of velocity iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n *\n * @property velocityIterations\n * @type number\n * @default 4\n */\n\n /**\n * An integer `Number` that specifies the number of constraint iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n * The default value of `2` is usually very adequate.\n *\n * @property constraintIterations\n * @type number\n * @default 2\n */\n\n /**\n * A flag that specifies whether the engine should allow sleeping via the `Matter.Sleeping` module.\n * Sleeping can improve stability and performance, but often at the expense of accuracy.\n *\n * @property enableSleeping\n * @type boolean\n * @default false\n */\n\n /**\n * An `Object` containing properties regarding the timing systems of the engine. \n *\n * @property timing\n * @type object\n */\n\n /**\n * A `Number` that specifies the global scaling factor of time for all bodies.\n * A value of `0` freezes the simulation.\n * A value of `0.1` gives a slow-motion effect.\n * A value of `1.2` gives a speed-up effect.\n *\n * @property timing.timeScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that specifies the current simulation-time in milliseconds starting from `0`. \n * It is incremented on every `Engine.update` by the given `delta` argument. \n * \n * @property timing.timestamp\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that represents the total execution time elapsed during the last `Engine.update` in milliseconds.\n * It is updated by timing from the start of the last `Engine.update` call until it ends.\n *\n * This value will also include the total execution time of all event handlers directly or indirectly triggered by the engine update.\n * \n * @property timing.lastElapsed\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that represents the `delta` value used in the last engine update.\n * \n * @property timing.lastDelta\n * @type number\n * @default 0\n */\n\n /**\n * A `Matter.Detector` instance.\n *\n * @property detector\n * @type detector\n * @default a Matter.Detector instance\n */\n\n /**\n * A `Matter.Grid` instance.\n *\n * @deprecated replaced by `engine.detector`\n * @property grid\n * @type grid\n * @default a Matter.Grid instance\n */\n\n /**\n * Replaced by and now alias for `engine.grid`.\n *\n * @deprecated replaced by `engine.detector`\n * @property broadphase\n * @type grid\n * @default a Matter.Grid instance\n */\n\n /**\n * The root `Matter.Composite` instance that will contain all bodies, constraints and other composites to be simulated by this engine.\n *\n * @property world\n * @type composite\n * @default a Matter.Composite instance\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * An optional gravitational acceleration applied to all bodies in `engine.world` on every update.\n * \n * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet. For gravity in other contexts, disable this and apply forces as needed.\n * \n * To disable set the `scale` component to `0`.\n * \n * This is split into three components for ease of use: \n * a normalised direction (`x` and `y`) and magnitude (`scale`).\n *\n * @property gravity\n * @type object\n */\n\n /**\n * The gravitational direction normal `x` component, to be multiplied by `gravity.scale`.\n * \n * @property gravity.x\n * @type object\n * @default 0\n */\n\n /**\n * The gravitational direction normal `y` component, to be multiplied by `gravity.scale`.\n *\n * @property gravity.y\n * @type object\n * @default 1\n */\n\n /**\n * The magnitude of the gravitational acceleration.\n * \n * @property gravity.scale\n * @type object\n * @default 0.001\n */\n\n})();\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Resolver` module contains methods for resolving collision pairs.\n*\n* @class Resolver\n*/\n\nvar Resolver = {};\n\nmodule.exports = Resolver;\n\nvar Vertices = __webpack_require__(3);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\n\n(function() {\n\n Resolver._restingThresh = 2;\n Resolver._restingThreshTangent = Math.sqrt(6);\n Resolver._positionDampen = 0.9;\n Resolver._positionWarming = 0.8;\n Resolver._frictionNormalMultiplier = 5;\n Resolver._frictionMaxStatic = Number.MAX_VALUE;\n\n /**\n * Prepare pairs for position solving.\n * @method preSolvePosition\n * @param {pair[]} pairs\n */\n Resolver.preSolvePosition = function(pairs) {\n var i,\n pair,\n activeCount,\n pairsLength = pairs.length;\n\n // find total contacts on each body\n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n \n if (!pair.isActive)\n continue;\n \n activeCount = pair.activeContacts.length;\n pair.collision.parentA.totalContacts += activeCount;\n pair.collision.parentB.totalContacts += activeCount;\n }\n };\n\n /**\n * Find a solution for pair positions.\n * @method solvePosition\n * @param {pair[]} pairs\n * @param {number} delta\n * @param {number} [damping=1]\n */\n Resolver.solvePosition = function(pairs, delta, damping) {\n var i,\n pair,\n collision,\n bodyA,\n bodyB,\n normal,\n contactShare,\n positionImpulse,\n positionDampen = Resolver._positionDampen * (damping || 1),\n slopDampen = Common.clamp(delta / Common._baseDelta, 0, 1),\n pairsLength = pairs.length;\n\n // find impulses required to resolve penetration\n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n\n collision = pair.collision;\n bodyA = collision.parentA;\n bodyB = collision.parentB;\n normal = collision.normal;\n\n // get current separation between body edges involved in collision\n pair.separation = \n normal.x * (bodyB.positionImpulse.x + collision.penetration.x - bodyA.positionImpulse.x)\n + normal.y * (bodyB.positionImpulse.y + collision.penetration.y - bodyA.positionImpulse.y);\n }\n \n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n\n if (!pair.isActive || pair.isSensor)\n continue;\n \n collision = pair.collision;\n bodyA = collision.parentA;\n bodyB = collision.parentB;\n normal = collision.normal;\n positionImpulse = pair.separation - pair.slop * slopDampen;\n\n if (bodyA.isStatic || bodyB.isStatic)\n positionImpulse *= 2;\n \n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n contactShare = positionDampen / bodyA.totalContacts;\n bodyA.positionImpulse.x += normal.x * positionImpulse * contactShare;\n bodyA.positionImpulse.y += normal.y * positionImpulse * contactShare;\n }\n\n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n contactShare = positionDampen / bodyB.totalContacts;\n bodyB.positionImpulse.x -= normal.x * positionImpulse * contactShare;\n bodyB.positionImpulse.y -= normal.y * positionImpulse * contactShare;\n }\n }\n };\n\n /**\n * Apply position resolution.\n * @method postSolvePosition\n * @param {body[]} bodies\n */\n Resolver.postSolvePosition = function(bodies) {\n var positionWarming = Resolver._positionWarming,\n bodiesLength = bodies.length,\n verticesTranslate = Vertices.translate,\n boundsUpdate = Bounds.update;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i],\n positionImpulse = body.positionImpulse,\n positionImpulseX = positionImpulse.x,\n positionImpulseY = positionImpulse.y,\n velocity = body.velocity;\n\n // reset contact count\n body.totalContacts = 0;\n\n if (positionImpulseX !== 0 || positionImpulseY !== 0) {\n // update body geometry\n for (var j = 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n verticesTranslate(part.vertices, positionImpulse);\n boundsUpdate(part.bounds, part.vertices, velocity);\n part.position.x += positionImpulseX;\n part.position.y += positionImpulseY;\n }\n\n // move the body without changing velocity\n body.positionPrev.x += positionImpulseX;\n body.positionPrev.y += positionImpulseY;\n\n if (positionImpulseX * velocity.x + positionImpulseY * velocity.y < 0) {\n // reset cached impulse if the body has velocity along it\n positionImpulse.x = 0;\n positionImpulse.y = 0;\n } else {\n // warm the next iteration\n positionImpulse.x *= positionWarming;\n positionImpulse.y *= positionWarming;\n }\n }\n }\n };\n\n /**\n * Prepare pairs for velocity solving.\n * @method preSolveVelocity\n * @param {pair[]} pairs\n */\n Resolver.preSolveVelocity = function(pairs) {\n var pairsLength = pairs.length,\n i,\n j;\n \n for (i = 0; i < pairsLength; i++) {\n var pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n \n var contacts = pair.activeContacts,\n contactsLength = contacts.length,\n collision = pair.collision,\n bodyA = collision.parentA,\n bodyB = collision.parentB,\n normal = collision.normal,\n tangent = collision.tangent;\n \n // resolve each contact\n for (j = 0; j < contactsLength; j++) {\n var contact = contacts[j],\n contactVertex = contact.vertex,\n normalImpulse = contact.normalImpulse,\n tangentImpulse = contact.tangentImpulse;\n \n if (normalImpulse !== 0 || tangentImpulse !== 0) {\n // total impulse from contact\n var impulseX = normal.x * normalImpulse + tangent.x * tangentImpulse,\n impulseY = normal.y * normalImpulse + tangent.y * tangentImpulse;\n \n // apply impulse from contact\n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n bodyA.positionPrev.x += impulseX * bodyA.inverseMass;\n bodyA.positionPrev.y += impulseY * bodyA.inverseMass;\n bodyA.anglePrev += bodyA.inverseInertia * (\n (contactVertex.x - bodyA.position.x) * impulseY\n - (contactVertex.y - bodyA.position.y) * impulseX\n );\n }\n \n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n bodyB.positionPrev.x -= impulseX * bodyB.inverseMass;\n bodyB.positionPrev.y -= impulseY * bodyB.inverseMass;\n bodyB.anglePrev -= bodyB.inverseInertia * (\n (contactVertex.x - bodyB.position.x) * impulseY \n - (contactVertex.y - bodyB.position.y) * impulseX\n );\n }\n }\n }\n }\n };\n\n /**\n * Find a solution for pair velocities.\n * @method solveVelocity\n * @param {pair[]} pairs\n * @param {number} delta\n */\n Resolver.solveVelocity = function(pairs, delta) {\n var timeScale = delta / Common._baseDelta,\n timeScaleSquared = timeScale * timeScale,\n timeScaleCubed = timeScaleSquared * timeScale,\n restingThresh = -Resolver._restingThresh * timeScale,\n restingThreshTangent = Resolver._restingThreshTangent,\n frictionNormalMultiplier = Resolver._frictionNormalMultiplier * timeScale,\n frictionMaxStatic = Resolver._frictionMaxStatic,\n pairsLength = pairs.length,\n tangentImpulse,\n maxFriction,\n i,\n j;\n\n for (i = 0; i < pairsLength; i++) {\n var pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n \n var collision = pair.collision,\n bodyA = collision.parentA,\n bodyB = collision.parentB,\n bodyAVelocity = bodyA.velocity,\n bodyBVelocity = bodyB.velocity,\n normalX = collision.normal.x,\n normalY = collision.normal.y,\n tangentX = collision.tangent.x,\n tangentY = collision.tangent.y,\n contacts = pair.activeContacts,\n contactsLength = contacts.length,\n contactShare = 1 / contactsLength,\n inverseMassTotal = bodyA.inverseMass + bodyB.inverseMass,\n friction = pair.friction * pair.frictionStatic * frictionNormalMultiplier;\n\n // update body velocities\n bodyAVelocity.x = bodyA.position.x - bodyA.positionPrev.x;\n bodyAVelocity.y = bodyA.position.y - bodyA.positionPrev.y;\n bodyBVelocity.x = bodyB.position.x - bodyB.positionPrev.x;\n bodyBVelocity.y = bodyB.position.y - bodyB.positionPrev.y;\n bodyA.angularVelocity = bodyA.angle - bodyA.anglePrev;\n bodyB.angularVelocity = bodyB.angle - bodyB.anglePrev;\n\n // resolve each contact\n for (j = 0; j < contactsLength; j++) {\n var contact = contacts[j],\n contactVertex = contact.vertex;\n\n var offsetAX = contactVertex.x - bodyA.position.x,\n offsetAY = contactVertex.y - bodyA.position.y,\n offsetBX = contactVertex.x - bodyB.position.x,\n offsetBY = contactVertex.y - bodyB.position.y;\n \n var velocityPointAX = bodyAVelocity.x - offsetAY * bodyA.angularVelocity,\n velocityPointAY = bodyAVelocity.y + offsetAX * bodyA.angularVelocity,\n velocityPointBX = bodyBVelocity.x - offsetBY * bodyB.angularVelocity,\n velocityPointBY = bodyBVelocity.y + offsetBX * bodyB.angularVelocity;\n\n var relativeVelocityX = velocityPointAX - velocityPointBX,\n relativeVelocityY = velocityPointAY - velocityPointBY;\n\n var normalVelocity = normalX * relativeVelocityX + normalY * relativeVelocityY,\n tangentVelocity = tangentX * relativeVelocityX + tangentY * relativeVelocityY;\n\n // coulomb friction\n var normalOverlap = pair.separation + normalVelocity;\n var normalForce = Math.min(normalOverlap, 1);\n normalForce = normalOverlap < 0 ? 0 : normalForce;\n\n var frictionLimit = normalForce * friction;\n\n if (tangentVelocity < -frictionLimit || tangentVelocity > frictionLimit) {\n maxFriction = (tangentVelocity > 0 ? tangentVelocity : -tangentVelocity);\n tangentImpulse = pair.friction * (tangentVelocity > 0 ? 1 : -1) * timeScaleCubed;\n \n if (tangentImpulse < -maxFriction) {\n tangentImpulse = -maxFriction;\n } else if (tangentImpulse > maxFriction) {\n tangentImpulse = maxFriction;\n }\n } else {\n tangentImpulse = tangentVelocity;\n maxFriction = frictionMaxStatic;\n }\n\n // account for mass, inertia and contact offset\n var oAcN = offsetAX * normalY - offsetAY * normalX,\n oBcN = offsetBX * normalY - offsetBY * normalX,\n share = contactShare / (inverseMassTotal + bodyA.inverseInertia * oAcN * oAcN + bodyB.inverseInertia * oBcN * oBcN);\n\n // raw impulses\n var normalImpulse = (1 + pair.restitution) * normalVelocity * share;\n tangentImpulse *= share;\n\n // handle high velocity and resting collisions separately\n if (normalVelocity < restingThresh) {\n // high normal velocity so clear cached contact normal impulse\n contact.normalImpulse = 0;\n } else {\n // solve resting collision constraints using Erin Catto's method (GDC08)\n // impulse constraint tends to 0\n var contactNormalImpulse = contact.normalImpulse;\n contact.normalImpulse += normalImpulse;\n if (contact.normalImpulse > 0) contact.normalImpulse = 0;\n normalImpulse = contact.normalImpulse - contactNormalImpulse;\n }\n\n // handle high velocity and resting collisions separately\n if (tangentVelocity < -restingThreshTangent || tangentVelocity > restingThreshTangent) {\n // high tangent velocity so clear cached contact tangent impulse\n contact.tangentImpulse = 0;\n } else {\n // solve resting collision constraints using Erin Catto's method (GDC08)\n // tangent impulse tends to -tangentSpeed or +tangentSpeed\n var contactTangentImpulse = contact.tangentImpulse;\n contact.tangentImpulse += tangentImpulse;\n if (contact.tangentImpulse < -maxFriction) contact.tangentImpulse = -maxFriction;\n if (contact.tangentImpulse > maxFriction) contact.tangentImpulse = maxFriction;\n tangentImpulse = contact.tangentImpulse - contactTangentImpulse;\n }\n\n // total impulse from contact\n var impulseX = normalX * normalImpulse + tangentX * tangentImpulse,\n impulseY = normalY * normalImpulse + tangentY * tangentImpulse;\n \n // apply impulse from contact\n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n bodyA.positionPrev.x += impulseX * bodyA.inverseMass;\n bodyA.positionPrev.y += impulseY * bodyA.inverseMass;\n bodyA.anglePrev += (offsetAX * impulseY - offsetAY * impulseX) * bodyA.inverseInertia;\n }\n\n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n bodyB.positionPrev.x -= impulseX * bodyB.inverseMass;\n bodyB.positionPrev.y -= impulseY * bodyB.inverseMass;\n bodyB.anglePrev -= (offsetBX * impulseY - offsetBY * impulseX) * bodyB.inverseInertia;\n }\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Pairs` module contains methods for creating and manipulating collision pair sets.\n*\n* @class Pairs\n*/\n\nvar Pairs = {};\n\nmodule.exports = Pairs;\n\nvar Pair = __webpack_require__(9);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new pairs structure.\n * @method create\n * @param {object} options\n * @return {pairs} A new pairs structure\n */\n Pairs.create = function(options) {\n return Common.extend({ \n table: {},\n list: [],\n collisionStart: [],\n collisionActive: [],\n collisionEnd: []\n }, options);\n };\n\n /**\n * Updates pairs given a list of collisions.\n * @method update\n * @param {object} pairs\n * @param {collision[]} collisions\n * @param {number} timestamp\n */\n Pairs.update = function(pairs, collisions, timestamp) {\n var pairsList = pairs.list,\n pairsListLength = pairsList.length,\n pairsTable = pairs.table,\n collisionsLength = collisions.length,\n collisionStart = pairs.collisionStart,\n collisionEnd = pairs.collisionEnd,\n collisionActive = pairs.collisionActive,\n collision,\n pairIndex,\n pair,\n i;\n\n // clear collision state arrays, but maintain old reference\n collisionStart.length = 0;\n collisionEnd.length = 0;\n collisionActive.length = 0;\n\n for (i = 0; i < pairsListLength; i++) {\n pairsList[i].confirmedActive = false;\n }\n\n for (i = 0; i < collisionsLength; i++) {\n collision = collisions[i];\n pair = collision.pair;\n\n if (pair) {\n // pair already exists (but may or may not be active)\n if (pair.isActive) {\n // pair exists and is active\n collisionActive.push(pair);\n } else {\n // pair exists but was inactive, so a collision has just started again\n collisionStart.push(pair);\n }\n\n // update the pair\n Pair.update(pair, collision, timestamp);\n pair.confirmedActive = true;\n } else {\n // pair did not exist, create a new pair\n pair = Pair.create(collision, timestamp);\n pairsTable[pair.id] = pair;\n\n // push the new pair\n collisionStart.push(pair);\n pairsList.push(pair);\n }\n }\n\n // find pairs that are no longer active\n var removePairIndex = [];\n pairsListLength = pairsList.length;\n\n for (i = 0; i < pairsListLength; i++) {\n pair = pairsList[i];\n \n if (!pair.confirmedActive) {\n Pair.setActive(pair, false, timestamp);\n collisionEnd.push(pair);\n\n if (!pair.collision.bodyA.isSleeping && !pair.collision.bodyB.isSleeping) {\n removePairIndex.push(i);\n }\n }\n }\n\n // remove inactive pairs\n for (i = 0; i < removePairIndex.length; i++) {\n pairIndex = removePairIndex[i] - i;\n pair = pairsList[pairIndex];\n pairsList.splice(pairIndex, 1);\n delete pairsTable[pair.id];\n }\n };\n\n /**\n * Clears the given pairs structure.\n * @method clear\n * @param {pairs} pairs\n * @return {pairs} pairs\n */\n Pairs.clear = function(pairs) {\n pairs.table = {};\n pairs.list.length = 0;\n pairs.collisionStart.length = 0;\n pairs.collisionActive.length = 0;\n pairs.collisionEnd.length = 0;\n return pairs;\n };\n\n})();\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Matter = module.exports = __webpack_require__(21);\r\n\r\nMatter.Axes = __webpack_require__(11);\r\nMatter.Bodies = __webpack_require__(12);\r\nMatter.Body = __webpack_require__(4);\r\nMatter.Bounds = __webpack_require__(1);\r\nMatter.Collision = __webpack_require__(8);\r\nMatter.Common = __webpack_require__(0);\r\nMatter.Composite = __webpack_require__(6);\r\nMatter.Composites = __webpack_require__(22);\r\nMatter.Constraint = __webpack_require__(10);\r\nMatter.Contact = __webpack_require__(16);\r\nMatter.Detector = __webpack_require__(13);\r\nMatter.Engine = __webpack_require__(17);\r\nMatter.Events = __webpack_require__(5);\r\nMatter.Grid = __webpack_require__(23);\r\nMatter.Mouse = __webpack_require__(14);\r\nMatter.MouseConstraint = __webpack_require__(24);\r\nMatter.Pair = __webpack_require__(9);\r\nMatter.Pairs = __webpack_require__(19);\r\nMatter.Plugin = __webpack_require__(15);\r\nMatter.Query = __webpack_require__(25);\r\nMatter.Render = __webpack_require__(26);\r\nMatter.Resolver = __webpack_require__(18);\r\nMatter.Runner = __webpack_require__(27);\r\nMatter.SAT = __webpack_require__(28);\r\nMatter.Sleeping = __webpack_require__(7);\r\nMatter.Svg = __webpack_require__(29);\r\nMatter.Vector = __webpack_require__(2);\r\nMatter.Vertices = __webpack_require__(3);\r\nMatter.World = __webpack_require__(30);\r\n\r\n// temporary back compatibility\r\nMatter.Engine.run = Matter.Runner.run;\r\nMatter.Common.deprecated(Matter.Engine, 'run', 'Engine.run ➤ use Matter.Runner.run(engine) instead');\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\r\n* The `Matter` module is the top level namespace. It also includes a function for installing plugins on top of the library.\r\n*\r\n* @class Matter\r\n*/\r\n\r\nvar Matter = {};\r\n\r\nmodule.exports = Matter;\r\n\r\nvar Plugin = __webpack_require__(15);\r\nvar Common = __webpack_require__(0);\r\n\r\n(function() {\r\n\r\n /**\r\n * The library name.\r\n * @property name\r\n * @readOnly\r\n * @type {String}\r\n */\r\n Matter.name = 'matter-js';\r\n\r\n /**\r\n * The library version.\r\n * @property version\r\n * @readOnly\r\n * @type {String}\r\n */\r\n Matter.version = true ? \"0.19.0\" : undefined;\r\n\r\n /**\r\n * A list of plugin dependencies to be installed. These are normally set and installed through `Matter.use`.\r\n * Alternatively you may set `Matter.uses` manually and install them by calling `Plugin.use(Matter)`.\r\n * @property uses\r\n * @type {Array}\r\n */\r\n Matter.uses = [];\r\n\r\n /**\r\n * The plugins that have been installed through `Matter.Plugin.install`. Read only.\r\n * @property used\r\n * @readOnly\r\n * @type {Array}\r\n */\r\n Matter.used = [];\r\n\r\n /**\r\n * Installs the given plugins on the `Matter` namespace.\r\n * This is a short-hand for `Plugin.use`, see it for more information.\r\n * Call this function once at the start of your code, with all of the plugins you wish to install as arguments.\r\n * Avoid calling this function multiple times unless you intend to manually control installation order.\r\n * @method use\r\n * @param ...plugin {Function} The plugin(s) to install on `base` (multi-argument).\r\n */\r\n Matter.use = function() {\r\n Plugin.use(Matter, Array.prototype.slice.call(arguments));\r\n };\r\n\r\n /**\r\n * Chains a function to excute before the original function on the given `path` relative to `Matter`.\r\n * See also docs for `Common.chain`.\r\n * @method before\r\n * @param {string} path The path relative to `Matter`\r\n * @param {function} func The function to chain before the original\r\n * @return {function} The chained function that replaced the original\r\n */\r\n Matter.before = function(path, func) {\r\n path = path.replace(/^Matter./, '');\r\n return Common.chainPathBefore(Matter, path, func);\r\n };\r\n\r\n /**\r\n * Chains a function to excute after the original function on the given `path` relative to `Matter`.\r\n * See also docs for `Common.chain`.\r\n * @method after\r\n * @param {string} path The path relative to `Matter`\r\n * @param {function} func The function to chain after the original\r\n * @return {function} The chained function that replaced the original\r\n */\r\n Matter.after = function(path, func) {\r\n path = path.replace(/^Matter./, '');\r\n return Common.chainPathAfter(Matter, path, func);\r\n };\r\n\r\n})();\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Composites` module contains factory methods for creating composite bodies\n* with commonly used configurations (such as stacks and chains).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Composites\n*/\n\nvar Composites = {};\n\nmodule.exports = Composites;\n\nvar Composite = __webpack_require__(6);\nvar Constraint = __webpack_require__(10);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\nvar Bodies = __webpack_require__(12);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Create a new composite containing bodies created in the callback in a grid arrangement.\n * This function uses the body's bounds to prevent overlaps.\n * @method stack\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {function} callback\n * @return {composite} A new composite containing objects created in the callback\n */\n Composites.stack = function(xx, yy, columns, rows, columnGap, rowGap, callback) {\n var stack = Composite.create({ label: 'Stack' }),\n x = xx,\n y = yy,\n lastBody,\n i = 0;\n\n for (var row = 0; row < rows; row++) {\n var maxHeight = 0;\n \n for (var column = 0; column < columns; column++) {\n var body = callback(x, y, column, row, lastBody, i);\n \n if (body) {\n var bodyHeight = body.bounds.max.y - body.bounds.min.y,\n bodyWidth = body.bounds.max.x - body.bounds.min.x; \n\n if (bodyHeight > maxHeight)\n maxHeight = bodyHeight;\n \n Body.translate(body, { x: bodyWidth * 0.5, y: bodyHeight * 0.5 });\n\n x = body.bounds.max.x + columnGap;\n\n Composite.addBody(stack, body);\n \n lastBody = body;\n i += 1;\n } else {\n x += columnGap;\n }\n }\n \n y += maxHeight + rowGap;\n x = xx;\n }\n\n return stack;\n };\n \n /**\n * Chains all bodies in the given composite together using constraints.\n * @method chain\n * @param {composite} composite\n * @param {number} xOffsetA\n * @param {number} yOffsetA\n * @param {number} xOffsetB\n * @param {number} yOffsetB\n * @param {object} options\n * @return {composite} A new composite containing objects chained together with constraints\n */\n Composites.chain = function(composite, xOffsetA, yOffsetA, xOffsetB, yOffsetB, options) {\n var bodies = composite.bodies;\n \n for (var i = 1; i < bodies.length; i++) {\n var bodyA = bodies[i - 1],\n bodyB = bodies[i],\n bodyAHeight = bodyA.bounds.max.y - bodyA.bounds.min.y,\n bodyAWidth = bodyA.bounds.max.x - bodyA.bounds.min.x, \n bodyBHeight = bodyB.bounds.max.y - bodyB.bounds.min.y,\n bodyBWidth = bodyB.bounds.max.x - bodyB.bounds.min.x;\n \n var defaults = {\n bodyA: bodyA,\n pointA: { x: bodyAWidth * xOffsetA, y: bodyAHeight * yOffsetA },\n bodyB: bodyB,\n pointB: { x: bodyBWidth * xOffsetB, y: bodyBHeight * yOffsetB }\n };\n \n var constraint = Common.extend(defaults, options);\n \n Composite.addConstraint(composite, Constraint.create(constraint));\n }\n\n composite.label += ' Chain';\n \n return composite;\n };\n\n /**\n * Connects bodies in the composite with constraints in a grid pattern, with optional cross braces.\n * @method mesh\n * @param {composite} composite\n * @param {number} columns\n * @param {number} rows\n * @param {boolean} crossBrace\n * @param {object} options\n * @return {composite} The composite containing objects meshed together with constraints\n */\n Composites.mesh = function(composite, columns, rows, crossBrace, options) {\n var bodies = composite.bodies,\n row,\n col,\n bodyA,\n bodyB,\n bodyC;\n \n for (row = 0; row < rows; row++) {\n for (col = 1; col < columns; col++) {\n bodyA = bodies[(col - 1) + (row * columns)];\n bodyB = bodies[col + (row * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options)));\n }\n\n if (row > 0) {\n for (col = 0; col < columns; col++) {\n bodyA = bodies[col + ((row - 1) * columns)];\n bodyB = bodies[col + (row * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options)));\n\n if (crossBrace && col > 0) {\n bodyC = bodies[(col - 1) + ((row - 1) * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options)));\n }\n\n if (crossBrace && col < columns - 1) {\n bodyC = bodies[(col + 1) + ((row - 1) * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options)));\n }\n }\n }\n }\n\n composite.label += ' Mesh';\n \n return composite;\n };\n \n /**\n * Create a new composite containing bodies created in the callback in a pyramid arrangement.\n * This function uses the body's bounds to prevent overlaps.\n * @method pyramid\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {function} callback\n * @return {composite} A new composite containing objects created in the callback\n */\n Composites.pyramid = function(xx, yy, columns, rows, columnGap, rowGap, callback) {\n return Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y, column, row, lastBody, i) {\n var actualRows = Math.min(rows, Math.ceil(columns / 2)),\n lastBodyWidth = lastBody ? lastBody.bounds.max.x - lastBody.bounds.min.x : 0;\n \n if (row > actualRows)\n return;\n \n // reverse row order\n row = actualRows - row;\n \n var start = row,\n end = columns - 1 - row;\n\n if (column < start || column > end)\n return;\n \n // retroactively fix the first body's position, since width was unknown\n if (i === 1) {\n Body.translate(lastBody, { x: (column + (columns % 2 === 1 ? 1 : -1)) * lastBodyWidth, y: 0 });\n }\n\n var xOffset = lastBody ? column * lastBodyWidth : 0;\n \n return callback(xx + xOffset + column * columnGap, y, column, row, lastBody, i);\n });\n };\n\n /**\n * This has now moved to the [newtonsCradle example](https://github.com/liabru/matter-js/blob/master/examples/newtonsCradle.js), follow that instead as this function is deprecated here.\n * @deprecated moved to newtonsCradle example\n * @method newtonsCradle\n * @param {number} xx\n * @param {number} yy\n * @param {number} number\n * @param {number} size\n * @param {number} length\n * @return {composite} A new composite newtonsCradle body\n */\n Composites.newtonsCradle = function(xx, yy, number, size, length) {\n var newtonsCradle = Composite.create({ label: 'Newtons Cradle' });\n\n for (var i = 0; i < number; i++) {\n var separation = 1.9,\n circle = Bodies.circle(xx + i * (size * separation), yy + length, size, \n { inertia: Infinity, restitution: 1, friction: 0, frictionAir: 0.0001, slop: 1 }),\n constraint = Constraint.create({ pointA: { x: xx + i * (size * separation), y: yy }, bodyB: circle });\n\n Composite.addBody(newtonsCradle, circle);\n Composite.addConstraint(newtonsCradle, constraint);\n }\n\n return newtonsCradle;\n };\n\n deprecated(Composites, 'newtonsCradle', 'Composites.newtonsCradle ➤ moved to newtonsCradle example');\n \n /**\n * This has now moved to the [car example](https://github.com/liabru/matter-js/blob/master/examples/car.js), follow that instead as this function is deprecated here.\n * @deprecated moved to car example\n * @method car\n * @param {number} xx\n * @param {number} yy\n * @param {number} width\n * @param {number} height\n * @param {number} wheelSize\n * @return {composite} A new composite car body\n */\n Composites.car = function(xx, yy, width, height, wheelSize) {\n var group = Body.nextGroup(true),\n wheelBase = 20,\n wheelAOffset = -width * 0.5 + wheelBase,\n wheelBOffset = width * 0.5 - wheelBase,\n wheelYOffset = 0;\n \n var car = Composite.create({ label: 'Car' }),\n body = Bodies.rectangle(xx, yy, width, height, { \n collisionFilter: {\n group: group\n },\n chamfer: {\n radius: height * 0.5\n },\n density: 0.0002\n });\n \n var wheelA = Bodies.circle(xx + wheelAOffset, yy + wheelYOffset, wheelSize, { \n collisionFilter: {\n group: group\n },\n friction: 0.8\n });\n \n var wheelB = Bodies.circle(xx + wheelBOffset, yy + wheelYOffset, wheelSize, { \n collisionFilter: {\n group: group\n },\n friction: 0.8\n });\n \n var axelA = Constraint.create({\n bodyB: body,\n pointB: { x: wheelAOffset, y: wheelYOffset },\n bodyA: wheelA,\n stiffness: 1,\n length: 0\n });\n \n var axelB = Constraint.create({\n bodyB: body,\n pointB: { x: wheelBOffset, y: wheelYOffset },\n bodyA: wheelB,\n stiffness: 1,\n length: 0\n });\n \n Composite.addBody(car, body);\n Composite.addBody(car, wheelA);\n Composite.addBody(car, wheelB);\n Composite.addConstraint(car, axelA);\n Composite.addConstraint(car, axelB);\n\n return car;\n };\n\n deprecated(Composites, 'car', 'Composites.car ➤ moved to car example');\n\n /**\n * This has now moved to the [softBody example](https://github.com/liabru/matter-js/blob/master/examples/softBody.js)\n * and the [cloth example](https://github.com/liabru/matter-js/blob/master/examples/cloth.js), follow those instead as this function is deprecated here.\n * @deprecated moved to softBody and cloth examples\n * @method softBody\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {boolean} crossBrace\n * @param {number} particleRadius\n * @param {} particleOptions\n * @param {} constraintOptions\n * @return {composite} A new composite softBody\n */\n Composites.softBody = function(xx, yy, columns, rows, columnGap, rowGap, crossBrace, particleRadius, particleOptions, constraintOptions) {\n particleOptions = Common.extend({ inertia: Infinity }, particleOptions);\n constraintOptions = Common.extend({ stiffness: 0.2, render: { type: 'line', anchors: false } }, constraintOptions);\n\n var softBody = Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y) {\n return Bodies.circle(x, y, particleRadius, particleOptions);\n });\n\n Composites.mesh(softBody, columns, rows, crossBrace, constraintOptions);\n\n softBody.label = 'Soft Body';\n\n return softBody;\n };\n\n deprecated(Composites, 'softBody', 'Composites.softBody ➤ moved to softBody and cloth examples');\n})();\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Detector`.\n*\n* All usage should be migrated to `Matter.Detector` or another alternative.\n* For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n*\n* The `Matter.Grid` module contains methods for creating and manipulating collision broadphase grid structures.\n*\n* @class Grid\n* @deprecated\n*/\n\nvar Grid = {};\n\nmodule.exports = Grid;\n\nvar Pair = __webpack_require__(9);\nvar Common = __webpack_require__(0);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Creates a new grid.\n * @deprecated replaced by Matter.Detector\n * @method create\n * @param {} options\n * @return {grid} A new grid\n */\n Grid.create = function(options) {\n var defaults = {\n buckets: {},\n pairs: {},\n pairsList: [],\n bucketWidth: 48,\n bucketHeight: 48\n };\n\n return Common.extend(defaults, options);\n };\n\n /**\n * The width of a single grid bucket.\n *\n * @property bucketWidth\n * @type number\n * @default 48\n */\n\n /**\n * The height of a single grid bucket.\n *\n * @property bucketHeight\n * @type number\n * @default 48\n */\n\n /**\n * Updates the grid.\n * @deprecated replaced by Matter.Detector\n * @method update\n * @param {grid} grid\n * @param {body[]} bodies\n * @param {engine} engine\n * @param {boolean} forceUpdate\n */\n Grid.update = function(grid, bodies, engine, forceUpdate) {\n var i, col, row,\n world = engine.world,\n buckets = grid.buckets,\n bucket,\n bucketId,\n gridChanged = false;\n\n for (i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (body.isSleeping && !forceUpdate)\n continue;\n\n // temporary back compatibility bounds check\n if (world.bounds && (body.bounds.max.x < world.bounds.min.x || body.bounds.min.x > world.bounds.max.x\n || body.bounds.max.y < world.bounds.min.y || body.bounds.min.y > world.bounds.max.y))\n continue;\n\n var newRegion = Grid._getRegion(grid, body);\n\n // if the body has changed grid region\n if (!body.region || newRegion.id !== body.region.id || forceUpdate) {\n\n if (!body.region || forceUpdate)\n body.region = newRegion;\n\n var union = Grid._regionUnion(newRegion, body.region);\n\n // update grid buckets affected by region change\n // iterate over the union of both regions\n for (col = union.startCol; col <= union.endCol; col++) {\n for (row = union.startRow; row <= union.endRow; row++) {\n bucketId = Grid._getBucketId(col, row);\n bucket = buckets[bucketId];\n\n var isInsideNewRegion = (col >= newRegion.startCol && col <= newRegion.endCol\n && row >= newRegion.startRow && row <= newRegion.endRow);\n\n var isInsideOldRegion = (col >= body.region.startCol && col <= body.region.endCol\n && row >= body.region.startRow && row <= body.region.endRow);\n\n // remove from old region buckets\n if (!isInsideNewRegion && isInsideOldRegion) {\n if (isInsideOldRegion) {\n if (bucket)\n Grid._bucketRemoveBody(grid, bucket, body);\n }\n }\n\n // add to new region buckets\n if (body.region === newRegion || (isInsideNewRegion && !isInsideOldRegion) || forceUpdate) {\n if (!bucket)\n bucket = Grid._createBucket(buckets, bucketId);\n Grid._bucketAddBody(grid, bucket, body);\n }\n }\n }\n\n // set the new region\n body.region = newRegion;\n\n // flag changes so we can update pairs\n gridChanged = true;\n }\n }\n\n // update pairs list only if pairs changed (i.e. a body changed region)\n if (gridChanged)\n grid.pairsList = Grid._createActivePairsList(grid);\n };\n\n deprecated(Grid, 'update', 'Grid.update ➤ replaced by Matter.Detector');\n\n /**\n * Clears the grid.\n * @deprecated replaced by Matter.Detector\n * @method clear\n * @param {grid} grid\n */\n Grid.clear = function(grid) {\n grid.buckets = {};\n grid.pairs = {};\n grid.pairsList = [];\n };\n\n deprecated(Grid, 'clear', 'Grid.clear ➤ replaced by Matter.Detector');\n\n /**\n * Finds the union of two regions.\n * @method _regionUnion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} regionA\n * @param {} regionB\n * @return {} region\n */\n Grid._regionUnion = function(regionA, regionB) {\n var startCol = Math.min(regionA.startCol, regionB.startCol),\n endCol = Math.max(regionA.endCol, regionB.endCol),\n startRow = Math.min(regionA.startRow, regionB.startRow),\n endRow = Math.max(regionA.endRow, regionB.endRow);\n\n return Grid._createRegion(startCol, endCol, startRow, endRow);\n };\n\n /**\n * Gets the region a given body falls in for a given grid.\n * @method _getRegion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} body\n * @return {} region\n */\n Grid._getRegion = function(grid, body) {\n var bounds = body.bounds,\n startCol = Math.floor(bounds.min.x / grid.bucketWidth),\n endCol = Math.floor(bounds.max.x / grid.bucketWidth),\n startRow = Math.floor(bounds.min.y / grid.bucketHeight),\n endRow = Math.floor(bounds.max.y / grid.bucketHeight);\n\n return Grid._createRegion(startCol, endCol, startRow, endRow);\n };\n\n /**\n * Creates a region.\n * @method _createRegion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} startCol\n * @param {} endCol\n * @param {} startRow\n * @param {} endRow\n * @return {} region\n */\n Grid._createRegion = function(startCol, endCol, startRow, endRow) {\n return { \n id: startCol + ',' + endCol + ',' + startRow + ',' + endRow,\n startCol: startCol, \n endCol: endCol, \n startRow: startRow, \n endRow: endRow \n };\n };\n\n /**\n * Gets the bucket id at the given position.\n * @method _getBucketId\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} column\n * @param {} row\n * @return {string} bucket id\n */\n Grid._getBucketId = function(column, row) {\n return 'C' + column + 'R' + row;\n };\n\n /**\n * Creates a bucket.\n * @method _createBucket\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} buckets\n * @param {} bucketId\n * @return {} bucket\n */\n Grid._createBucket = function(buckets, bucketId) {\n var bucket = buckets[bucketId] = [];\n return bucket;\n };\n\n /**\n * Adds a body to a bucket.\n * @method _bucketAddBody\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} bucket\n * @param {} body\n */\n Grid._bucketAddBody = function(grid, bucket, body) {\n var gridPairs = grid.pairs,\n pairId = Pair.id,\n bucketLength = bucket.length,\n i;\n\n // add new pairs\n for (i = 0; i < bucketLength; i++) {\n var bodyB = bucket[i];\n\n if (body.id === bodyB.id || (body.isStatic && bodyB.isStatic))\n continue;\n\n // keep track of the number of buckets the pair exists in\n // important for Grid.update to work\n var id = pairId(body, bodyB),\n pair = gridPairs[id];\n\n if (pair) {\n pair[2] += 1;\n } else {\n gridPairs[id] = [body, bodyB, 1];\n }\n }\n\n // add to bodies (after pairs, otherwise pairs with self)\n bucket.push(body);\n };\n\n /**\n * Removes a body from a bucket.\n * @method _bucketRemoveBody\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} bucket\n * @param {} body\n */\n Grid._bucketRemoveBody = function(grid, bucket, body) {\n var gridPairs = grid.pairs,\n pairId = Pair.id,\n i;\n\n // remove from bucket\n bucket.splice(Common.indexOf(bucket, body), 1);\n\n var bucketLength = bucket.length;\n\n // update pair counts\n for (i = 0; i < bucketLength; i++) {\n // keep track of the number of buckets the pair exists in\n // important for _createActivePairsList to work\n var pair = gridPairs[pairId(body, bucket[i])];\n\n if (pair)\n pair[2] -= 1;\n }\n };\n\n /**\n * Generates a list of the active pairs in the grid.\n * @method _createActivePairsList\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @return [] pairs\n */\n Grid._createActivePairsList = function(grid) {\n var pair,\n gridPairs = grid.pairs,\n pairKeys = Common.keys(gridPairs),\n pairKeysLength = pairKeys.length,\n pairs = [],\n k;\n\n // iterate over grid.pairs\n for (k = 0; k < pairKeysLength; k++) {\n pair = gridPairs[pairKeys[k]];\n\n // if pair exists in at least one bucket\n // it is a pair that needs further collision testing so push it\n if (pair[2] > 0) {\n pairs.push(pair);\n } else {\n delete gridPairs[pairKeys[k]];\n }\n }\n\n return pairs;\n };\n \n})();\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.MouseConstraint` module contains methods for creating mouse constraints.\n* Mouse constraints are used for allowing user interaction, providing the ability to move bodies via the mouse or touch.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class MouseConstraint\n*/\n\nvar MouseConstraint = {};\n\nmodule.exports = MouseConstraint;\n\nvar Vertices = __webpack_require__(3);\nvar Sleeping = __webpack_require__(7);\nvar Mouse = __webpack_require__(14);\nvar Events = __webpack_require__(5);\nvar Detector = __webpack_require__(13);\nvar Constraint = __webpack_require__(10);\nvar Composite = __webpack_require__(6);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\n\n(function() {\n\n /**\n * Creates a new mouse constraint.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {engine} engine\n * @param {} options\n * @return {MouseConstraint} A new MouseConstraint\n */\n MouseConstraint.create = function(engine, options) {\n var mouse = (engine ? engine.mouse : null) || (options ? options.mouse : null);\n\n if (!mouse) {\n if (engine && engine.render && engine.render.canvas) {\n mouse = Mouse.create(engine.render.canvas);\n } else if (options && options.element) {\n mouse = Mouse.create(options.element);\n } else {\n mouse = Mouse.create();\n Common.warn('MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected');\n }\n }\n\n var constraint = Constraint.create({ \n label: 'Mouse Constraint',\n pointA: mouse.position,\n pointB: { x: 0, y: 0 },\n length: 0.01, \n stiffness: 0.1,\n angularStiffness: 1,\n render: {\n strokeStyle: '#90EE90',\n lineWidth: 3\n }\n });\n\n var defaults = {\n type: 'mouseConstraint',\n mouse: mouse,\n element: null,\n body: null,\n constraint: constraint,\n collisionFilter: {\n category: 0x0001,\n mask: 0xFFFFFFFF,\n group: 0\n }\n };\n\n var mouseConstraint = Common.extend(defaults, options);\n\n Events.on(engine, 'beforeUpdate', function() {\n var allBodies = Composite.allBodies(engine.world);\n MouseConstraint.update(mouseConstraint, allBodies);\n MouseConstraint._triggerEvents(mouseConstraint);\n });\n\n return mouseConstraint;\n };\n\n /**\n * Updates the given mouse constraint.\n * @private\n * @method update\n * @param {MouseConstraint} mouseConstraint\n * @param {body[]} bodies\n */\n MouseConstraint.update = function(mouseConstraint, bodies) {\n var mouse = mouseConstraint.mouse,\n constraint = mouseConstraint.constraint,\n body = mouseConstraint.body;\n\n if (mouse.button === 0) {\n if (!constraint.bodyB) {\n for (var i = 0; i < bodies.length; i++) {\n body = bodies[i];\n if (Bounds.contains(body.bounds, mouse.position) \n && Detector.canCollide(body.collisionFilter, mouseConstraint.collisionFilter)) {\n for (var j = body.parts.length > 1 ? 1 : 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n if (Vertices.contains(part.vertices, mouse.position)) {\n constraint.pointA = mouse.position;\n constraint.bodyB = mouseConstraint.body = body;\n constraint.pointB = { x: mouse.position.x - body.position.x, y: mouse.position.y - body.position.y };\n constraint.angleB = body.angle;\n\n Sleeping.set(body, false);\n Events.trigger(mouseConstraint, 'startdrag', { mouse: mouse, body: body });\n\n break;\n }\n }\n }\n }\n } else {\n Sleeping.set(constraint.bodyB, false);\n constraint.pointA = mouse.position;\n }\n } else {\n constraint.bodyB = mouseConstraint.body = null;\n constraint.pointB = null;\n\n if (body)\n Events.trigger(mouseConstraint, 'enddrag', { mouse: mouse, body: body });\n }\n };\n\n /**\n * Triggers mouse constraint events.\n * @method _triggerEvents\n * @private\n * @param {mouse} mouseConstraint\n */\n MouseConstraint._triggerEvents = function(mouseConstraint) {\n var mouse = mouseConstraint.mouse,\n mouseEvents = mouse.sourceEvents;\n\n if (mouseEvents.mousemove)\n Events.trigger(mouseConstraint, 'mousemove', { mouse: mouse });\n\n if (mouseEvents.mousedown)\n Events.trigger(mouseConstraint, 'mousedown', { mouse: mouse });\n\n if (mouseEvents.mouseup)\n Events.trigger(mouseConstraint, 'mouseup', { mouse: mouse });\n\n // reset the mouse state ready for the next step\n Mouse.clearSourceEvents(mouse);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when the mouse has moved (or a touch moves) during the last step\n *\n * @event mousemove\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the mouse is down (or a touch has started) during the last step\n *\n * @event mousedown\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the mouse is up (or a touch has ended) during the last step\n *\n * @event mouseup\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the user starts dragging a body\n *\n * @event startdrag\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {body} event.body The body being dragged\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the user ends dragging a body\n *\n * @event enddrag\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {body} event.body The body that has stopped being dragged\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"constraint\"\n * @readOnly\n */\n\n /**\n * The `Mouse` instance in use. If not supplied in `MouseConstraint.create`, one will be created.\n *\n * @property mouse\n * @type mouse\n * @default mouse\n */\n\n /**\n * The `Body` that is currently being moved by the user, or `null` if no body.\n *\n * @property body\n * @type body\n * @default null\n */\n\n /**\n * The `Constraint` object that is used to move the body during interaction.\n *\n * @property constraint\n * @type constraint\n */\n\n /**\n * An `Object` that specifies the collision filter properties.\n * The collision filter allows the user to define which types of body this mouse constraint can interact with.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter\n * @type object\n */\n\n})();\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Query` module contains methods for performing collision queries.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Query\n*/\n\nvar Query = {};\n\nmodule.exports = Query;\n\nvar Vector = __webpack_require__(2);\nvar Collision = __webpack_require__(8);\nvar Bounds = __webpack_require__(1);\nvar Bodies = __webpack_require__(12);\nvar Vertices = __webpack_require__(3);\n\n(function() {\n\n /**\n * Returns a list of collisions between `body` and `bodies`.\n * @method collides\n * @param {body} body\n * @param {body[]} bodies\n * @return {collision[]} Collisions\n */\n Query.collides = function(body, bodies) {\n var collisions = [],\n bodiesLength = bodies.length,\n bounds = body.bounds,\n collides = Collision.collides,\n overlaps = Bounds.overlaps;\n\n for (var i = 0; i < bodiesLength; i++) {\n var bodyA = bodies[i],\n partsALength = bodyA.parts.length,\n partsAStart = partsALength === 1 ? 0 : 1;\n \n if (overlaps(bodyA.bounds, bounds)) {\n for (var j = partsAStart; j < partsALength; j++) {\n var part = bodyA.parts[j];\n\n if (overlaps(part.bounds, bounds)) {\n var collision = collides(part, body);\n\n if (collision) {\n collisions.push(collision);\n break;\n }\n }\n }\n }\n }\n\n return collisions;\n };\n\n /**\n * Casts a ray segment against a set of bodies and returns all collisions, ray width is optional. Intersection points are not provided.\n * @method ray\n * @param {body[]} bodies\n * @param {vector} startPoint\n * @param {vector} endPoint\n * @param {number} [rayWidth]\n * @return {collision[]} Collisions\n */\n Query.ray = function(bodies, startPoint, endPoint, rayWidth) {\n rayWidth = rayWidth || 1e-100;\n\n var rayAngle = Vector.angle(startPoint, endPoint),\n rayLength = Vector.magnitude(Vector.sub(startPoint, endPoint)),\n rayX = (endPoint.x + startPoint.x) * 0.5,\n rayY = (endPoint.y + startPoint.y) * 0.5,\n ray = Bodies.rectangle(rayX, rayY, rayLength, rayWidth, { angle: rayAngle }),\n collisions = Query.collides(ray, bodies);\n\n for (var i = 0; i < collisions.length; i += 1) {\n var collision = collisions[i];\n collision.body = collision.bodyB = collision.bodyA; \n }\n\n return collisions;\n };\n\n /**\n * Returns all bodies whose bounds are inside (or outside if set) the given set of bounds, from the given set of bodies.\n * @method region\n * @param {body[]} bodies\n * @param {bounds} bounds\n * @param {bool} [outside=false]\n * @return {body[]} The bodies matching the query\n */\n Query.region = function(bodies, bounds, outside) {\n var result = [];\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n overlaps = Bounds.overlaps(body.bounds, bounds);\n if ((overlaps && !outside) || (!overlaps && outside))\n result.push(body);\n }\n\n return result;\n };\n\n /**\n * Returns all bodies whose vertices contain the given point, from the given set of bodies.\n * @method point\n * @param {body[]} bodies\n * @param {vector} point\n * @return {body[]} The bodies matching the query\n */\n Query.point = function(bodies, point) {\n var result = [];\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n \n if (Bounds.contains(body.bounds, point)) {\n for (var j = body.parts.length === 1 ? 0 : 1; j < body.parts.length; j++) {\n var part = body.parts[j];\n\n if (Bounds.contains(part.bounds, point)\n && Vertices.contains(part.vertices, point)) {\n result.push(body);\n break;\n }\n }\n }\n }\n\n return result;\n };\n\n})();\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Render` module is a simple canvas based renderer for visualising instances of `Matter.Engine`.\n* It is intended for development and debugging purposes, but may also be suitable for simple games.\n* It includes a number of drawing options including wireframe, vector with support for sprites and viewports.\n*\n* @class Render\n*/\n\nvar Render = {};\n\nmodule.exports = Render;\n\nvar Body = __webpack_require__(4);\nvar Common = __webpack_require__(0);\nvar Composite = __webpack_require__(6);\nvar Bounds = __webpack_require__(1);\nvar Events = __webpack_require__(5);\nvar Vector = __webpack_require__(2);\nvar Mouse = __webpack_require__(14);\n\n(function() {\n\n var _requestAnimationFrame,\n _cancelAnimationFrame;\n\n if (typeof window !== 'undefined') {\n _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame\n || window.mozRequestAnimationFrame || window.msRequestAnimationFrame\n || function(callback){ window.setTimeout(function() { callback(Common.now()); }, 1000 / 60); };\n\n _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame\n || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;\n }\n\n Render._goodFps = 30;\n Render._goodDelta = 1000 / 60;\n\n /**\n * Creates a new renderer. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {object} [options]\n * @return {render} A new renderer\n */\n Render.create = function(options) {\n var defaults = {\n engine: null,\n element: null,\n canvas: null,\n mouse: null,\n frameRequestId: null,\n timing: {\n historySize: 60,\n delta: 0,\n deltaHistory: [],\n lastTime: 0,\n lastTimestamp: 0,\n lastElapsed: 0,\n timestampElapsed: 0,\n timestampElapsedHistory: [],\n engineDeltaHistory: [],\n engineElapsedHistory: [],\n elapsedHistory: []\n },\n options: {\n width: 800,\n height: 600,\n pixelRatio: 1,\n background: '#14151f',\n wireframeBackground: '#14151f',\n hasBounds: !!options.bounds,\n enabled: true,\n wireframes: true,\n showSleeping: true,\n showDebug: false,\n showStats: false,\n showPerformance: false,\n showBounds: false,\n showVelocity: false,\n showCollisions: false,\n showSeparations: false,\n showAxes: false,\n showPositions: false,\n showAngleIndicator: false,\n showIds: false,\n showVertexNumbers: false,\n showConvexHulls: false,\n showInternalEdges: false,\n showMousePosition: false\n }\n };\n\n var render = Common.extend(defaults, options);\n\n if (render.canvas) {\n render.canvas.width = render.options.width || render.canvas.width;\n render.canvas.height = render.options.height || render.canvas.height;\n }\n\n render.mouse = options.mouse;\n render.engine = options.engine;\n render.canvas = render.canvas || _createCanvas(render.options.width, render.options.height);\n render.context = render.canvas.getContext('2d');\n render.textures = {};\n\n render.bounds = render.bounds || {\n min: {\n x: 0,\n y: 0\n },\n max: {\n x: render.canvas.width,\n y: render.canvas.height\n }\n };\n\n // for temporary back compatibility only\n render.controller = Render;\n render.options.showBroadphase = false;\n\n if (render.options.pixelRatio !== 1) {\n Render.setPixelRatio(render, render.options.pixelRatio);\n }\n\n if (Common.isElement(render.element)) {\n render.element.appendChild(render.canvas);\n }\n\n return render;\n };\n\n /**\n * Continuously updates the render canvas on the `requestAnimationFrame` event.\n * @method run\n * @param {render} render\n */\n Render.run = function(render) {\n (function loop(time){\n render.frameRequestId = _requestAnimationFrame(loop);\n \n _updateTiming(render, time);\n\n Render.world(render, time);\n\n if (render.options.showStats || render.options.showDebug) {\n Render.stats(render, render.context, time);\n }\n\n if (render.options.showPerformance || render.options.showDebug) {\n Render.performance(render, render.context, time);\n }\n })();\n };\n\n /**\n * Ends execution of `Render.run` on the given `render`, by canceling the animation frame request event loop.\n * @method stop\n * @param {render} render\n */\n Render.stop = function(render) {\n _cancelAnimationFrame(render.frameRequestId);\n };\n\n /**\n * Sets the pixel ratio of the renderer and updates the canvas.\n * To automatically detect the correct ratio, pass the string `'auto'` for `pixelRatio`.\n * @method setPixelRatio\n * @param {render} render\n * @param {number} pixelRatio\n */\n Render.setPixelRatio = function(render, pixelRatio) {\n var options = render.options,\n canvas = render.canvas;\n\n if (pixelRatio === 'auto') {\n pixelRatio = _getPixelRatio(canvas);\n }\n\n options.pixelRatio = pixelRatio;\n canvas.setAttribute('data-pixel-ratio', pixelRatio);\n canvas.width = options.width * pixelRatio;\n canvas.height = options.height * pixelRatio;\n canvas.style.width = options.width + 'px';\n canvas.style.height = options.height + 'px';\n };\n\n /**\n * Positions and sizes the viewport around the given object bounds.\n * Objects must have at least one of the following properties:\n * - `object.bounds`\n * - `object.position`\n * - `object.min` and `object.max`\n * - `object.x` and `object.y`\n * @method lookAt\n * @param {render} render\n * @param {object[]} objects\n * @param {vector} [padding]\n * @param {bool} [center=true]\n */\n Render.lookAt = function(render, objects, padding, center) {\n center = typeof center !== 'undefined' ? center : true;\n objects = Common.isArray(objects) ? objects : [objects];\n padding = padding || {\n x: 0,\n y: 0\n };\n\n // find bounds of all objects\n var bounds = {\n min: { x: Infinity, y: Infinity },\n max: { x: -Infinity, y: -Infinity }\n };\n\n for (var i = 0; i < objects.length; i += 1) {\n var object = objects[i],\n min = object.bounds ? object.bounds.min : (object.min || object.position || object),\n max = object.bounds ? object.bounds.max : (object.max || object.position || object);\n\n if (min && max) {\n if (min.x < bounds.min.x)\n bounds.min.x = min.x;\n\n if (max.x > bounds.max.x)\n bounds.max.x = max.x;\n\n if (min.y < bounds.min.y)\n bounds.min.y = min.y;\n\n if (max.y > bounds.max.y)\n bounds.max.y = max.y;\n }\n }\n\n // find ratios\n var width = (bounds.max.x - bounds.min.x) + 2 * padding.x,\n height = (bounds.max.y - bounds.min.y) + 2 * padding.y,\n viewHeight = render.canvas.height,\n viewWidth = render.canvas.width,\n outerRatio = viewWidth / viewHeight,\n innerRatio = width / height,\n scaleX = 1,\n scaleY = 1;\n\n // find scale factor\n if (innerRatio > outerRatio) {\n scaleY = innerRatio / outerRatio;\n } else {\n scaleX = outerRatio / innerRatio;\n }\n\n // enable bounds\n render.options.hasBounds = true;\n\n // position and size\n render.bounds.min.x = bounds.min.x;\n render.bounds.max.x = bounds.min.x + width * scaleX;\n render.bounds.min.y = bounds.min.y;\n render.bounds.max.y = bounds.min.y + height * scaleY;\n\n // center\n if (center) {\n render.bounds.min.x += width * 0.5 - (width * scaleX) * 0.5;\n render.bounds.max.x += width * 0.5 - (width * scaleX) * 0.5;\n render.bounds.min.y += height * 0.5 - (height * scaleY) * 0.5;\n render.bounds.max.y += height * 0.5 - (height * scaleY) * 0.5;\n }\n\n // padding\n render.bounds.min.x -= padding.x;\n render.bounds.max.x -= padding.x;\n render.bounds.min.y -= padding.y;\n render.bounds.max.y -= padding.y;\n\n // update mouse\n if (render.mouse) {\n Mouse.setScale(render.mouse, {\n x: (render.bounds.max.x - render.bounds.min.x) / render.canvas.width,\n y: (render.bounds.max.y - render.bounds.min.y) / render.canvas.height\n });\n\n Mouse.setOffset(render.mouse, render.bounds.min);\n }\n };\n\n /**\n * Applies viewport transforms based on `render.bounds` to a render context.\n * @method startViewTransform\n * @param {render} render\n */\n Render.startViewTransform = function(render) {\n var boundsWidth = render.bounds.max.x - render.bounds.min.x,\n boundsHeight = render.bounds.max.y - render.bounds.min.y,\n boundsScaleX = boundsWidth / render.options.width,\n boundsScaleY = boundsHeight / render.options.height;\n\n render.context.setTransform(\n render.options.pixelRatio / boundsScaleX, 0, 0, \n render.options.pixelRatio / boundsScaleY, 0, 0\n );\n \n render.context.translate(-render.bounds.min.x, -render.bounds.min.y);\n };\n\n /**\n * Resets all transforms on the render context.\n * @method endViewTransform\n * @param {render} render\n */\n Render.endViewTransform = function(render) {\n render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0);\n };\n\n /**\n * Renders the given `engine`'s `Matter.World` object.\n * This is the entry point for all rendering and should be called every time the scene changes.\n * @method world\n * @param {render} render\n */\n Render.world = function(render, time) {\n var startTime = Common.now(),\n engine = render.engine,\n world = engine.world,\n canvas = render.canvas,\n context = render.context,\n options = render.options,\n timing = render.timing;\n\n var allBodies = Composite.allBodies(world),\n allConstraints = Composite.allConstraints(world),\n background = options.wireframes ? options.wireframeBackground : options.background,\n bodies = [],\n constraints = [],\n i;\n\n var event = {\n timestamp: engine.timing.timestamp\n };\n\n Events.trigger(render, 'beforeRender', event);\n\n // apply background if it has changed\n if (render.currentBackground !== background)\n _applyBackground(render, background);\n\n // clear the canvas with a transparent fill, to allow the canvas background to show\n context.globalCompositeOperation = 'source-in';\n context.fillStyle = \"transparent\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.globalCompositeOperation = 'source-over';\n\n // handle bounds\n if (options.hasBounds) {\n // filter out bodies that are not in view\n for (i = 0; i < allBodies.length; i++) {\n var body = allBodies[i];\n if (Bounds.overlaps(body.bounds, render.bounds))\n bodies.push(body);\n }\n\n // filter out constraints that are not in view\n for (i = 0; i < allConstraints.length; i++) {\n var constraint = allConstraints[i],\n bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n pointAWorld = constraint.pointA,\n pointBWorld = constraint.pointB;\n\n if (bodyA) pointAWorld = Vector.add(bodyA.position, constraint.pointA);\n if (bodyB) pointBWorld = Vector.add(bodyB.position, constraint.pointB);\n\n if (!pointAWorld || !pointBWorld)\n continue;\n\n if (Bounds.contains(render.bounds, pointAWorld) || Bounds.contains(render.bounds, pointBWorld))\n constraints.push(constraint);\n }\n\n // transform the view\n Render.startViewTransform(render);\n\n // update mouse\n if (render.mouse) {\n Mouse.setScale(render.mouse, {\n x: (render.bounds.max.x - render.bounds.min.x) / render.options.width,\n y: (render.bounds.max.y - render.bounds.min.y) / render.options.height\n });\n\n Mouse.setOffset(render.mouse, render.bounds.min);\n }\n } else {\n constraints = allConstraints;\n bodies = allBodies;\n\n if (render.options.pixelRatio !== 1) {\n render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0);\n }\n }\n\n if (!options.wireframes || (engine.enableSleeping && options.showSleeping)) {\n // fully featured rendering of bodies\n Render.bodies(render, bodies, context);\n } else {\n if (options.showConvexHulls)\n Render.bodyConvexHulls(render, bodies, context);\n\n // optimised method for wireframes only\n Render.bodyWireframes(render, bodies, context);\n }\n\n if (options.showBounds)\n Render.bodyBounds(render, bodies, context);\n\n if (options.showAxes || options.showAngleIndicator)\n Render.bodyAxes(render, bodies, context);\n\n if (options.showPositions)\n Render.bodyPositions(render, bodies, context);\n\n if (options.showVelocity)\n Render.bodyVelocity(render, bodies, context);\n\n if (options.showIds)\n Render.bodyIds(render, bodies, context);\n\n if (options.showSeparations)\n Render.separations(render, engine.pairs.list, context);\n\n if (options.showCollisions)\n Render.collisions(render, engine.pairs.list, context);\n\n if (options.showVertexNumbers)\n Render.vertexNumbers(render, bodies, context);\n\n if (options.showMousePosition)\n Render.mousePosition(render, render.mouse, context);\n\n Render.constraints(constraints, context);\n\n if (options.hasBounds) {\n // revert view transforms\n Render.endViewTransform(render);\n }\n\n Events.trigger(render, 'afterRender', event);\n\n // log the time elapsed computing this update\n timing.lastElapsed = Common.now() - startTime;\n };\n\n /**\n * Renders statistics about the engine and world useful for debugging.\n * @private\n * @method stats\n * @param {render} render\n * @param {RenderingContext} context\n * @param {Number} time\n */\n Render.stats = function(render, context, time) {\n var engine = render.engine,\n world = engine.world,\n bodies = Composite.allBodies(world),\n parts = 0,\n width = 55,\n height = 44,\n x = 0,\n y = 0;\n \n // count parts\n for (var i = 0; i < bodies.length; i += 1) {\n parts += bodies[i].parts.length;\n }\n\n // sections\n var sections = {\n 'Part': parts,\n 'Body': bodies.length,\n 'Cons': Composite.allConstraints(world).length,\n 'Comp': Composite.allComposites(world).length,\n 'Pair': engine.pairs.list.length\n };\n\n // background\n context.fillStyle = '#0e0f19';\n context.fillRect(x, y, width * 5.5, height);\n\n context.font = '12px Arial';\n context.textBaseline = 'top';\n context.textAlign = 'right';\n\n // sections\n for (var key in sections) {\n var section = sections[key];\n // label\n context.fillStyle = '#aaa';\n context.fillText(key, x + width, y + 8);\n\n // value\n context.fillStyle = '#eee';\n context.fillText(section, x + width, y + 26);\n\n x += width;\n }\n };\n\n /**\n * Renders engine and render performance information.\n * @private\n * @method performance\n * @param {render} render\n * @param {RenderingContext} context\n */\n Render.performance = function(render, context) {\n var engine = render.engine,\n timing = render.timing,\n deltaHistory = timing.deltaHistory,\n elapsedHistory = timing.elapsedHistory,\n timestampElapsedHistory = timing.timestampElapsedHistory,\n engineDeltaHistory = timing.engineDeltaHistory,\n engineElapsedHistory = timing.engineElapsedHistory,\n lastEngineDelta = engine.timing.lastDelta;\n \n var deltaMean = _mean(deltaHistory),\n elapsedMean = _mean(elapsedHistory),\n engineDeltaMean = _mean(engineDeltaHistory),\n engineElapsedMean = _mean(engineElapsedHistory),\n timestampElapsedMean = _mean(timestampElapsedHistory),\n rateMean = (timestampElapsedMean / deltaMean) || 0,\n fps = (1000 / deltaMean) || 0;\n\n var graphHeight = 4,\n gap = 12,\n width = 60,\n height = 34,\n x = 10,\n y = 69;\n\n // background\n context.fillStyle = '#0e0f19';\n context.fillRect(0, 50, gap * 4 + width * 5 + 22, height);\n\n // show FPS\n Render.status(\n context, x, y, width, graphHeight, deltaHistory.length, \n Math.round(fps) + ' fps', \n fps / Render._goodFps,\n function(i) { return (deltaHistory[i] / deltaMean) - 1; }\n );\n\n // show engine delta\n Render.status(\n context, x + gap + width, y, width, graphHeight, engineDeltaHistory.length,\n lastEngineDelta.toFixed(2) + ' dt', \n Render._goodDelta / lastEngineDelta,\n function(i) { return (engineDeltaHistory[i] / engineDeltaMean) - 1; }\n );\n\n // show engine update time\n Render.status(\n context, x + (gap + width) * 2, y, width, graphHeight, engineElapsedHistory.length,\n engineElapsedMean.toFixed(2) + ' ut', \n 1 - (engineElapsedMean / Render._goodFps),\n function(i) { return (engineElapsedHistory[i] / engineElapsedMean) - 1; }\n );\n\n // show render time\n Render.status(\n context, x + (gap + width) * 3, y, width, graphHeight, elapsedHistory.length,\n elapsedMean.toFixed(2) + ' rt', \n 1 - (elapsedMean / Render._goodFps),\n function(i) { return (elapsedHistory[i] / elapsedMean) - 1; }\n );\n\n // show effective speed\n Render.status(\n context, x + (gap + width) * 4, y, width, graphHeight, timestampElapsedHistory.length, \n rateMean.toFixed(2) + ' x', \n rateMean * rateMean * rateMean,\n function(i) { return (((timestampElapsedHistory[i] / deltaHistory[i]) / rateMean) || 0) - 1; }\n );\n };\n\n /**\n * Renders a label, indicator and a chart.\n * @private\n * @method status\n * @param {RenderingContext} context\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {number} count\n * @param {string} label\n * @param {string} indicator\n * @param {function} plotY\n */\n Render.status = function(context, x, y, width, height, count, label, indicator, plotY) {\n // background\n context.strokeStyle = '#888';\n context.fillStyle = '#444';\n context.lineWidth = 1;\n context.fillRect(x, y + 7, width, 1);\n\n // chart\n context.beginPath();\n context.moveTo(x, y + 7 - height * Common.clamp(0.4 * plotY(0), -2, 2));\n for (var i = 0; i < width; i += 1) {\n context.lineTo(x + i, y + 7 - (i < count ? height * Common.clamp(0.4 * plotY(i), -2, 2) : 0));\n }\n context.stroke();\n\n // indicator\n context.fillStyle = 'hsl(' + Common.clamp(25 + 95 * indicator, 0, 120) + ',100%,60%)';\n context.fillRect(x, y - 7, 4, 4);\n\n // label\n context.font = '12px Arial';\n context.textBaseline = 'middle';\n context.textAlign = 'right';\n context.fillStyle = '#eee';\n context.fillText(label, x + width, y - 5);\n };\n\n /**\n * Description\n * @private\n * @method constraints\n * @param {constraint[]} constraints\n * @param {RenderingContext} context\n */\n Render.constraints = function(constraints, context) {\n var c = context;\n\n for (var i = 0; i < constraints.length; i++) {\n var constraint = constraints[i];\n\n if (!constraint.render.visible || !constraint.pointA || !constraint.pointB)\n continue;\n\n var bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n start,\n end;\n\n if (bodyA) {\n start = Vector.add(bodyA.position, constraint.pointA);\n } else {\n start = constraint.pointA;\n }\n\n if (constraint.render.type === 'pin') {\n c.beginPath();\n c.arc(start.x, start.y, 3, 0, 2 * Math.PI);\n c.closePath();\n } else {\n if (bodyB) {\n end = Vector.add(bodyB.position, constraint.pointB);\n } else {\n end = constraint.pointB;\n }\n\n c.beginPath();\n c.moveTo(start.x, start.y);\n\n if (constraint.render.type === 'spring') {\n var delta = Vector.sub(end, start),\n normal = Vector.perp(Vector.normalise(delta)),\n coils = Math.ceil(Common.clamp(constraint.length / 5, 12, 20)),\n offset;\n\n for (var j = 1; j < coils; j += 1) {\n offset = j % 2 === 0 ? 1 : -1;\n\n c.lineTo(\n start.x + delta.x * (j / coils) + normal.x * offset * 4,\n start.y + delta.y * (j / coils) + normal.y * offset * 4\n );\n }\n }\n\n c.lineTo(end.x, end.y);\n }\n\n if (constraint.render.lineWidth) {\n c.lineWidth = constraint.render.lineWidth;\n c.strokeStyle = constraint.render.strokeStyle;\n c.stroke();\n }\n\n if (constraint.render.anchors) {\n c.fillStyle = constraint.render.strokeStyle;\n c.beginPath();\n c.arc(start.x, start.y, 3, 0, 2 * Math.PI);\n c.arc(end.x, end.y, 3, 0, 2 * Math.PI);\n c.closePath();\n c.fill();\n }\n }\n };\n\n /**\n * Description\n * @private\n * @method bodies\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodies = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n showInternalEdges = options.showInternalEdges || !options.wireframes,\n body,\n part,\n i,\n k;\n\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {\n part = body.parts[k];\n\n if (!part.render.visible)\n continue;\n\n if (options.showSleeping && body.isSleeping) {\n c.globalAlpha = 0.5 * part.render.opacity;\n } else if (part.render.opacity !== 1) {\n c.globalAlpha = part.render.opacity;\n }\n\n if (part.render.sprite && part.render.sprite.texture && !options.wireframes) {\n // part sprite\n var sprite = part.render.sprite,\n texture = _getTexture(render, sprite.texture);\n\n c.translate(part.position.x, part.position.y);\n c.rotate(part.angle);\n\n c.drawImage(\n texture,\n texture.width * -sprite.xOffset * sprite.xScale,\n texture.height * -sprite.yOffset * sprite.yScale,\n texture.width * sprite.xScale,\n texture.height * sprite.yScale\n );\n\n // revert translation, hopefully faster than save / restore\n c.rotate(-part.angle);\n c.translate(-part.position.x, -part.position.y);\n } else {\n // part polygon\n if (part.circleRadius) {\n c.beginPath();\n c.arc(part.position.x, part.position.y, part.circleRadius, 0, 2 * Math.PI);\n } else {\n c.beginPath();\n c.moveTo(part.vertices[0].x, part.vertices[0].y);\n\n for (var j = 1; j < part.vertices.length; j++) {\n if (!part.vertices[j - 1].isInternal || showInternalEdges) {\n c.lineTo(part.vertices[j].x, part.vertices[j].y);\n } else {\n c.moveTo(part.vertices[j].x, part.vertices[j].y);\n }\n\n if (part.vertices[j].isInternal && !showInternalEdges) {\n c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y);\n }\n }\n\n c.lineTo(part.vertices[0].x, part.vertices[0].y);\n c.closePath();\n }\n\n if (!options.wireframes) {\n c.fillStyle = part.render.fillStyle;\n\n if (part.render.lineWidth) {\n c.lineWidth = part.render.lineWidth;\n c.strokeStyle = part.render.strokeStyle;\n c.stroke();\n }\n\n c.fill();\n } else {\n c.lineWidth = 1;\n c.strokeStyle = '#bbb';\n c.stroke();\n }\n }\n\n c.globalAlpha = 1;\n }\n }\n };\n\n /**\n * Optimised method for drawing body wireframes in one pass\n * @private\n * @method bodyWireframes\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyWireframes = function(render, bodies, context) {\n var c = context,\n showInternalEdges = render.options.showInternalEdges,\n body,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n // render all bodies\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {\n part = body.parts[k];\n\n c.moveTo(part.vertices[0].x, part.vertices[0].y);\n\n for (j = 1; j < part.vertices.length; j++) {\n if (!part.vertices[j - 1].isInternal || showInternalEdges) {\n c.lineTo(part.vertices[j].x, part.vertices[j].y);\n } else {\n c.moveTo(part.vertices[j].x, part.vertices[j].y);\n }\n\n if (part.vertices[j].isInternal && !showInternalEdges) {\n c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y);\n }\n }\n\n c.lineTo(part.vertices[0].x, part.vertices[0].y);\n }\n }\n\n c.lineWidth = 1;\n c.strokeStyle = '#bbb';\n c.stroke();\n };\n\n /**\n * Optimised method for drawing body convex hull wireframes in one pass\n * @private\n * @method bodyConvexHulls\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyConvexHulls = function(render, bodies, context) {\n var c = context,\n body,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n // render convex hulls\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible || body.parts.length === 1)\n continue;\n\n c.moveTo(body.vertices[0].x, body.vertices[0].y);\n\n for (j = 1; j < body.vertices.length; j++) {\n c.lineTo(body.vertices[j].x, body.vertices[j].y);\n }\n\n c.lineTo(body.vertices[0].x, body.vertices[0].y);\n }\n\n c.lineWidth = 1;\n c.strokeStyle = 'rgba(255,255,255,0.2)';\n c.stroke();\n };\n\n /**\n * Renders body vertex numbers.\n * @private\n * @method vertexNumbers\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.vertexNumbers = function(render, bodies, context) {\n var c = context,\n i,\n j,\n k;\n\n for (i = 0; i < bodies.length; i++) {\n var parts = bodies[i].parts;\n for (k = parts.length > 1 ? 1 : 0; k < parts.length; k++) {\n var part = parts[k];\n for (j = 0; j < part.vertices.length; j++) {\n c.fillStyle = 'rgba(255,255,255,0.2)';\n c.fillText(i + '_' + j, part.position.x + (part.vertices[j].x - part.position.x) * 0.8, part.position.y + (part.vertices[j].y - part.position.y) * 0.8);\n }\n }\n }\n };\n\n /**\n * Renders mouse position.\n * @private\n * @method mousePosition\n * @param {render} render\n * @param {mouse} mouse\n * @param {RenderingContext} context\n */\n Render.mousePosition = function(render, mouse, context) {\n var c = context;\n c.fillStyle = 'rgba(255,255,255,0.8)';\n c.fillText(mouse.position.x + ' ' + mouse.position.y, mouse.position.x + 5, mouse.position.y - 5);\n };\n\n /**\n * Draws body bounds\n * @private\n * @method bodyBounds\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyBounds = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options;\n\n c.beginPath();\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (body.render.visible) {\n var parts = bodies[i].parts;\n for (var j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n var part = parts[j];\n c.rect(part.bounds.min.x, part.bounds.min.y, part.bounds.max.x - part.bounds.min.x, part.bounds.max.y - part.bounds.min.y);\n }\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,255,255,0.08)';\n } else {\n c.strokeStyle = 'rgba(0,0,0,0.1)';\n }\n\n c.lineWidth = 1;\n c.stroke();\n };\n\n /**\n * Draws body angle indicators and axes\n * @private\n * @method bodyAxes\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyAxes = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n for (i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n parts = body.parts;\n\n if (!body.render.visible)\n continue;\n\n if (options.showAxes) {\n // render all axes\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n part = parts[j];\n for (k = 0; k < part.axes.length; k++) {\n var axis = part.axes[k];\n c.moveTo(part.position.x, part.position.y);\n c.lineTo(part.position.x + axis.x * 20, part.position.y + axis.y * 20);\n }\n }\n } else {\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n part = parts[j];\n for (k = 0; k < part.axes.length; k++) {\n // render a single axis indicator\n c.moveTo(part.position.x, part.position.y);\n c.lineTo((part.vertices[0].x + part.vertices[part.vertices.length-1].x) / 2,\n (part.vertices[0].y + part.vertices[part.vertices.length-1].y) / 2);\n }\n }\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'indianred';\n c.lineWidth = 1;\n } else {\n c.strokeStyle = 'rgba(255, 255, 255, 0.4)';\n c.globalCompositeOperation = 'overlay';\n c.lineWidth = 2;\n }\n\n c.stroke();\n c.globalCompositeOperation = 'source-over';\n };\n\n /**\n * Draws body positions\n * @private\n * @method bodyPositions\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyPositions = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n body,\n part,\n i,\n k;\n\n c.beginPath();\n\n // render current positions\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = 0; k < body.parts.length; k++) {\n part = body.parts[k];\n c.arc(part.position.x, part.position.y, 3, 0, 2 * Math.PI, false);\n c.closePath();\n }\n }\n\n if (options.wireframes) {\n c.fillStyle = 'indianred';\n } else {\n c.fillStyle = 'rgba(0,0,0,0.5)';\n }\n c.fill();\n\n c.beginPath();\n\n // render previous positions\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n if (body.render.visible) {\n c.arc(body.positionPrev.x, body.positionPrev.y, 2, 0, 2 * Math.PI, false);\n c.closePath();\n }\n }\n\n c.fillStyle = 'rgba(255,165,0,0.8)';\n c.fill();\n };\n\n /**\n * Draws body velocity\n * @private\n * @method bodyVelocity\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyVelocity = function(render, bodies, context) {\n var c = context;\n\n c.beginPath();\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n var velocity = Body.getVelocity(body);\n\n c.moveTo(body.position.x, body.position.y);\n c.lineTo(body.position.x + velocity.x, body.position.y + velocity.y);\n }\n\n c.lineWidth = 3;\n c.strokeStyle = 'cornflowerblue';\n c.stroke();\n };\n\n /**\n * Draws body ids\n * @private\n * @method bodyIds\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyIds = function(render, bodies, context) {\n var c = context,\n i,\n j;\n\n for (i = 0; i < bodies.length; i++) {\n if (!bodies[i].render.visible)\n continue;\n\n var parts = bodies[i].parts;\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n var part = parts[j];\n c.font = \"12px Arial\";\n c.fillStyle = 'rgba(255,255,255,0.5)';\n c.fillText(part.id, part.position.x + 10, part.position.y - 10);\n }\n }\n };\n\n /**\n * Description\n * @private\n * @method collisions\n * @param {render} render\n * @param {pair[]} pairs\n * @param {RenderingContext} context\n */\n Render.collisions = function(render, pairs, context) {\n var c = context,\n options = render.options,\n pair,\n collision,\n corrected,\n bodyA,\n bodyB,\n i,\n j;\n\n c.beginPath();\n\n // render collision positions\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n for (j = 0; j < pair.activeContacts.length; j++) {\n var contact = pair.activeContacts[j],\n vertex = contact.vertex;\n c.rect(vertex.x - 1.5, vertex.y - 1.5, 3.5, 3.5);\n }\n }\n\n if (options.wireframes) {\n c.fillStyle = 'rgba(255,255,255,0.7)';\n } else {\n c.fillStyle = 'orange';\n }\n c.fill();\n\n c.beginPath();\n\n // render collision normals\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n\n if (pair.activeContacts.length > 0) {\n var normalPosX = pair.activeContacts[0].vertex.x,\n normalPosY = pair.activeContacts[0].vertex.y;\n\n if (pair.activeContacts.length === 2) {\n normalPosX = (pair.activeContacts[0].vertex.x + pair.activeContacts[1].vertex.x) / 2;\n normalPosY = (pair.activeContacts[0].vertex.y + pair.activeContacts[1].vertex.y) / 2;\n }\n\n if (collision.bodyB === collision.supports[0].body || collision.bodyA.isStatic === true) {\n c.moveTo(normalPosX - collision.normal.x * 8, normalPosY - collision.normal.y * 8);\n } else {\n c.moveTo(normalPosX + collision.normal.x * 8, normalPosY + collision.normal.y * 8);\n }\n\n c.lineTo(normalPosX, normalPosY);\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,165,0,0.7)';\n } else {\n c.strokeStyle = 'orange';\n }\n\n c.lineWidth = 1;\n c.stroke();\n };\n\n /**\n * Description\n * @private\n * @method separations\n * @param {render} render\n * @param {pair[]} pairs\n * @param {RenderingContext} context\n */\n Render.separations = function(render, pairs, context) {\n var c = context,\n options = render.options,\n pair,\n collision,\n corrected,\n bodyA,\n bodyB,\n i,\n j;\n\n c.beginPath();\n\n // render separations\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n bodyA = collision.bodyA;\n bodyB = collision.bodyB;\n\n var k = 1;\n\n if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5;\n if (bodyB.isStatic) k = 0;\n\n c.moveTo(bodyB.position.x, bodyB.position.y);\n c.lineTo(bodyB.position.x - collision.penetration.x * k, bodyB.position.y - collision.penetration.y * k);\n\n k = 1;\n\n if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5;\n if (bodyA.isStatic) k = 0;\n\n c.moveTo(bodyA.position.x, bodyA.position.y);\n c.lineTo(bodyA.position.x + collision.penetration.x * k, bodyA.position.y + collision.penetration.y * k);\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,165,0,0.5)';\n } else {\n c.strokeStyle = 'orange';\n }\n c.stroke();\n };\n\n /**\n * Description\n * @private\n * @method inspector\n * @param {inspector} inspector\n * @param {RenderingContext} context\n */\n Render.inspector = function(inspector, context) {\n var engine = inspector.engine,\n selected = inspector.selected,\n render = inspector.render,\n options = render.options,\n bounds;\n\n if (options.hasBounds) {\n var boundsWidth = render.bounds.max.x - render.bounds.min.x,\n boundsHeight = render.bounds.max.y - render.bounds.min.y,\n boundsScaleX = boundsWidth / render.options.width,\n boundsScaleY = boundsHeight / render.options.height;\n\n context.scale(1 / boundsScaleX, 1 / boundsScaleY);\n context.translate(-render.bounds.min.x, -render.bounds.min.y);\n }\n\n for (var i = 0; i < selected.length; i++) {\n var item = selected[i].data;\n\n context.translate(0.5, 0.5);\n context.lineWidth = 1;\n context.strokeStyle = 'rgba(255,165,0,0.9)';\n context.setLineDash([1,2]);\n\n switch (item.type) {\n\n case 'body':\n\n // render body selections\n bounds = item.bounds;\n context.beginPath();\n context.rect(Math.floor(bounds.min.x - 3), Math.floor(bounds.min.y - 3),\n Math.floor(bounds.max.x - bounds.min.x + 6), Math.floor(bounds.max.y - bounds.min.y + 6));\n context.closePath();\n context.stroke();\n\n break;\n\n case 'constraint':\n\n // render constraint selections\n var point = item.pointA;\n if (item.bodyA)\n point = item.pointB;\n context.beginPath();\n context.arc(point.x, point.y, 10, 0, 2 * Math.PI);\n context.closePath();\n context.stroke();\n\n break;\n\n }\n\n context.setLineDash([]);\n context.translate(-0.5, -0.5);\n }\n\n // render selection region\n if (inspector.selectStart !== null) {\n context.translate(0.5, 0.5);\n context.lineWidth = 1;\n context.strokeStyle = 'rgba(255,165,0,0.6)';\n context.fillStyle = 'rgba(255,165,0,0.1)';\n bounds = inspector.selectBounds;\n context.beginPath();\n context.rect(Math.floor(bounds.min.x), Math.floor(bounds.min.y),\n Math.floor(bounds.max.x - bounds.min.x), Math.floor(bounds.max.y - bounds.min.y));\n context.closePath();\n context.stroke();\n context.fill();\n context.translate(-0.5, -0.5);\n }\n\n if (options.hasBounds)\n context.setTransform(1, 0, 0, 1, 0, 0);\n };\n\n /**\n * Updates render timing.\n * @method _updateTiming\n * @private\n * @param {render} render\n * @param {number} time\n */\n var _updateTiming = function(render, time) {\n var engine = render.engine,\n timing = render.timing,\n historySize = timing.historySize,\n timestamp = engine.timing.timestamp;\n\n timing.delta = time - timing.lastTime || Render._goodDelta;\n timing.lastTime = time;\n\n timing.timestampElapsed = timestamp - timing.lastTimestamp || 0;\n timing.lastTimestamp = timestamp;\n\n timing.deltaHistory.unshift(timing.delta);\n timing.deltaHistory.length = Math.min(timing.deltaHistory.length, historySize);\n\n timing.engineDeltaHistory.unshift(engine.timing.lastDelta);\n timing.engineDeltaHistory.length = Math.min(timing.engineDeltaHistory.length, historySize);\n\n timing.timestampElapsedHistory.unshift(timing.timestampElapsed);\n timing.timestampElapsedHistory.length = Math.min(timing.timestampElapsedHistory.length, historySize);\n\n timing.engineElapsedHistory.unshift(engine.timing.lastElapsed);\n timing.engineElapsedHistory.length = Math.min(timing.engineElapsedHistory.length, historySize);\n\n timing.elapsedHistory.unshift(timing.lastElapsed);\n timing.elapsedHistory.length = Math.min(timing.elapsedHistory.length, historySize);\n };\n\n /**\n * Returns the mean value of the given numbers.\n * @method _mean\n * @private\n * @param {Number[]} values\n * @return {Number} the mean of given values\n */\n var _mean = function(values) {\n var result = 0;\n for (var i = 0; i < values.length; i += 1) {\n result += values[i];\n }\n return (result / values.length) || 0;\n };\n\n /**\n * @method _createCanvas\n * @private\n * @param {} width\n * @param {} height\n * @return canvas\n */\n var _createCanvas = function(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n canvas.oncontextmenu = function() { return false; };\n canvas.onselectstart = function() { return false; };\n return canvas;\n };\n\n /**\n * Gets the pixel ratio of the canvas.\n * @method _getPixelRatio\n * @private\n * @param {HTMLElement} canvas\n * @return {Number} pixel ratio\n */\n var _getPixelRatio = function(canvas) {\n var context = canvas.getContext('2d'),\n devicePixelRatio = window.devicePixelRatio || 1,\n backingStorePixelRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio\n || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio\n || context.backingStorePixelRatio || 1;\n\n return devicePixelRatio / backingStorePixelRatio;\n };\n\n /**\n * Gets the requested texture (an Image) via its path\n * @method _getTexture\n * @private\n * @param {render} render\n * @param {string} imagePath\n * @return {Image} texture\n */\n var _getTexture = function(render, imagePath) {\n var image = render.textures[imagePath];\n\n if (image)\n return image;\n\n image = render.textures[imagePath] = new Image();\n image.src = imagePath;\n\n return image;\n };\n\n /**\n * Applies the background to the canvas using CSS.\n * @method applyBackground\n * @private\n * @param {render} render\n * @param {string} background\n */\n var _applyBackground = function(render, background) {\n var cssBackground = background;\n\n if (/(jpg|gif|png)$/.test(background))\n cssBackground = 'url(' + background + ')';\n\n render.canvas.style.background = cssBackground;\n render.canvas.style.backgroundSize = \"contain\";\n render.currentBackground = background;\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired before rendering\n *\n * @event beforeRender\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after rendering\n *\n * @event afterRender\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A back-reference to the `Matter.Render` module.\n *\n * @deprecated\n * @property controller\n * @type render\n */\n\n /**\n * A reference to the `Matter.Engine` instance to be used.\n *\n * @property engine\n * @type engine\n */\n\n /**\n * A reference to the element where the canvas is to be inserted (if `render.canvas` has not been specified)\n *\n * @property element\n * @type HTMLElement\n * @default null\n */\n\n /**\n * The canvas element to render to. If not specified, one will be created if `render.element` has been specified.\n *\n * @property canvas\n * @type HTMLCanvasElement\n * @default null\n */\n\n /**\n * A `Bounds` object that specifies the drawing view region.\n * Rendering will be automatically transformed and scaled to fit within the canvas size (`render.options.width` and `render.options.height`).\n * This allows for creating views that can pan or zoom around the scene.\n * You must also set `render.options.hasBounds` to `true` to enable bounded rendering.\n *\n * @property bounds\n * @type bounds\n */\n\n /**\n * The 2d rendering context from the `render.canvas` element.\n *\n * @property context\n * @type CanvasRenderingContext2D\n */\n\n /**\n * The sprite texture cache.\n *\n * @property textures\n * @type {}\n */\n\n /**\n * The mouse to render if `render.options.showMousePosition` is enabled.\n *\n * @property mouse\n * @type mouse\n * @default null\n */\n\n /**\n * The configuration options of the renderer.\n *\n * @property options\n * @type {}\n */\n\n /**\n * The target width in pixels of the `render.canvas` to be created.\n * See also the `options.pixelRatio` property to change render quality.\n *\n * @property options.width\n * @type number\n * @default 800\n */\n\n /**\n * The target height in pixels of the `render.canvas` to be created.\n * See also the `options.pixelRatio` property to change render quality.\n *\n * @property options.height\n * @type number\n * @default 600\n */\n\n /**\n * The [pixel ratio](https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio) to use when rendering.\n *\n * @property options.pixelRatio\n * @type number\n * @default 1\n */\n\n /**\n * A CSS background color string to use when `render.options.wireframes` is disabled.\n * This may be also set to `'transparent'` or equivalent.\n *\n * @property options.background\n * @type string\n * @default '#14151f'\n */\n\n /**\n * A CSS background color string to use when `render.options.wireframes` is enabled.\n * This may be also set to `'transparent'` or equivalent.\n *\n * @property options.wireframeBackground\n * @type string\n * @default '#14151f'\n */\n\n /**\n * A flag that specifies if `render.bounds` should be used when rendering.\n *\n * @property options.hasBounds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable all debug information overlays together. \n * This includes and has priority over the values of:\n *\n * - `render.options.showStats`\n * - `render.options.showPerformance`\n *\n * @property options.showDebug\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the engine stats info overlay. \n * From left to right, the values shown are:\n *\n * - body parts total\n * - body total\n * - constraints total\n * - composites total\n * - collision pairs total\n *\n * @property options.showStats\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable performance charts. \n * From left to right, the values shown are:\n *\n * - average render frequency (e.g. 60 fps)\n * - exact engine delta time used for last update (e.g. 16.66ms)\n * - average engine execution duration (e.g. 5.00ms)\n * - average render execution duration (e.g. 0.40ms)\n * - average effective play speed (e.g. '1.00x' is 'real-time')\n *\n * Each value is recorded over a fixed sample of past frames (60 frames).\n *\n * A chart shown below each value indicates the variance from the average over the sample.\n * The more stable or fixed the value is the flatter the chart will appear.\n *\n * @property options.showPerformance\n * @type boolean\n * @default false\n */\n \n /**\n * A flag to enable or disable rendering entirely.\n *\n * @property options.enabled\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to toggle wireframe rendering otherwise solid fill rendering is used.\n *\n * @property options.wireframes\n * @type boolean\n * @default true\n */\n\n /**\n * A flag to enable or disable sleeping bodies indicators.\n *\n * @property options.showSleeping\n * @type boolean\n * @default true\n */\n\n /**\n * A flag to enable or disable the debug information overlay.\n *\n * @property options.showDebug\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the collision broadphase debug overlay.\n *\n * @deprecated no longer implemented\n * @property options.showBroadphase\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body bounds debug overlay.\n *\n * @property options.showBounds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body velocity debug overlay.\n *\n * @property options.showVelocity\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body collisions debug overlay.\n *\n * @property options.showCollisions\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the collision resolver separations debug overlay.\n *\n * @property options.showSeparations\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body axes debug overlay.\n *\n * @property options.showAxes\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body positions debug overlay.\n *\n * @property options.showPositions\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body angle debug overlay.\n *\n * @property options.showAngleIndicator\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body and part ids debug overlay.\n *\n * @property options.showIds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body vertex numbers debug overlay.\n *\n * @property options.showVertexNumbers\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body convex hulls debug overlay.\n *\n * @property options.showConvexHulls\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body internal edges debug overlay.\n *\n * @property options.showInternalEdges\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the mouse position debug overlay.\n *\n * @property options.showMousePosition\n * @type boolean\n * @default false\n */\n\n})();\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Runner` module is an optional utility which provides a game loop, \n* that handles continuously updating a `Matter.Engine` for you within a browser.\n* It is intended for development and debugging purposes, but may also be suitable for simple games.\n* If you are using your own game loop instead, then you do not need the `Matter.Runner` module.\n* Instead just call `Engine.update(engine, delta)` in your own loop.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Runner\n*/\n\nvar Runner = {};\n\nmodule.exports = Runner;\n\nvar Events = __webpack_require__(5);\nvar Engine = __webpack_require__(17);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n var _requestAnimationFrame,\n _cancelAnimationFrame;\n\n if (typeof window !== 'undefined') {\n _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame\n || window.mozRequestAnimationFrame || window.msRequestAnimationFrame;\n \n _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame \n || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;\n }\n\n if (!_requestAnimationFrame) {\n var _frameTimeout;\n\n _requestAnimationFrame = function(callback){ \n _frameTimeout = setTimeout(function() { \n callback(Common.now()); \n }, 1000 / 60);\n };\n\n _cancelAnimationFrame = function() {\n clearTimeout(_frameTimeout);\n };\n }\n\n /**\n * Creates a new Runner. The options parameter is an object that specifies any properties you wish to override the defaults.\n * @method create\n * @param {} options\n */\n Runner.create = function(options) {\n var defaults = {\n fps: 60,\n deltaSampleSize: 60,\n counterTimestamp: 0,\n frameCounter: 0,\n deltaHistory: [],\n timePrev: null,\n frameRequestId: null,\n isFixed: false,\n enabled: true\n };\n\n var runner = Common.extend(defaults, options);\n\n runner.delta = runner.delta || 1000 / runner.fps;\n runner.deltaMin = runner.deltaMin || 1000 / runner.fps;\n runner.deltaMax = runner.deltaMax || 1000 / (runner.fps * 0.5);\n runner.fps = 1000 / runner.delta;\n\n return runner;\n };\n\n /**\n * Continuously ticks a `Matter.Engine` by calling `Runner.tick` on the `requestAnimationFrame` event.\n * @method run\n * @param {engine} engine\n */\n Runner.run = function(runner, engine) {\n // create runner if engine is first argument\n if (typeof runner.positionIterations !== 'undefined') {\n engine = runner;\n runner = Runner.create();\n }\n\n (function run(time){\n runner.frameRequestId = _requestAnimationFrame(run);\n\n if (time && runner.enabled) {\n Runner.tick(runner, engine, time);\n }\n })();\n\n return runner;\n };\n\n /**\n * A game loop utility that updates the engine and renderer by one step (a 'tick').\n * Features delta smoothing, time correction and fixed or dynamic timing.\n * Consider just `Engine.update(engine, delta)` if you're using your own loop.\n * @method tick\n * @param {runner} runner\n * @param {engine} engine\n * @param {number} time\n */\n Runner.tick = function(runner, engine, time) {\n var timing = engine.timing,\n delta;\n\n if (runner.isFixed) {\n // fixed timestep\n delta = runner.delta;\n } else {\n // dynamic timestep based on wall clock between calls\n delta = (time - runner.timePrev) || runner.delta;\n runner.timePrev = time;\n\n // optimistically filter delta over a few frames, to improve stability\n runner.deltaHistory.push(delta);\n runner.deltaHistory = runner.deltaHistory.slice(-runner.deltaSampleSize);\n delta = Math.min.apply(null, runner.deltaHistory);\n\n // limit delta\n delta = delta < runner.deltaMin ? runner.deltaMin : delta;\n delta = delta > runner.deltaMax ? runner.deltaMax : delta;\n\n // update engine timing object\n runner.delta = delta;\n }\n\n // create an event object\n var event = {\n timestamp: timing.timestamp\n };\n\n Events.trigger(runner, 'beforeTick', event);\n\n // fps counter\n runner.frameCounter += 1;\n if (time - runner.counterTimestamp >= 1000) {\n runner.fps = runner.frameCounter * ((time - runner.counterTimestamp) / 1000);\n runner.counterTimestamp = time;\n runner.frameCounter = 0;\n }\n\n Events.trigger(runner, 'tick', event);\n\n // update\n Events.trigger(runner, 'beforeUpdate', event);\n\n Engine.update(engine, delta);\n\n Events.trigger(runner, 'afterUpdate', event);\n\n Events.trigger(runner, 'afterTick', event);\n };\n\n /**\n * Ends execution of `Runner.run` on the given `runner`, by canceling the animation frame request event loop.\n * If you wish to only temporarily pause the engine, see `engine.enabled` instead.\n * @method stop\n * @param {runner} runner\n */\n Runner.stop = function(runner) {\n _cancelAnimationFrame(runner.frameRequestId);\n };\n\n /**\n * Alias for `Runner.run`.\n * @method start\n * @param {runner} runner\n * @param {engine} engine\n */\n Runner.start = function(runner, engine) {\n Runner.run(runner, engine);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired at the start of a tick, before any updates to the engine or timing\n *\n * @event beforeTick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after engine timing updated, but just before update\n *\n * @event tick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired at the end of a tick, after engine update and after rendering\n *\n * @event afterTick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired before update\n *\n * @event beforeUpdate\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after update\n *\n * @event afterUpdate\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A flag that specifies whether the runner is running or not.\n *\n * @property enabled\n * @type boolean\n * @default true\n */\n\n /**\n * A `Boolean` that specifies if the runner should use a fixed timestep (otherwise it is variable).\n * If timing is fixed, then the apparent simulation speed will change depending on the frame rate (but behaviour will be deterministic).\n * If the timing is variable, then the apparent simulation speed will be constant (approximately, but at the cost of determininism).\n *\n * @property isFixed\n * @type boolean\n * @default false\n */\n\n /**\n * A `Number` that specifies the time step between updates in milliseconds.\n * If `engine.timing.isFixed` is set to `true`, then `delta` is fixed.\n * If it is `false`, then `delta` can dynamically change to maintain the correct apparent simulation speed.\n *\n * @property delta\n * @type number\n * @default 1000 / 60\n */\n\n})();\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Collision`.\n*\n* All usage should be migrated to `Matter.Collision`.\n* For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n*\n* The `Matter.SAT` module contains methods for detecting collisions using the Separating Axis Theorem.\n*\n* @class SAT\n* @deprecated\n*/\n\nvar SAT = {};\n\nmodule.exports = SAT;\n\nvar Collision = __webpack_require__(8);\nvar Common = __webpack_require__(0);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Detect collision between two bodies using the Separating Axis Theorem.\n * @deprecated replaced by Collision.collides\n * @method collides\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {collision} collision\n */\n SAT.collides = function(bodyA, bodyB) {\n return Collision.collides(bodyA, bodyB);\n };\n\n deprecated(SAT, 'collides', 'SAT.collides ➤ replaced by Collision.collides');\n\n})();\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Svg` module contains methods for converting SVG images into an array of vector points.\n*\n* To use this module you also need the SVGPathSeg polyfill: https://github.com/progers/pathseg\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Svg\n*/\n\nvar Svg = {};\n\nmodule.exports = Svg;\n\nvar Bounds = __webpack_require__(1);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Converts an SVG path into an array of vector points.\n * If the input path forms a concave shape, you must decompose the result into convex parts before use.\n * See `Bodies.fromVertices` which provides support for this.\n * Note that this function is not guaranteed to support complex paths (such as those with holes).\n * You must load the `pathseg.js` polyfill on newer browsers.\n * @method pathToVertices\n * @param {SVGPathElement} path\n * @param {Number} [sampleLength=15]\n * @return {Vector[]} points\n */\n Svg.pathToVertices = function(path, sampleLength) {\n if (typeof window !== 'undefined' && !('SVGPathSeg' in window)) {\n Common.warn('Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.');\n }\n\n // https://github.com/wout/svg.topoly.js/blob/master/svg.topoly.js\n var i, il, total, point, segment, segments, \n segmentsQueue, lastSegment, \n lastPoint, segmentIndex, points = [],\n lx, ly, length = 0, x = 0, y = 0;\n\n sampleLength = sampleLength || 15;\n\n var addPoint = function(px, py, pathSegType) {\n // all odd-numbered path types are relative except PATHSEG_CLOSEPATH (1)\n var isRelative = pathSegType % 2 === 1 && pathSegType > 1;\n\n // when the last point doesn't equal the current point add the current point\n if (!lastPoint || px != lastPoint.x || py != lastPoint.y) {\n if (lastPoint && isRelative) {\n lx = lastPoint.x;\n ly = lastPoint.y;\n } else {\n lx = 0;\n ly = 0;\n }\n\n var point = {\n x: lx + px,\n y: ly + py\n };\n\n // set last point\n if (isRelative || !lastPoint) {\n lastPoint = point;\n }\n\n points.push(point);\n\n x = lx + px;\n y = ly + py;\n }\n };\n\n var addSegmentPoint = function(segment) {\n var segType = segment.pathSegTypeAsLetter.toUpperCase();\n\n // skip path ends\n if (segType === 'Z') \n return;\n\n // map segment to x and y\n switch (segType) {\n\n case 'M':\n case 'L':\n case 'T':\n case 'C':\n case 'S':\n case 'Q':\n x = segment.x;\n y = segment.y;\n break;\n case 'H':\n x = segment.x;\n break;\n case 'V':\n y = segment.y;\n break;\n }\n\n addPoint(x, y, segment.pathSegType);\n };\n\n // ensure path is absolute\n Svg._svgPathToAbsolute(path);\n\n // get total length\n total = path.getTotalLength();\n\n // queue segments\n segments = [];\n for (i = 0; i < path.pathSegList.numberOfItems; i += 1)\n segments.push(path.pathSegList.getItem(i));\n\n segmentsQueue = segments.concat();\n\n // sample through path\n while (length < total) {\n // get segment at position\n segmentIndex = path.getPathSegAtLength(length);\n segment = segments[segmentIndex];\n\n // new segment\n if (segment != lastSegment) {\n while (segmentsQueue.length && segmentsQueue[0] != segment)\n addSegmentPoint(segmentsQueue.shift());\n\n lastSegment = segment;\n }\n\n // add points in between when curving\n // TODO: adaptive sampling\n switch (segment.pathSegTypeAsLetter.toUpperCase()) {\n\n case 'C':\n case 'T':\n case 'S':\n case 'Q':\n case 'A':\n point = path.getPointAtLength(length);\n addPoint(point.x, point.y, 0);\n break;\n\n }\n\n // increment by sample value\n length += sampleLength;\n }\n\n // add remaining segments not passed by sampling\n for (i = 0, il = segmentsQueue.length; i < il; ++i)\n addSegmentPoint(segmentsQueue[i]);\n\n return points;\n };\n\n Svg._svgPathToAbsolute = function(path) {\n // http://phrogz.net/convert-svg-path-to-all-absolute-commands\n // Copyright (c) Gavin Kistner\n // http://phrogz.net/js/_ReuseLicense.txt\n // Modifications: tidy formatting and naming\n var x0, y0, x1, y1, x2, y2, segs = path.pathSegList,\n x = 0, y = 0, len = segs.numberOfItems;\n\n for (var i = 0; i < len; ++i) {\n var seg = segs.getItem(i),\n segType = seg.pathSegTypeAsLetter;\n\n if (/[MLHVCSQTA]/.test(segType)) {\n if ('x' in seg) x = seg.x;\n if ('y' in seg) y = seg.y;\n } else {\n if ('x1' in seg) x1 = x + seg.x1;\n if ('x2' in seg) x2 = x + seg.x2;\n if ('y1' in seg) y1 = y + seg.y1;\n if ('y2' in seg) y2 = y + seg.y2;\n if ('x' in seg) x += seg.x;\n if ('y' in seg) y += seg.y;\n\n switch (segType) {\n\n case 'm':\n segs.replaceItem(path.createSVGPathSegMovetoAbs(x, y), i);\n break;\n case 'l':\n segs.replaceItem(path.createSVGPathSegLinetoAbs(x, y), i);\n break;\n case 'h':\n segs.replaceItem(path.createSVGPathSegLinetoHorizontalAbs(x), i);\n break;\n case 'v':\n segs.replaceItem(path.createSVGPathSegLinetoVerticalAbs(y), i);\n break;\n case 'c':\n segs.replaceItem(path.createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2), i);\n break;\n case 's':\n segs.replaceItem(path.createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2), i);\n break;\n case 'q':\n segs.replaceItem(path.createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1), i);\n break;\n case 't':\n segs.replaceItem(path.createSVGPathSegCurvetoQuadraticSmoothAbs(x, y), i);\n break;\n case 'a':\n segs.replaceItem(path.createSVGPathSegArcAbs(x, y, seg.r1, seg.r2, seg.angle, seg.largeArcFlag, seg.sweepFlag), i);\n break;\n case 'z':\n case 'Z':\n x = x0;\n y = y0;\n break;\n\n }\n }\n\n if (segType == 'M' || segType == 'm') {\n x0 = x;\n y0 = y;\n }\n }\n };\n\n})();\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Composite`.\n*\n* All usage should be migrated to the equivalent functions found on `Matter.Composite`.\n* For example `World.add(world, body)` now becomes `Composite.add(world, body)`.\n*\n* The property `world.gravity` has been moved to `engine.gravity`.\n*\n* For back-compatibility purposes this module will remain as a direct alias to `Matter.Composite` in the short term during migration.\n* Eventually this alias module will be marked as deprecated and then later removed in a future release.\n*\n* @class World\n*/\n\nvar World = {};\n\nmodule.exports = World;\n\nvar Composite = __webpack_require__(6);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * See above, aliases for back compatibility only\n */\n World.create = Composite.create;\n World.add = Composite.add;\n World.remove = Composite.remove;\n World.clear = Composite.clear;\n World.addComposite = Composite.addComposite;\n World.addBody = Composite.addBody;\n World.addConstraint = Composite.addConstraint;\n\n})();\n\n\n/***/ })\n/******/ ]);\n});","export default \"data:image/png;base64,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\"","export default \"__VITE_ASSET__jxVNOxAL__\"","export default \"__VITE_ASSET__6oiBdNSa__\"","export default \"__VITE_ASSET__Tr2jfyMH__\"","export default \"__VITE_ASSET__5PCFRB9K__\"","export default \"__VITE_ASSET__vCY2DKox__\"","export default \"__VITE_ASSET__pwi7X4WA__\"","export default \"__VITE_ASSET__FHo$_cPe__\"","export default \"__VITE_ASSET__96NfZHFx__\"","export default \"__VITE_ASSET__02ELKlnP__\"","import b1 from '../../assets/block/1.png'\nimport b2 from '../../assets/block/2.png'\nimport b3 from '../../assets/block/3.png'\nimport b4 from '../../assets/block/4.png'\nimport b5 from '../../assets/block/5.png'\nimport b6 from '../../assets/block/6.png'\nimport b7 from '../../assets/block/7.png'\nimport b8 from '../../assets/block/8.png'\nimport b9 from '../../assets/block/9.png'\nimport b10 from '../../assets/block/10.png'\n\ntype Block = {\n size: number;\n color: string;\n score: number;\n};\n\nconst lineColor = '#1E1E1E'\n\nconst blocks: { [key: number]: Block } = {\n 1: {size: 30, color: '#94E9F6', score: 2},\n 2: {size: 40, color: '#97FFC6', score: 4},\n 3: {size: 55, color: '#FFB7E7', score: 6},\n 4: {size: 70, color: '#FFC8B7', score: 8},\n 5: {size: 90, color: '#FFDB98', score: 16},\n 6: {size: 110, color: '#60C7FF', score: 32},\n 7: {size: 125, color: '#43F091', score: 64},\n 8: {size: 140, color: '#FF8FDA', score: 128},\n 9: {size: 150, color: '#FF9A7A', score: 256},\n 10: {size: 160, color: '#FFC964', score: 512},\n}\n\n// const blocks: { [key: number]: Block } = {\n// 1: { size: 26, color: '#FFB7E7', score: 2},\n// 2: { size: 40, color: '#FFC8B7', score: 4},\n// 3: { size: 54, color: '#FFDB98', score: 6},\n// 4: { size: 90, color: '#97FFC6', score: 8},\n// 5: { size: 100, color: '#94E9F6', score: 16},\n// 6: { size: 120, color: '#FF8FDA', score: 32},\n// 7: { size: 140, color: '#FF9A7A', score: 64},\n// 8: { size: 160, color: '#FFC964', score: 128},\n// 9: { size: 160, color: '#43F091', score: 256},\n// 10: { size: 200, color: '#60C7FF', score: 512},\n// };\n\nexport {lineColor, blocks}\n\nexport const Background: { [key: number]: string } = {\n 1: b1,\n 2: b2,\n 3: b3,\n 4: b4,\n 5: b5,\n 6: b6,\n 7: b7,\n 8: b8,\n 9: b9,\n 10: b10\n}\n","import {Bodies} from 'matter-js'\nimport {Background, blocks, lineColor} from '../pages/play/setting.ts'\n\nexport const createBlock = (index: number, x: number, y: number, ratio: number, isStatic: boolean = false) => {\n const block = blocks[index]\n const background = Background[index]\n const circle = Bodies.circle(x, y, block.size * ratio / 2, {\n isStatic,\n label: String(index),\n render: {\n fillStyle: block.color,\n lineWidth: 8,\n strokeStyle: lineColor,\n sprite: {\n texture: background,\n xScale: 1 / 3 * ratio,\n yScale: 1 / 3 * ratio,\n }\n }\n })\n return circle\n}\n","/*\n * @param count 몇 번째 블럭인지\n */\nexport const getBlockIndex = (count: number) => {\n const _count = count > 6 ? 6 : count\n return Math.floor(Math.random() * (_count - 1)) + 1 // 1 ~ count\n}\n","const RATIO = 560 / 360\n\nexport const getDynamicCanvasHeight = (width: number) => {\n return width * RATIO\n}\n","import {Bodies, Composite, World} from 'matter-js'\n\nexport const setField = (world: World, width: number, height: number) => {\n const bottom = Bodies.rectangle(width / 2, height, width, 30, {\n isStatic: true,\n restitution: 1,\n render: {fillStyle: '#81685A'}\n })\n const left = Bodies.rectangle(0, height / 2, 1, height, {\n isStatic: true,\n render: {fillStyle: '#FFFFFF'}\n })\n const right = Bodies.rectangle(width, height / 2, 1, height, {\n isStatic: true,\n render: {fillStyle: '#FFFFFF'}\n })\n const line = Bodies.rectangle(width / 2, 120, width, 2, {\n isStatic: true,\n isSensor: true,\n label: 'line',\n render: {fillStyle: '#FF6C6C'}\n })\n Composite.add(world, [line, bottom, left, right])\n}\n","import {ref} from 'vue'\n\nexport const useTimer = (limit: number, callback: () => void) => {\n const count = ref(undefined)\n let interval: undefined | number = undefined\n\n const clear = () => {\n if (interval) {\n clearInterval(interval)\n interval = undefined\n }\n }\n\n const start = () => {\n count.value = limit\n if (interval) {\n return\n }\n interval = setInterval(() => {\n if (count.value) {\n count.value = count.value - 1\n }\n if (count.value === 0) {\n clear()\n callback()\n }\n }, 1000)\n }\n\n const reset = () => {\n count.value = undefined\n clear()\n }\n\n return {count, reset, start}\n}\n","import {Body, Engine, Events, Render, Runner, World} from 'matter-js'\nimport {blocks} from '../pages/play/setting.ts'\nimport {createBlock, getBlockIndex, getDynamicCanvasHeight, setField} from '../utils'\nimport {onMounted, Ref, ref} from 'vue'\nimport {useTimer} from './use-timer.ts'\n\nexport const usePlayer = (\n element: Ref,\n) => {\n const engine = Engine.create(\n {\n gravity: {x: 0, y: 0.4},\n timing: {timeScale: 1.5}\n })\n const runner = Runner.create()\n\n const collisions = new Set()\n\n let width = 0\n let height = 0\n let ratio = 1\n const groundHeightRef = ref(0)\n\n let isSetBlock: boolean = false\n let currentBlock: Body | undefined = undefined\n let totalBlockCount = 0\n let canvasOffsetX = 0\n\n const gameOverRef = ref(false)\n const nextBlockRef = ref(0)\n const scoreRef = ref(0)\n\n onMounted(() => {\n if (!element.value) {\n return\n }\n width = element.value.clientWidth\n height = getDynamicCanvasHeight(width)\n ratio = width / 380\n canvasOffsetX = element.value?.getBoundingClientRect().x\n groundHeightRef.value = element.value?.clientHeight - height\n setNextBlock()\n addBlock()\n\n const render = Render.create({\n canvas: element.value,\n engine,\n options: {\n wireframes: false,\n background: 'transparent',\n width,\n height,\n pixelRatio: window.devicePixelRatio\n }\n })\n\n setField(engine.world, width, height)\n Render.run(render)\n Runner.run(runner, engine)\n\n element.value.addEventListener('mousemove', (event: MouseEvent) => {\n onDrag(event.offsetX)\n })\n\n element.value.addEventListener('mouseup', () => {\n drop()\n })\n\n element.value.addEventListener('touchmove', (event: TouchEvent) => {\n const x = event.touches[0].clientX - canvasOffsetX\n if (element?.value?.clientWidth && x > 0 && x < element.value.clientWidth) {\n onDrag(x)\n }\n }, {passive: true})\n\n element.value.addEventListener('touchend', () => {\n drop()\n })\n })\n\n Events.on(engine, 'collisionStart', (event) => {\n event.pairs.forEach((collision) => {\n if (collision.bodyA.label === 'line' || collision.bodyB.label === 'line') {\n const circle = collision.bodyA.label === 'line' ? collision.bodyB.id : collision.bodyA.id\n addCollisions(circle)\n }\n\n if (collision.bodyA.label !== collision.bodyB.label) {\n return\n }\n\n if (collision.bodyA.label === 'removed' || collision.bodyB.label === 'removed') {\n return\n }\n\n const index = Number(collision.bodyA.label)\n if (index === 10) {\n return\n }\n\n collision.bodyA.label = 'removed'\n collision.bodyB.label = 'removed'\n\n scoreRef.value = scoreRef.value + (blocks[index].score)\n\n const newBlock = createBlock(index + 1, collision.collision.supports[0].x, collision.collision.supports[0].y, ratio)\n World.remove(engine.world, [collision.bodyA, collision.bodyB])\n World.add(engine.world, newBlock)\n }\n )\n })\n\n Events.on(engine, 'collisionEnd', (event) => {\n event.pairs.forEach((collision) => {\n if (collision.bodyA.label === 'line' || collision.bodyB.label === 'line') {\n const circle = collision.bodyA.label === 'line' ? collision.bodyB.id : collision.bodyA.id\n removeCollisions(circle)\n }\n })\n })\n\n const {start, reset} = useTimer(3, () => {\n endGame()\n })\n\n const setLineCollisionTimer = () => {\n if (collisions.size > 0) {\n start()\n return\n }\n reset()\n }\n\n const addCollisions = (id: number) => {\n collisions.add(id)\n setLineCollisionTimer()\n }\n\n const removeCollisions = (id: number) => {\n collisions.delete(id)\n setLineCollisionTimer()\n }\n\n const addBlock = () => {\n // currentBlockRef.value = createBlock(4, widthRef.value / 2, 60, ratioRef.value, true)\n currentBlock = createBlock(nextBlockRef.value, width / 2, 60, ratio, true)\n isSetBlock = false\n World.add(engine.world, currentBlock)\n setNextBlock()\n }\n\n const setNextBlock = () => {\n totalBlockCount += 1\n nextBlockRef.value = getBlockIndex(totalBlockCount)\n }\n\n const drop = () => {\n if (gameOverRef.value) {\n return\n }\n if (!currentBlock || isSetBlock) {\n return\n }\n isSetBlock = true\n Body.setStatic(currentBlock, false)\n setTimeout(() => {\n addBlock()\n }, 1000)\n }\n\n const onDrag = (x: number) => {\n if (gameOverRef.value) {\n return\n }\n if (!currentBlock || isSetBlock) {\n return\n }\n Body.setPosition(currentBlock, {x, y: 60})\n }\n\n const endGame = () => {\n gameOverRef.value = true\n }\n\n const replay = () => {\n scoreRef.value = 0\n\n collisions.clear()\n reset()\n\n gameOverRef.value = false\n\n totalBlockCount = 0\n\n World.clear(engine.world, false)\n setField(engine.world, width, height)\n\n setNextBlock()\n addBlock()\n }\n\n return {replay, nextBlockRef, groundHeightRef, gameOverRef, scoreRef}\n}\n","\n\n","export default \"data:image/svg+xml,%3csvg%20width='38'%20height='32'%20viewBox='0%200%2038%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","import {defineStore} from 'pinia'\nimport {ref} from 'vue'\n\nexport const useUserStore = defineStore('user', () => {\n const nickName = ref('')\n return {nickName}\n})\n","export default \"__VITE_ASSET__LNgfJuKf__\"","\n\n","export default \"__VITE_ASSET__Afdibq8G__\"","export default \"__VITE_ASSET__0aHIITih__\"","export default \"__VITE_ASSET__M4vI1m5K__\"","\n","\n","\n\n","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20style='fill:%20%23489B6D'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='inherit'%20d='M12%202C10.6868%202%209.38642%202.25866%208.17317%202.7612C6.95991%203.26375%205.85752%204.00035%204.92893%204.92893C3.05357%206.8043%202%209.34784%202%2012C2%2016.42%204.87%2020.17%208.84%2021.5C9.34%2021.58%209.5%2021.27%209.5%2021V19.31C6.73%2019.91%206.14%2017.97%206.14%2017.97C5.68%2016.81%205.03%2016.5%205.03%2016.5C4.12%2015.88%205.1%2015.9%205.1%2015.9C6.1%2015.97%206.63%2016.93%206.63%2016.93C7.5%2018.45%208.97%2018%209.54%2017.76C9.63%2017.11%209.89%2016.67%2010.17%2016.42C7.95%2016.17%205.62%2015.31%205.62%2011.5C5.62%2010.39%206%209.5%206.65%208.79C6.55%208.54%206.2%207.5%206.75%206.15C6.75%206.15%207.59%205.88%209.5%207.17C10.29%206.95%2011.15%206.84%2012%206.84C12.85%206.84%2013.71%206.95%2014.5%207.17C16.41%205.88%2017.25%206.15%2017.25%206.15C17.8%207.5%2017.45%208.54%2017.35%208.79C18%209.5%2018.38%2010.39%2018.38%2011.5C18.38%2015.32%2016.04%2016.16%2013.81%2016.41C14.17%2016.72%2014.5%2017.33%2014.5%2018.26V21C14.5%2021.27%2014.66%2021.59%2015.17%2021.5C19.14%2020.16%2022%2016.42%2022%2012C22%2010.6868%2021.7413%209.38642%2021.2388%208.17317C20.7362%206.95991%2019.9997%205.85752%2019.0711%204.92893C18.1425%204.00035%2017.0401%203.26375%2015.8268%202.7612C14.6136%202.25866%2013.3132%202%2012%202Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='55'%20height='22'%20viewBox='0%200%2055%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.95809%201.72925C11.5932%201.69208%2014.0155%201.65407%2015.6513%201.65407C16.7795%201.65407%2017.9096%201.58814%2019.034%201.5156C20.3055%201.43357%2021.6106%201.51164%2022.8836%201.51164C24.1659%201.51164%2025.4435%201.44043%2026.7292%201.44043C29.9809%201.44043%2033.2319%201.48987%2036.4816%201.5789C39.2326%201.65427%2042.0226%201.66875%2044.6357%202.63526C46.4858%203.31952%2048.3613%203.90303%2050.0085%205.00117C50.9551%205.63226%2051.9846%206.40982%2052.6118%207.36708C53.3073%208.42859%2053.3821%209.8471%2053.1815%2011.0505C53.0459%2011.864%2052.6656%2012.6858%2052.3902%2013.4599C52.2596%2013.8272%2052.1021%2014.1492%2051.9155%2014.4886C51.6444%2014.9815%2051.3987%2015.481%2051.1203%2015.9683C50.7634%2016.5928%2050.2688%2017.343%2049.6603%2017.7486C49.2024%2018.0539%2048.6696%2018.2164%2048.1965%2018.4924C47.6444%2018.8145%2046.9121%2019.0579%2046.2974%2019.2283C44.8748%2019.6227%2043.4239%2019.8606%2041.9612%2020.0631C40.1719%2020.3109%2038.3583%2020.2411%2036.5568%2020.2411C34.9588%2020.2411%2033.3596%2020.2221%2031.7617%2020.2411C30.0172%2020.2619%2028.2692%2020.3716%2026.5234%2020.3836C25.5083%2020.3905%2024.5065%2020.6117%2023.4968%2020.7001C22.6192%2020.7769%2021.7303%2020.7396%2020.85%2020.7396C17.4521%2020.7396%2014.1614%2020.3402%2010.8404%2019.616C8.30368%2019.0629%205.74602%2018.2158%203.5448%2016.807C2.48459%2016.1285%201.81672%2015.0333%201.76838%2013.7764C1.65416%2010.8066%201.66275%207.85901%202.83265%205.08821C3.50052%203.50642%205.47022%202.78585%206.9275%202.19214C7.24625%202.06228%207.60611%202.04422%207.94429%201.99432C8.62044%201.89456%209.26937%201.7449%209.95809%201.72925Z'%20fill='%2366BE8B'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.909%2013.1409C23.2956%2013.1409%2024.6932%2013.1463%2025.7989%2012.1634C26.0518%2011.9385%2026.7028%2010.8607%2026.4884%2010.4971C26.202%2010.0113%2024.9009%2010.0517%2024.4714%2010.0416C23.9373%2010.0291%2023.2157%2010.1122%2022.7374%2010.4026C22.1385%2010.7663%2021.8001%2011.168%2021.7289%2011.9356C21.6569%2012.7131%2022.1321%2013.6008%2022.6294%2014.1185C23.2268%2014.7403%2024.2371%2015.4404%2025.1043%2015.4404C26.0964%2015.4404%2027.0415%2015.0405%2028.0217%2015.0405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M29.8217%2010.9404H34.3217'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M32.5217%208.24048C32.5029%208.57958%2032.4041%208.93656%2032.3417%209.27048C32.1679%2010.2009%2032.1066%2011.1439%2031.9817%2012.0805C31.8364%2013.1701%2031.6217%2014.3426%2031.6217%2015.4405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M38.4458%2010.9404C37.8164%2011.0019%2037.2365%2012.1706%2037.133%2012.6759C37.003%2013.3111%2036.8827%2014.3195%2037.4143%2014.8389C37.877%2015.2909%2038.6357%2015.5034%2039.2845%2015.4242C39.7187%2015.3711%2040.5741%2014.6222%2040.7483%2014.2332C41.0389%2013.5843%2041.4228%2012.7137%2040.9567%2012.0397C40.797%2011.8088%2040.5748%2011.5565%2040.3212%2011.4188C40.1812%2011.3429%2039.9542%2011.2938%2039.8523%2011.1695C39.6835%2010.9633%2039.8716%2011.2288%2040.0451%2011.3527C40.5276%2011.6971%2040.9926%2012.051%2041.4672%2012.4062C41.9513%2012.7684%2042.4245%2013.1383%2042.9362%2013.4597C43.0899%2013.5561%2043.2193%2013.6302%2043.3217%2013.7803'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M12.9738%206.44043C12.9354%207.12336%2012.7347%207.78117%2012.7275%208.48097C12.7144%209.74646%2012.7275%2011.0127%2012.7275%2012.2783C12.7275%2013.1657%2013.0217%2015.8278%2013.0217%2014.9404C13.0217%2013.8437%2012.8802%2012.655%2013.5281%2011.731C14.1557%2010.8358%2015.5416%2010.9404%2016.5184%2010.9404C17.5439%2010.9404%2018.9647%2011.3184%2019.0092%2012.5485C19.0297%2013.115%2019.0692%2013.5833%2018.7081%2014.0418C18.1068%2014.8051%2016.9377%2014.8162%2016.0531%2015.0148C15.258%2015.1932%2014.4057%2015.4404%2013.5897%2015.4404'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","\n\n","\n\n","export const isOpen = () => {\n const targetTime = new Date('2024-03-18T19:00:00+09:00')\n const current = new Date()\n return current < targetTime\n}\n","\n\n","export default \"__VITE_ASSET__TxXt11_M__\"","export default \"data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.27295%201.38288C2.72656%201.38288%204.55953%201.24929%205.94683%201.67319C6.16152%201.73879%206.20919%202.32808%206.30971%202.48604C6.64759%203.01699%206.99995%203.63674%207.22417%204.22786C7.6944%205.46757%207.94133%206.84558%208.16765%208.14695C8.25945%208.67479%208.45796%209.35081%208.45796%209.87426'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M8.26127%2013.6484C8.16865%2013.66%208.08112%2013.7385%208%2013.7791'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__kh1ql9HY__\"","export default \"__VITE_ASSET__SRhcpZYV__\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2252%2020.4625%2012.6416%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1535%2023.3097%2014.4184C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8567%2024.1704%2016.3618%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3163C24.847%2018.8784%2025%2019.4522%2025%2020.0444C25%2020.2445%2024.913%2020.1797%2024.811%2020.0909C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.69%2021.5281%2018.6961C21.1936%2018.7005%2021.1426%2019.2521%2021.0588%2019.5717C20.8524%2020.359%2020.7209%2021.1802%2020.5749%2021.9869C20.5277%2022.248%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6895C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8942%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.174%2019.77%2021.087%2019.7298%2021.0105C19.3458%2020.2799%2018.8508%2019.5357%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9285C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1548C9.88096%2022.2865%209.45315%2023.1384%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1806%207.75245%2020.1839C7.41864%2020.1896%207.06751%2020.2314%206.73911%2020.3027C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5791C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6721C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9953%205.5771%2019.7562%205.70916%2019.5097C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1055C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5371%2014.688%2012.2615C15.7635%2011.9854%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M11%207.4445C11.0533%206.00462%2013.0492%205.82818%2014.0803%206.11689C14.5781%206.25627%2014.9933%206.72901%2015.3491%207.0848C15.9737%207.70949%2016.1343%208.38864%2016.1208%209.25606C16.1081%2010.0653%2015.7485%2010.8814%2015.2183%2011.4796C14.8644%2011.8789%2014.4805%2012.2684%2014.0313%2012.5587C13.545%2012.8729%2012.8888%2013.2083%2012.3243%2013.3337C12.1671%2013.3686%2011.5016%2013.6629%2011.6409%2013.713C12.6555%2014.0783%2013.7368%2014.2927%2014.7735%2014.5861C15.3355%2014.7451%2015.8982%2014.8825%2016.4739%2014.9785'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__E$BVrZNO__\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2253%2020.4625%2012.6417%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1536%2023.3097%2014.4185C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8568%2024.1704%2016.3619%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3164C24.847%2018.8784%2025%2019.4522%2025%2020.0445C25%2020.2446%2024.913%2020.1797%2024.811%2020.091C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.6901%2021.5281%2018.6961C21.1936%2018.7006%2021.1426%2019.2521%2021.0588%2019.5718C20.8524%2020.3591%2020.7209%2021.1802%2020.5749%2021.987C20.5277%2022.2481%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6896C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8943%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.1741%2019.77%2021.087%2019.7298%2021.0106C19.3458%2020.2799%2018.8508%2019.5358%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9286C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1549C9.88096%2022.2865%209.45315%2023.1385%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1807%207.75245%2020.184C7.41864%2020.1896%207.06751%2020.2315%206.73911%2020.3028C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5792C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6722C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9954%205.5771%2019.7562%205.70916%2019.5098C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1056C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5372%2014.688%2012.2616C15.7635%2011.9855%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23D88F4B'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M19.668%2012.6527C18.6089%2012.6066%2017.5663%2012.389%2016.5097%2012.3135C14.7245%2012.186%2012.9339%2011.9495%2011.1389%2012.0646C11.1233%2012.0656%2010.5327%2012.1373%2010.5476%2012.0552C10.5843%2011.8534%2010.7626%2011.5724%2010.8495%2011.3862C11.4861%2010.0219%2012.3305%208.72783%2013.3264%207.59615C13.6097%207.27421%2013.8747%206.9252%2014.2039%206.64708C14.3214%206.54779%2014.6786%206.18033%2014.8387%206.18033C14.8687%206.18033%2014.8413%206.30049%2014.8387%206.31102C14.8005%206.46356%2014.793%206.61388%2014.8076%206.77155C14.8898%207.66205%2015.2584%208.51072%2015.3677%209.40405C15.4721%2010.2575%2015.5897%2011.1052%2015.6664%2011.9619C15.714%2012.4938%2015.8375%2013.0301%2015.8593%2013.5613C15.8791%2014.0425%2015.9713%2014.5257%2015.9713%2015.0051'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","\n\n","import {zaxios} from '../zaxios.ts'\n\nexport interface GetRankParams {\n pageNumber: number,\n dateTime: number,\n}\n\nexport interface RankItem {\n nickName: string,\n score: number,\n rank: number\n}\n\nexport interface GetRankResult {\n nextPageNumber: number\n rankList: RankItem[],\n totalCount: number\n}\n\nexport const getRank = async (params: GetRankParams): Promise => {\n const response = await zaxios.get('/rank', {\n params\n })\n return response.data\n}\n","import {useInfiniteQuery} from '@tanstack/vue-query'\nimport {getRank} from '../fetch/getRank.ts'\n\nexport const useGetInfiniteRank = () => {\n const date = Date.now()\n return useInfiniteQuery({\n queryKey: ['rank'],\n queryFn: ({pageParam}) => getRank({\n pageNumber: pageParam,\n dateTime: date\n }),\n initialPageParam: 0,\n getNextPageParam: (lastPage) => {\n return lastPage.nextPageNumber\n }\n })\n}\n","export default \"data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_694_3918)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.5%2044C29.6717%2044%2034.6316%2041.9455%2038.2886%2038.2886C41.9455%2034.6316%2044%2029.6717%2044%2024.5C44%2019.3283%2041.9455%2014.3684%2038.2886%2010.7114C34.6316%207.05446%2029.6717%205%2024.5%205C19.3283%205%2014.3684%207.05446%2010.7114%2010.7114C7.05446%2014.3684%205%2019.3283%205%2024.5C5%2029.6717%207.05446%2034.6316%2010.7114%2038.2886C14.3684%2041.9455%2019.3283%2044%2024.5%2044ZM24.5%2048.5C30.8652%2048.5%2036.9697%2045.9714%2041.4706%2041.4706C45.9714%2036.9697%2048.5%2030.8652%2048.5%2024.5C48.5%2018.1348%2045.9714%2012.0303%2041.4706%207.52944C36.9697%203.02856%2030.8652%200.5%2024.5%200.5C18.1348%200.5%2012.0303%203.02856%207.52944%207.52944C3.02856%2012.0303%200.5%2018.1348%200.5%2024.5C0.5%2030.8652%203.02856%2036.9697%207.52944%2041.4706C12.0303%2045.9714%2018.1348%2048.5%2024.5%2048.5ZM27.5%2033.5C27.5%2034.2957%2027.1839%2035.0587%2026.6213%2035.6213C26.0587%2036.1839%2025.2956%2036.5%2024.5%2036.5C23.7044%2036.5%2022.9413%2036.1839%2022.3787%2035.6213C21.8161%2035.0587%2021.5%2034.2957%2021.5%2033.5C21.5%2032.7043%2021.8161%2031.9413%2022.3787%2031.3787C22.9413%2030.8161%2023.7044%2030.5%2024.5%2030.5C25.2956%2030.5%2026.0587%2030.8161%2026.6213%2031.3787C27.1839%2031.9413%2027.5%2032.7043%2027.5%2033.5ZM26.75%2014.75C26.75%2014.1533%2026.5129%2013.581%2026.091%2013.159C25.669%2012.7371%2025.0967%2012.5%2024.5%2012.5C23.9033%2012.5%2023.331%2012.7371%2022.909%2013.159C22.4871%2013.581%2022.25%2014.1533%2022.25%2014.75V25.25C22.25%2025.8467%2022.4871%2026.419%2022.909%2026.841C23.331%2027.2629%2023.9033%2027.5%2024.5%2027.5C25.0967%2027.5%2025.669%2027.2629%2026.091%2026.841C26.5129%2026.419%2026.75%2025.8467%2026.75%2025.25V14.75Z'%20fill='%23489B6D'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_694_3918'%3e%3crect%20width='48'%20height='48'%20fill='white'%20transform='translate(0.5%200.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","\n\n","\n\n\n","export default \"__VITE_ASSET__wOmEtW9b__\"","export default \"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2011.3335C8.18889%2011.3335%208.34733%2011.2695%208.47533%2011.1415C8.60333%2011.0135%208.66711%2010.8553%208.66667%2010.6668V8.00016C8.66667%207.81127%208.60267%207.65305%208.47467%207.5255C8.34667%207.39794%208.18844%207.33394%208%207.3335C7.81111%207.3335%207.65289%207.3975%207.52533%207.5255C7.39778%207.6535%207.33378%207.81172%207.33333%208.00016V10.6668C7.33333%2010.8557%207.39733%2011.0142%207.52533%2011.1422C7.65333%2011.2702%207.81155%2011.3339%208%2011.3335ZM8%206.00016C8.18889%206.00016%208.34733%205.93616%208.47533%205.80816C8.60333%205.68016%208.66711%205.52194%208.66667%205.3335C8.66667%205.14461%208.60267%204.98639%208.47467%204.85883C8.34667%204.73127%208.18844%204.66727%208%204.66683C7.81111%204.66683%207.65289%204.73083%207.52533%204.85883C7.39778%204.98683%207.33378%205.14505%207.33333%205.3335C7.33333%205.52239%207.39733%205.68083%207.52533%205.80883C7.65333%205.93683%207.81155%206.00061%208%206.00016ZM8%2014.6668C7.07778%2014.6668%206.21111%2014.4917%205.4%2014.1415C4.58889%2013.7913%203.88333%2013.3164%203.28333%2012.7168C2.68333%2012.1168%202.20844%2011.4113%201.85867%2010.6002C1.50889%209.78905%201.33378%208.92239%201.33333%208.00016C1.33333%207.07794%201.50844%206.21127%201.85867%205.40016C2.20889%204.58905%202.68378%203.8835%203.28333%203.2835C3.88333%202.6835%204.58889%202.20861%205.4%201.85883C6.21111%201.50905%207.07778%201.33394%208%201.3335C8.92222%201.3335%209.78889%201.50861%2010.6%201.85883C11.4111%202.20905%2012.1167%202.68394%2012.7167%203.2835C13.3167%203.8835%2013.7918%204.58905%2014.142%205.40016C14.4922%206.21127%2014.6671%207.07794%2014.6667%208.00016C14.6667%208.92239%2014.4916%209.78905%2014.1413%2010.6002C13.7911%2011.4113%2013.3162%2012.1168%2012.7167%2012.7168C12.1167%2013.3168%2011.4111%2013.7919%2010.6%2014.1422C9.78889%2014.4924%208.92222%2014.6673%208%2014.6668Z'%20fill='%23489B6D'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__L532ConD__\"","\n\n","export default \"__VITE_ASSET___n73MeCh__\"","\n\n","\n\n","import {createRouter, createWebHistory} from 'vue-router'\nimport PlayPage from '../pages/play/PlayPage.vue'\nimport HomePage from '../pages/home/HomePage.vue'\nimport RankPage from '../pages/rank/RankPage.vue'\nimport DevHomePage from '../event-pages/home/DevHomePage.vue'\n\nconst routes = [\n {\n path: '/',\n component: HomePage,\n },\n {\n path: '/play',\n component: PlayPage,\n },\n {\n path: '/rank',\n component: RankPage,\n },\n {\n path: '/dev',\n component: DevHomePage,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory('/'),\n routes,\n})\n\nexport default router\n","import {createApp} from 'vue'\nimport {createPinia} from 'pinia'\nimport {VueQueryPlugin} from '@tanstack/vue-query'\nimport './style.css'\nimport App from './App.vue'\nimport router from './router'\n\nconst pinia = createPinia()\nconst app = createApp(App)\n\napp.use(pinia)\napp.use(router)\napp.use(VueQueryPlugin)\napp.mount('#app')\n"],"names":["makeMap","str","expectsLowerCase","map","list","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","key","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","looseToNumber","n","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","activeEffectScope","EffectScope","detached","currentEffectScope","fromParent","l","last","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","createDep","effects","dep","wasTracked","trackOpBit","newTracked","initDepMarkers","deps","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","parent","lastShouldTrack","shouldTrack","cleanupEffect","effect2","trackStack","pauseTracking","resetTracking","track","target","type","depsMap","trackEffects","debuggerEventExtraInfo","shouldTrack2","trigger","newValue","oldTarget","newLength","key2","triggerEffects","triggerEffect","getDepFromReactive","object","isNonTrackableKeys","builtInSymbols","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","toRaw","BaseReactiveHandler","_isReadonly","_shallow","receiver","isReadonly2","shallow","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","readonly","reactive","MutableReactiveHandler","isReadonly","isShallow","hadKey","result","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","get","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","has","size","add","set","get2","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","raw","markRaw","trackRefValue","ref2","triggerRefValue","newVal","r","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","useDirectValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","source","defaultValue","ComputedRefImpl","getter","_setter","isSSR","self","computed","getterOrOptions","debugOptions","setter","onlyGetter","callWithErrorHandling","instance","err","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","cb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","a","b","comparator","diff","emit","event","rawArgs","props","modelArg","modifiersKey","number","trim","handlerName","handler","onceHandler","normalizeEmitsOptions","comp","appContext","asMixin","cached","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","options","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","Component","vnode","withProxy","propsOptions","slots","attrs","render","renderCache","data","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","keys","shapeFlag","filterModelListeners","cloneVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","updateHOCHostEl","NULL_DYNAMIC_COMPONENT","isSuspense","queueEffectWithSuspense","suspense","watchEffect","doWatch","watchPostEffect","INITIAL_WATCHER_VALUE","watch","immediate","deep","flush","onTrack","onTrigger","currentInstance","forceTrigger","isMultiSource","isShallow$1","s","traverse","cleanup","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","useSSRContext","queuePostRenderEffect","unwatch","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","path","segments","invokeDirectiveHook","bindings","oldBindings","binding","hook","defineComponent","extraOptions","isAsyncWrapper","isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","hooks","createHook","lifecycle","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","renderList","renderItem","index","renderSlot","fallback","noSlotted","slot","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","Fragment","vnodes","child","isVNode","getPublicInstance","isStatefulComponent","getExposeProxy","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","state","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","descriptor","normalizePropsOrEmits","applyOptions","callHook","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","directives","filters","resolveInjections","methodHandler","opt","createWatcher","provides","provide","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","inject","h","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","isSVG","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","initProps","rawProps","isStateful","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","match","isSameType","expectedTypes","t","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","children","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","isSameVNodeType","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","nextSibling","next","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","mountChildren","setScopeId","unmountChildren","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","subTree","parentVNode","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","updateComponentPreRender","componentUpdateFn","bu","u","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","update","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","doRemove","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","allowed","ch1","ch2","len","arrI","isTeleport","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","style","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","getCurrentInstance","internalSetCurrentInstance","globalCurrentInstanceSetters","settersKey","setupResult","setupStatefulComponent","setup","setupContext","createSetupContext","resolvedResult","handleSetupResult","e","finishComponentSetup","compile","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","getAttrsProxy","computed$1","propsOrChildren","ssrContextKey","svgNS","doc","templateContainer","nodeOps","tag","is","node","selector","content","before","wrapper","vtcKey","patchClass","transitionClasses","vShowOldKey","patchStyle","isCssString","setStyle","currentDisplay","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","isNativeOn","patchProp","shouldSetAsProp","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","rendererOptions","renderer","ensureRenderer","createApp","mount","containerOrSelector","normalizeContainer","isVue2","activePinia","setActivePinia","pinia","piniaSymbol","o","MutationType","createPinia","_p","toBeInstalled","noop","addSubscription","subscriptions","removeSubscription","idx","triggerSubscriptions","fallbackRunWithContext","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","assign","isComputed","createOptionsStore","hot","actions","getters","initialState","store","localState","computedGetters","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","wrapAction","action","afterCallbackList","onErrorCallbackList","after","onError","error","partialStore","stopWatcher","setupStore","actionValue","extender","defineStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","Subscribable","listener","isServer","functionalUpdate","updater","input","isValidTimeout","timeUntilStale","updatedAt","staleTime","matchQuery","query","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","hasObjectPrototype","prot","sleep","ms","resolve","replaceData","prevData","addToEnd","items","max","newItems","addToStart","skipToken","FocusManager","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","focused","isFocused","focusManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","outerResolve","outerReject","cancel","cancelOptions","reject","cancelRetry","continueRetry","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","retry","retryDelay","delay","shouldRetry","createNotifyManager","transactions","notifyFn","batchNotifyFn","scheduleFn","setScheduler","batch","schedule","batchCalls","originalQueue","notifyManager","Removable","_gcTimeout","newGcTime","Query","_setOptions","_dispatch","_initialState","_revertState","_cache","_promise","_retryer","_observers","_defaultOptions","_abortSignalConsumed","__privateMethod","setOptions_fn","getDefaultState","newData","dispatch_fn","setStateOptions","observer","x","fetchOptions","abortController","queryFnContext","addSignalProperty","fetchFn","_b","_c","_d","reducer","hasData","initialDataUpdatedAt","QueryCache","_queries","client","queryHash","queryInMap","defaultedFilters","queries","Mutation","_mutationCache","variables","executeMutation","restored","_f","_e","_h","_g","_j","_i","_l","_k","_n","_m","_o","_r","_q","_t","_s","MutationCache","_mutations","_mutationId","_resuming","__privateWrapper","pausedMutations","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","empty","cancelled","queryFn","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","hasNextPage","hasPreviousPage","QueryClient","_queryCache","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","cachedData","defaultedOptions","queryCache","refetchFilters","defaultedCancelOptions","promises","defaults","queryDefault","QueryObserver","_executeFetch","_updateStaleTimeout","_computeRefetchInterval","_updateRefetchInterval","_updateTimers","_clearStaleTimeout","_clearRefetchInterval","_updateQuery","_notify","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","updateQuery_fn","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","prevResult","prevResultState","prevResultOptions","queryInitialState","errorUpdatedAt","isPlaceholderData","fetchOnMount","fetchOptionally","selectError","placeholderData","isFetching","isPending","isError","isLoading","isStale","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","timeout","nextInterval","shouldLoadOnMount","field","optimisticResult","InfiniteQueryObserver","isRefetching","isFetchingNextPage","isFetchingPreviousPage","MutationObserver","_updateResult","_currentMutation","_mutateOptions","updateResult_fn","VUE_QUERY_CLIENT","getClientKey","suffix","updateState","cloneDeep","customize","cloneDeepUnref","prototype","shouldThrowError","throwOnError","params","useQueryClient","queryClient","QC","MC","vueQueryConfig","VueQueryPlugin","clientKey","clientConfig","persisterUnmount","originalUnmount","useBaseQuery","Observer","clonedOptions","defaulted","unsubscribe","isRestoring","refetch","stopWatch","useInfiniteQuery","useMutation","mutationOptions","mutate","mutateOptions","resultRefs","isBrowser","isESModule","applyToParams","newParams","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","location","currentLocation","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","position","toPosition","segment","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","pauseListeners","listen","teardown","beforeUnloadListener","history","destroy","buildState","back","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","score","pattern","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re","subPattern","parse","stringify","avoidDuplicatedSlash","compareScoreArray","comparePathParserScore","aScore","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","isRecordChildOf","paramsFromLocation","k","matched","parentMatcher","mergeMetaFields","normalizeRecordProps","propsObject","meta","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","reset","guardToPromiseFn","guard","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","link","elClass","getLinkClass","RouterLink","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","injectedDepth","depth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","currentName","ViewComponent","routePropsOption","routeProps","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","runWithContext","installedApps","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","isReady","scrollBehavior","started","reactiveRoute","unmountApp","recordFrom","recordTo","useRouter","_sfc_render","_ctx","_openBlock","_createElementBlock","_hoisted_1","n3","n4","n5","n6","n7","n8","n9","n10","__props","Block","block","gameOver","replay","home","gameOverZzio","f","clsx","falsyToString","cx","cva","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","getCompoundVariantClassNames","param1","cvClass","cvClassName","compoundVariantOptions","rankBanner","coinSm","giftZzio","arrow","bind","toString","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","isNumber","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","forEach","allOwnKeys","findKey","_global","isContextDefined","merge","caseless","assignValue","targetKey","stripBOM","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","endsWith","toArray","isTypedArray","TypedArray","forEachEntry","iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","ALPHA","DIGIT","ALPHABET","generateString","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","utils$1","AxiosError","code","request","response","utils","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","deleted","deleteHeader","format","targets","asStrings","first","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","isCancel","CanceledError","settle","validateStatus","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","isXHRAdapterSupported","xhrAdapter","requestData","requestHeaders","responseType","withXSRFToken","onCanceled","username","password","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","protocol","knownAdapters","renderReason","reason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","desc","opts","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","CancelToken$1","spread","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","axios","axios$1","zaxios","postRank","usePostRank","rank","userId","isOpen","heightRef","coin","factory","module","this","modules","installedModules","__webpack_require__","moduleId","exports","mode","ns","property","Common","argsStart","deepClone","begin","parts","temp","choices","_seededRandom","colorString","warning","haystack","needle","func","graph","visited","neighbors","neighbor","funcs","lastResult","decomp","global","Bounds","vertices","bounds","velocity","vertex","point","boundsA","boundsB","vector","deltaX","deltaY","Vector","y","angle","output","cos","sin","magnitude","vectorA","vectorB","vectorC","scalar","negate","Vertices","points","body","pathPattern","area","centre","cross","average","signed","mass","numerator","denominator","verticesLength","translateX","translateY","pointX","pointY","dx","dy","nextVertex","scaleX","scaleY","radius","quality","qualityMin","qualityMax","newVertices","prevVertex","currentRadius","prevNormal","nextNormal","diagonalRadius","radiusVector","midNormal","scaledVertex","precision","alpha","theta","vertexA","vertexB","z","upper","lower","Body","Sleeping","Axes","_initProperties","isNonColliding","defaultFillStyle","defaultStrokeStyle","defaultLineWidth","settings","isStatic","part","moment","density","inertia","autoHull","hull","hullCentre","relative","updateVelocity","timeScale","speed","translation","rotation","totalArea","totalInertia","deltaTime","deltaTimeSquared","correction","frictionAir","velocityPrevX","velocityPrevY","bodyVelocity","properties","Events","eventNames","names","callbacks","newCallbacks","eventClone","events","Composite","composite","isModified","updateParents","updateChildren","childComposite","objects","compositeA","compositeB","constraint","keepStatic","bodies","constraints","composites","recursive","motionSleepThreshold","angularSpeed","motion","minMotion","maxMotion","pairs","collision","bodyA","bodyB","sleepingBody","movingBody","isSleeping","wasSleeping","Collision","Pair","_supports","_overlapAB","_overlapBA","minOverlap","normal","supports","minAxis","minAxisX","minAxisY","supportsB","supportCount","supportsA","verticesA","verticesB","axes","verticesALength","verticesBLength","verticesAX","verticesAY","verticesBX","verticesBY","axesLength","overlapMin","overlapAxisNumber","overlap","overlapAB","overlapBA","dot","axis","axisX","axisY","minA","minB","maxA","maxB","projection","bodyAPositionX","bodyAPositionY","normalX","normalY","nearestDistance","vertexC","distance","Contact","timestamp","contacts","activeContacts","parentA","parentB","parentAVerticesLength","support","contactId","contact","Constraint","initialPointA","initialPointB","impulse","fixedA","fixedB","pointA","pointB","pointAWorld","pointBWorld","currentLength","difference","isRigid","stiffness","damping","massTotal","inertiaTotal","resistanceTotal","torque","share","normalVelocity","relativeVelocity","zero","gradient","xx","Bodies","width","height","rectangle","chamfer","slope","roof","x1","x2","x3","verticesPath","trapezoid","maxSides","circle","sides","yy","polygon","vertexSets","flagInternal","removeCollinear","minimumArea","removeDuplicatePoints","canDecomp","isConvex","isConcave","concave","decomposed","chunk","chunkVertices","coincident_max_dist","partA","partB","pav","pbv","da","db","Detector","detector","collisions","bodiesLength","canCollide","collides","boundXMax","boundYMax","boundYMin","bodyAStatic","partsALength","partsASingle","partsBLength","partsAStart","partsBStart","filterA","filterB","Mouse","element","mouse","touches","scale","pixelRatio","elementBounds","rootNode","scrollX","scrollY","Plugin","registered","pluginVersion","registeredVersion","dependency","plugins","dependencies","sortedDependencies","tracked","parsedBase","range","major","minor","Engine","Resolver","Pairs","engine","startTime","world","timing","allBodies","allConstraints","positionDamping","engineA","engineB","gravity","gravityScale","activeCount","pairsLength","contactShare","positionImpulse","positionDampen","slopDampen","positionWarming","verticesTranslate","boundsUpdate","positionImpulseX","positionImpulseY","contactsLength","tangent","contactVertex","normalImpulse","tangentImpulse","impulseX","impulseY","timeScaleSquared","timeScaleCubed","restingThresh","restingThreshTangent","frictionNormalMultiplier","frictionMaxStatic","maxFriction","bodyAVelocity","bodyBVelocity","tangentX","tangentY","inverseMassTotal","friction","offsetAX","offsetAY","offsetBX","offsetBY","velocityPointAX","velocityPointAY","velocityPointBX","velocityPointBY","relativeVelocityX","relativeVelocityY","tangentVelocity","normalOverlap","normalForce","frictionLimit","oAcN","oBcN","contactNormalImpulse","contactTangentImpulse","pairsList","pairsListLength","pairsTable","collisionsLength","collisionStart","collisionEnd","collisionActive","pairIndex","removePairIndex","Matter","Composites","deprecated","columns","rows","columnGap","rowGap","lastBody","row","maxHeight","column","bodyHeight","bodyWidth","xOffsetA","yOffsetA","xOffsetB","yOffsetB","bodyAHeight","bodyAWidth","bodyBHeight","bodyBWidth","crossBrace","col","bodyC","actualRows","lastBodyWidth","xOffset","newtonsCradle","separation","wheelSize","group","wheelBase","wheelAOffset","wheelBOffset","wheelYOffset","car","wheelA","wheelB","axelA","axelB","particleRadius","particleOptions","constraintOptions","softBody","Grid","grid","forceUpdate","buckets","bucket","bucketId","gridChanged","newRegion","union","isInsideNewRegion","isInsideOldRegion","regionA","regionB","startCol","endCol","startRow","endRow","gridPairs","pairId","bucketLength","pairKeys","pairKeysLength","MouseConstraint","mouseConstraint","mouseEvents","overlaps","startPoint","endPoint","rayWidth","rayAngle","rayLength","rayX","rayY","ray","outside","Render","_requestAnimationFrame","_cancelAnimationFrame","_createCanvas","loop","time","_updateTiming","canvas","_getPixelRatio","padding","center","viewHeight","viewWidth","outerRatio","innerRatio","boundsWidth","boundsHeight","boundsScaleX","boundsScaleY","background","_applyBackground","sections","section","deltaHistory","elapsedHistory","timestampElapsedHistory","engineDeltaHistory","engineElapsedHistory","lastEngineDelta","deltaMean","_mean","elapsedMean","engineDeltaMean","engineElapsedMean","timestampElapsedMean","rateMean","fps","graphHeight","gap","count","label","indicator","plotY","coils","showInternalEdges","sprite","texture","_getTexture","normalPosX","normalPosY","inspector","selected","historySize","devicePixelRatio","backingStorePixelRatio","imagePath","image","cssBackground","Runner","_frameTimeout","runner","SAT","Svg","sampleLength","il","segmentsQueue","lastSegment","lastPoint","segmentIndex","lx","ly","addPoint","px","py","pathSegType","isRelative","addSegmentPoint","segType","x0","y0","y1","y2","segs","seg","World","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","lineColor","blocks","Background","ratio","getBlockIndex","_count","RATIO","getDynamicCanvasHeight","setField","bottom","left","right","useTimer","limit","interval","usePlayer","groundHeightRef","isSetBlock","totalBlockCount","canvasOffsetX","gameOverRef","nextBlockRef","scoreRef","setNextBlock","addBlock","onDrag","drop","addCollisions","newBlock","removeCollisions","endGame","setLineCollisionTimer","_hoisted_3","_createElementVNode","_hoisted_2","_hoisted_4","useUserStore","playBackground","userStore","goBack","goRank","zzioGame","title$1","illustration","github","beta","titleRef","textRef","__emit","filled","onInupt","closedRef","onClickPlay","onClickRank","labelLine","medalZzio","medal1","medal2","medal3","medal4","getRank","useGetInfiniteRank","date","pageParam","lastPage","OFFSET","fetchNextPage","totalCountRef","winner","showUpButton","isStarted","onScroll","offsetHeight","scrollTop","scrollHeight","isEnd","scrollUp","title","event$1","remainingTime","remainingDays","formattedTime","hours","minutes","seconds","currentRef","isOpenRef","closeTime","HomePage","PlayPage","RankPage","DevHomePage","App"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,48,49,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,104]} \ No newline at end of file diff --git a/index.html b/index.html index f926810..d61c44d 100644 --- a/index.html +++ b/index.html @@ -22,7 +22,7 @@ - +