From 5676aaf37841d0b069dc1fe888228a3929d49337 Mon Sep 17 00:00:00 2001 From: Brian Beck Date: Wed, 8 Apr 2026 23:48:42 -0700 Subject: [PATCH] add cloudflare deploy --- .github/workflows/deploy-cloudflare.yml | 39 +++++++++++++++++++ ...r-CJMuEzA2.js => AudioEmitter-3VHhCc7Y.js} | 2 +- ...r-BGkO8Fbs.js => AudioEmitter-DaFPiGOy.js} | 2 +- ...nput-B3JiLpoF.js => ChatInput-CpChuNkg.js} | 2 +- ...uKG-RWU.js => ChatSoundPlayer-D3K8GxX-.js} | 2 +- ...Za.js => DemoPlaybackControls-CwlogtTb.js} | 2 +- ...CFtLb8wO.js => ExplosionShape-DH_M7uUx.js} | 2 +- ...C_w3CfiW.js => ForceFieldBare-CIwodqfs.js} | 2 +- ...eView-DDyKEtZP.js => GameView-Bie98edJ.js} | 6 +-- ...NIHVGaH.js => KeyboardOverlay-mMSQ0ePd.js} | 2 +- ...-DlTvQpC9.js => MapInfoDialog-DSwIQB7a.js} | 2 +- ...ission-RZOaitqM.js => Mission-BRZHUO2H.js} | 2 +- ...rHUD-oFKWuzte.js => PlayerHUD-CuRF2gd3.js} | 4 +- ...el-Kcb6K1_s.js => PlayerModel-8dF8wZN2.js} | 2 +- ...el-D8NLwrT8.js => PlayerModel-D6m6HpJF.js} | 4 +- ...es-D417zqjU.js => Projectiles-CWChdCSv.js} | 2 +- ...en-Di92fTHh.js => ScoreScreen-BnLWM4r1.js} | 2 +- ...-DlvPvTfO.js => ServerBrowser-CL7giwqp.js} | 2 +- ...AIE.js => StreamingController-CEWgeQUH.js} | 2 +- ...r-C-XYcmBd.js => TouchHandler-BYqo6IGL.js} | 2 +- ...ock-BoR_edBt.js => WaterBlock-DV6neJfD.js} | 2 +- ...-VZXXHEQr.js => demoStreaming-BFlLHKkt.js} | 2 +- .../{index-BnXbiEzA.js => index-BZ0wFa-D.js} | 6 +-- docs/assets/loaders-5n1D4iOD.js | 1 + docs/assets/loaders-B4T775qz.js | 1 - ...-DjmjN4tv.js => playbackUtils-DuS6opSR.js} | 2 +- docs/index.html | 10 ++--- package.json | 1 + src/components/PlayerModel.tsx | 4 +- src/loaders.ts | 5 +-- vite.config.ts | 4 +- 31 files changed, 82 insertions(+), 41 deletions(-) create mode 100644 .github/workflows/deploy-cloudflare.yml rename docs/assets/{AudioEmitter-CJMuEzA2.js => AudioEmitter-3VHhCc7Y.js} (99%) rename docs/assets/{AudioEmitter-BGkO8Fbs.js => AudioEmitter-DaFPiGOy.js} (83%) rename docs/assets/{ChatInput-B3JiLpoF.js => ChatInput-CpChuNkg.js} (93%) rename docs/assets/{ChatSoundPlayer-BuKG-RWU.js => ChatSoundPlayer-D3K8GxX-.js} (89%) rename docs/assets/{DemoPlaybackControls-ByWxYIZa.js => DemoPlaybackControls-CwlogtTb.js} (97%) rename docs/assets/{ExplosionShape-CFtLb8wO.js => ExplosionShape-DH_M7uUx.js} (97%) rename docs/assets/{ForceFieldBare-C_w3CfiW.js => ForceFieldBare-CIwodqfs.js} (98%) rename docs/assets/{GameView-DDyKEtZP.js => GameView-Bie98edJ.js} (98%) rename docs/assets/{KeyboardOverlay-8NIHVGaH.js => KeyboardOverlay-mMSQ0ePd.js} (99%) rename docs/assets/{MapInfoDialog-DlTvQpC9.js => MapInfoDialog-DSwIQB7a.js} (98%) rename docs/assets/{Mission-RZOaitqM.js => Mission-BRZHUO2H.js} (98%) rename docs/assets/{PlayerHUD-oFKWuzte.js => PlayerHUD-CuRF2gd3.js} (96%) rename docs/assets/{PlayerModel-Kcb6K1_s.js => PlayerModel-8dF8wZN2.js} (61%) rename docs/assets/{PlayerModel-D8NLwrT8.js => PlayerModel-D6m6HpJF.js} (86%) rename docs/assets/{Projectiles-D417zqjU.js => Projectiles-CWChdCSv.js} (97%) rename docs/assets/{ScoreScreen-Di92fTHh.js => ScoreScreen-BnLWM4r1.js} (99%) rename docs/assets/{ServerBrowser-DlvPvTfO.js => ServerBrowser-CL7giwqp.js} (98%) rename docs/assets/{StreamingController-mmR1lAIE.js => StreamingController-CEWgeQUH.js} (98%) rename docs/assets/{TouchHandler-C-XYcmBd.js => TouchHandler-BYqo6IGL.js} (95%) rename docs/assets/{WaterBlock-BoR_edBt.js => WaterBlock-DV6neJfD.js} (99%) rename docs/assets/{demoStreaming-VZXXHEQr.js => demoStreaming-BFlLHKkt.js} (99%) rename docs/assets/{index-BnXbiEzA.js => index-BZ0wFa-D.js} (99%) create mode 100644 docs/assets/loaders-5n1D4iOD.js delete mode 100644 docs/assets/loaders-B4T775qz.js rename docs/assets/{playbackUtils-DjmjN4tv.js => playbackUtils-DuS6opSR.js} (99%) diff --git a/.github/workflows/deploy-cloudflare.yml b/.github/workflows/deploy-cloudflare.yml new file mode 100644 index 00000000..df7830db --- /dev/null +++ b/.github/workflows/deploy-cloudflare.yml @@ -0,0 +1,39 @@ +name: Deploy to Cloudflare Pages + +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: ubuntu-latest + permissions: + contents: read + deployments: write + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + + - run: npm ci + + - run: npm run build + env: + RELAY_URL: ${{ secrets.RELAY_URL }} + LOG_LEVEL: ${{ secrets.LOG_LEVEL }} + + - uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + command: pages project create t2-mapper --production-branch=main + continue-on-error: true + + - uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + command: pages deploy docs --project-name=t2-mapper diff --git a/docs/assets/AudioEmitter-CJMuEzA2.js b/docs/assets/AudioEmitter-3VHhCc7Y.js similarity index 99% rename from docs/assets/AudioEmitter-CJMuEzA2.js rename to docs/assets/AudioEmitter-3VHhCc7Y.js index 913704ad..1258b234 100644 --- a/docs/assets/AudioEmitter-CJMuEzA2.js +++ b/docs/assets/AudioEmitter-3VHhCc7Y.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,s as a}from"./react-three-fiber.esm-El6vNTZj.js";import{t as o}from"./Html-CXAi5FD_.js";import{a as s,c,i as l,o as u}from"./SettingsProvider-BdqQ2Cm4.js";import{Wt as d,c as f,l as p,u as m,xt as h}from"./three.module-DKAirPAO.js";import{r as g}from"./loaders-B4T775qz.js";import{t as _}from"./logger-B058WGzf.js";import{r as v}from"./engineStore-B1KAgiiF.js";import{r as y}from"./cameraTourStore-CtH3IrnD.js";import{n as b}from"./DebugBounds-CZKrvsAw.js";var x={Label:`_Label_12q7d_1`},S=t(),C=e(n(),1),w=r(),T=[0,0,0],E=new d;function D(e,t,n,r){let i=e.matrixWorld.elements;return(t-i[12])*-i[8]+(n-i[13])*-i[9]+(r-i[14])*-i[10]<0}var O=200;function k(e){let t=(0,S.c)(9),n;t[0]===e?n=t[1]:(n=e===void 0?{}:e,t[0]=e,t[1]=n);let{opacity:r,fadeDistance:a}=n,o=r===void 0?`fadeWithDistance`:r,s=a===void 0?O:a,c=o===`fadeWithDistance`,l=(0,C.useRef)(null),[u,d]=(0,C.useState)(o!==0),f=(0,C.useRef)(`0`),p;t[2]!==s||t[3]!==c||t[4]!==u||t[5]!==o?(p=e=>{let{camera:t}=e,n=l.current;if(!n)return;n.getWorldPosition(E);let r=D(t,E.x,E.y,E.z);if(c){let e=r?1/0:t.position.distanceTo(E),n=e{g.current&&(g.current.style.opacity=h.current)},t[3]=h,t[4]=_),i(_);let v;t[5]!==n||t[6]!==l||t[7]!==m||t[8]!==u?(v=m?(0,w.jsx)(o,{position:u,center:!0,children:(0,w.jsx)(`div`,{ref:g,className:x.Label,style:{color:l},children:n})}):null,t[5]=n,t[6]=l,t[7]=m,t[8]=u,t[9]=v):v=t[9];let y;return t[10]!==p||t[11]!==v?(y=(0,w.jsx)(`group`,{ref:p,children:v}),t[10]=p,t[11]=v,t[12]=y):y=t[12],y}),j=(0,C.createContext)(void 0);function M(e){let t=(0,S.c)(11),{children:n}=e,r=a(F),{audioVolume:i}=s(),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o={audioLoader:null,audioListener:null},t[0]=o):o=t[0];let[c,l]=(0,C.useState)(o),u,d;t[1]===r?(u=t[2],d=t[3]):(u=()=>{let e=new m,t=r.children.find(P);t||(t=new p,r.add(t)),l({audioLoader:e,audioListener:t});let n=()=>{let e=t.context;!e||e.state!==`suspended`||e.resume().finally(()=>{document.removeEventListener(`click`,n),document.removeEventListener(`keydown`,n),document.removeEventListener(`touchend`,n)})};document.addEventListener(`click`,n),document.addEventListener(`keydown`,n),document.addEventListener(`touchend`,n);let i=v.subscribe(N,e=>{let n=t.context;n&&(e===`paused`?n.suspend():n.state===`suspended`&&n.resume())});return()=>{document.removeEventListener(`click`,n),document.removeEventListener(`keydown`,n),document.removeEventListener(`touchend`,n),i(),t&&r.remove(t)}},d=[r],t[1]=r,t[2]=u,t[3]=d),(0,C.useEffect)(u,d);let f,h;t[4]!==c.audioListener||t[5]!==i?(f=()=>{c.audioListener?.setMasterVolume(i)},h=[i,c.audioListener],t[4]=c.audioListener,t[5]=i,t[6]=f,t[7]=h):(f=t[6],h=t[7]),(0,C.useEffect)(f,h);let g;return t[8]!==c||t[9]!==n?(g=(0,w.jsx)(j.Provider,{value:c,children:n}),t[8]=c,t[9]=n,t[10]=g):g=t[10],g}function N(e){return e.playback.status}function P(e){return e instanceof p}function F(e){return e.camera}function I(){let e=(0,C.useContext)(j);if(e===void 0)throw Error(`useAudio must be used within AudioProvider`);return e}var L=_(`AudioEmitter`),R=new Map,z=new Map;c(e=>{let t=v.getState().playback.rate;for(let[n,r]of z)try{n.setPlaybackRate(r*(e?t:1))}catch{}});function B(e,t=1){z.set(e,t)}function V(e){z.delete(e)}var H=0;function U(){return H}function W(){H++;for(let[e]of z){try{e.stop()}catch{}try{e.disconnect()}catch{}}z.clear()}v.subscribe(e=>e.playback.rate,e=>{for(let[t,n]of z)try{t.setPlaybackRate(n*(u()?e:1))}catch{}});function G(e,t){let n=t(e),r=n?.filename;if(!r)return null;let i=r.endsWith(`.wav`)?r:`${r}.wav`,a=n.description,o=a==null?void 0:t(a);return{filename:i,is3D:o?.is3D??!0,isLooping:o?.isLooping??!1,refDist:o?.referenceDistance??20,maxDist:o?.maxDistance??100,volume:o?.volume??1}}function K(e,t,n,r,i){let a;try{a=g(e.filename)}catch{return}let o=v.getState().playback.rate,s=H;q(a,n,n=>{if(s===H)try{if(e.is3D&&i){let a=new h(t);a.setBuffer(n),a.setDistanceModel(`inverse`),a.setRefDistance(e.refDist),a.setMaxDistance(e.maxDist),a.setRolloffFactor(1),a.setVolume(e.volume),a.setPlaybackRate(u()?o:1),r&&a.position.copy(r),i.add(a),z.set(a,1),a.play(),a.source.onended=()=>{z.delete(a);try{a.disconnect()}catch{}i.remove(a)}}else{let r=new f(t);r.setBuffer(n),r.setVolume(e.volume),r.setPlaybackRate(u()?o:1),z.set(r,1),r.play(),r.source.onended=()=>{z.delete(r);try{r.disconnect()}catch{}}}}catch{}})}function q(e,t,n){R.has(e)?n(R.get(e)):t.load(e,t=>{R.set(e,t),n(t)},void 0,t=>{L.error(`Audio load error %s: %o`,e,t)})}var J=(0,C.memo)(function({entity:e}){let{debugMode:t}=l(),n=e.audioFileName??``,r=e.audioVolume??1,o=e.audioMinDistance??1,c=e.audioMaxDistance??1,u=e.audioMinLoopGap??0,p=e.audioMaxLoopGap??0,m=e.audioIs3D??!0?1:0,_=e.audioIsLooping??!0,[v,x,S]=e.position??[0,0,0],T=a(e=>e.scene),E=a(e=>e.camera),{audioLoader:D,audioListener:O}=I(),{audioEnabled:k}=s(),j=(0,C.useRef)(null),M=(0,C.useRef)(null),N=(0,C.useRef)(null),P=(0,C.useRef)(!1),F=(0,C.useRef)(!1),L=(0,C.useRef)(new d(v,x,S)),R=(0,C.useRef)(0),z=()=>{M.current!=null&&(clearTimeout(M.current),M.current=null),N.current!=null&&(clearTimeout(N.current),N.current=null)},[B]=(0,C.useState)(()=>Math.random());(0,C.useEffect)(()=>{if(!D||!O)return;R.current++;let e;if(m){let t=new h(O);t.position.copy(L.current),t.setDistanceModel(`inverse`),t.setRefDistance(o),t.setMaxDistance(c),t.setRolloffFactor(1),t.setVolume(r),e=t,T.add(e)}else e=new f(O),e.setVolume(r);return j.current=e,()=>{z();try{e.stop()}catch{}try{e.disconnect()}catch{}m&&T.remove(e),j.current=null,P.current=!1,F.current=!1}},[D,O,m,o,c,r,T]);let V=(e,t)=>{if(_)if(u>0||p>0){let n=Math.max(0,u),r=Math.max(n,p),i=n===r?n:B*(r-n)+n;e.loop=!1;let a=()=>{t===R.current&&(e.isPlaying===!1?M.current=setTimeout(()=>{if(t===R.current)try{e.play(),V(e,t)}catch{}},i):N.current=setTimeout(a,100))};N.current=setTimeout(a,100)}else e.setLoop(!0)},H=(0,C.useEffectEvent)(e=>{if(!D)return;let t=R.current;if(P.current)try{e.isPlaying||(e.play(),V(e,t))}catch{}else{let r;try{r=g(n)}catch{return}q(r,D,n=>{if(t===R.current&&!e.buffer){e.setBuffer(n),P.current=!0;try{e.play(),V(e,t)}catch{}}})}});(0,C.useEffect)(()=>{let e=j.current;!e||m||!k||!n||H(e)},[k,m,n,D,O]),i(()=>{let e=j.current;if(!e||!m||!k||!n)return;let t=E.position.distanceTo(L.current),r=F.current,i=t<=c;if(i&&!r)F.current=!0,H(e);else if(!i&&r){F.current=!1,z();try{e.stop()}catch{}}}),(0,C.useEffect)(()=>{let e=j.current;if(e&&!k){z();try{e.stop()}catch{}F.current=!1}},[k]);let U=y(e.id);return(0,w.jsxs)(w.Fragment,{children:[t&&(0,w.jsxs)(`mesh`,{position:L.current,children:[(0,w.jsx)(`sphereGeometry`,{args:[o,12,12]}),(0,w.jsx)(`meshBasicMaterial`,{color:`#00ff00`,wireframe:!0,opacity:.05,transparent:!0,toneMapped:!1}),(0,w.jsx)(A,{color:`#00ff00`,position:[0,o+1,0],children:n})]}),U&&(0,w.jsx)(b,{radius:1.5})]})});export{K as a,B as c,I as d,A as f,U as i,V as l,R as n,G as o,k as p,q as r,W as s,J as t,M as u}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,s as a}from"./react-three-fiber.esm-El6vNTZj.js";import{t as o}from"./Html-CXAi5FD_.js";import{a as s,c,i as l,o as u}from"./SettingsProvider-BdqQ2Cm4.js";import{Wt as d,c as f,l as p,u as m,xt as h}from"./three.module-DKAirPAO.js";import{r as g}from"./loaders-5n1D4iOD.js";import{t as _}from"./logger-B058WGzf.js";import{r as v}from"./engineStore-B1KAgiiF.js";import{r as y}from"./cameraTourStore-CtH3IrnD.js";import{n as b}from"./DebugBounds-CZKrvsAw.js";var x={Label:`_Label_12q7d_1`},S=t(),C=e(n(),1),w=r(),T=[0,0,0],E=new d;function D(e,t,n,r){let i=e.matrixWorld.elements;return(t-i[12])*-i[8]+(n-i[13])*-i[9]+(r-i[14])*-i[10]<0}var O=200;function k(e){let t=(0,S.c)(9),n;t[0]===e?n=t[1]:(n=e===void 0?{}:e,t[0]=e,t[1]=n);let{opacity:r,fadeDistance:a}=n,o=r===void 0?`fadeWithDistance`:r,s=a===void 0?O:a,c=o===`fadeWithDistance`,l=(0,C.useRef)(null),[u,d]=(0,C.useState)(o!==0),f=(0,C.useRef)(`0`),p;t[2]!==s||t[3]!==c||t[4]!==u||t[5]!==o?(p=e=>{let{camera:t}=e,n=l.current;if(!n)return;n.getWorldPosition(E);let r=D(t,E.x,E.y,E.z);if(c){let e=r?1/0:t.position.distanceTo(E),n=e{g.current&&(g.current.style.opacity=h.current)},t[3]=h,t[4]=_),i(_);let v;t[5]!==n||t[6]!==l||t[7]!==m||t[8]!==u?(v=m?(0,w.jsx)(o,{position:u,center:!0,children:(0,w.jsx)(`div`,{ref:g,className:x.Label,style:{color:l},children:n})}):null,t[5]=n,t[6]=l,t[7]=m,t[8]=u,t[9]=v):v=t[9];let y;return t[10]!==p||t[11]!==v?(y=(0,w.jsx)(`group`,{ref:p,children:v}),t[10]=p,t[11]=v,t[12]=y):y=t[12],y}),j=(0,C.createContext)(void 0);function M(e){let t=(0,S.c)(11),{children:n}=e,r=a(F),{audioVolume:i}=s(),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o={audioLoader:null,audioListener:null},t[0]=o):o=t[0];let[c,l]=(0,C.useState)(o),u,d;t[1]===r?(u=t[2],d=t[3]):(u=()=>{let e=new m,t=r.children.find(P);t||(t=new p,r.add(t)),l({audioLoader:e,audioListener:t});let n=()=>{let e=t.context;!e||e.state!==`suspended`||e.resume().finally(()=>{document.removeEventListener(`click`,n),document.removeEventListener(`keydown`,n),document.removeEventListener(`touchend`,n)})};document.addEventListener(`click`,n),document.addEventListener(`keydown`,n),document.addEventListener(`touchend`,n);let i=v.subscribe(N,e=>{let n=t.context;n&&(e===`paused`?n.suspend():n.state===`suspended`&&n.resume())});return()=>{document.removeEventListener(`click`,n),document.removeEventListener(`keydown`,n),document.removeEventListener(`touchend`,n),i(),t&&r.remove(t)}},d=[r],t[1]=r,t[2]=u,t[3]=d),(0,C.useEffect)(u,d);let f,h;t[4]!==c.audioListener||t[5]!==i?(f=()=>{c.audioListener?.setMasterVolume(i)},h=[i,c.audioListener],t[4]=c.audioListener,t[5]=i,t[6]=f,t[7]=h):(f=t[6],h=t[7]),(0,C.useEffect)(f,h);let g;return t[8]!==c||t[9]!==n?(g=(0,w.jsx)(j.Provider,{value:c,children:n}),t[8]=c,t[9]=n,t[10]=g):g=t[10],g}function N(e){return e.playback.status}function P(e){return e instanceof p}function F(e){return e.camera}function I(){let e=(0,C.useContext)(j);if(e===void 0)throw Error(`useAudio must be used within AudioProvider`);return e}var L=_(`AudioEmitter`),R=new Map,z=new Map;c(e=>{let t=v.getState().playback.rate;for(let[n,r]of z)try{n.setPlaybackRate(r*(e?t:1))}catch{}});function B(e,t=1){z.set(e,t)}function V(e){z.delete(e)}var H=0;function U(){return H}function W(){H++;for(let[e]of z){try{e.stop()}catch{}try{e.disconnect()}catch{}}z.clear()}v.subscribe(e=>e.playback.rate,e=>{for(let[t,n]of z)try{t.setPlaybackRate(n*(u()?e:1))}catch{}});function G(e,t){let n=t(e),r=n?.filename;if(!r)return null;let i=r.endsWith(`.wav`)?r:`${r}.wav`,a=n.description,o=a==null?void 0:t(a);return{filename:i,is3D:o?.is3D??!0,isLooping:o?.isLooping??!1,refDist:o?.referenceDistance??20,maxDist:o?.maxDistance??100,volume:o?.volume??1}}function K(e,t,n,r,i){let a;try{a=g(e.filename)}catch{return}let o=v.getState().playback.rate,s=H;q(a,n,n=>{if(s===H)try{if(e.is3D&&i){let a=new h(t);a.setBuffer(n),a.setDistanceModel(`inverse`),a.setRefDistance(e.refDist),a.setMaxDistance(e.maxDist),a.setRolloffFactor(1),a.setVolume(e.volume),a.setPlaybackRate(u()?o:1),r&&a.position.copy(r),i.add(a),z.set(a,1),a.play(),a.source.onended=()=>{z.delete(a);try{a.disconnect()}catch{}i.remove(a)}}else{let r=new f(t);r.setBuffer(n),r.setVolume(e.volume),r.setPlaybackRate(u()?o:1),z.set(r,1),r.play(),r.source.onended=()=>{z.delete(r);try{r.disconnect()}catch{}}}}catch{}})}function q(e,t,n){R.has(e)?n(R.get(e)):t.load(e,t=>{R.set(e,t),n(t)},void 0,t=>{L.error(`Audio load error %s: %o`,e,t)})}var J=(0,C.memo)(function({entity:e}){let{debugMode:t}=l(),n=e.audioFileName??``,r=e.audioVolume??1,o=e.audioMinDistance??1,c=e.audioMaxDistance??1,u=e.audioMinLoopGap??0,p=e.audioMaxLoopGap??0,m=e.audioIs3D??!0?1:0,_=e.audioIsLooping??!0,[v,x,S]=e.position??[0,0,0],T=a(e=>e.scene),E=a(e=>e.camera),{audioLoader:D,audioListener:O}=I(),{audioEnabled:k}=s(),j=(0,C.useRef)(null),M=(0,C.useRef)(null),N=(0,C.useRef)(null),P=(0,C.useRef)(!1),F=(0,C.useRef)(!1),L=(0,C.useRef)(new d(v,x,S)),R=(0,C.useRef)(0),z=()=>{M.current!=null&&(clearTimeout(M.current),M.current=null),N.current!=null&&(clearTimeout(N.current),N.current=null)},[B]=(0,C.useState)(()=>Math.random());(0,C.useEffect)(()=>{if(!D||!O)return;R.current++;let e;if(m){let t=new h(O);t.position.copy(L.current),t.setDistanceModel(`inverse`),t.setRefDistance(o),t.setMaxDistance(c),t.setRolloffFactor(1),t.setVolume(r),e=t,T.add(e)}else e=new f(O),e.setVolume(r);return j.current=e,()=>{z();try{e.stop()}catch{}try{e.disconnect()}catch{}m&&T.remove(e),j.current=null,P.current=!1,F.current=!1}},[D,O,m,o,c,r,T]);let V=(e,t)=>{if(_)if(u>0||p>0){let n=Math.max(0,u),r=Math.max(n,p),i=n===r?n:B*(r-n)+n;e.loop=!1;let a=()=>{t===R.current&&(e.isPlaying===!1?M.current=setTimeout(()=>{if(t===R.current)try{e.play(),V(e,t)}catch{}},i):N.current=setTimeout(a,100))};N.current=setTimeout(a,100)}else e.setLoop(!0)},H=(0,C.useEffectEvent)(e=>{if(!D)return;let t=R.current;if(P.current)try{e.isPlaying||(e.play(),V(e,t))}catch{}else{let r;try{r=g(n)}catch{return}q(r,D,n=>{if(t===R.current&&!e.buffer){e.setBuffer(n),P.current=!0;try{e.play(),V(e,t)}catch{}}})}});(0,C.useEffect)(()=>{let e=j.current;!e||m||!k||!n||H(e)},[k,m,n,D,O]),i(()=>{let e=j.current;if(!e||!m||!k||!n)return;let t=E.position.distanceTo(L.current),r=F.current,i=t<=c;if(i&&!r)F.current=!0,H(e);else if(!i&&r){F.current=!1,z();try{e.stop()}catch{}}}),(0,C.useEffect)(()=>{let e=j.current;if(e&&!k){z();try{e.stop()}catch{}F.current=!1}},[k]);let U=y(e.id);return(0,w.jsxs)(w.Fragment,{children:[t&&(0,w.jsxs)(`mesh`,{position:L.current,children:[(0,w.jsx)(`sphereGeometry`,{args:[o,12,12]}),(0,w.jsx)(`meshBasicMaterial`,{color:`#00ff00`,wireframe:!0,opacity:.05,transparent:!0,toneMapped:!1}),(0,w.jsx)(A,{color:`#00ff00`,position:[0,o+1,0],children:n})]}),U&&(0,w.jsx)(b,{radius:1.5})]})});export{K as a,B as c,I as d,A as f,U as i,V as l,R as n,G as o,k as p,q as r,W as s,J as t,M as u}; \ No newline at end of file diff --git a/docs/assets/AudioEmitter-BGkO8Fbs.js b/docs/assets/AudioEmitter-DaFPiGOy.js similarity index 83% rename from docs/assets/AudioEmitter-BGkO8Fbs.js rename to docs/assets/AudioEmitter-DaFPiGOy.js index 857ba055..d21b6ea4 100644 --- a/docs/assets/AudioEmitter-BGkO8Fbs.js +++ b/docs/assets/AudioEmitter-DaFPiGOy.js @@ -1 +1 @@ -import{s as e}from"./SettingsProvider-BdqQ2Cm4.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,s as c,t as l}from"./AudioEmitter-CJMuEzA2.js";export{l as AudioEmitter,a as audioBufferCache,s as getCachedAudioBuffer,e as getEffectiveSoundRate,r as getSoundGeneration,t as playOneShotSound,o as resolveAudioProfile,c as stopAllTrackedSounds,n as trackSound,i as untrackSound}; \ No newline at end of file +import{s as e}from"./SettingsProvider-BdqQ2Cm4.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,s as c,t as l}from"./AudioEmitter-3VHhCc7Y.js";export{l as AudioEmitter,a as audioBufferCache,s as getCachedAudioBuffer,e as getEffectiveSoundRate,r as getSoundGeneration,t as playOneShotSound,o as resolveAudioProfile,c as stopAllTrackedSounds,n as trackSound,i as untrackSound}; \ No newline at end of file diff --git a/docs/assets/ChatInput-B3JiLpoF.js b/docs/assets/ChatInput-CpChuNkg.js similarity index 93% rename from docs/assets/ChatInput-B3JiLpoF.js rename to docs/assets/ChatInput-CpChuNkg.js index a4da2c84..c3d2f95f 100644 --- a/docs/assets/ChatInput-B3JiLpoF.js +++ b/docs/assets/ChatInput-CpChuNkg.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{k as i}from"./index-BnXbiEzA.js";var a=e(n(),1),o=t(),s={InputForm:`_InputForm_18kom_1`,Input:`_Input_18kom_1`},c=r();function l(){let e=(0,o.c)(8),[t,n]=(0,a.useState)(``),r;e[0]===t?r=e[1]:(r=e=>{e.preventDefault();let r=t.trim();r&&(i.getState().sendCommand(`messageSent`,r),n(``))},e[0]=t,e[1]=r);let l=r,f;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=e=>n(e.target.value),e[2]=f):f=e[2];let p;e[3]===t?p=e[4]:(p=(0,c.jsx)(`input`,{className:s.Input,type:`text`,placeholder:`Say something…`,value:t,onChange:f,onKeyDown:d,onKeyUp:u,maxLength:255}),e[3]=t,e[4]=p);let m;return e[5]!==l||e[6]!==p?(m=(0,c.jsx)(`form`,{className:s.InputForm,onSubmit:l,children:p}),e[5]=l,e[6]=p,e[7]=m):m=e[7],m}function u(e){return e.stopPropagation()}function d(e){return e.stopPropagation()}export{l as ChatInput}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{k as i}from"./index-BZ0wFa-D.js";var a=e(n(),1),o=t(),s={InputForm:`_InputForm_18kom_1`,Input:`_Input_18kom_1`},c=r();function l(){let e=(0,o.c)(8),[t,n]=(0,a.useState)(``),r;e[0]===t?r=e[1]:(r=e=>{e.preventDefault();let r=t.trim();r&&(i.getState().sendCommand(`messageSent`,r),n(``))},e[0]=t,e[1]=r);let l=r,f;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=e=>n(e.target.value),e[2]=f):f=e[2];let p;e[3]===t?p=e[4]:(p=(0,c.jsx)(`input`,{className:s.Input,type:`text`,placeholder:`Say something…`,value:t,onChange:f,onKeyDown:d,onKeyUp:u,maxLength:255}),e[3]=t,e[4]=p);let m;return e[5]!==l||e[6]!==p?(m=(0,c.jsx)(`form`,{className:s.InputForm,onSubmit:l,children:p}),e[5]=l,e[6]=p,e[7]=m):m=e[7],m}function u(e){return e.stopPropagation()}function d(e){return e.stopPropagation()}export{l as ChatInput}; \ No newline at end of file diff --git a/docs/assets/ChatSoundPlayer-BuKG-RWU.js b/docs/assets/ChatSoundPlayer-D3K8GxX-.js similarity index 89% rename from docs/assets/ChatSoundPlayer-BuKG-RWU.js rename to docs/assets/ChatSoundPlayer-D3K8GxX-.js index d530f93c..6cb153ad 100644 --- a/docs/assets/ChatSoundPlayer-BuKG-RWU.js +++ b/docs/assets/ChatSoundPlayer-D3K8GxX-.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{r as t}from"./jsx-runtime-BpGWiA-R.js";import{a as n,s as r}from"./SettingsProvider-BdqQ2Cm4.js";import{c as i}from"./three.module-DKAirPAO.js";import{r as a}from"./loaders-B4T775qz.js";import{i as o}from"./engineStore-B1KAgiiF.js";import{c as s,d as c,i as l,l as u,r as d}from"./AudioEmitter-CJMuEzA2.js";var f=e(t(),1);function p(){let{audioLoader:e,audioListener:t}=c(),{audioEnabled:p}=n(),m=o(e=>e.playback.streamSnapshot?.chatMessages),h=o(e=>e.playback.streamSnapshot?.timeSec),g=(0,f.useRef)(new WeakSet),_=(0,f.useRef)(new Map);return(0,f.useEffect)(()=>{if(!p||!e||!t||!m?.length||h==null)return;let n=g.current,o=_.current;for(let c of m)if(!n.has(c)&&(n.add(c),c.soundPath&&!(Math.abs(h-c.timeSec)>2)))try{let n=a(c.soundPath),f=c.soundPitch??1,p=c.sender,m=l();d(n,e,e=>{if(m!==l())return;if(p){let e=o.get(p);if(e){try{e.stop()}catch{}u(e);try{e.disconnect()}catch{}o.delete(p)}}let n=new i(t);n.setBuffer(e),n.setPlaybackRate(r(f)),s(n,f),p&&o.set(p,n),n.play(),n.source.onended=()=>{u(n);try{n.disconnect()}catch{}p&&o.get(p)===n&&o.delete(p)}})}catch{}},[p,e,t,m,h]),null}export{p as ChatSoundPlayer}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{r as t}from"./jsx-runtime-BpGWiA-R.js";import{a as n,s as r}from"./SettingsProvider-BdqQ2Cm4.js";import{c as i}from"./three.module-DKAirPAO.js";import{r as a}from"./loaders-5n1D4iOD.js";import{i as o}from"./engineStore-B1KAgiiF.js";import{c as s,d as c,i as l,l as u,r as d}from"./AudioEmitter-3VHhCc7Y.js";var f=e(t(),1);function p(){let{audioLoader:e,audioListener:t}=c(),{audioEnabled:p}=n(),m=o(e=>e.playback.streamSnapshot?.chatMessages),h=o(e=>e.playback.streamSnapshot?.timeSec),g=(0,f.useRef)(new WeakSet),_=(0,f.useRef)(new Map);return(0,f.useEffect)(()=>{if(!p||!e||!t||!m?.length||h==null)return;let n=g.current,o=_.current;for(let c of m)if(!n.has(c)&&(n.add(c),c.soundPath&&!(Math.abs(h-c.timeSec)>2)))try{let n=a(c.soundPath),f=c.soundPitch??1,p=c.sender,m=l();d(n,e,e=>{if(m!==l())return;if(p){let e=o.get(p);if(e){try{e.stop()}catch{}u(e);try{e.disconnect()}catch{}o.delete(p)}}let n=new i(t);n.setBuffer(e),n.setPlaybackRate(r(f)),s(n,f),p&&o.set(p,n),n.play(),n.source.onended=()=>{u(n);try{n.disconnect()}catch{}p&&o.get(p)===n&&o.delete(p)}})}catch{}},[p,e,t,m,h]),null}export{p as ChatSoundPlayer}; \ No newline at end of file diff --git a/docs/assets/DemoPlaybackControls-ByWxYIZa.js b/docs/assets/DemoPlaybackControls-CwlogtTb.js similarity index 97% rename from docs/assets/DemoPlaybackControls-ByWxYIZa.js rename to docs/assets/DemoPlaybackControls-CwlogtTb.js index 5bfe636f..b5d8bd82 100644 --- a/docs/assets/DemoPlaybackControls-ByWxYIZa.js +++ b/docs/assets/DemoPlaybackControls-CwlogtTb.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{C as i,D as a,E as o,O as s,S as c,T as l,u,w as d}from"./index-BnXbiEzA.js";import{n as f,t as p}from"./gr-DFj_ScyC.js";var m=e(n(),1),h=t(),g={Root:`_Root_flggk_1`,PlayPause:`_PlayPause_flggk_16 _Button_p0g82_2`,Time:`_Time_flggk_36`,Seek:`_Seek_flggk_54`,Speed:`_Speed_flggk_61`,CameraMode:`_CameraMode_flggk_62`,Field:`_Field_flggk_80`},_=r();function v(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return t>0?`${t}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`:`${n}:${r.toString().padStart(2,`0`)}`}function y(){let e=(0,h.c)(42),t=a(),n=l(),r=i(),y=d(),x=s(),{play:S,pause:C,seek:w,setSpeed:T}=o(),E,D;e[0]!==n||e[1]!==C||e[2]!==S||e[3]!==t?(E=()=>{if(!t)return;let e=e=>{if(e.code!==`Space`)return;let t=e.target;t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.tagName===`BUTTON`||t.isContentEditable||(e.preventDefault(),n?C():S())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},D=[t,n,S,C],e[0]=n,e[1]=C,e[2]=S,e[3]=t,e[4]=E,e[5]=D):(E=e[4],D=e[5]),(0,m.useEffect)(E,D);let O;e[6]!==T||e[7]!==x?(O=()=>{let e=c.indexOf(x);e>0&&T(c[e-1])},e[6]=T,e[7]=x,e[8]=O):O=e[8],u(`decreasePlaybackSpeed`,O);let k;e[9]!==T||e[10]!==x?(k=()=>{let e=c.indexOf(x);e{w(parseFloat(e.target.value))},e[12]=w,e[13]=A);let j=A,M;e[14]===T?M=e[15]:(M=e=>{T(parseFloat(e.target.value))},e[14]=T,e[15]=M);let N=M;if(!t||!Number.isFinite(t.duration))return null;let P=n?C:S,F=n?`Pause`:`Play`,I;e[16]===n?I=e[17]:(I=n?(0,_.jsx)(p,{}):(0,_.jsx)(f,{}),e[16]=n,e[17]=I);let L;e[18]!==P||e[19]!==F||e[20]!==I?(L=(0,_.jsx)(`button`,{className:g.PlayPause,onClick:P,"aria-label":F,autoFocus:!0,children:I}),e[18]=P,e[19]=F,e[20]=I,e[21]=L):L=e[21];let R;e[22]===r?R=e[23]:(R=v(r),e[22]=r,e[23]=R);let z;e[24]===y?z=e[25]:(z=v(y),e[24]=y,e[25]=z);let B=`${R} / ${z}`,V;e[26]===B?V=e[27]:(V=(0,_.jsx)(`span`,{className:g.Time,children:B}),e[26]=B,e[27]=V);let H;e[28]!==r||e[29]!==y||e[30]!==j?(H=(0,_.jsx)(`input`,{className:g.Seek,type:`range`,min:0,max:y,step:.01,value:r,onChange:j}),e[28]=r,e[29]=y,e[30]=j,e[31]=H):H=e[31];let U;e[32]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(`label`,{htmlFor:`playbackSpeed`,children:`Speed`}),e[32]=U):U=e[32];let W;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(W=c.map(b),e[33]=W):W=e[33];let G;e[34]!==N||e[35]!==x?(G=(0,_.jsxs)(`div`,{className:g.Field,children:[U,(0,_.jsx)(`select`,{id:`playbackSpeed`,className:g.Speed,value:x,onChange:N,children:W})]}),e[34]=N,e[35]=x,e[36]=G):G=e[36];let K;return e[37]!==V||e[38]!==H||e[39]!==G||e[40]!==L?(K=(0,_.jsxs)(`div`,{className:g.Root,children:[L,V,H,G]}),e[37]=V,e[38]=H,e[39]=G,e[40]=L,e[41]=K):K=e[41],K}function b(e){return(0,_.jsxs)(`option`,{value:e,children:[e,`×`]},e)}export{y as DemoPlaybackControls}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{C as i,D as a,E as o,O as s,S as c,T as l,u,w as d}from"./index-BZ0wFa-D.js";import{n as f,t as p}from"./gr-DFj_ScyC.js";var m=e(n(),1),h=t(),g={Root:`_Root_flggk_1`,PlayPause:`_PlayPause_flggk_16 _Button_p0g82_2`,Time:`_Time_flggk_36`,Seek:`_Seek_flggk_54`,Speed:`_Speed_flggk_61`,CameraMode:`_CameraMode_flggk_62`,Field:`_Field_flggk_80`},_=r();function v(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return t>0?`${t}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`:`${n}:${r.toString().padStart(2,`0`)}`}function y(){let e=(0,h.c)(42),t=a(),n=l(),r=i(),y=d(),x=s(),{play:S,pause:C,seek:w,setSpeed:T}=o(),E,D;e[0]!==n||e[1]!==C||e[2]!==S||e[3]!==t?(E=()=>{if(!t)return;let e=e=>{if(e.code!==`Space`)return;let t=e.target;t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.tagName===`BUTTON`||t.isContentEditable||(e.preventDefault(),n?C():S())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},D=[t,n,S,C],e[0]=n,e[1]=C,e[2]=S,e[3]=t,e[4]=E,e[5]=D):(E=e[4],D=e[5]),(0,m.useEffect)(E,D);let O;e[6]!==T||e[7]!==x?(O=()=>{let e=c.indexOf(x);e>0&&T(c[e-1])},e[6]=T,e[7]=x,e[8]=O):O=e[8],u(`decreasePlaybackSpeed`,O);let k;e[9]!==T||e[10]!==x?(k=()=>{let e=c.indexOf(x);e{w(parseFloat(e.target.value))},e[12]=w,e[13]=A);let j=A,M;e[14]===T?M=e[15]:(M=e=>{T(parseFloat(e.target.value))},e[14]=T,e[15]=M);let N=M;if(!t||!Number.isFinite(t.duration))return null;let P=n?C:S,F=n?`Pause`:`Play`,I;e[16]===n?I=e[17]:(I=n?(0,_.jsx)(p,{}):(0,_.jsx)(f,{}),e[16]=n,e[17]=I);let L;e[18]!==P||e[19]!==F||e[20]!==I?(L=(0,_.jsx)(`button`,{className:g.PlayPause,onClick:P,"aria-label":F,autoFocus:!0,children:I}),e[18]=P,e[19]=F,e[20]=I,e[21]=L):L=e[21];let R;e[22]===r?R=e[23]:(R=v(r),e[22]=r,e[23]=R);let z;e[24]===y?z=e[25]:(z=v(y),e[24]=y,e[25]=z);let B=`${R} / ${z}`,V;e[26]===B?V=e[27]:(V=(0,_.jsx)(`span`,{className:g.Time,children:B}),e[26]=B,e[27]=V);let H;e[28]!==r||e[29]!==y||e[30]!==j?(H=(0,_.jsx)(`input`,{className:g.Seek,type:`range`,min:0,max:y,step:.01,value:r,onChange:j}),e[28]=r,e[29]=y,e[30]=j,e[31]=H):H=e[31];let U;e[32]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(`label`,{htmlFor:`playbackSpeed`,children:`Speed`}),e[32]=U):U=e[32];let W;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(W=c.map(b),e[33]=W):W=e[33];let G;e[34]!==N||e[35]!==x?(G=(0,_.jsxs)(`div`,{className:g.Field,children:[U,(0,_.jsx)(`select`,{id:`playbackSpeed`,className:g.Speed,value:x,onChange:N,children:W})]}),e[34]=N,e[35]=x,e[36]=G):G=e[36];let K;return e[37]!==V||e[38]!==H||e[39]!==G||e[40]!==L?(K=(0,_.jsxs)(`div`,{className:g.Root,children:[L,V,H,G]}),e[37]=V,e[38]=H,e[39]=G,e[40]=L,e[41]=K):K=e[41],K}function b(e){return(0,_.jsxs)(`option`,{value:e,children:[e,`×`]},e)}export{y as DemoPlaybackControls}; \ No newline at end of file diff --git a/docs/assets/ExplosionShape-CFtLb8wO.js b/docs/assets/ExplosionShape-DH_M7uUx.js similarity index 97% rename from docs/assets/ExplosionShape-CFtLb8wO.js rename to docs/assets/ExplosionShape-DH_M7uUx.js index 975f03f4..a6a3a355 100644 --- a/docs/assets/ExplosionShape-CFtLb8wO.js +++ b/docs/assets/ExplosionShape-DH_M7uUx.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{r as t,t as n}from"./jsx-runtime-BpGWiA-R.js";import{a as r}from"./react-three-fiber.esm-El6vNTZj.js";import{$ as i,o as a}from"./three.module-DKAirPAO.js";import{c as o,f as s}from"./PlayerModel-D8NLwrT8.js";import{_ as c,a as l,g as u,h as d,l as f}from"./playbackUtils-DjmjN4tv.js";import{n as p,r as m}from"./engineStore-B1KAgiiF.js";import{t as h}from"./useAnisotropy-D9othEmk.js";import{n as g}from"./streamPlaybackStore-D5ldcfU5.js";var _=e(t(),1),v=n();function y(e){let t=e.sizes,n=e.times;if(!Array.isArray(t)||t.length===0)return{times:[0,1],sizes:[[1,1,1],[1,1,1]]};let r=t.map(e=>[e.x/100,e.y/100,e.z/100]);return{times:Array.isArray(n)?n:r.map((e,t)=>t/Math.max(r.length-1,1)),sizes:r}}function b(e,t){let{times:n,sizes:r}=e;if(n.length===0)return[1,1,1];if(t<=n[0])return r[0];if(t>=n[n.length-1])return r[r.length-1];for(let e=0;e=n[e]&&t<=n[e+1]){let i=(t-n[e])/(n[e+1]-n[e]);return[r[e][0]+(r[e+1][0]-r[e][0])*i,r[e][1]+(r[e+1][1]-r[e][1])*i,r[e][2]+(r[e+1][2]-r[e][2])*i]}return r[r.length-1]}function x({entity:e}){let t=g.getState().playback,n=o(e.shapeName),x=h(),S=(0,_.useRef)(null),C=(0,_.useRef)(p()),w=(0,_.useRef)(Math.random()*Math.PI*2),T=(0,_.useRef)([]),E=(0,_.useMemo)(()=>{if(e.explosionDataBlockId)return t.getDataBlockData(e.explosionDataBlockId)},[e.explosionDataBlockId,t]),D=(0,_.useMemo)(()=>E?y(E):void 0,[E]),O=(0,_.useMemo)(()=>{let e=E?.explosionScale;return e?[e.x/100,e.y/100,e.z/100]:[1,1,1]},[E]),k=(E?.lifetimeMS??31)*32,A=e.faceViewer!==!1,{scene:j,mixer:M,visNodes:N,iflInfos:P,materials:F}=(0,_.useMemo)(()=>{let t=s(n.scene),r=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let n=new Set(t.userData.flag_names??[]),i=t.userData.resource_path;if(n.has(`IflMaterial`)&&i){let t=e.userData;r.push({mesh:e,iflPath:`textures/${i}.ifl`,sequenceName:t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,duration:t?.ifl_duration?Number(t.ifl_duration):void 0,cyclic:t?.ifl_sequence?!!t.ifl_cyclic:void 0,toolBegin:t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin)})}}),f(t,e.shapeName,{anisotropy:x});let o=[];t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=t.vis_keyframes,r=t.vis_duration,i=(t.vis_sequence??``).toLowerCase();!i||!Array.isArray(n)||n.length<=1||!r||r<=0||i===`ambient`&&o.push({mesh:e,keyframes:n,duration:r,cyclic:!!t.vis_cyclic})});for(let e of o)e.mesh.visible=!0,e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.transparent=!0,e.mesh.material.depthWrite=!1);for(let e of r)e.mesh.userData?.vis_sequence||(e.mesh.visible=!0);let c=new Map;for(let e of n.animations)c.set(e.name.toLowerCase(),e);let l=c.get(`ambient`),u=null;if(l){u=new a(t);let e=u.clipAction(l);e.setLoop(i,1),e.clampWhenFinished=!0,e.timeScale=(E?.playSpeed??20)/20,e.play()}let d=[];return t.traverse(e=>{e.isMesh&&(Array.isArray(e.material)?d.push(...e.material):e.material&&d.push(e.material))}),t.traverse(e=>{e.frustumCulled=!1}),{scene:t,mixer:u,visNodes:o,iflInfos:r,materials:d}},[n,E,x]);return(0,_.useEffect)(()=>()=>{l(j),M?.uncacheRoot(j)},[j,M]),(0,_.useEffect)(()=>{T.current=[];for(let e of P)u(e.iflPath).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0),T.current.push({atlas:t,info:e})}).catch(()=>{})},[P]),r((e,t)=>{let n=S.current;if(!n)return;let r=m.getState().playback,i=r.status===`playing`?t*r.rate:0,a=p()-C.current,o=Math.min(a/k,1),s=a/1e3;M&&M.update(i);let l=o>.8?1-(o-.8)/.2:1;for(let{mesh:e,keyframes:t,duration:n,cyclic:r}of N){let i=e.material;if(!i||Array.isArray(i))continue;let a=s/n,o=r?a%1:Math.min(a,1),c=t.length,u=o*c,d=Math.floor(u)%c,f=(d+1)%c,p=u-Math.floor(u);i.opacity=(t[d]+(t[f]-t[d])*p)*l}if(l<1)for(let e of F)`opacity`in e&&(e.transparent=!0,e.opacity*=l);for(let{atlas:e,info:t}of T.current){let n;n=t.sequenceName&&t.duration?(t.cyclic?s/t.duration%1:Math.min(s/t.duration,1))*t.duration+(t.toolBegin??0):s,c(e,d(e,n))}if(D){let e=b(D,o);n.scale.set(e[0]*O[0],e[1]*O[1],e[2]*O[2])}A&&(n.lookAt(e.camera.position),n.rotateZ(w.current))}),(0,v.jsx)(`group`,{ref:S,children:(0,v.jsx)(`group`,{rotation:[0,Math.PI,0],children:(0,v.jsx)(`primitive`,{object:j})})})}export{x as ExplosionShape}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{r as t,t as n}from"./jsx-runtime-BpGWiA-R.js";import{a as r}from"./react-three-fiber.esm-El6vNTZj.js";import{$ as i,o as a}from"./three.module-DKAirPAO.js";import{c as o,f as s}from"./PlayerModel-D6m6HpJF.js";import{_ as c,a as l,g as u,h as d,l as f}from"./playbackUtils-DuS6opSR.js";import{n as p,r as m}from"./engineStore-B1KAgiiF.js";import{t as h}from"./useAnisotropy-D9othEmk.js";import{n as g}from"./streamPlaybackStore-D5ldcfU5.js";var _=e(t(),1),v=n();function y(e){let t=e.sizes,n=e.times;if(!Array.isArray(t)||t.length===0)return{times:[0,1],sizes:[[1,1,1],[1,1,1]]};let r=t.map(e=>[e.x/100,e.y/100,e.z/100]);return{times:Array.isArray(n)?n:r.map((e,t)=>t/Math.max(r.length-1,1)),sizes:r}}function b(e,t){let{times:n,sizes:r}=e;if(n.length===0)return[1,1,1];if(t<=n[0])return r[0];if(t>=n[n.length-1])return r[r.length-1];for(let e=0;e=n[e]&&t<=n[e+1]){let i=(t-n[e])/(n[e+1]-n[e]);return[r[e][0]+(r[e+1][0]-r[e][0])*i,r[e][1]+(r[e+1][1]-r[e][1])*i,r[e][2]+(r[e+1][2]-r[e][2])*i]}return r[r.length-1]}function x({entity:e}){let t=g.getState().playback,n=o(e.shapeName),x=h(),S=(0,_.useRef)(null),C=(0,_.useRef)(p()),w=(0,_.useRef)(Math.random()*Math.PI*2),T=(0,_.useRef)([]),E=(0,_.useMemo)(()=>{if(e.explosionDataBlockId)return t.getDataBlockData(e.explosionDataBlockId)},[e.explosionDataBlockId,t]),D=(0,_.useMemo)(()=>E?y(E):void 0,[E]),O=(0,_.useMemo)(()=>{let e=E?.explosionScale;return e?[e.x/100,e.y/100,e.z/100]:[1,1,1]},[E]),k=(E?.lifetimeMS??31)*32,A=e.faceViewer!==!1,{scene:j,mixer:M,visNodes:N,iflInfos:P,materials:F}=(0,_.useMemo)(()=>{let t=s(n.scene),r=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let n=new Set(t.userData.flag_names??[]),i=t.userData.resource_path;if(n.has(`IflMaterial`)&&i){let t=e.userData;r.push({mesh:e,iflPath:`textures/${i}.ifl`,sequenceName:t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,duration:t?.ifl_duration?Number(t.ifl_duration):void 0,cyclic:t?.ifl_sequence?!!t.ifl_cyclic:void 0,toolBegin:t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin)})}}),f(t,e.shapeName,{anisotropy:x});let o=[];t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=t.vis_keyframes,r=t.vis_duration,i=(t.vis_sequence??``).toLowerCase();!i||!Array.isArray(n)||n.length<=1||!r||r<=0||i===`ambient`&&o.push({mesh:e,keyframes:n,duration:r,cyclic:!!t.vis_cyclic})});for(let e of o)e.mesh.visible=!0,e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.transparent=!0,e.mesh.material.depthWrite=!1);for(let e of r)e.mesh.userData?.vis_sequence||(e.mesh.visible=!0);let c=new Map;for(let e of n.animations)c.set(e.name.toLowerCase(),e);let l=c.get(`ambient`),u=null;if(l){u=new a(t);let e=u.clipAction(l);e.setLoop(i,1),e.clampWhenFinished=!0,e.timeScale=(E?.playSpeed??20)/20,e.play()}let d=[];return t.traverse(e=>{e.isMesh&&(Array.isArray(e.material)?d.push(...e.material):e.material&&d.push(e.material))}),t.traverse(e=>{e.frustumCulled=!1}),{scene:t,mixer:u,visNodes:o,iflInfos:r,materials:d}},[n,E,x]);return(0,_.useEffect)(()=>()=>{l(j),M?.uncacheRoot(j)},[j,M]),(0,_.useEffect)(()=>{T.current=[];for(let e of P)u(e.iflPath).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0),T.current.push({atlas:t,info:e})}).catch(()=>{})},[P]),r((e,t)=>{let n=S.current;if(!n)return;let r=m.getState().playback,i=r.status===`playing`?t*r.rate:0,a=p()-C.current,o=Math.min(a/k,1),s=a/1e3;M&&M.update(i);let l=o>.8?1-(o-.8)/.2:1;for(let{mesh:e,keyframes:t,duration:n,cyclic:r}of N){let i=e.material;if(!i||Array.isArray(i))continue;let a=s/n,o=r?a%1:Math.min(a,1),c=t.length,u=o*c,d=Math.floor(u)%c,f=(d+1)%c,p=u-Math.floor(u);i.opacity=(t[d]+(t[f]-t[d])*p)*l}if(l<1)for(let e of F)`opacity`in e&&(e.transparent=!0,e.opacity*=l);for(let{atlas:e,info:t}of T.current){let n;n=t.sequenceName&&t.duration?(t.cyclic?s/t.duration%1:Math.min(s/t.duration,1))*t.duration+(t.toolBegin??0):s,c(e,d(e,n))}if(D){let e=b(D,o);n.scale.set(e[0]*O[0],e[1]*O[1],e[2]*O[2])}A&&(n.lookAt(e.camera.position),n.rotateZ(w.current))}),(0,v.jsx)(`group`,{ref:S,children:(0,v.jsx)(`group`,{rotation:[0,Math.PI,0],children:(0,v.jsx)(`primitive`,{object:j})})})}export{x as ExplosionShape}; \ No newline at end of file diff --git a/docs/assets/ForceFieldBare-C_w3CfiW.js b/docs/assets/ForceFieldBare-CIwodqfs.js similarity index 98% rename from docs/assets/ForceFieldBare-C_w3CfiW.js rename to docs/assets/ForceFieldBare-CIwodqfs.js index 691f528b..98e5622c 100644 --- a/docs/assets/ForceFieldBare-C_w3CfiW.js +++ b/docs/assets/ForceFieldBare-CIwodqfs.js @@ -1,4 +1,4 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i}from"./react-three-fiber.esm-El6vNTZj.js";import{a}from"./SettingsProvider-BdqQ2Cm4.js";import{Ot as o,Ut as s,b as c,jt as l,p as u}from"./three.module-DKAirPAO.js";import{p as d}from"./loaders-B4T775qz.js";import{t as f}from"./Texture-BYh0PjzP.js";import{r as p}from"./cameraTourStore-CtH3IrnD.js";import{t as m}from"./DebugBounds-CZKrvsAw.js";import{t as h}from"./DebugSuspense-ChOWTvws.js";var g=e(n(),1),_=t(),v=` +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i}from"./react-three-fiber.esm-El6vNTZj.js";import{a}from"./SettingsProvider-BdqQ2Cm4.js";import{Ot as o,Ut as s,b as c,jt as l,p as u}from"./three.module-DKAirPAO.js";import{p as d}from"./loaders-5n1D4iOD.js";import{t as f}from"./Texture-BYh0PjzP.js";import{r as p}from"./cameraTourStore-CtH3IrnD.js";import{t as m}from"./DebugBounds-CZKrvsAw.js";import{t as h}from"./DebugSuspense-ChOWTvws.js";var g=e(n(),1),_=t(),v=` #include varying vec2 vUv; diff --git a/docs/assets/GameView-DDyKEtZP.js b/docs/assets/GameView-Bie98edJ.js similarity index 98% rename from docs/assets/GameView-DDyKEtZP.js rename to docs/assets/GameView-Bie98edJ.js index 188356df..c00b675e 100644 --- a/docs/assets/GameView-DDyKEtZP.js +++ b/docs/assets/GameView-Bie98edJ.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlayerModel-Kcb6K1_s.js","assets/PlayerModel-D8NLwrT8.js","assets/chunk-DECur_0Z.js","assets/Html-CXAi5FD_.js","assets/extends-lXRikpl0.js","assets/react-three-fiber.esm-El6vNTZj.js","assets/jsx-runtime-BpGWiA-R.js","assets/three.module-DKAirPAO.js","assets/traditional-CCqNJZlI.js","assets/useQuery-6REtM5HO.js","assets/SettingsProvider-BdqQ2Cm4.js","assets/engineStore-B1KAgiiF.js","assets/manifest-BIDT_vSa.js","assets/stringUtils-1MyeFdQ_.js","assets/logger-B058WGzf.js","assets/AudioEmitter-CJMuEzA2.js","assets/DebugBounds-CZKrvsAw.js","assets/loaders-B4T775qz.js","assets/mission-yeigCtfF.js","assets/cameraTourStore-CtH3IrnD.js","assets/AudioEmitter-DAQByNim.css","assets/DebugSuspense-ChOWTvws.js","assets/playbackUtils-DjmjN4tv.js","assets/textureUtils-Bk_jPZib.js","assets/useAnisotropy-D9othEmk.js","assets/streamPlaybackStore-D5ldcfU5.js","assets/PlayerModel-Bi7C0zGW.css","assets/ExplosionShape-CFtLb8wO.js","assets/Projectiles-D417zqjU.js","assets/Texture-BYh0PjzP.js","assets/ForceFieldBare-C_w3CfiW.js","assets/AudioEmitter-BGkO8Fbs.js","assets/WaterBlock-BoR_edBt.js","assets/scene-C20n9V3Y.js","assets/StreamingController-mmR1lAIE.js","assets/index-BnXbiEzA.js","assets/preload-helper-BPkniflS.js","assets/streamHelpers-CYLk-lCT.js","assets/iconBase-DZ3jidsI.js","assets/JoystickContext-B2sO9eYx.js","assets/index-CiZqoesx.css","assets/gameEntityTypes-CIesm-Ll.js","assets/DebugElements-CrsrzkRa.js","assets/DebugElements-BP0b5jan.css","assets/Mission-RZOaitqM.js","assets/misToScene-BfuEJI8y.js","assets/ChatSoundPlayer-BuKG-RWU.js"])))=>i.map(i=>d[i]); -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,o as a,s as o,t as s}from"./react-three-fiber.esm-El6vNTZj.js";import{t as c}from"./Html-CXAi5FD_.js";import{a as l,i as u}from"./SettingsProvider-BdqQ2Cm4.js";import{t as d}from"./useQuery-6REtM5HO.js";import{A as f,C as p,Ct as m,D as h,Dt as g,Ht as _,Kt as v,N as y,Ot as b,S as x,Ut as S,Wt as C,_ as w,b as T,f as E,h as D,j as O,jt as k,k as A,kt as j,m as M,q as N,rt as P,ut as F,v as I,w as L}from"./three.module-DKAirPAO.js";import{a as ee,d as te,l as ne,o as R,s as re,u as ie}from"./PlayerModel-D8NLwrT8.js";import{S as ae,b as oe,o as se,v as ce,x as le}from"./playbackUtils-DjmjN4tv.js";import{a as z,c as ue,d as de,i as B,o as V,r as fe,s as pe,t as me,u as H}from"./textureUtils-Bk_jPZib.js";import{f as he,o as ge,p as U,s as _e,t as ve,u as ye}from"./loaders-B4T775qz.js";import{t as be}from"./logger-B058WGzf.js";import{n as xe}from"./stringUtils-1MyeFdQ_.js";import"./mission-yeigCtfF.js";import{a as Se}from"./engineStore-B1KAgiiF.js";import{t as Ce}from"./extends-lXRikpl0.js";import{t as we}from"./Texture-BYh0PjzP.js";import{t as W}from"./preload-helper-BPkniflS.js";import{t as Te}from"./useAnisotropy-D9othEmk.js";import{f as Ee,u as De}from"./AudioEmitter-CJMuEzA2.js";import{n as Oe,r as ke,t as Ae}from"./cameraTourStore-CtH3IrnD.js";import{n as je,t as Me}from"./DebugBounds-CZKrvsAw.js";import{t as Ne}from"./DebugSuspense-ChOWTvws.js";import{n as Pe}from"./streamPlaybackStore-D5ldcfU5.js";import{S as Fe,t as G}from"./streamHelpers-CYLk-lCT.js";import{n as Ie,r as Le,t as Re}from"./scene-C20n9V3Y.js";import{A as ze,D as Be,F as Ve,I as He,M as Ue,N as We,R as Ge,_ as Ke,a as qe,c as Je,g as Ye,i as Xe,j as Ze,k as Qe,l as $e,m as et,n as tt,o as nt,p as rt,r as it,s as at,t as ot,u as st,z as ct}from"./index-BnXbiEzA.js";import{t as lt}from"./gameEntityTypes-CIesm-Ll.js";var K=e(n());function ut(e,t,n){let r=o(e=>e.size),i=o(e=>e.viewport),a=typeof e==`number`?e:r.width*i.dpr,s=typeof t==`number`?t:r.height*i.dpr,c=(typeof e==`number`?n:e)||{},{samples:l=0,depth:u,...d}=c,p=u??c.depthBuffer,m=K.useMemo(()=>{let e=new v(a,s,{minFilter:N,magFilter:N,type:y,...d});return p&&(e.depthTexture=new L(a,s,f)),e.samples=l,e},[]);return K.useLayoutEffect(()=>{m.setSize(a,s),l&&(m.samples=l)},[l,m,a,s]),K.useEffect(()=>()=>m.dispose(),[]),m}var dt=e=>typeof e==`function`,ft=K.forwardRef(({envMap:e,resolution:t=256,frames:n=1/0,makeDefault:r,children:a,...s},c)=>{let l=o(({set:e})=>e),u=o(({camera:e})=>e),d=o(({size:e})=>e),f=K.useRef(null);K.useImperativeHandle(c,()=>f.current,[]);let p=K.useRef(null),m=ut(t);K.useLayoutEffect(()=>{s.manual||(f.current.aspect=d.width/d.height)},[d,s]),K.useLayoutEffect(()=>{f.current.updateProjectionMatrix()});let h=0,g=null,_=dt(a);return i(t=>{_&&(n===1/0||h{if(r){let e=u;return l(()=>({camera:f.current})),()=>l(()=>({camera:e}))}},[f,r,l]),K.createElement(K.Fragment,null,K.createElement(`perspectiveCamera`,Ce({ref:f},s),!_&&a),K.createElement(`group`,{ref:p},_&&a(m.texture)))});function pt(e,{path:t}){let[n]=a(x,[e],e=>e.setPath(t));return n}pt.preload=(e,{path:t})=>a.preload(x,[e],e=>e.setPath(t));var q=t(),mt={sunLightPointsDown:{value:!0}};function ht(e){mt.sunLightPointsDown.value=e}var J=r(),gt=be(`SceneLighting`);function _t(){let e=(0,q.c)(6),t=He(),n,r;if(e[0]===t?(n=e[1],r=e[2]):(n=()=>{t?gt.debug(`sunData: dir=(%s, %s, %s) color=(%s, %s, %s) ambient=(%s, %s, %s)`,t.direction.x.toFixed(3),t.direction.y.toFixed(3),t.direction.z.toFixed(3),t.color.r.toFixed(3),t.color.g.toFixed(3),t.color.b.toFixed(3),t.ambient.r.toFixed(3),t.ambient.g.toFixed(3),t.ambient.b.toFixed(3)):gt.debug(`No sunData — using fallback ambient #888`)},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,K.useEffect)(n,r),!t){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(`ambientLight`,{color:`#888888`,intensity:1}),e[3]=t):t=e[3],t}let i;return e[4]===t?i=e[5]:(i=(0,J.jsx)(vt,{sunData:t}),e[4]=t,e[5]=i),i}function vt(e){let t=(0,q.c)(29),{sunData:n}=e,r;t[0]===n.direction?r=t[1]:(r=Le(n.direction),t[0]=n.direction,t[1]=r);let[i,a,o]=r,s=Math.sqrt(i*i+a*a+o*o),c=i/s,l=a/s,u=o/s,d;t[2]!==c||t[3]!==l||t[4]!==u?(d=new C(c,l,u),t[2]=c,t[3]=l,t[4]=u,t[5]=d):d=t[5];let f=d,p=-f.x*5e3,m=-f.y*5e3,h=-f.z*5e3,g;t[6]!==p||t[7]!==m||t[8]!==h?(g=new C(p,m,h),t[6]=p,t[7]=m,t[8]=h,t[9]=g):g=t[9];let _=g,v;t[10]!==n.color.b||t[11]!==n.color.g||t[12]!==n.color.r?(v=new T(n.color.r,n.color.g,n.color.b),t[10]=n.color.b,t[11]=n.color.g,t[12]=n.color.r,t[13]=v):v=t[13];let y=v,b;t[14]!==n.ambient.b||t[15]!==n.ambient.g||t[16]!==n.ambient.r?(b=new T(n.ambient.r,n.ambient.g,n.ambient.b),t[14]=n.ambient.b,t[15]=n.ambient.g,t[16]=n.ambient.r,t[17]=b):b=t[17];let x=b,S=f.y<0,w,E;t[18]===S?(w=t[19],E=t[20]):(w=()=>{ht(S)},E=[S],t[18]=S,t[19]=w,t[20]=E),(0,K.useEffect)(w,E);let D;t[21]!==y||t[22]!==_?(D=(0,J.jsx)(`directionalLight`,{position:_,color:y,intensity:1,castShadow:!0,"shadow-mapSize-width":8192,"shadow-mapSize-height":8192,"shadow-camera-left":-4096,"shadow-camera-right":4096,"shadow-camera-top":4096,"shadow-camera-bottom":-4096,"shadow-camera-near":100,"shadow-camera-far":12e3,"shadow-bias":-1e-5,"shadow-normalBias":.4,"shadow-radius":2}),t[21]=y,t[22]=_,t[23]=D):D=t[23];let O;t[24]===x?O=t[25]:(O=(0,J.jsx)(`ambientLight`,{color:x,intensity:1}),t[24]=x,t[25]=O);let k;return t[26]!==D||t[27]!==O?(k=(0,J.jsxs)(J.Fragment,{children:[D,O]}),t[26]=D,t[27]=O,t[28]=k):k=t[28],k}function yt(){let e=(0,q.c)(4),{fpsLimit:t}=l(),n=o(bt),r,i;return e[0]!==t||e[1]!==n?(r=()=>{if(t==null)return;let e=1e3/t,r=0,i;function a(t){i=requestAnimationFrame(a),t-r>=e&&(r=t-(t-r)%e,n())}return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},i=[t,n],e[0]=t,e[1]=n,e[2]=r,e[3]=i):(r=e[2],i=e[3]),(0,K.useEffect)(r,i),t}function bt(e){return e.invalidate}function xt(){return yt(),null}var St={toneMapping:0,outputColorSpace:j};function Ct(e){let t=(0,q.c)(11),{children:n,renderOnDemand:r,dpr:i,onCreated:a}=e,o=r===void 0?!1:r,{renderOnDemand:c}=u(),d=o||c,{fpsLimit:f}=l(),p=f!=null&&!d,m=d||p?`demand`:`always`,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={type:1},t[0]=h):h=t[0];let g;t[1]===n?g=t[2]:(g=(0,J.jsx)(K.Suspense,{children:n}),t[1]=n,t[2]=g);let _;t[3]===p?_=t[4]:(_=p?(0,J.jsx)(xt,{}):null,t[3]=p,t[4]=_);let v;return t[5]!==i||t[6]!==a||t[7]!==m||t[8]!==g||t[9]!==_?(v=(0,J.jsxs)(s,{frameloop:m,dpr:i,gl:St,shadows:h,onCreated:a,children:[g,_]}),t[5]=i,t[6]=a,t[7]=m,t[8]=g,t[9]=_,t[10]=v):v=t[10],v}var wt=1/32,Tt=(0,K.createContext)(null);function Et({children:e}){let t=(0,K.useRef)(void 0),n=(0,K.useRef)(0),r=(0,K.useRef)(0);i((e,i)=>{for(n.current+=i;n.current>=wt;)if(n.current-=wt,r.current++,t.current)for(let e of t.current)e(r.current)});let a=(0,K.useCallback)(e=>(t.current??=new Set,t.current.add(e),()=>{t.current.delete(e)}),[]),o=(0,K.useCallback)(()=>r.current,[]),s=(0,K.useCallback)(()=>n.current/wt,[]),c=(0,K.useMemo)(()=>({subscribe:a,getTick:o,getTickFraction:s}),[a,o,s]);return(0,J.jsx)(Tt.Provider,{value:c,children:e})}function Dt(e){let t=(0,q.c)(5),n=(0,K.useContext)(Tt);if(!n)throw Error(`useTick must be used within a TickProvider`);let r=(0,K.useEffectEvent)(e),i;t[0]!==n||t[1]!==r?(i=()=>n.subscribe(r),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=[n],t[3]=n,t[4]=a),(0,K.useEffect)(i,a)}function Ot(){let e=(0,K.useContext)(Tt);if(!e)throw Error(`useGetTickFraction must be used within a TickProvider`);return e.getTickFraction}function kt(e){let t=(0,q.c)(14),{entity:n}=e,{registerCamera:r,unregisterCamera:i}=Ke(),a=(0,K.useId)(),o=n.cameraDataBlock,s;t[0]===n.position?s=t[1]:(s=n.position?new C(...n.position):new C,t[0]=n.position,t[1]=s);let c=s,l;t[2]===n.rotation?l=t[3]:(l=n.rotation?new m(...n.rotation):new m,t[2]=n.rotation,t[3]=l);let u=l,d,f;t[4]!==o||t[5]!==a||t[6]!==c||t[7]!==r||t[8]!==u||t[9]!==i?(d=()=>{if(o===`Observer`){let e={id:a,position:c,rotation:u};return r(e),()=>{i(e)}}},f=[a,o,r,i,c,u],t[4]=o,t[5]=a,t[6]=c,t[7]=r,t[8]=u,t[9]=i,t[10]=d,t[11]=f):(d=t[10],f=t[11]),(0,K.useEffect)(d,f);let p=ke(n.id),h;return t[12]===p?h=t[13]:(h=p?(0,J.jsx)(je,{radius:1.5}):null,t[12]=p,t[13]=h),h}function At(e){let t=(0,q.c)(7),{entity:n}=e,r=ke(n.id),i;t[0]===n.label?i=t[1]:(i=n.label?(0,J.jsx)(Ee,{opacity:.6,children:n.label}):null,t[0]=n.label,t[1]=i);let a;t[2]===r?a=t[3]:(a=r&&(0,J.jsx)(je,{radius:1.5}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,J.jsxs)(J.Fragment,{children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function jt(e){let t=new Float32Array(e.length);for(let n=0;ni.map(i=>d[i]); +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,o as a,s as o,t as s}from"./react-three-fiber.esm-El6vNTZj.js";import{t as c}from"./Html-CXAi5FD_.js";import{a as l,i as u}from"./SettingsProvider-BdqQ2Cm4.js";import{t as d}from"./useQuery-6REtM5HO.js";import{A as f,C as p,Ct as m,D as h,Dt as g,Ht as _,Kt as v,N as y,Ot as b,S as x,Ut as S,Wt as C,_ as w,b as T,f as E,h as D,j as O,jt as k,k as A,kt as j,m as M,q as N,rt as P,ut as F,v as I,w as L}from"./three.module-DKAirPAO.js";import{a as ee,d as te,l as ne,o as R,s as re,u as ie}from"./PlayerModel-D6m6HpJF.js";import{S as ae,b as oe,o as se,v as ce,x as le}from"./playbackUtils-DuS6opSR.js";import{a as z,c as ue,d as de,i as B,o as V,r as fe,s as pe,t as me,u as H}from"./textureUtils-Bk_jPZib.js";import{f as he,o as ge,p as U,s as _e,t as ve,u as ye}from"./loaders-5n1D4iOD.js";import{t as be}from"./logger-B058WGzf.js";import{n as xe}from"./stringUtils-1MyeFdQ_.js";import"./mission-yeigCtfF.js";import{a as Se}from"./engineStore-B1KAgiiF.js";import{t as Ce}from"./extends-lXRikpl0.js";import{t as we}from"./Texture-BYh0PjzP.js";import{t as W}from"./preload-helper-BPkniflS.js";import{t as Te}from"./useAnisotropy-D9othEmk.js";import{f as Ee,u as De}from"./AudioEmitter-3VHhCc7Y.js";import{n as Oe,r as ke,t as Ae}from"./cameraTourStore-CtH3IrnD.js";import{n as je,t as Me}from"./DebugBounds-CZKrvsAw.js";import{t as Ne}from"./DebugSuspense-ChOWTvws.js";import{n as Pe}from"./streamPlaybackStore-D5ldcfU5.js";import{S as Fe,t as G}from"./streamHelpers-CYLk-lCT.js";import{n as Ie,r as Le,t as Re}from"./scene-C20n9V3Y.js";import{A as ze,D as Be,F as Ve,I as He,M as Ue,N as We,R as Ge,_ as Ke,a as qe,c as Je,g as Ye,i as Xe,j as Ze,k as Qe,l as $e,m as et,n as tt,o as nt,p as rt,r as it,s as at,t as ot,u as st,z as ct}from"./index-BZ0wFa-D.js";import{t as lt}from"./gameEntityTypes-CIesm-Ll.js";var K=e(n());function ut(e,t,n){let r=o(e=>e.size),i=o(e=>e.viewport),a=typeof e==`number`?e:r.width*i.dpr,s=typeof t==`number`?t:r.height*i.dpr,c=(typeof e==`number`?n:e)||{},{samples:l=0,depth:u,...d}=c,p=u??c.depthBuffer,m=K.useMemo(()=>{let e=new v(a,s,{minFilter:N,magFilter:N,type:y,...d});return p&&(e.depthTexture=new L(a,s,f)),e.samples=l,e},[]);return K.useLayoutEffect(()=>{m.setSize(a,s),l&&(m.samples=l)},[l,m,a,s]),K.useEffect(()=>()=>m.dispose(),[]),m}var dt=e=>typeof e==`function`,ft=K.forwardRef(({envMap:e,resolution:t=256,frames:n=1/0,makeDefault:r,children:a,...s},c)=>{let l=o(({set:e})=>e),u=o(({camera:e})=>e),d=o(({size:e})=>e),f=K.useRef(null);K.useImperativeHandle(c,()=>f.current,[]);let p=K.useRef(null),m=ut(t);K.useLayoutEffect(()=>{s.manual||(f.current.aspect=d.width/d.height)},[d,s]),K.useLayoutEffect(()=>{f.current.updateProjectionMatrix()});let h=0,g=null,_=dt(a);return i(t=>{_&&(n===1/0||h{if(r){let e=u;return l(()=>({camera:f.current})),()=>l(()=>({camera:e}))}},[f,r,l]),K.createElement(K.Fragment,null,K.createElement(`perspectiveCamera`,Ce({ref:f},s),!_&&a),K.createElement(`group`,{ref:p},_&&a(m.texture)))});function pt(e,{path:t}){let[n]=a(x,[e],e=>e.setPath(t));return n}pt.preload=(e,{path:t})=>a.preload(x,[e],e=>e.setPath(t));var q=t(),mt={sunLightPointsDown:{value:!0}};function ht(e){mt.sunLightPointsDown.value=e}var J=r(),gt=be(`SceneLighting`);function _t(){let e=(0,q.c)(6),t=He(),n,r;if(e[0]===t?(n=e[1],r=e[2]):(n=()=>{t?gt.debug(`sunData: dir=(%s, %s, %s) color=(%s, %s, %s) ambient=(%s, %s, %s)`,t.direction.x.toFixed(3),t.direction.y.toFixed(3),t.direction.z.toFixed(3),t.color.r.toFixed(3),t.color.g.toFixed(3),t.color.b.toFixed(3),t.ambient.r.toFixed(3),t.ambient.g.toFixed(3),t.ambient.b.toFixed(3)):gt.debug(`No sunData — using fallback ambient #888`)},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,K.useEffect)(n,r),!t){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(`ambientLight`,{color:`#888888`,intensity:1}),e[3]=t):t=e[3],t}let i;return e[4]===t?i=e[5]:(i=(0,J.jsx)(vt,{sunData:t}),e[4]=t,e[5]=i),i}function vt(e){let t=(0,q.c)(29),{sunData:n}=e,r;t[0]===n.direction?r=t[1]:(r=Le(n.direction),t[0]=n.direction,t[1]=r);let[i,a,o]=r,s=Math.sqrt(i*i+a*a+o*o),c=i/s,l=a/s,u=o/s,d;t[2]!==c||t[3]!==l||t[4]!==u?(d=new C(c,l,u),t[2]=c,t[3]=l,t[4]=u,t[5]=d):d=t[5];let f=d,p=-f.x*5e3,m=-f.y*5e3,h=-f.z*5e3,g;t[6]!==p||t[7]!==m||t[8]!==h?(g=new C(p,m,h),t[6]=p,t[7]=m,t[8]=h,t[9]=g):g=t[9];let _=g,v;t[10]!==n.color.b||t[11]!==n.color.g||t[12]!==n.color.r?(v=new T(n.color.r,n.color.g,n.color.b),t[10]=n.color.b,t[11]=n.color.g,t[12]=n.color.r,t[13]=v):v=t[13];let y=v,b;t[14]!==n.ambient.b||t[15]!==n.ambient.g||t[16]!==n.ambient.r?(b=new T(n.ambient.r,n.ambient.g,n.ambient.b),t[14]=n.ambient.b,t[15]=n.ambient.g,t[16]=n.ambient.r,t[17]=b):b=t[17];let x=b,S=f.y<0,w,E;t[18]===S?(w=t[19],E=t[20]):(w=()=>{ht(S)},E=[S],t[18]=S,t[19]=w,t[20]=E),(0,K.useEffect)(w,E);let D;t[21]!==y||t[22]!==_?(D=(0,J.jsx)(`directionalLight`,{position:_,color:y,intensity:1,castShadow:!0,"shadow-mapSize-width":8192,"shadow-mapSize-height":8192,"shadow-camera-left":-4096,"shadow-camera-right":4096,"shadow-camera-top":4096,"shadow-camera-bottom":-4096,"shadow-camera-near":100,"shadow-camera-far":12e3,"shadow-bias":-1e-5,"shadow-normalBias":.4,"shadow-radius":2}),t[21]=y,t[22]=_,t[23]=D):D=t[23];let O;t[24]===x?O=t[25]:(O=(0,J.jsx)(`ambientLight`,{color:x,intensity:1}),t[24]=x,t[25]=O);let k;return t[26]!==D||t[27]!==O?(k=(0,J.jsxs)(J.Fragment,{children:[D,O]}),t[26]=D,t[27]=O,t[28]=k):k=t[28],k}function yt(){let e=(0,q.c)(4),{fpsLimit:t}=l(),n=o(bt),r,i;return e[0]!==t||e[1]!==n?(r=()=>{if(t==null)return;let e=1e3/t,r=0,i;function a(t){i=requestAnimationFrame(a),t-r>=e&&(r=t-(t-r)%e,n())}return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},i=[t,n],e[0]=t,e[1]=n,e[2]=r,e[3]=i):(r=e[2],i=e[3]),(0,K.useEffect)(r,i),t}function bt(e){return e.invalidate}function xt(){return yt(),null}var St={toneMapping:0,outputColorSpace:j};function Ct(e){let t=(0,q.c)(11),{children:n,renderOnDemand:r,dpr:i,onCreated:a}=e,o=r===void 0?!1:r,{renderOnDemand:c}=u(),d=o||c,{fpsLimit:f}=l(),p=f!=null&&!d,m=d||p?`demand`:`always`,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={type:1},t[0]=h):h=t[0];let g;t[1]===n?g=t[2]:(g=(0,J.jsx)(K.Suspense,{children:n}),t[1]=n,t[2]=g);let _;t[3]===p?_=t[4]:(_=p?(0,J.jsx)(xt,{}):null,t[3]=p,t[4]=_);let v;return t[5]!==i||t[6]!==a||t[7]!==m||t[8]!==g||t[9]!==_?(v=(0,J.jsxs)(s,{frameloop:m,dpr:i,gl:St,shadows:h,onCreated:a,children:[g,_]}),t[5]=i,t[6]=a,t[7]=m,t[8]=g,t[9]=_,t[10]=v):v=t[10],v}var wt=1/32,Tt=(0,K.createContext)(null);function Et({children:e}){let t=(0,K.useRef)(void 0),n=(0,K.useRef)(0),r=(0,K.useRef)(0);i((e,i)=>{for(n.current+=i;n.current>=wt;)if(n.current-=wt,r.current++,t.current)for(let e of t.current)e(r.current)});let a=(0,K.useCallback)(e=>(t.current??=new Set,t.current.add(e),()=>{t.current.delete(e)}),[]),o=(0,K.useCallback)(()=>r.current,[]),s=(0,K.useCallback)(()=>n.current/wt,[]),c=(0,K.useMemo)(()=>({subscribe:a,getTick:o,getTickFraction:s}),[a,o,s]);return(0,J.jsx)(Tt.Provider,{value:c,children:e})}function Dt(e){let t=(0,q.c)(5),n=(0,K.useContext)(Tt);if(!n)throw Error(`useTick must be used within a TickProvider`);let r=(0,K.useEffectEvent)(e),i;t[0]!==n||t[1]!==r?(i=()=>n.subscribe(r),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=[n],t[3]=n,t[4]=a),(0,K.useEffect)(i,a)}function Ot(){let e=(0,K.useContext)(Tt);if(!e)throw Error(`useGetTickFraction must be used within a TickProvider`);return e.getTickFraction}function kt(e){let t=(0,q.c)(14),{entity:n}=e,{registerCamera:r,unregisterCamera:i}=Ke(),a=(0,K.useId)(),o=n.cameraDataBlock,s;t[0]===n.position?s=t[1]:(s=n.position?new C(...n.position):new C,t[0]=n.position,t[1]=s);let c=s,l;t[2]===n.rotation?l=t[3]:(l=n.rotation?new m(...n.rotation):new m,t[2]=n.rotation,t[3]=l);let u=l,d,f;t[4]!==o||t[5]!==a||t[6]!==c||t[7]!==r||t[8]!==u||t[9]!==i?(d=()=>{if(o===`Observer`){let e={id:a,position:c,rotation:u};return r(e),()=>{i(e)}}},f=[a,o,r,i,c,u],t[4]=o,t[5]=a,t[6]=c,t[7]=r,t[8]=u,t[9]=i,t[10]=d,t[11]=f):(d=t[10],f=t[11]),(0,K.useEffect)(d,f);let p=ke(n.id),h;return t[12]===p?h=t[13]:(h=p?(0,J.jsx)(je,{radius:1.5}):null,t[12]=p,t[13]=h),h}function At(e){let t=(0,q.c)(7),{entity:n}=e,r=ke(n.id),i;t[0]===n.label?i=t[1]:(i=n.label?(0,J.jsx)(Ee,{opacity:.6,children:n.label}):null,t[0]=n.label,t[1]=i);let a;t[2]===r?a=t[3]:(a=r&&(0,J.jsx)(je,{radius:1.5}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,J.jsxs)(J.Fragment,{children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function jt(e){let t=new Float32Array(e.length);for(let n=0;ne.scene),r=o(e=>e.camera),a=(0,K.useRef)(null),s=(0,K.useMemo)(()=>V(e.fogVolumes),[e.fogVolumes]);return(0,K.useEffect)(()=>{In||=(de(),!0)},[]),(0,K.useEffect)(()=>{pe();let[t,i]=Gn(e,r.position.y),o=new O(e.fogColor,t,i);return n.fog=o,a.current=o,ue(r.position.y,s),()=>{n.fog=null,a.current=null,pe()}},[n,r,e,s]),(0,K.useEffect)(()=>{let n=a.current;if(n)if(t){let[t,i]=Gn(e,r.position.y);n.near=t,n.far=i}else n.near=1e10,n.far=1e10},[t,e,r.position.y]),i(()=>{let n=a.current;if(!n)return;let i=r.position.y;if(ue(i,s,t),t){let[t,r]=Gn(e,i),a=z.fogDistanceScale.value;n.near=a>1?Math.min(t,100):t,n.far=r*a,n.color.copy(e.fogColor)}}),null}var qn=(0,K.memo)(function({entity:e}){let{skyData:t}=e;Fn.debug(`Rendering: materialList=%s, useSkyTextures=%s`,t.materialList,t.useSkyTextures);let{fogEnabled:n}=l(),r=t.materialList||void 0,i=(0,K.useMemo)(()=>Ln(t.skySolidColor),[t.skySolidColor]),a=t.useSkyTextures,s=(0,K.useMemo)(()=>Pn(t),[t]);Fn.debug(`fogState: fogColor=(%s, %s, %s) visibleDistance=%d fogDistance=%d enabled=%s volumes=%d`,t.fogColor.r.toFixed(3),t.fogColor.g.toFixed(3),t.fogColor.b.toFixed(3),t.visibleDistance,t.fogDistance,s.enabled,s.fogVolumes.length);let c=(0,K.useMemo)(()=>Ln(t.fogColor),[t.fogColor]),u=i||c,d=s.enabled&&n,f=s.fogColor,p=o(e=>e.scene),m=o(e=>e.gl);(0,K.useEffect)(()=>{if(d){let e=f.clone();p.background=e,m.setClearColor(e)}else if(u){let e=u[0].clone();p.background=e,m.setClearColor(e)}else p.background=null;return()=>{p.background=null}},[p,m,d,f,u]);let h=i?.[1];return(0,J.jsxs)(J.Fragment,{children:[r&&a&&r.length>0?(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Vn,{materialList:r,fogColor:d?f:void 0,fogState:d?s:void 0},r)}):h?(0,J.jsx)(Wn,{skyColor:h,fogColor:d?f:void 0,fogState:d?s:void 0}):null,(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(jn,{scene:t})}),s.enabled?(0,J.jsx)(Kn,{fogState:s,enabled:n}):null]})});function Jn(e){let t=(0,q.c)(3),{children:n}=e,{audioEnabled:r}=l(),i;return t[0]!==r||t[1]!==n?(i=r?(0,J.jsx)(K.Suspense,{children:n}):null,t[0]=r,t[1]=n,t[2]=i):i=t[2],i}var Yn=()=>{};function Xn(e,t){let n=(0,q.c)(4),{animationEnabled:r}=l(),a;n[0]!==r||n[1]!==e.rotate||n[2]!==t?(a=e.rotate&&r?()=>{if(t.current){let e=performance.now()/1e3;t.current.rotation.y=e/3*Math.PI*2}}:Yn,n[0]=r,n[1]=e.rotate,n[2]=t,n[3]=a):a=n[3],i(a)}function Zn(e,t){let n=(0,K.lazy)(()=>t().then(t=>({default:t[e]}))),r=t=>{let r=(0,q.c)(5),{entity:i}=t,a=`${e}:${i.id}`,o;r[0]===i?o=r[1]:(o=(0,J.jsx)(n,{entity:i}),r[0]=i,r[1]=o);let s;return r[2]!==a||r[3]!==o?(s=(0,J.jsx)(Ne,{name:a,children:o}),r[2]=a,r[3]=o,r[4]=s):s=r[4],s};return r.displayName=`createLazy(${e})`,r}var Qn=Zn(`PlayerModel`,()=>W(()=>import(`./PlayerModel-Kcb6K1_s.js`),__vite__mapDeps([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]))),$n=Zn(`ExplosionShape`,()=>W(()=>import(`./ExplosionShape-CFtLb8wO.js`),__vite__mapDeps([27,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]))),er=Zn(`TracerProjectile`,()=>W(()=>import(`./Projectiles-D417zqjU.js`),__vite__mapDeps([28,2,29,5,6,7,8,22,23,17,18,14,12,13]))),tr=Zn(`SpriteProjectile`,()=>W(()=>import(`./Projectiles-D417zqjU.js`),__vite__mapDeps([28,2,29,5,6,7,8,22,23,17,18,14,12,13]))),nr=Zn(`ForceFieldBare`,()=>W(()=>import(`./ForceFieldBare-C_w3CfiW.js`),__vite__mapDeps([30,2,29,5,6,7,8,10,11,12,13,16,21,14,17,18,19]))),rr=Zn(`AudioEmitter`,()=>W(()=>import(`./AudioEmitter-BGkO8Fbs.js`),__vite__mapDeps([31,10,2,6,11,8,12,13,15,3,4,5,7,14,16,17,18,19,20]))),ir=Zn(`WaterBlock`,()=>W(()=>import(`./WaterBlock-BoR_edBt.js`),__vite__mapDeps([32,2,4,29,5,6,7,8,10,11,12,13,16,24,23,17,18,14,33,19]))),ar=(0,K.memo)(function(e){let t=(0,q.c)(27),{entity:n,objectMounts:r}=e;switch(n.renderType){case`Shape`:{let e;return t[0]!==n||t[1]!==r?(e=(0,J.jsx)(or,{entity:n,objectMounts:r}),t[0]=n,t[1]=r,t[2]=e):e=t[2],e}case`ForceFieldBare`:{let e;return t[3]===n?e=t[4]:(e=(0,J.jsx)(nr,{entity:n}),t[3]=n,t[4]=e),e}case`Player`:{let e;return t[5]===n?e=t[6]:(e=(0,J.jsx)(Qn,{entity:n}),t[5]=n,t[6]=e),e}case`Explosion`:{let e;return t[7]===n?e=t[8]:(e=(0,J.jsx)($n,{entity:n}),t[7]=n,t[8]=e),e}case`Tracer`:{let e;return t[9]===n?e=t[10]:(e=(0,J.jsx)(er,{entity:n}),t[9]=n,t[10]=e),e}case`Sprite`:{let e;return t[11]===n?e=t[12]:(e=(0,J.jsx)(tr,{entity:n}),t[11]=n,t[12]=e),e}case`AudioEmitter`:{let e;return t[13]===n?e=t[14]:(e=(0,J.jsx)(Jn,{children:(0,J.jsx)(rr,{entity:n})}),t[13]=n,t[14]=e),e}case`Camera`:{let e;return t[15]===n?e=t[16]:(e=(0,J.jsx)(kt,{entity:n}),t[15]=n,t[16]=e),e}case`WayPoint`:{let e;return t[17]===n?e=t[18]:(e=(0,J.jsx)(At,{entity:n}),t[17]=n,t[18]=e),e}case`TerrainBlock`:{let e;return t[19]===n?e=t[20]:(e=(0,J.jsx)(en,{entity:n}),t[19]=n,t[20]=e),e}case`InteriorInstance`:{let e;return t[21]===n?e=t[22]:(e=(0,J.jsx)(hn,{entity:n}),t[21]=n,t[22]=e),e}case`Sky`:{let e;return t[23]===n?e=t[24]:(e=(0,J.jsx)(qn,{entity:n}),t[23]=n,t[24]=e),e}case`Sun`:return null;case`WaterBlock`:{let e;return t[25]===n?e=t[26]:(e=(0,J.jsx)(ir,{entity:n}),t[25]=n,t[26]=e),e}case`MissionArea`:return null;case`None`:return null;default:return null}});function or({entity:e,objectMounts:t}){let n=We(),r=n===`demo`||n===`live`,i=(0,K.useRef)(null);if(Xn(e,i),!e.shapeName)throw Error(`Shape entity missing shapeName: ${e.id}`);let a=e.shapeType??`StaticShape`,o=(0,K.useMemo)(()=>ne(e.dataBlockId,e.dataBlock),[e.dataBlockId,e.dataBlock]),s=e.dataBlock?.toLowerCase()===`flag`,c=e.teamId&&e.teamId>0?xe[e.teamId]:null,l=s&&c?`${c} Flag`:null,u=e.shapeType===`Item`?`pink`:e.threads?`#00ff88`:`yellow`,d=(0,K.useMemo)(()=>{let n={...t},r=e.imageSlots;if(r)for(let t=0;t0?n:void 0},[t,e.imageSlots,e.id]),f=(0,K.useMemo)(()=>{if(e.lightType)return{type:e.lightType,color:e.lightColor??[1,1,1,1],time:e.lightTime??1e3,radius:e.lightRadius??10,onlyStatic:!!e.lightOnlyStatic,isStatic:!!e.isStaticItem}},[e.lightType]);return(0,J.jsx)(ce,{object:e.runtimeObject,shapeName:e.shapeName,type:a,children:(0,J.jsx)(`group`,{ref:e.rotate?i:void 0,children:(0,J.jsx)(re,{loadingColor:u,streamEntity:r?e:void 0,emap:o,entityId:e.id,skinName:e.skinName,mounted:d,lightConfig:f,children:l?(0,J.jsx)(Ee,{opacity:.6,children:l}):null})})})}var sr={Root:`_Root_yuidw_1`,Distance:`_Distance_yuidw_9`,Icon:`_Icon_yuidw_18`},cr=1.5,lr=U(`commander/MiniIcons/com_flag_grey`),ur=new C;function dr(e){let t=(0,q.c)(9),{entity:n}=e,r=(0,K.useRef)(null),a=(0,K.useRef)(null),s=(0,K.useRef)(null),l=o(fr),u;t[0]!==l||t[1]!==n.iffColor?(u=()=>{if(a.current&&n.iffColor){let{r:e,g:t,b:r}=n.iffColor;a.current.style.backgroundColor=`rgb(${e},${t},${r})`}if(s.current&&r.current){r.current.getWorldPosition(ur);let e=l.position.distanceTo(ur);s.current.textContent=e.toFixed(1)}},t[0]=l,t[1]=n.iffColor,t[2]=u):u=t[2],i(u);let d=n.iffColor?`rgb(${n.iffColor.r},${n.iffColor.g},${n.iffColor.b})`:`rgb(200,200,200)`,f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=[0,cr,0],t[3]=f):f=t[3];let p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(`span`,{ref:s,className:sr.Distance}),t[4]=p):p=t[4];let m;t[5]===d?m=t[6]:(m={backgroundColor:d,"--flag-icon-url":`url(${lr})`},t[5]=d,t[6]=m);let h=m,g;return t[7]===h?g=t[8]:(g=(0,J.jsx)(`group`,{ref:r,children:(0,J.jsx)(c,{position:f,center:!0,children:(0,J.jsxs)(`div`,{className:sr.Root,children:[p,(0,J.jsx)(`div`,{ref:a,className:sr.Icon,style:h})]})})}),t[7]=h,t[8]=g),g}function fr(e){return e.camera}function pr(){let e=(0,q.c)(1),t=mr,n;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)(`group`,{ref:t,children:(0,J.jsx)(hr,{})}),e[0]=n):n=e[0],n}function mr(e){Pe.setState({root:e})}var hr=(0,K.memo)(function(){let e=Ue(),t=(0,K.useRef)(new Map).current,n=new Set;for(let r of e)n.add(r.id),t.set(r.id,r);for(let e of t.keys())n.has(e)||t.delete(e);let r=new Set,i=new Map;for(let e of t.values()){let n=e.mountObjectId;if(n&&t.has(n)){r.add(e.id);let t=i.get(n);t||(t=new Map,i.set(n,t)),t.set(e.mountNode??0,e)}}return(0,J.jsx)(J.Fragment,{children:[...t.values()].filter(e=>!r.has(e.id)).map(e=>(0,J.jsx)(gr,{entity:e,mountChildren:i.get(e.id)},e.id))})}),gr=(0,K.memo)(function(e){let t=(0,q.c)(8),{entity:n,mountChildren:r}=e;if(n.debugHidden)return null;if(lt(n)){let e;t[0]===n?e=t[1]:(e=(0,J.jsx)(ar,{entity:n}),t[0]=n,t[1]=e);let r;return t[2]!==n.id||t[3]!==e?(r=(0,J.jsx)(`group`,{name:n.id,children:e}),t[2]=n.id,t[3]=e,t[4]=r):r=t[4],r}if(n.renderType===`None`)return null;let i;return t[5]!==n||t[6]!==r?(i=(0,J.jsx)(vr,{entity:n,mountChildren:r}),t[5]=n,t[6]=r,t[7]=i):i=t[7],i});function _r({entity:e}){let t=(0,K.useRef)(!1),[n,r]=(0,K.useState)(()=>(((`targetRenderFlags`in e?e.targetRenderFlags:void 0)??0)&2)!=0);return t.current=n,i(()=>{let n=(((`targetRenderFlags`in e?e.targetRenderFlags:void 0)??0)&2)!=0;n!==t.current&&(t.current=n,r(n))}),n?(0,J.jsx)(dr,{entity:e}):null}function vr(e){let t=(0,q.c)(38),{entity:n,mountChildren:r}=e,i=n.position,a=n.scale,o;bb0:{if(!n.rotation){o=void 0;break bb0}let e;t[0]===n.rotation?e=t[1]:(e=new m(...n.rotation),t[0]=n.rotation,t[1]=e),o=e}let s=o,c;bb1:{if(!r||r.size===0){c=void 0;break bb1}let e;if(t[2]!==r){e={};for(let[t,n]of r)e[t]=(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(`group`,{rotation:[Math.PI/2,-Math.PI/2,0],children:(0,J.jsx)(ar,{entity:n})})},n.id);t[2]=r,t[3]=e}else e=t[3];c=e}let l=c;if(n.renderType===`Shape`&&!n.shapeName){let e=n.id,r;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(`sphereGeometry`,{args:[.3,6,4]}),t[4]=r):r=t[4];let o;t[5]===n.className?o=t[6]:(o=se(n.className),t[5]=n.className,t[6]=o);let c;t[7]===o?c=t[8]:(c=(0,J.jsxs)(`mesh`,{children:[r,(0,J.jsx)(`meshBasicMaterial`,{color:o,wireframe:!0})]}),t[7]=o,t[8]=c);let l;t[9]===n?l=t[10]:(l=(0,J.jsx)(_r,{entity:n}),t[9]=n,t[10]=l);let u;return t[11]!==n.id||t[12]!==i||t[13]!==s||t[14]!==a||t[15]!==c||t[16]!==l?(u=(0,J.jsxs)(`group`,{name:e,position:i,quaternion:s,scale:a,children:[c,l]}),t[11]=n.id,t[12]=i,t[13]=s,t[14]=a,t[15]=c,t[16]=l,t[17]=u):u=t[17],u}let u;t[18]!==n.className||t[19]!==n.renderType?(u=n.renderType===`Explosion`?null:(0,J.jsxs)(`mesh`,{children:[(0,J.jsx)(`sphereGeometry`,{args:[.5,8,6]}),(0,J.jsx)(`meshBasicMaterial`,{color:se(n.className),wireframe:!0})]}),t[18]=n.className,t[19]=n.renderType,t[20]=u):u=t[20];let d=u,f;t[21]!==n||t[22]!==l?(f=(0,J.jsx)(ar,{entity:n,objectMounts:l}),t[21]=n,t[22]=l,t[23]=f):f=t[23];let p;t[24]!==d||t[25]!==f?(p=(0,J.jsx)(ee,{fallback:d,children:f}),t[24]=d,t[25]=f,t[26]=p):p=t[26];let h;t[27]===n?h=t[28]:(h=(0,J.jsx)(_r,{entity:n}),t[27]=n,t[28]=h);let g;t[29]!==p||t[30]!==h?(g=(0,J.jsxs)(`group`,{name:`model`,children:[p,h]}),t[29]=p,t[30]=h,t[31]=g):g=t[31];let _;return t[32]!==n.id||t[33]!==i||t[34]!==s||t[35]!==a||t[36]!==g?(_=(0,J.jsx)(`group`,{name:n.id,position:i,quaternion:s,scale:a,children:g}),t[32]=n.id,t[33]=i,t[34]=s,t[35]=a,t[36]=g,t[37]=_):_=t[37],_}function yr(){let e=(0,q.c)(3),{fov:t}=l(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[0,256,0],e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r=(0,J.jsx)(ft,{makeDefault:!0,position:n,fov:t}),e[1]=t,e[2]=r),r}function br(e){let t=(0,q.c)(3),{children:n}=e,{debugMode:r}=u(),i;return t[0]!==n||t[1]!==r?(i=r?(0,J.jsx)(K.Suspense,{children:n}):null,t[0]=n,t[1]=r,t[2]=i):i=t[2],i}var xr=be(`InputConsumer`),Sr=200,Cr=Math.PI/2-.01,wr=45,Tr=31,Er=40,Dr=1/32,Or=2*Math.PI;function kr(e){return((Math.round(e/Or*65536)|0)<<16>>16)*Or/65536}var Ar=new C,jr=new C,Mr=new C,Nr=new h(0,0,0,`YXZ`);function Pr(e,t,n,r,i,a,o){if(r===0&&i===0&&a===0)return;let s=Math.sin(t),c=Math.cos(t),l=Math.sin(n),u=Math.cos(n),d=o*Dr;e.x+=(c*r+s*u*i+s*l*a)*d,e.y+=(-s*r+c*u*i+c*l*a)*d,e.z+=(-l*i+u*a)*d}function Fr(){let{moveQueue:e,mode:t,setMode:n}=rt(),r=ze(e=>e.adapter),a=ze(e=>e.gameStatus),s=ze(e=>e.liveReady),c=ze(e=>e.sendMoves),l=Se(),u=o(e=>e.camera),d=Ot(),f=(0,K.useRef)(null),p=(0,K.useRef)([]),m=(0,K.useRef)(0),h=(0,K.useRef)(0),g=(0,K.useRef)(null),_=(0,K.useRef)(0),v=(0,K.useRef)(0),y=(0,K.useRef)({x:0,y:0,z:0}),b=(0,K.useRef)(0),x=(0,K.useRef)(0),S=(0,K.useRef)({x:0,y:0,z:0}),C=(0,K.useRef)(!1),w=(0,K.useRef)({x:0,y:0,z:0}),T=(0,K.useRef)({x:0,y:0,z:0}),E=(0,K.useRef)(!1),D=(0,K.useRef)(null),O=(0,K.useRef)(0),k=(0,K.useRef)(0),A=(0,K.useRef)(0),j=(0,K.useRef)(0),M=(0,K.useRef)(0),N=(0,K.useRef)([!1,!1,!1,!1,!1,!1]),P=!!r&&(a===`connected`||a===`authenticating`);return(0,K.useEffect)(()=>{if(P&&r){if(f.current===r)return;xr.info(`wiring adapter to engine store`);let e=Qe.getState(),t={source:`live`,duration:1/0,missionName:e.mapName??null,gameType:null,serverDisplayName:e.serverName??null,recorderName:e.warriorName??null,recordingDate:null,streamingPlayback:r};l.getState().setRecording(t),l.getState().setPlaybackStatus(`playing`),f.current=r,C.current=!1,E.current=!1,D.current=null,p.current.length=0,m.current=0,h.current=0,g.current=null,n(`fly`)}else !P&&f.current&&(l.getState().playback.recording?.source===`live`&&l.getState().setRecording(null),f.current=null,C.current=!1,E.current=!1,D.current=null,p.current.length=0,n(`local`))},[P,r,l,n]),(0,K.useEffect)(()=>{!s&&f.current&&(xr.info(`mission change: resetting prediction state and mode`),C.current=!1,E.current=!1,D.current=null,p.current.length=0,m.current=0,h.current=0,g.current=null,O.current=0,k.current=0,A.current=0,j.current=0,M.current=0,N.current.fill(!1),n(`fly`))},[s,n]),(0,K.useEffect)(()=>{if(!P)return Pe.subscribe(e=>{n(e.cameraMode===`orbitOverride`?`follow`:`local`)})},[P,n]),Dt(()=>{if(!f.current||a!==`connected`||!s)return;let e=O.current,t=k.current;O.current=0,k.current=0;let n=A.current,r=j.current,i=M.current;A.current=0,j.current=0,M.current=0;let o=[...N.current];N.current.fill(!1);let l=kr(e),u=kr(t);_.current+=l-e,v.current+=u-t,b.current=_.current,x.current=v.current,S.current={...y.current};let d=Er*2,h=_.current-l,g=v.current-u;Pr(y.current,h,g,n,r,i,d),o[1]=!0;let C=m.current++,P={x:n,y:r,z:i,yaw:e,pitch:t,roll:0,trigger:o,freeLook:!1},F=p.current;F.push({moveIndex:C,move:P,yaw:l,pitch:u,x:n,y:r,z:i}),F.length>wr&&F.splice(0,F.length-wr);let I=f.current.lastMoveAck;for(;F.length>0&&F[0].moveIndex0){let e=F.slice(0,Tr);c(e.map(e=>e.move),e[0].moveIndex)}let L=f.current.getSnapshot();if(L!==D.current){D.current=L;let e=L?.camera;if(e?.orbitTargetId){let t=L.entities.find(t=>t.id===e.orbitTargetId);t?.position&&(w.current={...T.current},T.current={x:t.position[0],y:t.position[1],z:t.position[2]},E.current||=(w.current={...T.current},!0))}}}),i((r,i)=>{let o=e.current;if(o.length>0){let t=0,n=0,r=0,i=0,c=0,l=0,d=[!1,!1,!1,!1,!1,!1];for(let e of o){t+=e.deltaYaw,n+=e.deltaPitch,Math.abs(e.x)>Math.abs(r)&&(r=e.x),Math.abs(e.y)>Math.abs(i)&&(i=e.y),Math.abs(e.z)>Math.abs(c)&&(c=e.z),l+=e.delta;for(let t=0;th.current){h.current=e;let t=p.current;for(;t.length>0&&t[0].moveIndexe.id===m.orbitTargetId);if(e?.position){let t={x:e.position[0],y:e.position[1],z:e.position[2]};T.current=t,w.current={...t},E.current=!0}}}if(C.current){if(t===`fly`)Lr(r.camera,S.current,y.current,_.current,v.current,d());else if(t===`follow`){if(!E.current)return;Rr(r.camera,w.current,T.current,_.current,v.current,d(),m?.orbitDistance??4,m?.orbitTargetId)}}}),(0,K.useEffect)(()=>()=>{f.current&&=(l.getState().playback.recording?.source===`live`&&l.getState().setRecording(null),null)},[l]),null}function Ir(e,t,n,r,i,a,o){if((t!==0||n!==0)&&(Nr.setFromQuaternion(e.quaternion,`YXZ`),Nr.y-=t,Nr.x-=n,Nr.x=Math.max(-Cr,Math.min(Cr,Nr.x)),e.quaternion.setFromEuler(Nr)),r!==0||i!==0||a!==0){e.getWorldDirection(Ar),Ar.normalize(),jr.crossVectors(e.up,Ar).normalize(),Mr.set(0,0,0),i!==0&&Mr.addScaledVector(Ar,i),r!==0&&Mr.addScaledVector(jr,-r),a!==0&&(Mr.y+=a);let t=Mr.length();t>0&&(Mr.multiplyScalar(Math.min(1,t)/t*Sr*o),e.position.add(Mr))}}function Lr(e,t,n,r,i,a){let o=t.x+(n.x-t.x)*a,s=t.y+(n.y-t.y)*a,c=t.z+(n.z-t.z)*a;e.position.set(s,c,o);let[l,u,d,f]=Fe(r,i);e.quaternion.set(l,u,d,f)}function Rr(e,t,n,r,i,a,o,s){let c=t.x+(n.x-t.x)*a,l=t.y+(n.y-t.y)*a,u=t.z+(n.z-t.z)*a+(s!=null&&Ze.getState().streamEntities.get(s)?.renderType===`Player`?1:0),d=Math.sin(i),f=Math.cos(i),p=Math.sin(r),m=Math.cos(r),h=Math.max(.1,o),g=c-p*f*h,_=l-m*f*h,v=u+d*h;e.position.set(_,v,g);let[y,b,x,S]=Fe(r,i);e.quaternion.set(y,b,x,S)}var zr=be(`CameraTourConsumer`);function Br(e){return e<.5?4*e*e*e:1-(-2*e+2)**3/2}var Vr=3,Hr=10,Ur=2,Wr=1.8,Gr=50,Kr=200,qr=2,Jr=1.8,Yr=1.2,Xr=.6,Zr=3/4*(2*Math.PI),Qr=Zr/Xr,$r=1.5,ei=1.5,ti=6,ni=180,ri=1.4,ii=new E,ai=new E,oi=new E,si=new P,ci=new C,li=new C,ui=new C,di=new C,fi=new C,Q=new m,pi=new m,mi=new P,hi=new h;function gi(e){if(e.orbitCenter)return fi.set(e.orbitCenter[0],e.orbitCenter[1],e.orbitCenter[2]);let t=e.targets[e.currentIndex];return fi.set(t.position[0],t.position[1],t.position[2])}function _i(e){return e.orbitRadius??Vr}function vi(e){return _i(e)*(Ur/Vr)}function yi(e,t,n){let r=gi(e),i=_i(e),a=vi(e);return n.set(r.x+Math.cos(t)*i,r.y+a,r.z+Math.sin(t)*i)}function bi(e,t,n){let r=e.getObjectByName(t.entityId),i=!1;if(r&&r.traverse(e=>{e.geometry&&(i=!0)}),r&&!i){n.orbitCenter=[...t.position],n.orbitRadius=Hr;return}if(r&&i){ii.setFromObject(r),ii.getCenter(ci),n.orbitCenter=[ci.x,ci.y,ci.z];let e=mi.copy(r.matrixWorld).invert();ai.makeEmpty(),r.traverse(t=>{t.geometry&&(t.geometry.boundingBox||t.geometry.computeBoundingBox(),oi.copy(t.geometry.boundingBox),si.multiplyMatrices(e,t.matrixWorld),oi.applyMatrix4(si),ai.union(oi))}),ai.getSize(li);let i=li.y,a=Math.max(li.x,li.z),o=i/2+Jr,s=a/2+Yr,c=Math.max(o,s);if(c>200){n.orbitCenter=[...t.position];let e=0;r.traverse(t=>{if(e>0||!t.geometry)return;t.geometry.boundingBox||t.geometry.computeBoundingBox();let n=t.geometry.boundingBox,r=n.max.x-n.min.x,i=n.max.y-n.min.y,a=n.max.z-n.min.z;e=Math.max(r,i,a)});let i=(e/2+Yr)*.75;n.orbitRadius=Math.max(Wr,i)}else n.orbitRadius=Math.max(Wr,c);let l=o>=s?`height`:`spread`,u=ci.distanceTo(r)&&o.lerp(r,.3),o.y+=a*.15,new w([e.clone(),o,i],!1,`centripetal`)}function wi(e,t){let n=gi(t);return Math.atan2(e.z-n.z,e.x-n.x)}function Ti(e){return Math.max(ei,Math.min(ti,e/ni))}function Ei(e,t,n,r){let i=e.targets[e.currentIndex];if(!e.curve){e.startPos=[t.position.x,t.position.y,t.position.z],xi(Q.copy(t.quaternion)),e.startQuat=[Q.x,Q.y,Q.z,Q.w],bi(r,i,e);let n=t.position.clone();e.curve=Ci(n,e,wi(n,e)),e.phaseDuration=Ti(e.curve.getLength()),e.elapsed=0;return}e.elapsed+=n;let a=Math.min(1,Br(e.elapsed/e.phaseDuration));e.curve.getPointAt(a,ui),t.position.copy(ui);let o=Br(Math.min(1,e.elapsed/e.phaseDuration*ri)),s=Si(ui,gi(e));o<1&&e.startQuat?(Q.set(e.startQuat[0],e.startQuat[1],e.startQuat[2],e.startQuat[3]),Q.slerp(s,o),t.quaternion.copy(Q)):t.quaternion.copy(s),e.elapsed>=e.phaseDuration&&(e.phase=`orbiting`,e.elapsed=0,e.orbitStartAngle=wi(t.position,e))}function Di(e,t,n){let r=e.targets.length===1,i=e.currentIndex>=e.targets.length-1;e.elapsed+=n;let a=e.orbitStartAngle,o=Qr+$r,s;if(e.elapsed<=Qr)s=a+e.elapsed*Xr;else{let t=e.elapsed-Qr,n=Math.min(1,t/$r),r=t*Xr*(1-n/2);s=a+Zr+r}yi(e,s,ui),t.position.copy(ui);let c=Si(ui,gi(e));t.quaternion.copy(c),e.elapsed>=o&&(r||i?Ae.getState().cancel():Ae.getState().advanceTarget())}function Oi(){let e=(0,q.c)(3),t=o(Mi),n=o(ji),r=(0,K.useRef)(null);st(`nextStop`,Ai),st(`exitTour`,ki);let a;return e[0]!==t||e[1]!==n?(a=(e,i)=>{let a=Ae.getState().animation,o=a?_i(a):0,s=a&&o>=Gr?Math.max(1,o/Kr):1,c=z.fogDistanceScale.value;if(c!==s){let e=qr*i;s>c?z.fogDistanceScale.value=Math.min(c+e,s):z.fogDistanceScale.value=Math.max(c-e,s)}if(!a){r.current&&=(xi(t.quaternion),null);return}r.current=a,a.phase===`traveling`?Ei(a,t,i,n):Di(a,t,i)},e[0]=t,e[1]=n,e[2]=a):a=e[2],i(a),null}function ki(){Ae.getState().cancel()}function Ai(){let e=Ae.getState().animation;e&&(e.currentIndex>=e.targets.length-1?Ae.getState().cancel():Ae.getState().advanceTarget())}function ji(e){return e.scene}function Mi(e){return e.camera}var Ni=3;function $({map:e}){let t=nt,n=o(e=>e.gl.domElement),r=(0,K.useMemo)(()=>{let n=e.map(e=>{let t=Array.isArray(e.keys)?e.keys:[e.keys];return{name:e.name,bindings:t.map($e)}}),r={};for(let e of n)r[e.name]=it(e.bindings[0]);let i=new Map,a=[],o=[],s=[],c=[],l=[];for(let e of n)for(let t of e.bindings)switch(t.type){case`key`:{let n=i.get(t.code);n||(n=[],i.set(t.code,n)),n.push({action:e,binding:t});break}case`click`:a.push({action:e,binding:t});break;case`drag`:o.push({action:e,binding:t});break;case`pointerLockMove`:s.push({action:e});break;case`scroll`:c.push({action:e});break;case`touch`:l.push({action:e});break}function u(e){return e==null?!0:e===!!document.pointerLockElement}function d(e){let{actions:n}=t.getState(),r={};for(let[,t]of i)for(let{action:i,binding:a}of t){let t=e.has(a.code)&&at(e,a.modifiers),o=n[i.name]?.pressed??!1;t&&!o?(r[i.name]={pressed:!0},Je(i.name)):!t&&o&&(r[i.name]={pressed:!1})}Object.keys(r).length>0&&t.setState(e=>({...e,actions:{...e.actions,...r}}))}let f=-1,p=0,m=0,h=!1;function g(e,n){t.setState(t=>({...t,actions:{...t.actions,[e]:n}}))}function _(e){let t=!!document.pointerLockElement;for(let{action:t,binding:n}of a){if(!u(n.whenPointerLocked))continue;let r=n.button??0;e.button===r&&qe(e,n.modifiers)&&g(t.name,{pressed:!0})}t||(f=e.button,p=e.clientX,m=e.clientY,h=!1)}function v(e){if(document.pointerLockElement){if(s.length>0){let{actions:n}=t.getState(),r={};for(let{action:t}of s){let i=n[t.name];r[t.name]={...i,deltaX:i.deltaX+e.movementX,deltaY:i.deltaY+e.movementY}}t.setState(e=>({...e,actions:{...e.actions,...r}}))}return}if(f<0)return;if(!h){let n=e.clientX-p,r=e.clientY-m;if(Math.abs(n)0&&t.setState(e=>({...e,actions:{...e.actions,...r}}))}function y(e){let n=!!document.pointerLockElement;for(let{action:n,binding:r}of a){if(!u(r.whenPointerLocked))continue;let i=r.button??0;e.button===i&&t.getState().actions[n.name].pressed&&(Je(n.name),g(n.name,{pressed:!1}))}if(!n&&e.button===f){for(let{action:e,binding:n}of o)u(n.whenPointerLocked)&&(n.button??0)===f&&t.getState().actions[e.name].dragging&&g(e.name,tt());f=-1,h=!1}}function b(e){for(let{action:t}of c)g(t.name,{deltaX:e.deltaX,deltaY:e.deltaY}),Je(t.name)}let x=null,S=0,C=0;function w(e){if(x!==null||l.length===0)return;let t=e.changedTouches[0];if(t){x=t.identifier,S=t.clientX,C=t.clientY;for(let{action:e}of l)g(e.name,{touching:!0,dragging:!1,deltaX:0,deltaY:0})}}function T(e){if(x!==null)for(let n=0;ne.name),initialActions:r,deriveKeyActions:d,hasKeyBindings:i.size>0,handleMouseDown:_,handleMouseMove:v,handleMouseUp:y,handleWheel:b,handleTouchStart:w,handleTouchMove:T,handleTouchEnd:E,hasMouseBindings:a.length>0||o.length>0||s.length>0,hasScrollBindings:c.length>0,hasTouchBindings:l.length>0}},[e,t]);return(0,K.useEffect)(()=>{t.setState(e=>({...e,actions:{...e.actions,...r.initialActions}}));let e;return r.hasKeyBindings&&(r.deriveKeyActions(t.getState().keys),e=t.subscribe(e=>e.keys,e=>r.deriveKeyActions(e))),r.hasMouseBindings&&(n.addEventListener(`mousedown`,r.handleMouseDown),document.addEventListener(`mousemove`,r.handleMouseMove),document.addEventListener(`mouseup`,r.handleMouseUp)),r.hasScrollBindings&&n.addEventListener(`wheel`,r.handleWheel,{passive:!0}),r.hasTouchBindings&&(n.addEventListener(`touchstart`,r.handleTouchStart,{passive:!0}),document.addEventListener(`touchmove`,r.handleTouchMove,{passive:!0}),document.addEventListener(`touchend`,r.handleTouchEnd,{passive:!0}),document.addEventListener(`touchcancel`,r.handleTouchEnd,{passive:!0})),()=>{e?.(),r.hasMouseBindings&&(n.removeEventListener(`mousedown`,r.handleMouseDown),document.removeEventListener(`mousemove`,r.handleMouseMove),document.removeEventListener(`mouseup`,r.handleMouseUp)),r.hasScrollBindings&&n.removeEventListener(`wheel`,r.handleWheel),r.hasTouchBindings&&(n.removeEventListener(`touchstart`,r.handleTouchStart),document.removeEventListener(`touchmove`,r.handleTouchMove),document.removeEventListener(`touchend`,r.handleTouchEnd),document.removeEventListener(`touchcancel`,r.handleTouchEnd)),t.setState(e=>{let t={...e.actions};for(let e of r.actionNames)delete t[e];return{...e,actions:t}})}},[r,t,n]),null}var Pi=[{name:`moveForward`,keys:[`KeyW`]},{name:`moveBackward`,keys:[`KeyS`]},{name:`moveLeft`,keys:[`KeyA`]},{name:`moveRight`,keys:[`KeyD`]},{name:`moveUp`,keys:[`KeyE`]},{name:`moveDown`,keys:[`KeyQ`]},{name:`adjustSpeed`,keys:[{type:`scroll`}]}],Fi=[{name:`lookUp`,keys:[`ArrowUp`]},{name:`lookDown`,keys:[`ArrowDown`]},{name:`lookLeft`,keys:[`ArrowLeft`]},{name:`lookRight`,keys:[`ArrowRight`]},{name:`dragLook`,keys:[{type:`drag`,button:0}]},{name:`lockedLook`,keys:[{type:`pointerLockMove`}]},{name:`touchLook`,keys:[{type:`touch`}]}],Ii=[{name:`canvasClick`,keys:[{type:`click`,button:0,whenPointerLocked:!1}]}],Li=[{name:`camera1`,keys:[`Digit1`]},{name:`camera2`,keys:[`Digit2`]},{name:`camera3`,keys:[`Digit3`]},{name:`camera4`,keys:[`Digit4`]},{name:`camera5`,keys:[`Digit5`]},{name:`camera6`,keys:[`Digit6`]},{name:`camera7`,keys:[`Digit7`]},{name:`camera8`,keys:[`Digit8`]},{name:`camera9`,keys:[`Digit9`]}],Ri=[{name:`playPause`,keys:[`Space`]},{name:`decreasePlaybackSpeed`,keys:[`Comma`,`Shift-Comma`]},{name:`increasePlaybackSpeed`,keys:[`Period`,`Shift-Period`]}],zi=[{name:`toggleObserverMode`,keys:[`Space`]}],Bi=[{name:`nextPlayer`,keys:[{type:`click`,button:0,whenPointerLocked:!0}]}],Vi=[{name:`nextStop`,keys:[{type:`click`,button:0}]},{name:`exitTour`,keys:[`Escape`]}];function Hi(){let e=(0,q.c)(27),t=Be(),n=et(),r=Oe(Ui),i=t?.source===`demo`,a=t?.source===`live`,o=!t,s=o&&!r||a&&n===`fly`,c=!r,l=!r,u;e[0]===s?u=e[1]:(u=s&&(0,J.jsx)($,{map:Pi}),e[0]=s,e[1]=u);let d;e[2]===c?d=e[3]:(d=c&&(0,J.jsx)($,{map:Fi}),e[2]=c,e[3]=d);let f;e[4]===l?f=e[5]:(f=l&&(0,J.jsx)($,{map:Ii}),e[4]=l,e[5]=f);let p;e[6]!==o||e[7]!==r?(p=o&&!r&&(0,J.jsx)($,{map:Li}),e[6]=o,e[7]=r,e[8]=p):p=e[8];let m;e[9]===i?m=e[10]:(m=i&&(0,J.jsx)($,{map:Ri}),e[9]=i,e[10]=m);let h;e[11]===a?h=e[12]:(h=a&&(0,J.jsx)($,{map:zi}),e[11]=a,e[12]=h);let g;e[13]!==n||e[14]!==a?(g=a&&n===`follow`&&(0,J.jsx)($,{map:Bi}),e[13]=n,e[14]=a,e[15]=g):g=e[15];let _;e[16]===r?_=e[17]:(_=r&&(0,J.jsx)($,{map:Vi}),e[16]=r,e[17]=_);let v;return e[18]!==u||e[19]!==d||e[20]!==f||e[21]!==p||e[22]!==m||e[23]!==h||e[24]!==g||e[25]!==_?(v=(0,J.jsxs)(J.Fragment,{children:[u,d,f,p,m,h,g,_]}),e[18]=u,e[19]=d,e[20]=f,e[21]=p,e[22]=m,e[23]=h,e[24]=g,e[25]=_,e[26]=v):v=e[26],v}function Ui(e){return e.animation!==null}function Wi(e,t){return(0,K.lazy)(()=>t().then(t=>({default:t[e]})))}var Gi=Wi(`StreamingController`,()=>W(()=>import(`./StreamingController-mmR1lAIE.js`),__vite__mapDeps([34,2,35,36,18,14,1,3,4,5,6,7,8,9,10,11,12,13,15,16,17,19,20,21,22,23,24,25,26,37,38,39,33,40,41]))),Ki=Wi(`DebugElements`,()=>W(()=>import(`./DebugElements-CrsrzkRa.js`),__vite__mapDeps([42,2,3,4,5,6,7,8,43]))),qi=Wi(`Mission`,()=>W(()=>import(`./Mission-RZOaitqM.js`),__vite__mapDeps([44,2,35,36,18,14,1,3,4,5,6,7,8,9,10,11,12,13,15,16,17,19,20,21,22,23,24,25,26,37,38,39,33,40,45]))),Ji=Wi(`ChatSoundPlayer`,()=>W(()=>import(`./ChatSoundPlayer-BuKG-RWU.js`),__vite__mapDeps([46,2,10,6,11,8,12,13,7,15,3,4,5,14,16,17,18,19,20]))),Yi=(0,K.memo)(function(e){let t=(0,q.c)(23),{dpr:n,onCreated:r,missionName:i,missionType:a,onLoadingChange:o}=e,s=Be(),c=We(),l=c===`demo`||c===`live`,u,d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(Hi,{}),d=(0,J.jsx)(ot,{}),t[0]=u,t[1]=d):(u=t[0],d=t[1]);let f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(_t,{}),t[2]=f):f=t[2];let p,m;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(pr,{})}),m=(0,J.jsx)(yr,{}),t[3]=p,t[4]=m):(p=t[3],m=t[4]);let h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsx)(Jn,{children:(0,J.jsx)(Ji,{})}),t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,J.jsx)(br,{children:(0,J.jsx)(Ki,{})}),t[6]=g):g=t[6];let _;t[7]===s?_=t[8]:(_=s?(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Gi,{recording:s})}):null,t[7]=s,t[8]=_);let v;t[9]!==l||t[10]!==i||t[11]!==a||t[12]!==o?(v=l?null:(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(qi,{name:i,missionType:a,onLoadingChange:o},`${i}~${a}`)}),t[9]=l,t[10]=i,t[11]=a,t[12]=o,t[13]=v):v=t[13];let y,b;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(Oi,{}),b=(0,J.jsx)(Fr,{}),t[14]=y,t[15]=b):(y=t[14],b=t[15]);let x;t[16]!==_||t[17]!==v?(x=(0,J.jsx)(Et,{children:(0,J.jsxs)(Ye,{children:[u,d,(0,J.jsxs)(De,{children:[f,p,m,h,g,_,v,y,b]})]})}),t[16]=_,t[17]=v,t[18]=x):x=t[18];let S;return t[19]!==n||t[20]!==r||t[21]!==x?(S=(0,J.jsx)(Ct,{dpr:n,onCreated:r,children:x}),t[19]=n,t[20]=r,t[21]=x,t[22]=S):S=t[22],S});export{Yi as GameView}; \ No newline at end of file + `,depthWrite:!1,depthTest:!1})]})}function Gn(e,t){let{fogDistance:n,visibleDistance:r}=e;return[n,r]}function Kn({fogState:e,enabled:t}){let n=o(e=>e.scene),r=o(e=>e.camera),a=(0,K.useRef)(null),s=(0,K.useMemo)(()=>V(e.fogVolumes),[e.fogVolumes]);return(0,K.useEffect)(()=>{In||=(de(),!0)},[]),(0,K.useEffect)(()=>{pe();let[t,i]=Gn(e,r.position.y),o=new O(e.fogColor,t,i);return n.fog=o,a.current=o,ue(r.position.y,s),()=>{n.fog=null,a.current=null,pe()}},[n,r,e,s]),(0,K.useEffect)(()=>{let n=a.current;if(n)if(t){let[t,i]=Gn(e,r.position.y);n.near=t,n.far=i}else n.near=1e10,n.far=1e10},[t,e,r.position.y]),i(()=>{let n=a.current;if(!n)return;let i=r.position.y;if(ue(i,s,t),t){let[t,r]=Gn(e,i),a=z.fogDistanceScale.value;n.near=a>1?Math.min(t,100):t,n.far=r*a,n.color.copy(e.fogColor)}}),null}var qn=(0,K.memo)(function({entity:e}){let{skyData:t}=e;Fn.debug(`Rendering: materialList=%s, useSkyTextures=%s`,t.materialList,t.useSkyTextures);let{fogEnabled:n}=l(),r=t.materialList||void 0,i=(0,K.useMemo)(()=>Ln(t.skySolidColor),[t.skySolidColor]),a=t.useSkyTextures,s=(0,K.useMemo)(()=>Pn(t),[t]);Fn.debug(`fogState: fogColor=(%s, %s, %s) visibleDistance=%d fogDistance=%d enabled=%s volumes=%d`,t.fogColor.r.toFixed(3),t.fogColor.g.toFixed(3),t.fogColor.b.toFixed(3),t.visibleDistance,t.fogDistance,s.enabled,s.fogVolumes.length);let c=(0,K.useMemo)(()=>Ln(t.fogColor),[t.fogColor]),u=i||c,d=s.enabled&&n,f=s.fogColor,p=o(e=>e.scene),m=o(e=>e.gl);(0,K.useEffect)(()=>{if(d){let e=f.clone();p.background=e,m.setClearColor(e)}else if(u){let e=u[0].clone();p.background=e,m.setClearColor(e)}else p.background=null;return()=>{p.background=null}},[p,m,d,f,u]);let h=i?.[1];return(0,J.jsxs)(J.Fragment,{children:[r&&a&&r.length>0?(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Vn,{materialList:r,fogColor:d?f:void 0,fogState:d?s:void 0},r)}):h?(0,J.jsx)(Wn,{skyColor:h,fogColor:d?f:void 0,fogState:d?s:void 0}):null,(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(jn,{scene:t})}),s.enabled?(0,J.jsx)(Kn,{fogState:s,enabled:n}):null]})});function Jn(e){let t=(0,q.c)(3),{children:n}=e,{audioEnabled:r}=l(),i;return t[0]!==r||t[1]!==n?(i=r?(0,J.jsx)(K.Suspense,{children:n}):null,t[0]=r,t[1]=n,t[2]=i):i=t[2],i}var Yn=()=>{};function Xn(e,t){let n=(0,q.c)(4),{animationEnabled:r}=l(),a;n[0]!==r||n[1]!==e.rotate||n[2]!==t?(a=e.rotate&&r?()=>{if(t.current){let e=performance.now()/1e3;t.current.rotation.y=e/3*Math.PI*2}}:Yn,n[0]=r,n[1]=e.rotate,n[2]=t,n[3]=a):a=n[3],i(a)}function Zn(e,t){let n=(0,K.lazy)(()=>t().then(t=>({default:t[e]}))),r=t=>{let r=(0,q.c)(5),{entity:i}=t,a=`${e}:${i.id}`,o;r[0]===i?o=r[1]:(o=(0,J.jsx)(n,{entity:i}),r[0]=i,r[1]=o);let s;return r[2]!==a||r[3]!==o?(s=(0,J.jsx)(Ne,{name:a,children:o}),r[2]=a,r[3]=o,r[4]=s):s=r[4],s};return r.displayName=`createLazy(${e})`,r}var Qn=Zn(`PlayerModel`,()=>W(()=>import(`./PlayerModel-8dF8wZN2.js`),__vite__mapDeps([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]))),$n=Zn(`ExplosionShape`,()=>W(()=>import(`./ExplosionShape-DH_M7uUx.js`),__vite__mapDeps([27,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]))),er=Zn(`TracerProjectile`,()=>W(()=>import(`./Projectiles-CWChdCSv.js`),__vite__mapDeps([28,2,29,5,6,7,8,22,23,17,18,14,12,13]))),tr=Zn(`SpriteProjectile`,()=>W(()=>import(`./Projectiles-CWChdCSv.js`),__vite__mapDeps([28,2,29,5,6,7,8,22,23,17,18,14,12,13]))),nr=Zn(`ForceFieldBare`,()=>W(()=>import(`./ForceFieldBare-CIwodqfs.js`),__vite__mapDeps([30,2,29,5,6,7,8,10,11,12,13,16,21,14,17,18,19]))),rr=Zn(`AudioEmitter`,()=>W(()=>import(`./AudioEmitter-DaFPiGOy.js`),__vite__mapDeps([31,10,2,6,11,8,12,13,15,3,4,5,7,14,16,17,18,19,20]))),ir=Zn(`WaterBlock`,()=>W(()=>import(`./WaterBlock-DV6neJfD.js`),__vite__mapDeps([32,2,4,29,5,6,7,8,10,11,12,13,16,24,23,17,18,14,33,19]))),ar=(0,K.memo)(function(e){let t=(0,q.c)(27),{entity:n,objectMounts:r}=e;switch(n.renderType){case`Shape`:{let e;return t[0]!==n||t[1]!==r?(e=(0,J.jsx)(or,{entity:n,objectMounts:r}),t[0]=n,t[1]=r,t[2]=e):e=t[2],e}case`ForceFieldBare`:{let e;return t[3]===n?e=t[4]:(e=(0,J.jsx)(nr,{entity:n}),t[3]=n,t[4]=e),e}case`Player`:{let e;return t[5]===n?e=t[6]:(e=(0,J.jsx)(Qn,{entity:n}),t[5]=n,t[6]=e),e}case`Explosion`:{let e;return t[7]===n?e=t[8]:(e=(0,J.jsx)($n,{entity:n}),t[7]=n,t[8]=e),e}case`Tracer`:{let e;return t[9]===n?e=t[10]:(e=(0,J.jsx)(er,{entity:n}),t[9]=n,t[10]=e),e}case`Sprite`:{let e;return t[11]===n?e=t[12]:(e=(0,J.jsx)(tr,{entity:n}),t[11]=n,t[12]=e),e}case`AudioEmitter`:{let e;return t[13]===n?e=t[14]:(e=(0,J.jsx)(Jn,{children:(0,J.jsx)(rr,{entity:n})}),t[13]=n,t[14]=e),e}case`Camera`:{let e;return t[15]===n?e=t[16]:(e=(0,J.jsx)(kt,{entity:n}),t[15]=n,t[16]=e),e}case`WayPoint`:{let e;return t[17]===n?e=t[18]:(e=(0,J.jsx)(At,{entity:n}),t[17]=n,t[18]=e),e}case`TerrainBlock`:{let e;return t[19]===n?e=t[20]:(e=(0,J.jsx)(en,{entity:n}),t[19]=n,t[20]=e),e}case`InteriorInstance`:{let e;return t[21]===n?e=t[22]:(e=(0,J.jsx)(hn,{entity:n}),t[21]=n,t[22]=e),e}case`Sky`:{let e;return t[23]===n?e=t[24]:(e=(0,J.jsx)(qn,{entity:n}),t[23]=n,t[24]=e),e}case`Sun`:return null;case`WaterBlock`:{let e;return t[25]===n?e=t[26]:(e=(0,J.jsx)(ir,{entity:n}),t[25]=n,t[26]=e),e}case`MissionArea`:return null;case`None`:return null;default:return null}});function or({entity:e,objectMounts:t}){let n=We(),r=n===`demo`||n===`live`,i=(0,K.useRef)(null);if(Xn(e,i),!e.shapeName)throw Error(`Shape entity missing shapeName: ${e.id}`);let a=e.shapeType??`StaticShape`,o=(0,K.useMemo)(()=>ne(e.dataBlockId,e.dataBlock),[e.dataBlockId,e.dataBlock]),s=e.dataBlock?.toLowerCase()===`flag`,c=e.teamId&&e.teamId>0?xe[e.teamId]:null,l=s&&c?`${c} Flag`:null,u=e.shapeType===`Item`?`pink`:e.threads?`#00ff88`:`yellow`,d=(0,K.useMemo)(()=>{let n={...t},r=e.imageSlots;if(r)for(let t=0;t0?n:void 0},[t,e.imageSlots,e.id]),f=(0,K.useMemo)(()=>{if(e.lightType)return{type:e.lightType,color:e.lightColor??[1,1,1,1],time:e.lightTime??1e3,radius:e.lightRadius??10,onlyStatic:!!e.lightOnlyStatic,isStatic:!!e.isStaticItem}},[e.lightType]);return(0,J.jsx)(ce,{object:e.runtimeObject,shapeName:e.shapeName,type:a,children:(0,J.jsx)(`group`,{ref:e.rotate?i:void 0,children:(0,J.jsx)(re,{loadingColor:u,streamEntity:r?e:void 0,emap:o,entityId:e.id,skinName:e.skinName,mounted:d,lightConfig:f,children:l?(0,J.jsx)(Ee,{opacity:.6,children:l}):null})})})}var sr={Root:`_Root_yuidw_1`,Distance:`_Distance_yuidw_9`,Icon:`_Icon_yuidw_18`},cr=1.5,lr=U(`commander/MiniIcons/com_flag_grey`),ur=new C;function dr(e){let t=(0,q.c)(9),{entity:n}=e,r=(0,K.useRef)(null),a=(0,K.useRef)(null),s=(0,K.useRef)(null),l=o(fr),u;t[0]!==l||t[1]!==n.iffColor?(u=()=>{if(a.current&&n.iffColor){let{r:e,g:t,b:r}=n.iffColor;a.current.style.backgroundColor=`rgb(${e},${t},${r})`}if(s.current&&r.current){r.current.getWorldPosition(ur);let e=l.position.distanceTo(ur);s.current.textContent=e.toFixed(1)}},t[0]=l,t[1]=n.iffColor,t[2]=u):u=t[2],i(u);let d=n.iffColor?`rgb(${n.iffColor.r},${n.iffColor.g},${n.iffColor.b})`:`rgb(200,200,200)`,f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=[0,cr,0],t[3]=f):f=t[3];let p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(`span`,{ref:s,className:sr.Distance}),t[4]=p):p=t[4];let m;t[5]===d?m=t[6]:(m={backgroundColor:d,"--flag-icon-url":`url(${lr})`},t[5]=d,t[6]=m);let h=m,g;return t[7]===h?g=t[8]:(g=(0,J.jsx)(`group`,{ref:r,children:(0,J.jsx)(c,{position:f,center:!0,children:(0,J.jsxs)(`div`,{className:sr.Root,children:[p,(0,J.jsx)(`div`,{ref:a,className:sr.Icon,style:h})]})})}),t[7]=h,t[8]=g),g}function fr(e){return e.camera}function pr(){let e=(0,q.c)(1),t=mr,n;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)(`group`,{ref:t,children:(0,J.jsx)(hr,{})}),e[0]=n):n=e[0],n}function mr(e){Pe.setState({root:e})}var hr=(0,K.memo)(function(){let e=Ue(),t=(0,K.useRef)(new Map).current,n=new Set;for(let r of e)n.add(r.id),t.set(r.id,r);for(let e of t.keys())n.has(e)||t.delete(e);let r=new Set,i=new Map;for(let e of t.values()){let n=e.mountObjectId;if(n&&t.has(n)){r.add(e.id);let t=i.get(n);t||(t=new Map,i.set(n,t)),t.set(e.mountNode??0,e)}}return(0,J.jsx)(J.Fragment,{children:[...t.values()].filter(e=>!r.has(e.id)).map(e=>(0,J.jsx)(gr,{entity:e,mountChildren:i.get(e.id)},e.id))})}),gr=(0,K.memo)(function(e){let t=(0,q.c)(8),{entity:n,mountChildren:r}=e;if(n.debugHidden)return null;if(lt(n)){let e;t[0]===n?e=t[1]:(e=(0,J.jsx)(ar,{entity:n}),t[0]=n,t[1]=e);let r;return t[2]!==n.id||t[3]!==e?(r=(0,J.jsx)(`group`,{name:n.id,children:e}),t[2]=n.id,t[3]=e,t[4]=r):r=t[4],r}if(n.renderType===`None`)return null;let i;return t[5]!==n||t[6]!==r?(i=(0,J.jsx)(vr,{entity:n,mountChildren:r}),t[5]=n,t[6]=r,t[7]=i):i=t[7],i});function _r({entity:e}){let t=(0,K.useRef)(!1),[n,r]=(0,K.useState)(()=>(((`targetRenderFlags`in e?e.targetRenderFlags:void 0)??0)&2)!=0);return t.current=n,i(()=>{let n=(((`targetRenderFlags`in e?e.targetRenderFlags:void 0)??0)&2)!=0;n!==t.current&&(t.current=n,r(n))}),n?(0,J.jsx)(dr,{entity:e}):null}function vr(e){let t=(0,q.c)(38),{entity:n,mountChildren:r}=e,i=n.position,a=n.scale,o;bb0:{if(!n.rotation){o=void 0;break bb0}let e;t[0]===n.rotation?e=t[1]:(e=new m(...n.rotation),t[0]=n.rotation,t[1]=e),o=e}let s=o,c;bb1:{if(!r||r.size===0){c=void 0;break bb1}let e;if(t[2]!==r){e={};for(let[t,n]of r)e[t]=(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(`group`,{rotation:[Math.PI/2,-Math.PI/2,0],children:(0,J.jsx)(ar,{entity:n})})},n.id);t[2]=r,t[3]=e}else e=t[3];c=e}let l=c;if(n.renderType===`Shape`&&!n.shapeName){let e=n.id,r;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(`sphereGeometry`,{args:[.3,6,4]}),t[4]=r):r=t[4];let o;t[5]===n.className?o=t[6]:(o=se(n.className),t[5]=n.className,t[6]=o);let c;t[7]===o?c=t[8]:(c=(0,J.jsxs)(`mesh`,{children:[r,(0,J.jsx)(`meshBasicMaterial`,{color:o,wireframe:!0})]}),t[7]=o,t[8]=c);let l;t[9]===n?l=t[10]:(l=(0,J.jsx)(_r,{entity:n}),t[9]=n,t[10]=l);let u;return t[11]!==n.id||t[12]!==i||t[13]!==s||t[14]!==a||t[15]!==c||t[16]!==l?(u=(0,J.jsxs)(`group`,{name:e,position:i,quaternion:s,scale:a,children:[c,l]}),t[11]=n.id,t[12]=i,t[13]=s,t[14]=a,t[15]=c,t[16]=l,t[17]=u):u=t[17],u}let u;t[18]!==n.className||t[19]!==n.renderType?(u=n.renderType===`Explosion`?null:(0,J.jsxs)(`mesh`,{children:[(0,J.jsx)(`sphereGeometry`,{args:[.5,8,6]}),(0,J.jsx)(`meshBasicMaterial`,{color:se(n.className),wireframe:!0})]}),t[18]=n.className,t[19]=n.renderType,t[20]=u):u=t[20];let d=u,f;t[21]!==n||t[22]!==l?(f=(0,J.jsx)(ar,{entity:n,objectMounts:l}),t[21]=n,t[22]=l,t[23]=f):f=t[23];let p;t[24]!==d||t[25]!==f?(p=(0,J.jsx)(ee,{fallback:d,children:f}),t[24]=d,t[25]=f,t[26]=p):p=t[26];let h;t[27]===n?h=t[28]:(h=(0,J.jsx)(_r,{entity:n}),t[27]=n,t[28]=h);let g;t[29]!==p||t[30]!==h?(g=(0,J.jsxs)(`group`,{name:`model`,children:[p,h]}),t[29]=p,t[30]=h,t[31]=g):g=t[31];let _;return t[32]!==n.id||t[33]!==i||t[34]!==s||t[35]!==a||t[36]!==g?(_=(0,J.jsx)(`group`,{name:n.id,position:i,quaternion:s,scale:a,children:g}),t[32]=n.id,t[33]=i,t[34]=s,t[35]=a,t[36]=g,t[37]=_):_=t[37],_}function yr(){let e=(0,q.c)(3),{fov:t}=l(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[0,256,0],e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r=(0,J.jsx)(ft,{makeDefault:!0,position:n,fov:t}),e[1]=t,e[2]=r),r}function br(e){let t=(0,q.c)(3),{children:n}=e,{debugMode:r}=u(),i;return t[0]!==n||t[1]!==r?(i=r?(0,J.jsx)(K.Suspense,{children:n}):null,t[0]=n,t[1]=r,t[2]=i):i=t[2],i}var xr=be(`InputConsumer`),Sr=200,Cr=Math.PI/2-.01,wr=45,Tr=31,Er=40,Dr=1/32,Or=2*Math.PI;function kr(e){return((Math.round(e/Or*65536)|0)<<16>>16)*Or/65536}var Ar=new C,jr=new C,Mr=new C,Nr=new h(0,0,0,`YXZ`);function Pr(e,t,n,r,i,a,o){if(r===0&&i===0&&a===0)return;let s=Math.sin(t),c=Math.cos(t),l=Math.sin(n),u=Math.cos(n),d=o*Dr;e.x+=(c*r+s*u*i+s*l*a)*d,e.y+=(-s*r+c*u*i+c*l*a)*d,e.z+=(-l*i+u*a)*d}function Fr(){let{moveQueue:e,mode:t,setMode:n}=rt(),r=ze(e=>e.adapter),a=ze(e=>e.gameStatus),s=ze(e=>e.liveReady),c=ze(e=>e.sendMoves),l=Se(),u=o(e=>e.camera),d=Ot(),f=(0,K.useRef)(null),p=(0,K.useRef)([]),m=(0,K.useRef)(0),h=(0,K.useRef)(0),g=(0,K.useRef)(null),_=(0,K.useRef)(0),v=(0,K.useRef)(0),y=(0,K.useRef)({x:0,y:0,z:0}),b=(0,K.useRef)(0),x=(0,K.useRef)(0),S=(0,K.useRef)({x:0,y:0,z:0}),C=(0,K.useRef)(!1),w=(0,K.useRef)({x:0,y:0,z:0}),T=(0,K.useRef)({x:0,y:0,z:0}),E=(0,K.useRef)(!1),D=(0,K.useRef)(null),O=(0,K.useRef)(0),k=(0,K.useRef)(0),A=(0,K.useRef)(0),j=(0,K.useRef)(0),M=(0,K.useRef)(0),N=(0,K.useRef)([!1,!1,!1,!1,!1,!1]),P=!!r&&(a===`connected`||a===`authenticating`);return(0,K.useEffect)(()=>{if(P&&r){if(f.current===r)return;xr.info(`wiring adapter to engine store`);let e=Qe.getState(),t={source:`live`,duration:1/0,missionName:e.mapName??null,gameType:null,serverDisplayName:e.serverName??null,recorderName:e.warriorName??null,recordingDate:null,streamingPlayback:r};l.getState().setRecording(t),l.getState().setPlaybackStatus(`playing`),f.current=r,C.current=!1,E.current=!1,D.current=null,p.current.length=0,m.current=0,h.current=0,g.current=null,n(`fly`)}else !P&&f.current&&(l.getState().playback.recording?.source===`live`&&l.getState().setRecording(null),f.current=null,C.current=!1,E.current=!1,D.current=null,p.current.length=0,n(`local`))},[P,r,l,n]),(0,K.useEffect)(()=>{!s&&f.current&&(xr.info(`mission change: resetting prediction state and mode`),C.current=!1,E.current=!1,D.current=null,p.current.length=0,m.current=0,h.current=0,g.current=null,O.current=0,k.current=0,A.current=0,j.current=0,M.current=0,N.current.fill(!1),n(`fly`))},[s,n]),(0,K.useEffect)(()=>{if(!P)return Pe.subscribe(e=>{n(e.cameraMode===`orbitOverride`?`follow`:`local`)})},[P,n]),Dt(()=>{if(!f.current||a!==`connected`||!s)return;let e=O.current,t=k.current;O.current=0,k.current=0;let n=A.current,r=j.current,i=M.current;A.current=0,j.current=0,M.current=0;let o=[...N.current];N.current.fill(!1);let l=kr(e),u=kr(t);_.current+=l-e,v.current+=u-t,b.current=_.current,x.current=v.current,S.current={...y.current};let d=Er*2,h=_.current-l,g=v.current-u;Pr(y.current,h,g,n,r,i,d),o[1]=!0;let C=m.current++,P={x:n,y:r,z:i,yaw:e,pitch:t,roll:0,trigger:o,freeLook:!1},F=p.current;F.push({moveIndex:C,move:P,yaw:l,pitch:u,x:n,y:r,z:i}),F.length>wr&&F.splice(0,F.length-wr);let I=f.current.lastMoveAck;for(;F.length>0&&F[0].moveIndex0){let e=F.slice(0,Tr);c(e.map(e=>e.move),e[0].moveIndex)}let L=f.current.getSnapshot();if(L!==D.current){D.current=L;let e=L?.camera;if(e?.orbitTargetId){let t=L.entities.find(t=>t.id===e.orbitTargetId);t?.position&&(w.current={...T.current},T.current={x:t.position[0],y:t.position[1],z:t.position[2]},E.current||=(w.current={...T.current},!0))}}}),i((r,i)=>{let o=e.current;if(o.length>0){let t=0,n=0,r=0,i=0,c=0,l=0,d=[!1,!1,!1,!1,!1,!1];for(let e of o){t+=e.deltaYaw,n+=e.deltaPitch,Math.abs(e.x)>Math.abs(r)&&(r=e.x),Math.abs(e.y)>Math.abs(i)&&(i=e.y),Math.abs(e.z)>Math.abs(c)&&(c=e.z),l+=e.delta;for(let t=0;th.current){h.current=e;let t=p.current;for(;t.length>0&&t[0].moveIndexe.id===m.orbitTargetId);if(e?.position){let t={x:e.position[0],y:e.position[1],z:e.position[2]};T.current=t,w.current={...t},E.current=!0}}}if(C.current){if(t===`fly`)Lr(r.camera,S.current,y.current,_.current,v.current,d());else if(t===`follow`){if(!E.current)return;Rr(r.camera,w.current,T.current,_.current,v.current,d(),m?.orbitDistance??4,m?.orbitTargetId)}}}),(0,K.useEffect)(()=>()=>{f.current&&=(l.getState().playback.recording?.source===`live`&&l.getState().setRecording(null),null)},[l]),null}function Ir(e,t,n,r,i,a,o){if((t!==0||n!==0)&&(Nr.setFromQuaternion(e.quaternion,`YXZ`),Nr.y-=t,Nr.x-=n,Nr.x=Math.max(-Cr,Math.min(Cr,Nr.x)),e.quaternion.setFromEuler(Nr)),r!==0||i!==0||a!==0){e.getWorldDirection(Ar),Ar.normalize(),jr.crossVectors(e.up,Ar).normalize(),Mr.set(0,0,0),i!==0&&Mr.addScaledVector(Ar,i),r!==0&&Mr.addScaledVector(jr,-r),a!==0&&(Mr.y+=a);let t=Mr.length();t>0&&(Mr.multiplyScalar(Math.min(1,t)/t*Sr*o),e.position.add(Mr))}}function Lr(e,t,n,r,i,a){let o=t.x+(n.x-t.x)*a,s=t.y+(n.y-t.y)*a,c=t.z+(n.z-t.z)*a;e.position.set(s,c,o);let[l,u,d,f]=Fe(r,i);e.quaternion.set(l,u,d,f)}function Rr(e,t,n,r,i,a,o,s){let c=t.x+(n.x-t.x)*a,l=t.y+(n.y-t.y)*a,u=t.z+(n.z-t.z)*a+(s!=null&&Ze.getState().streamEntities.get(s)?.renderType===`Player`?1:0),d=Math.sin(i),f=Math.cos(i),p=Math.sin(r),m=Math.cos(r),h=Math.max(.1,o),g=c-p*f*h,_=l-m*f*h,v=u+d*h;e.position.set(_,v,g);let[y,b,x,S]=Fe(r,i);e.quaternion.set(y,b,x,S)}var zr=be(`CameraTourConsumer`);function Br(e){return e<.5?4*e*e*e:1-(-2*e+2)**3/2}var Vr=3,Hr=10,Ur=2,Wr=1.8,Gr=50,Kr=200,qr=2,Jr=1.8,Yr=1.2,Xr=.6,Zr=3/4*(2*Math.PI),Qr=Zr/Xr,$r=1.5,ei=1.5,ti=6,ni=180,ri=1.4,ii=new E,ai=new E,oi=new E,si=new P,ci=new C,li=new C,ui=new C,di=new C,fi=new C,Q=new m,pi=new m,mi=new P,hi=new h;function gi(e){if(e.orbitCenter)return fi.set(e.orbitCenter[0],e.orbitCenter[1],e.orbitCenter[2]);let t=e.targets[e.currentIndex];return fi.set(t.position[0],t.position[1],t.position[2])}function _i(e){return e.orbitRadius??Vr}function vi(e){return _i(e)*(Ur/Vr)}function yi(e,t,n){let r=gi(e),i=_i(e),a=vi(e);return n.set(r.x+Math.cos(t)*i,r.y+a,r.z+Math.sin(t)*i)}function bi(e,t,n){let r=e.getObjectByName(t.entityId),i=!1;if(r&&r.traverse(e=>{e.geometry&&(i=!0)}),r&&!i){n.orbitCenter=[...t.position],n.orbitRadius=Hr;return}if(r&&i){ii.setFromObject(r),ii.getCenter(ci),n.orbitCenter=[ci.x,ci.y,ci.z];let e=mi.copy(r.matrixWorld).invert();ai.makeEmpty(),r.traverse(t=>{t.geometry&&(t.geometry.boundingBox||t.geometry.computeBoundingBox(),oi.copy(t.geometry.boundingBox),si.multiplyMatrices(e,t.matrixWorld),oi.applyMatrix4(si),ai.union(oi))}),ai.getSize(li);let i=li.y,a=Math.max(li.x,li.z),o=i/2+Jr,s=a/2+Yr,c=Math.max(o,s);if(c>200){n.orbitCenter=[...t.position];let e=0;r.traverse(t=>{if(e>0||!t.geometry)return;t.geometry.boundingBox||t.geometry.computeBoundingBox();let n=t.geometry.boundingBox,r=n.max.x-n.min.x,i=n.max.y-n.min.y,a=n.max.z-n.min.z;e=Math.max(r,i,a)});let i=(e/2+Yr)*.75;n.orbitRadius=Math.max(Wr,i)}else n.orbitRadius=Math.max(Wr,c);let l=o>=s?`height`:`spread`,u=ci.distanceTo(r)&&o.lerp(r,.3),o.y+=a*.15,new w([e.clone(),o,i],!1,`centripetal`)}function wi(e,t){let n=gi(t);return Math.atan2(e.z-n.z,e.x-n.x)}function Ti(e){return Math.max(ei,Math.min(ti,e/ni))}function Ei(e,t,n,r){let i=e.targets[e.currentIndex];if(!e.curve){e.startPos=[t.position.x,t.position.y,t.position.z],xi(Q.copy(t.quaternion)),e.startQuat=[Q.x,Q.y,Q.z,Q.w],bi(r,i,e);let n=t.position.clone();e.curve=Ci(n,e,wi(n,e)),e.phaseDuration=Ti(e.curve.getLength()),e.elapsed=0;return}e.elapsed+=n;let a=Math.min(1,Br(e.elapsed/e.phaseDuration));e.curve.getPointAt(a,ui),t.position.copy(ui);let o=Br(Math.min(1,e.elapsed/e.phaseDuration*ri)),s=Si(ui,gi(e));o<1&&e.startQuat?(Q.set(e.startQuat[0],e.startQuat[1],e.startQuat[2],e.startQuat[3]),Q.slerp(s,o),t.quaternion.copy(Q)):t.quaternion.copy(s),e.elapsed>=e.phaseDuration&&(e.phase=`orbiting`,e.elapsed=0,e.orbitStartAngle=wi(t.position,e))}function Di(e,t,n){let r=e.targets.length===1,i=e.currentIndex>=e.targets.length-1;e.elapsed+=n;let a=e.orbitStartAngle,o=Qr+$r,s;if(e.elapsed<=Qr)s=a+e.elapsed*Xr;else{let t=e.elapsed-Qr,n=Math.min(1,t/$r),r=t*Xr*(1-n/2);s=a+Zr+r}yi(e,s,ui),t.position.copy(ui);let c=Si(ui,gi(e));t.quaternion.copy(c),e.elapsed>=o&&(r||i?Ae.getState().cancel():Ae.getState().advanceTarget())}function Oi(){let e=(0,q.c)(3),t=o(Mi),n=o(ji),r=(0,K.useRef)(null);st(`nextStop`,Ai),st(`exitTour`,ki);let a;return e[0]!==t||e[1]!==n?(a=(e,i)=>{let a=Ae.getState().animation,o=a?_i(a):0,s=a&&o>=Gr?Math.max(1,o/Kr):1,c=z.fogDistanceScale.value;if(c!==s){let e=qr*i;s>c?z.fogDistanceScale.value=Math.min(c+e,s):z.fogDistanceScale.value=Math.max(c-e,s)}if(!a){r.current&&=(xi(t.quaternion),null);return}r.current=a,a.phase===`traveling`?Ei(a,t,i,n):Di(a,t,i)},e[0]=t,e[1]=n,e[2]=a):a=e[2],i(a),null}function ki(){Ae.getState().cancel()}function Ai(){let e=Ae.getState().animation;e&&(e.currentIndex>=e.targets.length-1?Ae.getState().cancel():Ae.getState().advanceTarget())}function ji(e){return e.scene}function Mi(e){return e.camera}var Ni=3;function $({map:e}){let t=nt,n=o(e=>e.gl.domElement),r=(0,K.useMemo)(()=>{let n=e.map(e=>{let t=Array.isArray(e.keys)?e.keys:[e.keys];return{name:e.name,bindings:t.map($e)}}),r={};for(let e of n)r[e.name]=it(e.bindings[0]);let i=new Map,a=[],o=[],s=[],c=[],l=[];for(let e of n)for(let t of e.bindings)switch(t.type){case`key`:{let n=i.get(t.code);n||(n=[],i.set(t.code,n)),n.push({action:e,binding:t});break}case`click`:a.push({action:e,binding:t});break;case`drag`:o.push({action:e,binding:t});break;case`pointerLockMove`:s.push({action:e});break;case`scroll`:c.push({action:e});break;case`touch`:l.push({action:e});break}function u(e){return e==null?!0:e===!!document.pointerLockElement}function d(e){let{actions:n}=t.getState(),r={};for(let[,t]of i)for(let{action:i,binding:a}of t){let t=e.has(a.code)&&at(e,a.modifiers),o=n[i.name]?.pressed??!1;t&&!o?(r[i.name]={pressed:!0},Je(i.name)):!t&&o&&(r[i.name]={pressed:!1})}Object.keys(r).length>0&&t.setState(e=>({...e,actions:{...e.actions,...r}}))}let f=-1,p=0,m=0,h=!1;function g(e,n){t.setState(t=>({...t,actions:{...t.actions,[e]:n}}))}function _(e){let t=!!document.pointerLockElement;for(let{action:t,binding:n}of a){if(!u(n.whenPointerLocked))continue;let r=n.button??0;e.button===r&&qe(e,n.modifiers)&&g(t.name,{pressed:!0})}t||(f=e.button,p=e.clientX,m=e.clientY,h=!1)}function v(e){if(document.pointerLockElement){if(s.length>0){let{actions:n}=t.getState(),r={};for(let{action:t}of s){let i=n[t.name];r[t.name]={...i,deltaX:i.deltaX+e.movementX,deltaY:i.deltaY+e.movementY}}t.setState(e=>({...e,actions:{...e.actions,...r}}))}return}if(f<0)return;if(!h){let n=e.clientX-p,r=e.clientY-m;if(Math.abs(n)0&&t.setState(e=>({...e,actions:{...e.actions,...r}}))}function y(e){let n=!!document.pointerLockElement;for(let{action:n,binding:r}of a){if(!u(r.whenPointerLocked))continue;let i=r.button??0;e.button===i&&t.getState().actions[n.name].pressed&&(Je(n.name),g(n.name,{pressed:!1}))}if(!n&&e.button===f){for(let{action:e,binding:n}of o)u(n.whenPointerLocked)&&(n.button??0)===f&&t.getState().actions[e.name].dragging&&g(e.name,tt());f=-1,h=!1}}function b(e){for(let{action:t}of c)g(t.name,{deltaX:e.deltaX,deltaY:e.deltaY}),Je(t.name)}let x=null,S=0,C=0;function w(e){if(x!==null||l.length===0)return;let t=e.changedTouches[0];if(t){x=t.identifier,S=t.clientX,C=t.clientY;for(let{action:e}of l)g(e.name,{touching:!0,dragging:!1,deltaX:0,deltaY:0})}}function T(e){if(x!==null)for(let n=0;ne.name),initialActions:r,deriveKeyActions:d,hasKeyBindings:i.size>0,handleMouseDown:_,handleMouseMove:v,handleMouseUp:y,handleWheel:b,handleTouchStart:w,handleTouchMove:T,handleTouchEnd:E,hasMouseBindings:a.length>0||o.length>0||s.length>0,hasScrollBindings:c.length>0,hasTouchBindings:l.length>0}},[e,t]);return(0,K.useEffect)(()=>{t.setState(e=>({...e,actions:{...e.actions,...r.initialActions}}));let e;return r.hasKeyBindings&&(r.deriveKeyActions(t.getState().keys),e=t.subscribe(e=>e.keys,e=>r.deriveKeyActions(e))),r.hasMouseBindings&&(n.addEventListener(`mousedown`,r.handleMouseDown),document.addEventListener(`mousemove`,r.handleMouseMove),document.addEventListener(`mouseup`,r.handleMouseUp)),r.hasScrollBindings&&n.addEventListener(`wheel`,r.handleWheel,{passive:!0}),r.hasTouchBindings&&(n.addEventListener(`touchstart`,r.handleTouchStart,{passive:!0}),document.addEventListener(`touchmove`,r.handleTouchMove,{passive:!0}),document.addEventListener(`touchend`,r.handleTouchEnd,{passive:!0}),document.addEventListener(`touchcancel`,r.handleTouchEnd,{passive:!0})),()=>{e?.(),r.hasMouseBindings&&(n.removeEventListener(`mousedown`,r.handleMouseDown),document.removeEventListener(`mousemove`,r.handleMouseMove),document.removeEventListener(`mouseup`,r.handleMouseUp)),r.hasScrollBindings&&n.removeEventListener(`wheel`,r.handleWheel),r.hasTouchBindings&&(n.removeEventListener(`touchstart`,r.handleTouchStart),document.removeEventListener(`touchmove`,r.handleTouchMove),document.removeEventListener(`touchend`,r.handleTouchEnd),document.removeEventListener(`touchcancel`,r.handleTouchEnd)),t.setState(e=>{let t={...e.actions};for(let e of r.actionNames)delete t[e];return{...e,actions:t}})}},[r,t,n]),null}var Pi=[{name:`moveForward`,keys:[`KeyW`]},{name:`moveBackward`,keys:[`KeyS`]},{name:`moveLeft`,keys:[`KeyA`]},{name:`moveRight`,keys:[`KeyD`]},{name:`moveUp`,keys:[`KeyE`]},{name:`moveDown`,keys:[`KeyQ`]},{name:`adjustSpeed`,keys:[{type:`scroll`}]}],Fi=[{name:`lookUp`,keys:[`ArrowUp`]},{name:`lookDown`,keys:[`ArrowDown`]},{name:`lookLeft`,keys:[`ArrowLeft`]},{name:`lookRight`,keys:[`ArrowRight`]},{name:`dragLook`,keys:[{type:`drag`,button:0}]},{name:`lockedLook`,keys:[{type:`pointerLockMove`}]},{name:`touchLook`,keys:[{type:`touch`}]}],Ii=[{name:`canvasClick`,keys:[{type:`click`,button:0,whenPointerLocked:!1}]}],Li=[{name:`camera1`,keys:[`Digit1`]},{name:`camera2`,keys:[`Digit2`]},{name:`camera3`,keys:[`Digit3`]},{name:`camera4`,keys:[`Digit4`]},{name:`camera5`,keys:[`Digit5`]},{name:`camera6`,keys:[`Digit6`]},{name:`camera7`,keys:[`Digit7`]},{name:`camera8`,keys:[`Digit8`]},{name:`camera9`,keys:[`Digit9`]}],Ri=[{name:`playPause`,keys:[`Space`]},{name:`decreasePlaybackSpeed`,keys:[`Comma`,`Shift-Comma`]},{name:`increasePlaybackSpeed`,keys:[`Period`,`Shift-Period`]}],zi=[{name:`toggleObserverMode`,keys:[`Space`]}],Bi=[{name:`nextPlayer`,keys:[{type:`click`,button:0,whenPointerLocked:!0}]}],Vi=[{name:`nextStop`,keys:[{type:`click`,button:0}]},{name:`exitTour`,keys:[`Escape`]}];function Hi(){let e=(0,q.c)(27),t=Be(),n=et(),r=Oe(Ui),i=t?.source===`demo`,a=t?.source===`live`,o=!t,s=o&&!r||a&&n===`fly`,c=!r,l=!r,u;e[0]===s?u=e[1]:(u=s&&(0,J.jsx)($,{map:Pi}),e[0]=s,e[1]=u);let d;e[2]===c?d=e[3]:(d=c&&(0,J.jsx)($,{map:Fi}),e[2]=c,e[3]=d);let f;e[4]===l?f=e[5]:(f=l&&(0,J.jsx)($,{map:Ii}),e[4]=l,e[5]=f);let p;e[6]!==o||e[7]!==r?(p=o&&!r&&(0,J.jsx)($,{map:Li}),e[6]=o,e[7]=r,e[8]=p):p=e[8];let m;e[9]===i?m=e[10]:(m=i&&(0,J.jsx)($,{map:Ri}),e[9]=i,e[10]=m);let h;e[11]===a?h=e[12]:(h=a&&(0,J.jsx)($,{map:zi}),e[11]=a,e[12]=h);let g;e[13]!==n||e[14]!==a?(g=a&&n===`follow`&&(0,J.jsx)($,{map:Bi}),e[13]=n,e[14]=a,e[15]=g):g=e[15];let _;e[16]===r?_=e[17]:(_=r&&(0,J.jsx)($,{map:Vi}),e[16]=r,e[17]=_);let v;return e[18]!==u||e[19]!==d||e[20]!==f||e[21]!==p||e[22]!==m||e[23]!==h||e[24]!==g||e[25]!==_?(v=(0,J.jsxs)(J.Fragment,{children:[u,d,f,p,m,h,g,_]}),e[18]=u,e[19]=d,e[20]=f,e[21]=p,e[22]=m,e[23]=h,e[24]=g,e[25]=_,e[26]=v):v=e[26],v}function Ui(e){return e.animation!==null}function Wi(e,t){return(0,K.lazy)(()=>t().then(t=>({default:t[e]})))}var Gi=Wi(`StreamingController`,()=>W(()=>import(`./StreamingController-CEWgeQUH.js`),__vite__mapDeps([34,2,35,36,18,14,1,3,4,5,6,7,8,9,10,11,12,13,15,16,17,19,20,21,22,23,24,25,26,37,38,39,33,40,41]))),Ki=Wi(`DebugElements`,()=>W(()=>import(`./DebugElements-CrsrzkRa.js`),__vite__mapDeps([42,2,3,4,5,6,7,8,43]))),qi=Wi(`Mission`,()=>W(()=>import(`./Mission-BRZHUO2H.js`),__vite__mapDeps([44,2,35,36,18,14,1,3,4,5,6,7,8,9,10,11,12,13,15,16,17,19,20,21,22,23,24,25,26,37,38,39,33,40,45]))),Ji=Wi(`ChatSoundPlayer`,()=>W(()=>import(`./ChatSoundPlayer-D3K8GxX-.js`),__vite__mapDeps([46,2,10,6,11,8,12,13,7,15,3,4,5,14,16,17,18,19,20]))),Yi=(0,K.memo)(function(e){let t=(0,q.c)(23),{dpr:n,onCreated:r,missionName:i,missionType:a,onLoadingChange:o}=e,s=Be(),c=We(),l=c===`demo`||c===`live`,u,d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(Hi,{}),d=(0,J.jsx)(ot,{}),t[0]=u,t[1]=d):(u=t[0],d=t[1]);let f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(_t,{}),t[2]=f):f=t[2];let p,m;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(pr,{})}),m=(0,J.jsx)(yr,{}),t[3]=p,t[4]=m):(p=t[3],m=t[4]);let h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsx)(Jn,{children:(0,J.jsx)(Ji,{})}),t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,J.jsx)(br,{children:(0,J.jsx)(Ki,{})}),t[6]=g):g=t[6];let _;t[7]===s?_=t[8]:(_=s?(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(Gi,{recording:s})}):null,t[7]=s,t[8]=_);let v;t[9]!==l||t[10]!==i||t[11]!==a||t[12]!==o?(v=l?null:(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(qi,{name:i,missionType:a,onLoadingChange:o},`${i}~${a}`)}),t[9]=l,t[10]=i,t[11]=a,t[12]=o,t[13]=v):v=t[13];let y,b;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(Oi,{}),b=(0,J.jsx)(Fr,{}),t[14]=y,t[15]=b):(y=t[14],b=t[15]);let x;t[16]!==_||t[17]!==v?(x=(0,J.jsx)(Et,{children:(0,J.jsxs)(Ye,{children:[u,d,(0,J.jsxs)(De,{children:[f,p,m,h,g,_,v,y,b]})]})}),t[16]=_,t[17]=v,t[18]=x):x=t[18];let S;return t[19]!==n||t[20]!==r||t[21]!==x?(S=(0,J.jsx)(Ct,{dpr:n,onCreated:r,children:x}),t[19]=n,t[20]=r,t[21]=x,t[22]=S):S=t[22],S});export{Yi as GameView}; \ No newline at end of file diff --git a/docs/assets/KeyboardOverlay-8NIHVGaH.js b/docs/assets/KeyboardOverlay-mMSQ0ePd.js similarity index 99% rename from docs/assets/KeyboardOverlay-8NIHVGaH.js rename to docs/assets/KeyboardOverlay-mMSQ0ePd.js index 46d3e00d..39db2fe9 100644 --- a/docs/assets/KeyboardOverlay-8NIHVGaH.js +++ b/docs/assets/KeyboardOverlay-mMSQ0ePd.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{r as i}from"./SettingsProvider-BdqQ2Cm4.js";import{n as a}from"./cameraTourStore-CtH3IrnD.js";import{B as o,D as s,G as c,H as l,J as u,K as d,N as f,O as p,P as m,S as h,T as g,V as _,b as v,d as y,m as b,q as x,x as S}from"./index-BnXbiEzA.js";import{n as C,t as w}from"./gr-DFj_ScyC.js";var T=t(),E=e(n(),1);function D(e){return document.addEventListener(`pointerlockchange`,e),()=>document.removeEventListener(`pointerlockchange`,e)}function O(){return document.pointerLockElement!==null}function k(){return(0,E.useSyncExternalStore)(D,O,A)}function A(){return!1}var j={Root:`_Root_88qkf_1`,Column:`_Column_88qkf_13`,Row:`_Row_88qkf_25`,Spacer:`_Spacer_88qkf_31`,Sep:`_Sep_88qkf_35`,Key:`_Key_88qkf_39`,Label:`_Label_88qkf_78`,MultiInput:`_MultiInput_88qkf_120`,Input:`_Input_88qkf_128`,ColumnLabel:`_ColumnLabel_88qkf_161`,PlayPauseIcon:`_PlayPauseIcon_88qkf_170`,MouseIcon:`_MouseIcon_88qkf_174`},M=r();function N(e,t){let n=e[t];return n!=null&&`pressed`in n&&n.pressed}function P(e){let t=(0,T.c)(24),{action:n,input:r,label:i,labelPosition:a,labelSize:o,inputSize:s,size:c,disabled:l,debounce:u}=e,d=a===void 0?`hidden`:a,f=o===void 0?`fill`:o,p=s===void 0?`fill`:s,m=c===void 0?`fill`:c,h=l===void 0?!1:l,g=(0,E.useRef)(void 0),[_,v]=(0,E.useState)(!1),b;t[0]===n?b=t[1]:(b=typeof n==`function`?n:e=>N(e,n),t[0]=n,t[1]=b);let x=y(b),S,C;t[2]!==u||t[3]!==x?(S=()=>{if(u)if(x)clearTimeout(g.current),g.current=void 0,v(!0);else return g.current=setTimeout(()=>{g.current=void 0,v(!1)},u),()=>clearTimeout(g.current)},C=[x,u],t[2]=u,t[3]=x,t[4]=S,t[5]=C):(S=t[4],C=t[5]),(0,E.useEffect)(S,C);let w=u?_:x,D;t[6]!==i||t[7]!==d||t[8]!==f?(D=d===`left`?(0,M.jsx)(`span`,{className:j.Label,"data-size":f,children:i}):null,t[6]=i,t[7]=d,t[8]=f,t[9]=D):D=t[9];let O;t[10]!==r||t[11]!==p?(O=Array.isArray(r)?(0,M.jsx)(`div`,{className:j.MultiInput,"data-size":p,children:r.map(F)}):(0,M.jsx)(`span`,{className:j.Input,"data-size":p,children:r}),t[10]=r,t[11]=p,t[12]=O):O=t[12];let k;t[13]!==i||t[14]!==d||t[15]!==f?(k=d===`right`?(0,M.jsx)(`span`,{className:j.Label,"data-size":f,children:i}):null,t[13]=i,t[14]=d,t[15]=f,t[16]=k):k=t[16];let A;return t[17]!==h||t[18]!==w||t[19]!==m||t[20]!==O||t[21]!==k||t[22]!==D?(A=(0,M.jsxs)(`div`,{className:j.Key,"data-pressed":w,"data-size":m,"data-disabled":h,children:[D,O,k]}),t[17]=h,t[18]=w,t[19]=m,t[20]=O,t[21]=k,t[22]=D,t[23]=A):A=t[23],A}function F(e,t){return(0,M.jsx)(`span`,{className:j.Input,children:e},t)}function I(){let e=(0,T.c)(12),t=k(),[n,r]=(0,E.useState)(!1),i=(0,E.useRef)(!1),a,o;e[0]===t?(a=e[1],o=e[2]):(a=()=>{if(i.current&&!t){r(!0);let e=setTimeout(()=>r(!1),150);return()=>clearTimeout(e)}i.current=t},o=[t],e[0]=t,e[1]=a,e[2]=o),(0,E.useEffect)(a,o);let s=t||n,c;e[3]!==n||e[4]!==s?(c=s?()=>n:`canvasClick`,e[3]=n,e[4]=s,e[5]=c):c=e[5];let l=s?`Unlock mouse`:`Capture mouse`,u;e[6]===s?u=e[7]:(u=s?`Esc`:(0,M.jsx)(v,{className:j.MouseIcon}),e[6]=s,e[7]=u);let d;return e[8]!==c||e[9]!==l||e[10]!==u?(d=(0,M.jsx)(P,{action:c,label:l,input:u,labelPosition:`right`,inputSize:`auto`}),e[8]=c,e[9]=l,e[10]=u,e[11]=d):d=e[11],d}function L(){let e=(0,T.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(`div`,{className:j.Spacer}),(0,M.jsx)(P,{action:`moveForward`,input:`W`,label:`Forward`}),(0,M.jsx)(`div`,{className:j.Spacer})]}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,M.jsxs)(`div`,{className:j.Column,children:[t,(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(P,{action:`moveLeft`,input:`A`,label:`Strafe left`}),(0,M.jsx)(P,{action:`moveBackward`,input:`S`,label:`Backward`}),(0,M.jsx)(P,{action:`moveRight`,input:`D`,label:`Strafe right`})]})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`moveUp`,input:`E`,label:(0,M.jsx)(l,{}),labelPosition:`left`,labelSize:`auto`})}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsxs)(M.Fragment,{children:[n,(0,M.jsxs)(`div`,{className:j.Column,children:[r,(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`moveDown`,input:`Q`,label:(0,M.jsx)(_,{}),labelPosition:`left`,labelSize:`auto`})})]})]}),e[3]=i):i=e[3],i}function R(){let e=(0,T.c)(5),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(`div`,{className:j.Spacer}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,M.jsxs)(`div`,{className:j.Row,children:[t,(0,M.jsx)(P,{action:`lookUp`,input:(0,M.jsx)(u,{}),label:`Look up`}),(0,M.jsx)(`div`,{className:j.Spacer})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(P,{action:`lookLeft`,input:(0,M.jsx)(d,{}),label:`Look left`}),e[2]=r):r=e[2];let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsx)(P,{action:`lookDown`,input:(0,M.jsx)(c,{}),label:`Look down`}),e[3]=i):i=e[3];let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsxs)(`div`,{className:j.Column,children:[n,(0,M.jsxs)(`div`,{className:j.Row,children:[r,i,(0,M.jsx)(P,{action:`lookRight`,input:(0,M.jsx)(x,{}),label:`Look right`})]})]}),e[4]=a):a=e[4],a}function z(){let e=(0,T.c)(8),{speedMultiplier:t}=i(),[n,r]=(0,E.useState)(null),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{r(B);let e=setTimeout(()=>{r(!1)},100);return()=>clearTimeout(e)},e[0]=a):a=e[0];let o;e[1]===t?o=e[2]:(o=[t],e[1]=t,e[2]=o),(0,E.useEffect)(a,o);let s;e[3]===n?s=e[4]:(s=e=>(e.adjustSpeed?.deltaY??0)!==0&&(n??!1),e[3]=n,e[4]=s);let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,M.jsx)(S,{className:j.MouseIcon}),e[5]=c):c=e[5];let l;return e[6]===s?l=e[7]:(l=(0,M.jsx)(P,{action:s,debounce:50,label:`Adjust speed`,input:c,labelPosition:`right`,inputSize:`auto`}),e[6]=s,e[7]=l),l}function B(e){return e!=null}function V(){let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(P,{action:H,input:(0,M.jsx)(o,{className:j.MouseIcon}),label:`Rotate camera`,labelPosition:`right`,inputSize:`auto`}),e[0]=t):t=e[0],t}function H(e){return e.dragLook?.dragging??!1}function U(){let e=(0,T.c)(6),t=f()===`map`,n=m(`Camera`),r=t?n.length:0,i,a;e[0]===r?(i=e[1],a=e[2]):(i=e=>Array.from({length:r},(t,n)=>N(e,`camera${n+1}`)).some(W),a=r===1?`1`:(0,M.jsxs)(M.Fragment,{children:[`1 – `,r]}),e[0]=r,e[1]=i,e[2]=a);let o;return e[3]!==i||e[4]!==a?(o=(0,M.jsx)(P,{action:i,input:a,label:`Select camera`,labelPosition:`right`}),e[3]=i,e[4]=a,e[5]=o):o=e[5],o}function W(e){return e}function G(){let e=(0,T.c)(11),t=k(),n=f()===`map`,r=m(`Camera`),i=n?r.length:0,a,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsx)(L,{}),o=(0,M.jsx)(R,{}),e[0]=a,e[1]=o):(a=e[0],o=e[1]);let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(z,{})}),e[2]=s):s=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[s,(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})})]}),e[3]=c):c=e[3];let l;e[4]===t?l=e[5]:(l=t?null:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(V,{})}),e[4]=t,e[5]=l);let u;e[6]===i?u=e[7]:(u=i>0&&(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(U,{})}),e[6]=i,e[7]=u);let d;return e[8]!==l||e[9]!==u?(d=(0,M.jsxs)(M.Fragment,{children:[a,o,c,(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[l,u]})]}),e[8]=l,e[9]=u,e[10]=d):d=e[10],d}function K(){let e=(0,T.c)(15),t=g(),n=p(),r=h.indexOf(n)+1,i=h.indexOf(n)-1,a=r>=h.length,o=i<0,s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[`<`,`,`],e[0]=s):s=e[0];let c;e[1]===o?c=e[2]:(c=(0,M.jsx)(P,{action:`decreasePlaybackSpeed`,label:`Slow down`,input:s,labelPosition:`right`,disabled:o}),e[1]=o,e[2]=c);let l;e[3]===t?l=e[4]:(l=(0,M.jsx)(P,{action:`playPause`,label:t?(0,M.jsx)(w,{className:j.PlayPauseIcon}):(0,M.jsx)(C,{className:j.PlayPauseIcon}),input:`Space`,labelPosition:`left`,size:`auto`}),e[3]=t,e[4]=l);let u;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=[`>`,`.`],e[5]=u):u=e[5];let d;e[6]===a?d=e[7]:(d=(0,M.jsx)(P,{action:`increasePlaybackSpeed`,input:u,label:`Speed up`,labelPosition:`left`,disabled:a}),e[6]=a,e[7]=d);let f;e[8]!==c||e[9]!==l||e[10]!==d?(f=(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsxs)(`div`,{className:j.Row,children:[c,l,d]})}),e[8]=c,e[9]=l,e[10]=d,e[11]=f):f=e[11];let m;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})})}),e[12]=m):m=e[12];let _;return e[13]===f?_=e[14]:(_=(0,M.jsxs)(M.Fragment,{children:[f,m]}),e[13]=f,e[14]=_),_}function q(){let e=(0,T.c)(5),t=a(J),n;e[0]===t?n=e[1]:(n=!t&&(0,M.jsx)(P,{action:`nextStop`,label:`Skip to next stop`,input:(0,M.jsx)(v,{className:j.MouseIcon}),labelPosition:`right`}),e[0]=t,e[1]=n);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(P,{action:`exitTour`,label:`Exit tour`,input:`Esc`,labelPosition:`right`}),e[2]=r):r=e[2];let i;return e[3]===n?i=e[4]:(i=(0,M.jsx)(M.Fragment,{children:(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsxs)(`div`,{className:j.Row,children:[n,r]})})}),e[3]=n,e[4]=i),i}function J(e){return e.animation!=null&&e.animation.currentIndex>=e.animation.targets.length-1}function Y(){let e=(0,T.c)(23),t=b(),n=k(),r;e[0]===t?r=e[1]:(r=t===`fly`?(0,M.jsx)(L,{}):null,e[0]=t,e[1]=r);let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsx)(R,{}),e[2]=i):i=e[2];let a;e[3]===t?a=e[4]:(a=t===`fly`?(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(z,{})}):null,e[3]=t,e[4]=a);let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})}),e[5]=o):o=e[5];let s;e[6]===a?s=e[7]:(s=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[a,o]}),e[6]=a,e[7]=s);let c;e[8]===n?c=e[9]:(c=n?null:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(V,{})}),e[8]=n,e[9]=c);let l;e[10]!==t||e[11]!==n?(l=t===`follow`&&n?(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`nextPlayer`,label:`Next player`,input:(0,M.jsx)(v,{className:j.MouseIcon}),labelPosition:`right`,inputSize:`auto`})}):null,e[10]=t,e[11]=n,e[12]=l):l=e[12];let u=t===`follow`?`Fly mode`:`Follow mode`,d;e[13]===u?d=e[14]:(d=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`toggleObserverMode`,label:u,input:`Space`,labelPosition:`right`,inputSize:`auto`})}),e[13]=u,e[14]=d);let f;e[15]!==c||e[16]!==l||e[17]!==d?(f=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[c,l,d]}),e[15]=c,e[16]=l,e[17]=d,e[18]=f):f=e[18];let p;return e[19]!==r||e[20]!==s||e[21]!==f?(p=(0,M.jsxs)(M.Fragment,{children:[r,i,s,f]}),e[19]=r,e[20]=s,e[21]=f,e[22]=p):p=e[22],p}function X(){let e=(0,T.c)(13),t=s(),n=b(),r=a(Z),i=t?.source===`demo`,o=t?.source===`live`,c=!t,l=o&&(n===`fly`||n===`follow`),u=c&&!r,d;e[0]===u?d=e[1]:(d=u&&(0,M.jsx)(G,{}),e[0]=u,e[1]=d);let f;e[2]===l?f=e[3]:(f=l&&(0,M.jsx)(Y,{}),e[2]=l,e[3]=f);let p;e[4]===i?p=e[5]:(p=i&&(0,M.jsx)(K,{}),e[4]=i,e[5]=p);let m;e[6]===r?m=e[7]:(m=r&&(0,M.jsx)(q,{}),e[6]=r,e[7]=m);let h;return e[8]!==d||e[9]!==f||e[10]!==p||e[11]!==m?(h=(0,M.jsxs)(`div`,{className:j.Root,children:[d,f,p,m]}),e[8]=d,e[9]=f,e[10]=p,e[11]=m,e[12]=h):h=e[12],h}function Z(e){return e.animation!==null}export{X as KeyboardOverlay}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{r as i}from"./SettingsProvider-BdqQ2Cm4.js";import{n as a}from"./cameraTourStore-CtH3IrnD.js";import{B as o,D as s,G as c,H as l,J as u,K as d,N as f,O as p,P as m,S as h,T as g,V as _,b as v,d as y,m as b,q as x,x as S}from"./index-BZ0wFa-D.js";import{n as C,t as w}from"./gr-DFj_ScyC.js";var T=t(),E=e(n(),1);function D(e){return document.addEventListener(`pointerlockchange`,e),()=>document.removeEventListener(`pointerlockchange`,e)}function O(){return document.pointerLockElement!==null}function k(){return(0,E.useSyncExternalStore)(D,O,A)}function A(){return!1}var j={Root:`_Root_88qkf_1`,Column:`_Column_88qkf_13`,Row:`_Row_88qkf_25`,Spacer:`_Spacer_88qkf_31`,Sep:`_Sep_88qkf_35`,Key:`_Key_88qkf_39`,Label:`_Label_88qkf_78`,MultiInput:`_MultiInput_88qkf_120`,Input:`_Input_88qkf_128`,ColumnLabel:`_ColumnLabel_88qkf_161`,PlayPauseIcon:`_PlayPauseIcon_88qkf_170`,MouseIcon:`_MouseIcon_88qkf_174`},M=r();function N(e,t){let n=e[t];return n!=null&&`pressed`in n&&n.pressed}function P(e){let t=(0,T.c)(24),{action:n,input:r,label:i,labelPosition:a,labelSize:o,inputSize:s,size:c,disabled:l,debounce:u}=e,d=a===void 0?`hidden`:a,f=o===void 0?`fill`:o,p=s===void 0?`fill`:s,m=c===void 0?`fill`:c,h=l===void 0?!1:l,g=(0,E.useRef)(void 0),[_,v]=(0,E.useState)(!1),b;t[0]===n?b=t[1]:(b=typeof n==`function`?n:e=>N(e,n),t[0]=n,t[1]=b);let x=y(b),S,C;t[2]!==u||t[3]!==x?(S=()=>{if(u)if(x)clearTimeout(g.current),g.current=void 0,v(!0);else return g.current=setTimeout(()=>{g.current=void 0,v(!1)},u),()=>clearTimeout(g.current)},C=[x,u],t[2]=u,t[3]=x,t[4]=S,t[5]=C):(S=t[4],C=t[5]),(0,E.useEffect)(S,C);let w=u?_:x,D;t[6]!==i||t[7]!==d||t[8]!==f?(D=d===`left`?(0,M.jsx)(`span`,{className:j.Label,"data-size":f,children:i}):null,t[6]=i,t[7]=d,t[8]=f,t[9]=D):D=t[9];let O;t[10]!==r||t[11]!==p?(O=Array.isArray(r)?(0,M.jsx)(`div`,{className:j.MultiInput,"data-size":p,children:r.map(F)}):(0,M.jsx)(`span`,{className:j.Input,"data-size":p,children:r}),t[10]=r,t[11]=p,t[12]=O):O=t[12];let k;t[13]!==i||t[14]!==d||t[15]!==f?(k=d===`right`?(0,M.jsx)(`span`,{className:j.Label,"data-size":f,children:i}):null,t[13]=i,t[14]=d,t[15]=f,t[16]=k):k=t[16];let A;return t[17]!==h||t[18]!==w||t[19]!==m||t[20]!==O||t[21]!==k||t[22]!==D?(A=(0,M.jsxs)(`div`,{className:j.Key,"data-pressed":w,"data-size":m,"data-disabled":h,children:[D,O,k]}),t[17]=h,t[18]=w,t[19]=m,t[20]=O,t[21]=k,t[22]=D,t[23]=A):A=t[23],A}function F(e,t){return(0,M.jsx)(`span`,{className:j.Input,children:e},t)}function I(){let e=(0,T.c)(12),t=k(),[n,r]=(0,E.useState)(!1),i=(0,E.useRef)(!1),a,o;e[0]===t?(a=e[1],o=e[2]):(a=()=>{if(i.current&&!t){r(!0);let e=setTimeout(()=>r(!1),150);return()=>clearTimeout(e)}i.current=t},o=[t],e[0]=t,e[1]=a,e[2]=o),(0,E.useEffect)(a,o);let s=t||n,c;e[3]!==n||e[4]!==s?(c=s?()=>n:`canvasClick`,e[3]=n,e[4]=s,e[5]=c):c=e[5];let l=s?`Unlock mouse`:`Capture mouse`,u;e[6]===s?u=e[7]:(u=s?`Esc`:(0,M.jsx)(v,{className:j.MouseIcon}),e[6]=s,e[7]=u);let d;return e[8]!==c||e[9]!==l||e[10]!==u?(d=(0,M.jsx)(P,{action:c,label:l,input:u,labelPosition:`right`,inputSize:`auto`}),e[8]=c,e[9]=l,e[10]=u,e[11]=d):d=e[11],d}function L(){let e=(0,T.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(`div`,{className:j.Spacer}),(0,M.jsx)(P,{action:`moveForward`,input:`W`,label:`Forward`}),(0,M.jsx)(`div`,{className:j.Spacer})]}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,M.jsxs)(`div`,{className:j.Column,children:[t,(0,M.jsxs)(`div`,{className:j.Row,children:[(0,M.jsx)(P,{action:`moveLeft`,input:`A`,label:`Strafe left`}),(0,M.jsx)(P,{action:`moveBackward`,input:`S`,label:`Backward`}),(0,M.jsx)(P,{action:`moveRight`,input:`D`,label:`Strafe right`})]})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`moveUp`,input:`E`,label:(0,M.jsx)(l,{}),labelPosition:`left`,labelSize:`auto`})}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsxs)(M.Fragment,{children:[n,(0,M.jsxs)(`div`,{className:j.Column,children:[r,(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`moveDown`,input:`Q`,label:(0,M.jsx)(_,{}),labelPosition:`left`,labelSize:`auto`})})]})]}),e[3]=i):i=e[3],i}function R(){let e=(0,T.c)(5),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(`div`,{className:j.Spacer}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,M.jsxs)(`div`,{className:j.Row,children:[t,(0,M.jsx)(P,{action:`lookUp`,input:(0,M.jsx)(u,{}),label:`Look up`}),(0,M.jsx)(`div`,{className:j.Spacer})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(P,{action:`lookLeft`,input:(0,M.jsx)(d,{}),label:`Look left`}),e[2]=r):r=e[2];let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsx)(P,{action:`lookDown`,input:(0,M.jsx)(c,{}),label:`Look down`}),e[3]=i):i=e[3];let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsxs)(`div`,{className:j.Column,children:[n,(0,M.jsxs)(`div`,{className:j.Row,children:[r,i,(0,M.jsx)(P,{action:`lookRight`,input:(0,M.jsx)(x,{}),label:`Look right`})]})]}),e[4]=a):a=e[4],a}function z(){let e=(0,T.c)(8),{speedMultiplier:t}=i(),[n,r]=(0,E.useState)(null),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{r(B);let e=setTimeout(()=>{r(!1)},100);return()=>clearTimeout(e)},e[0]=a):a=e[0];let o;e[1]===t?o=e[2]:(o=[t],e[1]=t,e[2]=o),(0,E.useEffect)(a,o);let s;e[3]===n?s=e[4]:(s=e=>(e.adjustSpeed?.deltaY??0)!==0&&(n??!1),e[3]=n,e[4]=s);let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,M.jsx)(S,{className:j.MouseIcon}),e[5]=c):c=e[5];let l;return e[6]===s?l=e[7]:(l=(0,M.jsx)(P,{action:s,debounce:50,label:`Adjust speed`,input:c,labelPosition:`right`,inputSize:`auto`}),e[6]=s,e[7]=l),l}function B(e){return e!=null}function V(){let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(P,{action:H,input:(0,M.jsx)(o,{className:j.MouseIcon}),label:`Rotate camera`,labelPosition:`right`,inputSize:`auto`}),e[0]=t):t=e[0],t}function H(e){return e.dragLook?.dragging??!1}function U(){let e=(0,T.c)(6),t=f()===`map`,n=m(`Camera`),r=t?n.length:0,i,a;e[0]===r?(i=e[1],a=e[2]):(i=e=>Array.from({length:r},(t,n)=>N(e,`camera${n+1}`)).some(W),a=r===1?`1`:(0,M.jsxs)(M.Fragment,{children:[`1 – `,r]}),e[0]=r,e[1]=i,e[2]=a);let o;return e[3]!==i||e[4]!==a?(o=(0,M.jsx)(P,{action:i,input:a,label:`Select camera`,labelPosition:`right`}),e[3]=i,e[4]=a,e[5]=o):o=e[5],o}function W(e){return e}function G(){let e=(0,T.c)(11),t=k(),n=f()===`map`,r=m(`Camera`),i=n?r.length:0,a,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsx)(L,{}),o=(0,M.jsx)(R,{}),e[0]=a,e[1]=o):(a=e[0],o=e[1]);let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(z,{})}),e[2]=s):s=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[s,(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})})]}),e[3]=c):c=e[3];let l;e[4]===t?l=e[5]:(l=t?null:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(V,{})}),e[4]=t,e[5]=l);let u;e[6]===i?u=e[7]:(u=i>0&&(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(U,{})}),e[6]=i,e[7]=u);let d;return e[8]!==l||e[9]!==u?(d=(0,M.jsxs)(M.Fragment,{children:[a,o,c,(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[l,u]})]}),e[8]=l,e[9]=u,e[10]=d):d=e[10],d}function K(){let e=(0,T.c)(15),t=g(),n=p(),r=h.indexOf(n)+1,i=h.indexOf(n)-1,a=r>=h.length,o=i<0,s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[`<`,`,`],e[0]=s):s=e[0];let c;e[1]===o?c=e[2]:(c=(0,M.jsx)(P,{action:`decreasePlaybackSpeed`,label:`Slow down`,input:s,labelPosition:`right`,disabled:o}),e[1]=o,e[2]=c);let l;e[3]===t?l=e[4]:(l=(0,M.jsx)(P,{action:`playPause`,label:t?(0,M.jsx)(w,{className:j.PlayPauseIcon}):(0,M.jsx)(C,{className:j.PlayPauseIcon}),input:`Space`,labelPosition:`left`,size:`auto`}),e[3]=t,e[4]=l);let u;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=[`>`,`.`],e[5]=u):u=e[5];let d;e[6]===a?d=e[7]:(d=(0,M.jsx)(P,{action:`increasePlaybackSpeed`,input:u,label:`Speed up`,labelPosition:`left`,disabled:a}),e[6]=a,e[7]=d);let f;e[8]!==c||e[9]!==l||e[10]!==d?(f=(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsxs)(`div`,{className:j.Row,children:[c,l,d]})}),e[8]=c,e[9]=l,e[10]=d,e[11]=f):f=e[11];let m;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})})}),e[12]=m):m=e[12];let _;return e[13]===f?_=e[14]:(_=(0,M.jsxs)(M.Fragment,{children:[f,m]}),e[13]=f,e[14]=_),_}function q(){let e=(0,T.c)(5),t=a(J),n;e[0]===t?n=e[1]:(n=!t&&(0,M.jsx)(P,{action:`nextStop`,label:`Skip to next stop`,input:(0,M.jsx)(v,{className:j.MouseIcon}),labelPosition:`right`}),e[0]=t,e[1]=n);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,M.jsx)(P,{action:`exitTour`,label:`Exit tour`,input:`Esc`,labelPosition:`right`}),e[2]=r):r=e[2];let i;return e[3]===n?i=e[4]:(i=(0,M.jsx)(M.Fragment,{children:(0,M.jsx)(`div`,{className:j.Column,children:(0,M.jsxs)(`div`,{className:j.Row,children:[n,r]})})}),e[3]=n,e[4]=i),i}function J(e){return e.animation!=null&&e.animation.currentIndex>=e.animation.targets.length-1}function Y(){let e=(0,T.c)(23),t=b(),n=k(),r;e[0]===t?r=e[1]:(r=t===`fly`?(0,M.jsx)(L,{}):null,e[0]=t,e[1]=r);let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,M.jsx)(R,{}),e[2]=i):i=e[2];let a;e[3]===t?a=e[4]:(a=t===`fly`?(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(z,{})}):null,e[3]=t,e[4]=a);let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(I,{})}),e[5]=o):o=e[5];let s;e[6]===a?s=e[7]:(s=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[a,o]}),e[6]=a,e[7]=s);let c;e[8]===n?c=e[9]:(c=n?null:(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(V,{})}),e[8]=n,e[9]=c);let l;e[10]!==t||e[11]!==n?(l=t===`follow`&&n?(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`nextPlayer`,label:`Next player`,input:(0,M.jsx)(v,{className:j.MouseIcon}),labelPosition:`right`,inputSize:`auto`})}):null,e[10]=t,e[11]=n,e[12]=l):l=e[12];let u=t===`follow`?`Fly mode`:`Follow mode`,d;e[13]===u?d=e[14]:(d=(0,M.jsx)(`div`,{className:j.Row,children:(0,M.jsx)(P,{action:`toggleObserverMode`,label:u,input:`Space`,labelPosition:`right`,inputSize:`auto`})}),e[13]=u,e[14]=d);let f;e[15]!==c||e[16]!==l||e[17]!==d?(f=(0,M.jsxs)(`div`,{className:j.Column,"data-height":`compact`,children:[c,l,d]}),e[15]=c,e[16]=l,e[17]=d,e[18]=f):f=e[18];let p;return e[19]!==r||e[20]!==s||e[21]!==f?(p=(0,M.jsxs)(M.Fragment,{children:[r,i,s,f]}),e[19]=r,e[20]=s,e[21]=f,e[22]=p):p=e[22],p}function X(){let e=(0,T.c)(13),t=s(),n=b(),r=a(Z),i=t?.source===`demo`,o=t?.source===`live`,c=!t,l=o&&(n===`fly`||n===`follow`),u=c&&!r,d;e[0]===u?d=e[1]:(d=u&&(0,M.jsx)(G,{}),e[0]=u,e[1]=d);let f;e[2]===l?f=e[3]:(f=l&&(0,M.jsx)(Y,{}),e[2]=l,e[3]=f);let p;e[4]===i?p=e[5]:(p=i&&(0,M.jsx)(K,{}),e[4]=i,e[5]=p);let m;e[6]===r?m=e[7]:(m=r&&(0,M.jsx)(q,{}),e[6]=r,e[7]=m);let h;return e[8]!==d||e[9]!==f||e[10]!==p||e[11]!==m?(h=(0,M.jsxs)(`div`,{className:j.Root,children:[d,f,p,m]}),e[8]=d,e[9]=f,e[10]=p,e[11]=m,e[12]=h):h=e[12],h}function Z(e){return e.animation!==null}export{X as KeyboardOverlay}; \ No newline at end of file diff --git a/docs/assets/MapInfoDialog-DlTvQpC9.js b/docs/assets/MapInfoDialog-DSwIQB7a.js similarity index 98% rename from docs/assets/MapInfoDialog-DlTvQpC9.js rename to docs/assets/MapInfoDialog-DSwIQB7a.js index 2aa48f9a..38f3c0af 100644 --- a/docs/assets/MapInfoDialog-DlTvQpC9.js +++ b/docs/assets/MapInfoDialog-DSwIQB7a.js @@ -1,4 +1,4 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./useQuery-6REtM5HO.js";import{i as a,l as o,n as s}from"./loaders-B4T775qz.js";import{c}from"./manifest-BIDT_vSa.js";import{U as l,W as u}from"./index-BnXbiEzA.js";var d=e(n(),1),f=t(),p={GuiMarkup:`_GuiMarkup_jg4va_1`,Bullet:`_Bullet_jg4va_12`},m=r(),h=new Set([`spop`,`spush`,`lmargin`,`font`,`color`,`bitmap`,`a`,`/a`]);function g(e){return e.split(/<([^><]+)>/g).map((e,t)=>{if(t%2==0)return e?{type:`text`,value:e}:null;{let[t,...n]=e.split(`:`);return h.has(t.toLowerCase())?{type:`tag`,name:t,args:n}:{type:`text`,value:`<${e}>`}}}).filter(e=>e!=null)}function _(e){let[t,n]=e;return{fontDescription:t,fontSize:n?Math.max(11,Math.min(parseInt(n.trim(),10),16)):void 0}}function v(e){let t=g(e),n={type:`span`,source:`root`,style:{},children:[]},r=n,i=[r],a=e=>e.children!=null&&e.children.some(e=>typeof e==`string`||a(e));for(let e of t)switch(e.type){case`text`:r.children.push(e.value);break;case`tag`:switch(e.name){case`spush`:{let e={type:`span`,source:`spush`,style:{},children:[]};r.children.push(e),r=e,i.push(r);break}case`spop`:if(r.source!==`root`){let e=i.pop();for(;e.source!==`spush`;)e=i.pop();r=i[i.length-1]}break;case`lmargin`:break;case`font`:{let t=_(e.args).fontSize;if(!a(r))r.style.fontSize=t;else{let e={type:`span`,source:`spush`,style:{fontSize:t},children:[]};r.children.push(e),r=e,i.push(r)}break}case`color`:if(!a(r))r.style.color=`#${e.args[0].trim()}`;else{let t={type:`span`,source:`spush`,style:{color:`#${e.args[0].trim()}`},children:[]};r.children.push(t),r=t,i.push(r)}break;case`bitmap`:{let t={type:`bitmap`,value:e.args[0]};r.children.push(t);break}case`a`:{let t=e.args[0].trim().split(` `),n={type:`a`,source:`a`,value:`http://${t.length===2&&t[0]===`wwwlink`?t[1]:t[0]}`,style:{},children:[]};r.children.push(n),r=n,i.push(r);break}case`/a`:{let e=i.pop();for(;e.source!==`a`;)e=i.pop();r=i[i.length-1];break}}}return y(n)}function y(e){switch(e.type){case`span`:return d.createElement(`span`,{style:Object.keys(e.style).length===0?void 0:e.style},...e.children.map(e=>typeof e==`string`?e:y(e)));case`a`:return d.createElement(`a`,{href:e.value,style:Object.keys(e.style).length===0?void 0:e.style,rel:`noopener noreferrer`,target:`_blank`},...e.children.map(e=>typeof e==`string`?e:y(e)));case`bitmap`:return(0,m.jsx)(S,{name:e.value})}}var b=new Map;function x(e){if(b.has(e))return b.get(e);let t;try{t=a(c(`textures/gui/${e}`))}catch{t=null}return b.set(e,t),t}function S(e){let t=(0,f.c)(5),{name:n}=e,r;t[0]===n?r=t[1]:(r=x(n),t[0]=n,t[1]=r);let i=r;if(i){let e;return t[2]===i?e=t[3]:(e=(0,m.jsx)(`img`,{src:i,alt:``,className:p.Bitmap}),t[2]=i,t[3]=e),e}if(/bullet/i.test(n)){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,m.jsx)(`span`,{className:p.Bullet,children:`•`}),t[4]=e):e=t[4],e}return null}var C=/<(?:font|color|bitmap|just|lmargin|a):/i;function w(e){return C.test(e)}function T(e,t){let n=t.toUpperCase();return e.split(` +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./useQuery-6REtM5HO.js";import{i as a,l as o,n as s}from"./loaders-5n1D4iOD.js";import{c}from"./manifest-BIDT_vSa.js";import{U as l,W as u}from"./index-BZ0wFa-D.js";var d=e(n(),1),f=t(),p={GuiMarkup:`_GuiMarkup_jg4va_1`,Bullet:`_Bullet_jg4va_12`},m=r(),h=new Set([`spop`,`spush`,`lmargin`,`font`,`color`,`bitmap`,`a`,`/a`]);function g(e){return e.split(/<([^><]+)>/g).map((e,t)=>{if(t%2==0)return e?{type:`text`,value:e}:null;{let[t,...n]=e.split(`:`);return h.has(t.toLowerCase())?{type:`tag`,name:t,args:n}:{type:`text`,value:`<${e}>`}}}).filter(e=>e!=null)}function _(e){let[t,n]=e;return{fontDescription:t,fontSize:n?Math.max(11,Math.min(parseInt(n.trim(),10),16)):void 0}}function v(e){let t=g(e),n={type:`span`,source:`root`,style:{},children:[]},r=n,i=[r],a=e=>e.children!=null&&e.children.some(e=>typeof e==`string`||a(e));for(let e of t)switch(e.type){case`text`:r.children.push(e.value);break;case`tag`:switch(e.name){case`spush`:{let e={type:`span`,source:`spush`,style:{},children:[]};r.children.push(e),r=e,i.push(r);break}case`spop`:if(r.source!==`root`){let e=i.pop();for(;e.source!==`spush`;)e=i.pop();r=i[i.length-1]}break;case`lmargin`:break;case`font`:{let t=_(e.args).fontSize;if(!a(r))r.style.fontSize=t;else{let e={type:`span`,source:`spush`,style:{fontSize:t},children:[]};r.children.push(e),r=e,i.push(r)}break}case`color`:if(!a(r))r.style.color=`#${e.args[0].trim()}`;else{let t={type:`span`,source:`spush`,style:{color:`#${e.args[0].trim()}`},children:[]};r.children.push(t),r=t,i.push(r)}break;case`bitmap`:{let t={type:`bitmap`,value:e.args[0]};r.children.push(t);break}case`a`:{let t=e.args[0].trim().split(` `),n={type:`a`,source:`a`,value:`http://${t.length===2&&t[0]===`wwwlink`?t[1]:t[0]}`,style:{},children:[]};r.children.push(n),r=n,i.push(r);break}case`/a`:{let e=i.pop();for(;e.source!==`a`;)e=i.pop();r=i[i.length-1];break}}}return y(n)}function y(e){switch(e.type){case`span`:return d.createElement(`span`,{style:Object.keys(e.style).length===0?void 0:e.style},...e.children.map(e=>typeof e==`string`?e:y(e)));case`a`:return d.createElement(`a`,{href:e.value,style:Object.keys(e.style).length===0?void 0:e.style,rel:`noopener noreferrer`,target:`_blank`},...e.children.map(e=>typeof e==`string`?e:y(e)));case`bitmap`:return(0,m.jsx)(S,{name:e.value})}}var b=new Map;function x(e){if(b.has(e))return b.get(e);let t;try{t=a(c(`textures/gui/${e}`))}catch{t=null}return b.set(e,t),t}function S(e){let t=(0,f.c)(5),{name:n}=e,r;t[0]===n?r=t[1]:(r=x(n),t[0]=n,t[1]=r);let i=r;if(i){let e;return t[2]===i?e=t[3]:(e=(0,m.jsx)(`img`,{src:i,alt:``,className:p.Bitmap}),t[2]=i,t[3]=e),e}if(/bullet/i.test(n)){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,m.jsx)(`span`,{className:p.Bullet,children:`•`}),t[4]=e):e=t[4],e}return null}var C=/<(?:font|color|bitmap|just|lmargin|a):/i;function w(e){return C.test(e)}function T(e,t){let n=t.toUpperCase();return e.split(` `).flatMap(e=>{let t=e.match(/^\[([^\]]+)\]/);return t&&!t[1].toUpperCase().split(/\s+/).includes(n)?[]:[e.replace(/^\[[^\]]+\]/,``)]}).join(` `)}function E(e){let t=(0,f.c)(4),{markup:n}=e,r;t[0]===n?r=t[1]:(r=v(n),t[0]=n,t[1]=r);let i=r,a;return t[2]===i?a=t[3]:(a=(0,m.jsx)(`div`,{className:p.GuiMarkup,children:i}),t[2]=i,t[3]=a),a}var D={Dialog:`_Dialog_tbn5d_1 _Dialog_1t9wa_1`,Overlay:`_Overlay_tbn5d_10 _Overlay_1t9wa_22`,Body:`_Body_tbn5d_14`,Left:`_Left_tbn5d_22`,PreviewImage:`_PreviewImage_tbn5d_29`,PreviewImageFloating:`_PreviewImageFloating_tbn5d_35`,Title:`_Title_tbn5d_45`,MapMeta:`_MapMeta_tbn5d_53`,MapPlanet:`_MapPlanet_tbn5d_63`,MapQuote:`_MapQuote_tbn5d_67`,MapBlurb:`_MapBlurb_tbn5d_86`,Section:`_Section_tbn5d_91`,SectionTitle:`_SectionTitle_tbn5d_95`,MusicTrack:`_MusicTrack_tbn5d_105`,MusicButton:`_MusicButton_tbn5d_119`,Footer:`_Footer_tbn5d_146`,CloseButton:`_CloseButton_tbn5d_158 _DialogButton_1t9wa_33`,Hint:`_Hint_tbn5d_162`,MusicTrackName:`_MusicTrackName_tbn5d_168`};function ee(e){let t=(0,f.c)(2),n;return t[0]===e?n=t[1]:(n={queryKey:[`parsedMission`,e],queryFn:()=>o(e)},t[0]=e,t[1]=n),i(n)}function te(e){for(let t of e.body){if(t.type!==`ObjectDeclaration`)continue;let{instanceName:e,body:n}=t;if(e&&e.type===`Identifier`&&e.name.toLowerCase()===`missiongroup`){let e={};for(let t of n){if(t.type!==`Assignment`)continue;let{target:n,value:r}=t;n.type===`Identifier`&&r.type===`StringLiteral`&&(e[n.name.toLowerCase()]=r.value)}return e}}return{}}function ne(e,t){if(e)try{return a(c(`textures/gui/${e}`))}catch{}try{return a(c(`textures/gui/Load_${t}`))}catch{}return null}function re(e){let t=(0,f.c)(7),{src:n,alt:r,className:i}=e,a=i===void 0?D.PreviewImage:i,[o,s]=(0,d.useState)(null),c,l;if(t[0]===n?(c=t[1],l=t[2]):(c=()=>{let e=!1,t;return fetch(n).then(j).then(A).then(k).then(n=>{e||!n||(t=URL.createObjectURL(n),s(t))}).catch(O),()=>{e=!0,t&&URL.revokeObjectURL(t)}},l=[n],t[0]=n,t[1]=c,t[2]=l),(0,d.useEffect)(c,l),!o)return null;let u;return t[3]!==r||t[4]!==a||t[5]!==o?(u=(0,m.jsx)(`img`,{src:o,alt:r,className:a}),t[3]=r,t[4]=a,t[5]=o,t[6]=u):u=t[6],u}function O(){}function k(e){return new Promise(t=>{let n=document.createElement(`canvas`);n.width=e.width,n.height=e.height,n.getContext(`2d`)?.drawImage(e,0,0),e.close(),n.toBlob(t)})}function A(e){return createImageBitmap(e,{colorSpaceConversion:`none`})}function j(e){return e.blob()}function ie(e){let t=(0,f.c)(22),{track:n}=e,[r,i]=(0,d.useState)(!1),[a,o]=(0,d.useState)(!0),c=(0,d.useRef)(null),p;t[0]===n?p=t[1]:(p=n.toLowerCase(),t[0]=n,t[1]=p);let h=`${s}music/${p}.mp3`,g,_;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>{let e=c.current;if(e)return()=>{e.pause()}},_=[],t[2]=g,t[3]=_):(g=t[2],_=t[3]),(0,d.useEffect)(g,_);let v;t[4]===r?v=t[5]:(v=()=>{let e=c.current;e&&(r?e.pause():e.play().catch(()=>o(!1)))},t[4]=r,t[5]=v);let y=v,b,x,S;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>i(!0),x=()=>i(!1),S=()=>o(!1),t[6]=b,t[7]=x,t[8]=S):(b=t[6],x=t[7],S=t[8]);let C;t[9]===h?C=t[10]:(C=(0,m.jsx)(`audio`,{ref:c,src:h,loop:!0,onPlay:b,onPause:x,onError:S}),t[9]=h,t[10]=C);let w;t[11]===n?w=t[12]:(w=(0,m.jsx)(`span`,{className:D.MusicTrackName,children:n}),t[11]=n,t[12]=w);let T;t[13]!==a||t[14]!==r||t[15]!==y?(T=a&&(0,m.jsx)(`button`,{className:D.MusicButton,onClick:y,"aria-label":r?`Pause music`:`Play music`,children:r?(0,m.jsx)(u,{}):(0,m.jsx)(l,{})}),t[13]=a,t[14]=r,t[15]=y,t[16]=T):T=t[16];let E;return t[17]!==r||t[18]!==T||t[19]!==C||t[20]!==w?(E=(0,m.jsxs)(`div`,{className:D.MusicTrack,"data-playing":r,children:[C,w,T]}),t[17]=r,t[18]=T,t[19]=C,t[20]=w,t[21]=E):E=t[21],E}function M(e){let t=(0,f.c)(100),{onClose:n,missionName:r,missionType:i}=e,{data:a}=ee(r),o=(0,d.useRef)(null),s,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{o.current?.focus();try{document.exitPointerLock()}catch{}},c=[],t[0]=s,t[1]=c):(s=t[0],c=t[1]),(0,d.useEffect)(s,c);let l,u;t[2]===n?(l=t[3],u=t[4]):(l=()=>{let e=e=>{if(e.key===`Escape`)n();else if(e.key===`k`&&(e.metaKey||e.ctrlKey)){n();return}e.stopImmediatePropagation()},t=se;return window.addEventListener(`keydown`,e,{capture:!0}),window.addEventListener(`keyup`,t,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),window.removeEventListener(`keyup`,t,{capture:!0})}},u=[n],t[2]=n,t[3]=l,t[4]=u),(0,d.useEffect)(l,u);let p;t[5]===a?p=t[6]:(p=a?te(a.ast):{},t[5]=a,t[6]=p);let h=p,g;t[7]!==r||t[8]!==a?(g=a?ne(a.bitmap,r):null,t[7]=r,t[8]=a,t[9]=g):g=t[9];let _=g,v=a?.displayName??r,y;t[10]===i?y=t[11]:(y=i.toLowerCase(),t[10]=i,t[11]=y);let b=y===`singleplayer`,x=h.musictrack,S,C,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H,U;if(t[12]!==_||t[13]!==v||t[14]!==b||t[15]!==i||t[16]!==n||t[17]!==a){let e=a?.missionString?T(a.missionString,i):null,r,s,c,l;if(t[36]!==a?.missionQuote){if(l=a?.missionQuote?.trim()??``,s=w(l),c=``,r=``,!s)for(let e of l.split(` `)){let t=e.trim();t.match(/^--[^-]/)?r=t.replace(/^-+\s*/,``).trim():t&&(c+=(c?` diff --git a/docs/assets/Mission-RZOaitqM.js b/docs/assets/Mission-BRZHUO2H.js similarity index 98% rename from docs/assets/Mission-RZOaitqM.js rename to docs/assets/Mission-BRZHUO2H.js index a6cf6167..a5b5d3d9 100644 --- a/docs/assets/Mission-RZOaitqM.js +++ b/docs/assets/Mission-BRZHUO2H.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./useQuery-6REtM5HO.js";import{i as a,l as o}from"./loaders-B4T775qz.js";import{t as s}from"./logger-B058WGzf.js";import{a as c,i as l,o as u,s as d}from"./manifest-BIDT_vSa.js";import{t as f}from"./stringUtils-1MyeFdQ_.js";import{c as p,l as m,n as h,o as g,r as _,s as v,t as y}from"./mission-yeigCtfF.js";import{r as b}from"./engineStore-B1KAgiiF.js";import{a as x,i as S,n as C,o as w,r as T,s as E,t as D}from"./misToScene-BfuEJI8y.js";import{j as O}from"./index-BnXbiEzA.js";var k=t(),A=e(m(),1),j=s(`scriptLoader`);function M(){return async e=>{let t;try{t=a(e)}catch(t){return j.warn(`Script not in manifest: %s (%s)`,e,t),null}try{let n=await fetch(t);return n.ok?await n.text():(j.error(`Script fetch failed: %s (%d)`,e,n.status),null)}catch(t){return j.error(`Script fetch error: %s %o`,e,t),null}}}var N=e(n(),1),P=r(),F=(0,N.createContext)(null);function I(e){let t=(0,k.c)(3),{runtime:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,P.jsx)(F.Provider,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}var L=(0,N.createContext)(null).Provider,R=[`scripts/admin.cs`,`scripts/ai.cs`,`scripts/aiBotProfiles.cs`,`scripts/aiBountyGame.cs`,`scripts/aiChat.cs`,`scripts/aiCnH.cs`,`scripts/aiCTF.cs`,`scripts/aiDeathMatch.cs`,`scripts/aiDebug.cs`,`scripts/aiDefaultTasks.cs`,`scripts/aiDnD.cs`,`scripts/aiHumanTasks.cs`,`scripts/aiHunters.cs`,`scripts/aiInventory.cs`,`scripts/aiObjectiveBuilder.cs`,`scripts/aiObjectives.cs`,`scripts/aiRabbit.cs`,`scripts/aiSiege.cs`,`scripts/aiTDM.cs`,`scripts/aiTeamHunters.cs`,`scripts/deathMessages.cs`,`scripts/graphBuild.cs`,`scripts/navGraph.cs`,`scripts/serverTasks.cs`,`scripts/spdialog.cs`];function z(e,t){if(t)return e.state.datablocks.get(t)}function B(e){if(typeof e==`string`){let t=e.toLowerCase();return t!==`0`&&t!==`false`&&t!==``}return!!e}function V(e){let[t,n,r,i]=e.split(` `).map(parseFloat),a=-(i||0)*Math.PI/360,o=Math.sin(a),s=Math.cos(a),c=Math.sqrt((n||0)*(n||0)+(r||0)*(r||0)+(t||0)*(t||0));return c<1e-8?[0,0,0,1]:[(n||0)/c*o,(r||0)/c*o,(t||0)/c*o,s]}function H(e,t,n){let r=e._className,i=String(e._id),a=y(e),o=_(e),s=V(e.rotation??`1 0 0 0`),c=h(e,`dataBlock`)??``,l=z(t,c),u={id:i,className:r,runtimeObject:e,missionTypesList:h(e,`missionTypesList`)},d={...u,position:a,rotation:s,scale:o};switch(r){case`TerrainBlock`:return{...u,renderType:`TerrainBlock`,terrainData:x(e)};case`InteriorInstance`:return{...u,renderType:`InteriorInstance`,interiorData:D(e)};case`Sky`:return{...u,renderType:`Sky`,skyData:T(e)};case`Sun`:return{...u,renderType:`Sun`,sunData:S(e)};case`WaterBlock`:return{...u,renderType:`WaterBlock`,waterData:w(e)};case`MissionArea`:return{...u,renderType:`MissionArea`,missionAreaData:C(e)};case`StaticShape`:case`Item`:case`Turret`:case`TSStatic`:{let i=h(e,`team`);return U(d,e,l,t,r,i!=null&&i!==``?parseInt(i,10):n,c)}case`ForceFieldBare`:return W(d,e,l,o);case`AudioEmitter`:return{...d,renderType:`AudioEmitter`,audioFileName:h(e,`fileName`)??void 0,audioVolume:parseFloat(h(e,`volume`))||1,audioIs3D:(h(e,`is3D`)??`0`)!==`0`,audioIsLooping:(h(e,`isLooping`)??`0`)!==`0`,audioMinDistance:parseFloat(h(e,`minDistance`))||1,audioMaxDistance:parseFloat(h(e,`maxDistance`))||1,audioMinLoopGap:parseFloat(h(e,`minLoopGap`))||0,audioMaxLoopGap:parseFloat(h(e,`maxLoopGap`))||0};case`Camera`:return{...d,renderType:`Camera`,cameraDataBlock:c||void 0};case`WayPoint`:return{...d,renderType:`WayPoint`,label:h(e,`name`)||void 0};default:return null}}function U(e,t,n,r,i,a,o){let s=i===`TSStatic`?h(t,`shapeName`):h(n,`shapeFile`),c=i===`Turret`?`Turret`:i===`Item`?`Item`:i===`TSStatic`?`TSStatic`:`StaticShape`,l={...e,renderType:`Shape`,shapeName:s,shapeType:c,dataBlock:o||void 0,teamId:a};i===`Item`&&(l.rotate=B(h(t,`rotate`)??h(n,`rotate`)),o.toLowerCase()===`flag`&&a!=null&&(l.skinName=f[a]));let u=h(n,`lightType`);if(u){let e={constantlight:1,pulsinglight:2}[u.toLowerCase()];if(e){l.lightType=e;let t=h(n,`lightColor`);if(t){let e=t.split(/\s+/).map(Number);l.lightColor=[e[0]??1,e[1]??1,e[2]??1,e[3]??1]}else l.lightColor=[1,1,1,1];l.lightTime=Number(h(n,`lightTime`))||1e3,l.lightRadius=Number(h(n,`lightRadius`))||10,l.lightOnlyStatic=B(h(n,`lightOnlyStatic`)),l.isStaticItem=i===`Item`}}if(i===`Turret`){let e=h(t,`initialBarrel`);if(e){let t=z(r,e),n=h(t,`shapeFile`);n&&(l.imageSlots=[{shapeName:n,mountPoint:Number(h(t,`mountPoint`))||0,dataBlockId:0}])}}return l}function W(e,t,n,r){let i=h(n,`color`),a=i?E(i):[1,1,1],o=parseFloat(h(n,`baseTranslucency`))||1,s=parseInt(h(n,`numFrames`),10)||1,c=parseFloat(h(n,`framesPerSec`))||1,l=parseFloat(h(n,`scrollSpeed`))||0,u=parseFloat(h(n,`umapping`))||1,d=parseFloat(h(n,`vmapping`))||1,f=[];for(let e=0;e{let t=(0,A.default)(e,{nocase:!0});return c().filter(e=>t(e)).map(e=>{let[,t]=d(e);return t})},isFile:e=>u()[l(e)]!=null};function Z(e){let t=(0,k.c)(2),n;return t[0]===e?n=t[1]:(n={queryKey:[`parsedMission`,e],queryFn:()=>o(e)},t[0]=e,t[1]=n),i(n)}function Q(e,t,n){let r=(0,k.c)(6),i;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={ready:!1,runtime:void 0,progress:0},r[0]=i):i=r[0];let[a,o]=(0,N.useState)(i),s,c;return r[1]!==e||r[2]!==t||r[3]!==n?(s=()=>{if(!n)return;let r=new AbortController,i=!1,a=null,s=v(),c=()=>{o(e=>({...e,progress:s.progress}))};s.on(`update`,c);let{runtime:l,ready:u}=g({missionName:e,missionType:t,runtimeOptions:{loadScript:J,fileSystem:X,cache:Y,signal:r.signal,progress:s,ignoreScripts:R}});return u.then(()=>{if(i||r.signal.aborted)return;b.getState().setRuntime(l);let n=l.getObjectByName(`MissionGroup`);if(n){let r=K(n,l,t);O.getState().setAllEntities(r),O.getState().setMissionInfo({missionName:e,missionType:t??void 0})}o({ready:!0,runtime:l,progress:1})}).catch(ee),a=l.subscribeRuntimeEvents($),b.getState().setRuntime(l),()=>{i=!0,s.off(`update`,c),r.abort(),a?.(),b.getState().clearRuntime(),O.getState().clearEntities(),l.destroy()}},c=[e,t,n],r[1]=e,r[2]=t,r[3]=n,r[4]=s,r[5]=c):(s=r[4],c=r[5]),(0,N.useEffect)(s,c),a}function $(e){e.type===`batch.flushed`&&b.getState().applyRuntimeBatch(e.events,{tick:e.tick})}function ee(e){e instanceof Error&&e.name===`AbortError`||q.error(`Mission runtime failed to become ready: %o`,e)}var te=(0,N.memo)(function(e){let t=(0,k.c)(13),{name:n,missionType:r,onLoadingChange:i}=e,{data:a}=Z(n),{ready:o,runtime:s,progress:c}=Q(n,r,a),l=!a||!o||!s,u;t[0]!==r||t[1]!==a?(u={metadata:a,missionType:r},t[0]=r,t[1]=a,t[2]=u):u=t[2];let d=u,f,p;if(t[3]!==l||t[4]!==i||t[5]!==c?(f=()=>{i?.(l,c)},p=[l,c,i],t[3]=l,t[4]=i,t[5]=c,t[6]=f,t[7]=p):(f=t[6],p=t[7]),(0,N.useEffect)(f,p),l)return null;let m;t[8]===s?m=t[9]:(m=(0,P.jsx)(I,{runtime:s}),t[8]=s,t[9]=m);let h;return t[10]!==d||t[11]!==m?(h=(0,P.jsx)(L,{value:d,children:m}),t[10]=d,t[11]=m,t[12]=h):h=t[12],h});export{te as Mission}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{t as i}from"./useQuery-6REtM5HO.js";import{i as a,l as o}from"./loaders-5n1D4iOD.js";import{t as s}from"./logger-B058WGzf.js";import{a as c,i as l,o as u,s as d}from"./manifest-BIDT_vSa.js";import{t as f}from"./stringUtils-1MyeFdQ_.js";import{c as p,l as m,n as h,o as g,r as _,s as v,t as y}from"./mission-yeigCtfF.js";import{r as b}from"./engineStore-B1KAgiiF.js";import{a as x,i as S,n as C,o as w,r as T,s as E,t as D}from"./misToScene-BfuEJI8y.js";import{j as O}from"./index-BZ0wFa-D.js";var k=t(),A=e(m(),1),j=s(`scriptLoader`);function M(){return async e=>{let t;try{t=a(e)}catch(t){return j.warn(`Script not in manifest: %s (%s)`,e,t),null}try{let n=await fetch(t);return n.ok?await n.text():(j.error(`Script fetch failed: %s (%d)`,e,n.status),null)}catch(t){return j.error(`Script fetch error: %s %o`,e,t),null}}}var N=e(n(),1),P=r(),F=(0,N.createContext)(null);function I(e){let t=(0,k.c)(3),{runtime:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,P.jsx)(F.Provider,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}var L=(0,N.createContext)(null).Provider,R=[`scripts/admin.cs`,`scripts/ai.cs`,`scripts/aiBotProfiles.cs`,`scripts/aiBountyGame.cs`,`scripts/aiChat.cs`,`scripts/aiCnH.cs`,`scripts/aiCTF.cs`,`scripts/aiDeathMatch.cs`,`scripts/aiDebug.cs`,`scripts/aiDefaultTasks.cs`,`scripts/aiDnD.cs`,`scripts/aiHumanTasks.cs`,`scripts/aiHunters.cs`,`scripts/aiInventory.cs`,`scripts/aiObjectiveBuilder.cs`,`scripts/aiObjectives.cs`,`scripts/aiRabbit.cs`,`scripts/aiSiege.cs`,`scripts/aiTDM.cs`,`scripts/aiTeamHunters.cs`,`scripts/deathMessages.cs`,`scripts/graphBuild.cs`,`scripts/navGraph.cs`,`scripts/serverTasks.cs`,`scripts/spdialog.cs`];function z(e,t){if(t)return e.state.datablocks.get(t)}function B(e){if(typeof e==`string`){let t=e.toLowerCase();return t!==`0`&&t!==`false`&&t!==``}return!!e}function V(e){let[t,n,r,i]=e.split(` `).map(parseFloat),a=-(i||0)*Math.PI/360,o=Math.sin(a),s=Math.cos(a),c=Math.sqrt((n||0)*(n||0)+(r||0)*(r||0)+(t||0)*(t||0));return c<1e-8?[0,0,0,1]:[(n||0)/c*o,(r||0)/c*o,(t||0)/c*o,s]}function H(e,t,n){let r=e._className,i=String(e._id),a=y(e),o=_(e),s=V(e.rotation??`1 0 0 0`),c=h(e,`dataBlock`)??``,l=z(t,c),u={id:i,className:r,runtimeObject:e,missionTypesList:h(e,`missionTypesList`)},d={...u,position:a,rotation:s,scale:o};switch(r){case`TerrainBlock`:return{...u,renderType:`TerrainBlock`,terrainData:x(e)};case`InteriorInstance`:return{...u,renderType:`InteriorInstance`,interiorData:D(e)};case`Sky`:return{...u,renderType:`Sky`,skyData:T(e)};case`Sun`:return{...u,renderType:`Sun`,sunData:S(e)};case`WaterBlock`:return{...u,renderType:`WaterBlock`,waterData:w(e)};case`MissionArea`:return{...u,renderType:`MissionArea`,missionAreaData:C(e)};case`StaticShape`:case`Item`:case`Turret`:case`TSStatic`:{let i=h(e,`team`);return U(d,e,l,t,r,i!=null&&i!==``?parseInt(i,10):n,c)}case`ForceFieldBare`:return W(d,e,l,o);case`AudioEmitter`:return{...d,renderType:`AudioEmitter`,audioFileName:h(e,`fileName`)??void 0,audioVolume:parseFloat(h(e,`volume`))||1,audioIs3D:(h(e,`is3D`)??`0`)!==`0`,audioIsLooping:(h(e,`isLooping`)??`0`)!==`0`,audioMinDistance:parseFloat(h(e,`minDistance`))||1,audioMaxDistance:parseFloat(h(e,`maxDistance`))||1,audioMinLoopGap:parseFloat(h(e,`minLoopGap`))||0,audioMaxLoopGap:parseFloat(h(e,`maxLoopGap`))||0};case`Camera`:return{...d,renderType:`Camera`,cameraDataBlock:c||void 0};case`WayPoint`:return{...d,renderType:`WayPoint`,label:h(e,`name`)||void 0};default:return null}}function U(e,t,n,r,i,a,o){let s=i===`TSStatic`?h(t,`shapeName`):h(n,`shapeFile`),c=i===`Turret`?`Turret`:i===`Item`?`Item`:i===`TSStatic`?`TSStatic`:`StaticShape`,l={...e,renderType:`Shape`,shapeName:s,shapeType:c,dataBlock:o||void 0,teamId:a};i===`Item`&&(l.rotate=B(h(t,`rotate`)??h(n,`rotate`)),o.toLowerCase()===`flag`&&a!=null&&(l.skinName=f[a]));let u=h(n,`lightType`);if(u){let e={constantlight:1,pulsinglight:2}[u.toLowerCase()];if(e){l.lightType=e;let t=h(n,`lightColor`);if(t){let e=t.split(/\s+/).map(Number);l.lightColor=[e[0]??1,e[1]??1,e[2]??1,e[3]??1]}else l.lightColor=[1,1,1,1];l.lightTime=Number(h(n,`lightTime`))||1e3,l.lightRadius=Number(h(n,`lightRadius`))||10,l.lightOnlyStatic=B(h(n,`lightOnlyStatic`)),l.isStaticItem=i===`Item`}}if(i===`Turret`){let e=h(t,`initialBarrel`);if(e){let t=z(r,e),n=h(t,`shapeFile`);n&&(l.imageSlots=[{shapeName:n,mountPoint:Number(h(t,`mountPoint`))||0,dataBlockId:0}])}}return l}function W(e,t,n,r){let i=h(n,`color`),a=i?E(i):[1,1,1],o=parseFloat(h(n,`baseTranslucency`))||1,s=parseInt(h(n,`numFrames`),10)||1,c=parseFloat(h(n,`framesPerSec`))||1,l=parseFloat(h(n,`scrollSpeed`))||0,u=parseFloat(h(n,`umapping`))||1,d=parseFloat(h(n,`vmapping`))||1,f=[];for(let e=0;e{let t=(0,A.default)(e,{nocase:!0});return c().filter(e=>t(e)).map(e=>{let[,t]=d(e);return t})},isFile:e=>u()[l(e)]!=null};function Z(e){let t=(0,k.c)(2),n;return t[0]===e?n=t[1]:(n={queryKey:[`parsedMission`,e],queryFn:()=>o(e)},t[0]=e,t[1]=n),i(n)}function Q(e,t,n){let r=(0,k.c)(6),i;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={ready:!1,runtime:void 0,progress:0},r[0]=i):i=r[0];let[a,o]=(0,N.useState)(i),s,c;return r[1]!==e||r[2]!==t||r[3]!==n?(s=()=>{if(!n)return;let r=new AbortController,i=!1,a=null,s=v(),c=()=>{o(e=>({...e,progress:s.progress}))};s.on(`update`,c);let{runtime:l,ready:u}=g({missionName:e,missionType:t,runtimeOptions:{loadScript:J,fileSystem:X,cache:Y,signal:r.signal,progress:s,ignoreScripts:R}});return u.then(()=>{if(i||r.signal.aborted)return;b.getState().setRuntime(l);let n=l.getObjectByName(`MissionGroup`);if(n){let r=K(n,l,t);O.getState().setAllEntities(r),O.getState().setMissionInfo({missionName:e,missionType:t??void 0})}o({ready:!0,runtime:l,progress:1})}).catch(ee),a=l.subscribeRuntimeEvents($),b.getState().setRuntime(l),()=>{i=!0,s.off(`update`,c),r.abort(),a?.(),b.getState().clearRuntime(),O.getState().clearEntities(),l.destroy()}},c=[e,t,n],r[1]=e,r[2]=t,r[3]=n,r[4]=s,r[5]=c):(s=r[4],c=r[5]),(0,N.useEffect)(s,c),a}function $(e){e.type===`batch.flushed`&&b.getState().applyRuntimeBatch(e.events,{tick:e.tick})}function ee(e){e instanceof Error&&e.name===`AbortError`||q.error(`Mission runtime failed to become ready: %o`,e)}var te=(0,N.memo)(function(e){let t=(0,k.c)(13),{name:n,missionType:r,onLoadingChange:i}=e,{data:a}=Z(n),{ready:o,runtime:s,progress:c}=Q(n,r,a),l=!a||!o||!s,u;t[0]!==r||t[1]!==a?(u={metadata:a,missionType:r},t[0]=r,t[1]=a,t[2]=u):u=t[2];let d=u,f,p;if(t[3]!==l||t[4]!==i||t[5]!==c?(f=()=>{i?.(l,c)},p=[l,c,i],t[3]=l,t[4]=i,t[5]=c,t[6]=f,t[7]=p):(f=t[6],p=t[7]),(0,N.useEffect)(f,p),l)return null;let m;t[8]===s?m=t[9]:(m=(0,P.jsx)(I,{runtime:s}),t[8]=s,t[9]=m);let h;return t[10]!==d||t[11]!==m?(h=(0,P.jsx)(L,{value:d,children:m}),t[10]=d,t[11]=m,t[12]=h):h=t[12],h});export{te as Mission}; \ No newline at end of file diff --git a/docs/assets/PlayerHUD-oFKWuzte.js b/docs/assets/PlayerHUD-CuRF2gd3.js similarity index 96% rename from docs/assets/PlayerHUD-oFKWuzte.js rename to docs/assets/PlayerHUD-CuRF2gd3.js index 62b6b0c6..2d46fab9 100644 --- a/docs/assets/PlayerHUD-oFKWuzte.js +++ b/docs/assets/PlayerHUD-CuRF2gd3.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatInput-B3JiLpoF.js","assets/chunk-DECur_0Z.js","assets/index-BnXbiEzA.js","assets/preload-helper-BPkniflS.js","assets/mission-yeigCtfF.js","assets/logger-B058WGzf.js","assets/PlayerModel-D8NLwrT8.js","assets/Html-CXAi5FD_.js","assets/extends-lXRikpl0.js","assets/react-three-fiber.esm-El6vNTZj.js","assets/jsx-runtime-BpGWiA-R.js","assets/three.module-DKAirPAO.js","assets/traditional-CCqNJZlI.js","assets/useQuery-6REtM5HO.js","assets/SettingsProvider-BdqQ2Cm4.js","assets/engineStore-B1KAgiiF.js","assets/manifest-BIDT_vSa.js","assets/stringUtils-1MyeFdQ_.js","assets/AudioEmitter-CJMuEzA2.js","assets/DebugBounds-CZKrvsAw.js","assets/loaders-B4T775qz.js","assets/cameraTourStore-CtH3IrnD.js","assets/AudioEmitter-DAQByNim.css","assets/DebugSuspense-ChOWTvws.js","assets/playbackUtils-DjmjN4tv.js","assets/textureUtils-Bk_jPZib.js","assets/useAnisotropy-D9othEmk.js","assets/streamPlaybackStore-D5ldcfU5.js","assets/PlayerModel-Bi7C0zGW.css","assets/streamHelpers-CYLk-lCT.js","assets/iconBase-DZ3jidsI.js","assets/JoystickContext-B2sO9eYx.js","assets/scene-C20n9V3Y.js","assets/index-CiZqoesx.css","assets/ChatInput-bC9wt42K.css"])))=>i.map(i=>d[i]); -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i}from"./SettingsProvider-BdqQ2Cm4.js";import{p as a}from"./loaders-B4T775qz.js";import{n as o}from"./stringUtils-1MyeFdQ_.js";import{i as s}from"./engineStore-B1KAgiiF.js";import{t as c}from"./preload-helper-BPkniflS.js";import{n as l}from"./streamPlaybackStore-D5ldcfU5.js";var u=e(n(),1),d=e=>e;function f(e,t=d){let n=u.useSyncExternalStore(e.subscribe,u.useCallback(()=>t(e.getState()),[e,t]),u.useCallback(()=>t(e.getInitialState()),[e,t]));return u.useDebugValue(n),n}var p=t(),m={PlayerHUD:`_PlayerHUD_13ssv_1`,Compass:`_Compass_13ssv_11`,CompassRing:`_CompassRing_13ssv_20`,CompassNSEW:`_CompassNSEW_13ssv_29`,CompassClock:`_CompassClock_13ssv_38`,Bars:`_Bars_13ssv_51`,BarTrack:`_BarTrack_13ssv_63`,BarFillHealth:`_BarFillHealth_13ssv_71`,BarFillEnergy:`_BarFillEnergy_13ssv_77`,WeaponHUD:`_WeaponHUD_13ssv_85`,PackInvItem:`_PackInvItem_13ssv_95`,WeaponSeparator:`_WeaponSeparator_13ssv_105`,TeamScores:`_TeamScores_13ssv_111`,ObserverCount:`_ObserverCount_13ssv_126`,TeamRow:`_TeamRow_13ssv_136`,TeamName:`_TeamName_13ssv_145`,TeamNameFriendly:`_TeamNameFriendly_13ssv_152 _TeamName_13ssv_145`,TeamNameEnemy:`_TeamNameEnemy_13ssv_157 _TeamName_13ssv_145`,TeamScore:`_TeamScore_13ssv_111`,TeamCount:`_TeamCount_13ssv_170`,PackInventoryHUD:`_PackInventoryHUD_13ssv_179`,PackInvIcon:`_PackInvIcon_13ssv_210`,PackInvCount:`_PackInvCount_13ssv_215`,PackInvInfinity:`_PackInvInfinity_13ssv_222`,Reticle:`_Reticle_13ssv_230`,ReticleImage:`_ReticleImage_13ssv_237`,ReticleDot:`_ReticleDot_13ssv_242`},h={ChatContainer:`_ChatContainer_qc3qt_1`,ChatWindow:`_ChatWindow_qc3qt_14`,ChatMessage:`_ChatMessage_qc3qt_39`,ChatColor0:`_ChatColor0_qc3qt_46`,ChatColor1:`_ChatColor1_qc3qt_49`,ChatColor2:`_ChatColor2_qc3qt_52`,ChatColor3:`_ChatColor3_qc3qt_55`,ChatColor4:`_ChatColor4_qc3qt_58`,ChatColor5:`_ChatColor5_qc3qt_61`,ChatColor6:`_ChatColor6_qc3qt_64`,ChatColor7:`_ChatColor7_qc3qt_67`,ChatColor8:`_ChatColor8_qc3qt_70`,ChatColor9:`_ChatColor9_qc3qt_73`},g=r(),_=(0,u.lazy)(()=>c(()=>import(`./ChatInput-B3JiLpoF.js`).then(e=>({default:e.ChatInput})),__vite__mapDeps([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,32,33,34]))),v=[],y={0:h.ChatColor0,1:h.ChatColor1,2:h.ChatColor2,3:h.ChatColor3,4:h.ChatColor4,5:h.ChatColor5,6:h.ChatColor6,7:h.ChatColor7,8:h.ChatColor8,9:h.ChatColor9};function b(e){return y[e]??y[0]}function x(e){return e.colorCode!=null&&y[e.colorCode]?y[e.colorCode]:y[0]}var ee=(0,u.memo)(function(){let e=(0,p.c)(12),t=s(te),n=s(S),r=(0,u.useRef)(null),i=n[n.length-1]?.id,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},e[0]=a):a=e[0];let o;e[1]===i?o=e[2]:(o=[i],e[1]=i,e[2]=o),(0,u.useEffect)(a,o);let c;e[3]===n?c=e[4]:(c=n.map(w),e[3]=n,e[4]=c);let l;e[5]===c?l=e[6]:(l=(0,g.jsx)(`div`,{ref:r,className:h.ChatWindow,children:c}),e[5]=c,e[6]=l);let d;e[7]===t?d=e[8]:(d=t&&(0,g.jsx)(u.Suspense,{children:(0,g.jsx)(_,{})}),e[7]=t,e[8]=d);let f;return e[9]!==l||e[10]!==d?(f=(0,g.jsxs)(`div`,{className:h.ChatContainer,children:[l,d]}),e[9]=l,e[10]=d,e[11]=f):f=e[11],f});function te(e){return e.playback.recording?.source===`live`}function S(e){return e.playback.streamSnapshot?.chatMessages??v}function C(e,t){return(0,g.jsx)(`span`,{className:b(e.colorCode),children:e.text},t)}function w(e){return(0,g.jsx)(`div`,{className:h.ChatMessage,hidden:!e.text,children:e.segments?e.segments.map(C):(0,g.jsxs)(`span`,{className:x(e),children:[e.sender?`${e.sender}: `:``,e.text]})},e.id)}var T=a(`gui/hud_new_compass`),E=a(`gui/hud_new_NSEW`);function D(e){let t=Math.abs(e)/1e3,n=e<0?Math.ceil(t):Math.floor(t),r=Math.floor(n/60),i=n%60;return`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function O(){let e=(0,p.c)(8),t=s(A),n=s(k);if(t==null)return null;let r=t*180/Math.PI,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,g.jsx)(`img`,{src:T,alt:``,className:m.CompassRing}),e[0]=i):i=e[0];let a=`rotate(${-r}deg)`,o;e[1]===a?o=e[2]:(o=(0,g.jsx)(`img`,{src:E,alt:``,className:m.CompassNSEW,style:{transform:a}}),e[1]=a,e[2]=o);let c;e[3]===n?c=e[4]:(c=n!=null&&(0,g.jsx)(`span`,{className:m.CompassClock,children:D(n)}),e[3]=n,e[4]=c);let l;return e[5]!==o||e[6]!==c?(l=(0,g.jsxs)(`div`,{className:m.Compass,children:[i,o,c]}),e[5]=o,e[6]=c,e[7]=l):l=e[7],l}function k(e){return e.playback.streamSnapshot?.matchClockMs}function A(e){return e.playback.streamSnapshot?.camera?.yaw}function j(){let e=(0,p.c)(2),t=s(M);if(t==null)return null;let n=`${Math.max(0,Math.min(100,t*100))}%`,r;return e[0]===n?r=e[1]:(r=(0,g.jsx)(`div`,{className:m.BarTrack,children:(0,g.jsx)(`div`,{className:m.BarFillHealth,style:{width:n}})}),e[0]=n,e[1]=r),r}function M(e){return e.playback.streamSnapshot?.status?.health}function N(){let e=(0,p.c)(2),t=s(P);if(t==null)return null;let n=`${Math.max(0,Math.min(100,t*100))}%`,r;return e[0]===n?r=e[1]:(r=(0,g.jsx)(`div`,{className:m.BarTrack,children:(0,g.jsx)(`div`,{className:m.BarFillEnergy,style:{width:n}})}),e[0]=n,e[1]=r),r}function P(e){return e.playback.streamSnapshot?.status?.energy}var F={weapon_energy:`gui/ret_blaster`,weapon_plasma:`gui/ret_plasma`,weapon_chaingun:`gui/ret_chaingun`,weapon_disc:`gui/ret_disc`,weapon_grenade_launcher:`gui/ret_grenade`,weapon_sniper:`gui/hud_ret_sniper`,weapon_elf:`gui/ret_elf`,weapon_mortar:`gui/ret_mortor`,weapon_missile:`gui/ret_missile`,weapon_targeting:`gui/hud_ret_targlaser`,weapon_shocklance:`gui/hud_ret_shocklance`};function I(e){return e?e.replace(/\.dts$/i,``).toLowerCase():``}function L(){let e=(0,p.c)(5),t=s(R);if(t===void 0)return null;let n=F[I(t)];if(n){let t;e[0]===n?t=e[1]:(t=a(n),e[0]=n,e[1]=t);let r;return e[2]===t?r=e[3]:(r=(0,g.jsx)(`div`,{className:m.Reticle,children:(0,g.jsx)(`img`,{src:t,alt:``,className:m.ReticleImage})}),e[2]=t,e[3]=r),r}let r;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,g.jsx)(`div`,{className:m.Reticle,children:(0,g.jsx)(`div`,{className:m.ReticleDot})}),e[4]=r):r=e[4],r}function R(e){let t=e.playback.streamSnapshot;if(!t||t.camera?.mode!==`first-person`)return;let n=t.controlPlayerGhostId;if(n)return t.entities.find(e=>e.id===n)?.imageSlots?.[0]?.shapeName}var z={0:{icon:`gui/hud_blaster`,label:`Blaster`},1:{icon:`gui/hud_plasma`,label:`Plasma`},2:{icon:`gui/hud_chaingun`,label:`Chaingun`},3:{icon:`gui/hud_disc`,label:`Spinfusor`},4:{icon:`gui/hud_grenlaunch`,label:`GL`},5:{icon:`gui/hud_sniper`,label:`Laser Rifle`},6:{icon:`gui/hud_elfgun`,label:`ELF Gun`},7:{icon:`gui/hud_new_mortar`,label:`Mortar`},8:{icon:`gui/hud_missiles`,label:`Missile`},9:{icon:`gui/hud_targetlaser`,label:`Targeting`},10:{icon:`gui/hud_shocklance`,label:`Shocklance`},11:{icon:`gui/hud_disc`,label:`Spinfusor`},12:{icon:`gui/hud_grenlaunch`,label:`GL`},13:{icon:`gui/hud_chaingun`,label:`Chaingun`},14:{icon:`gui/hud_targetlaser`,label:`Targeting`},15:{icon:`gui/hud_targetlaser`,label:`Targeting`},16:{icon:`gui/hud_shocklance`,label:`Shocklance`},17:{icon:`gui/hud_new_mortar`,label:`Mortar`}},B=new Map(Object.entries(z).map(([e,t])=>[Number(e),a(t.icon)])),V=new Set([9,14,15]),ne=a(`gui/hud_infinity`);function H(e){let t=(0,p.c)(12),{slot:n,isSelected:r}=e,i=z[n.index];if(!i)return null;let a=n.ammo<0,o;t[0]===n.index?o=t[1]:(o=B.get(n.index),t[0]=n.index,t[1]=o);let s;t[2]!==i.label||t[3]!==o?(s=(0,g.jsx)(`img`,{src:o,alt:i.label,className:m.PackInvIcon}),t[2]=i.label,t[3]=o,t[4]=s):s=t[4];let c;t[5]!==a||t[6]!==n.ammo?(c=a?(0,g.jsx)(`img`,{src:ne,alt:`\\u221E`,className:m.PackInvInfinity}):(0,g.jsx)(`span`,{className:m.PackInvCount,children:n.ammo}),t[5]=a,t[6]=n.ammo,t[7]=c):c=t[7];let l;return t[8]!==r||t[9]!==s||t[10]!==c?(l=(0,g.jsxs)(`div`,{className:m.PackInvItem,"data-active":r,children:[s,c]}),t[8]=r,t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function U(){let e=(0,p.c)(15),t=s(W);if(!t||!t.slots.length)return null;let n,r;if(e[0]!==t.slots){r=[],n=[];for(let e of t.slots)V.has(e.index)?n.push(e):r.push(e);e[0]=t.slots,e[1]=n,e[2]=r}else n=e[1],r=e[2];let i;e[3]!==r||e[4]!==t?(i=r.map(e=>(0,g.jsx)(H,{slot:e,isSelected:e.index===t.activeIndex},e.index)),e[3]=r,e[4]=t,e[5]=i):i=e[5];let a;e[6]===n.length?a=e[7]:(a=n.length>0&&(0,g.jsx)(`div`,{className:m.WeaponSeparator}),e[6]=n.length,e[7]=a);let o;e[8]!==n||e[9]!==t?(o=n.map(e=>(0,g.jsx)(H,{slot:e,isSelected:e.index===t.activeIndex},e.index)),e[8]=n,e[9]=t,e[10]=o):o=e[10];let c;return e[11]!==i||e[12]!==a||e[13]!==o?(c=(0,g.jsxs)(`div`,{className:m.WeaponHUD,children:[i,a,o]}),e[11]=i,e[12]=a,e[13]=o,e[14]=c):c=e[14],c}function W(e){return e.playback.streamSnapshot?.weaponsHud}function G(){let e=(0,p.c)(18),t=s(Y),n=s(J),r=s(K);if(!t?.length)return null;let i,a,c;if(e[0]!==r||e[1]!==n||e[2]!==t){let s;e[6]===n?s=e[7]:(s=(e,t)=>{if(n){if(e.teamId===n)return-1;if(t.teamId===n)return 1}return e.teamId-t.teamId},e[6]=n,e[7]=s);let l=[...t].sort(s);c=m.TeamScores,e[8]===r?i=e[9]:(i=r>0&&(0,g.jsx)(`tr`,{children:(0,g.jsxs)(`td`,{className:m.ObserverCount,colSpan:3,children:[r,` `,r===1?`observer`:`observers`]})}),e[8]=r,e[9]=i);let u;e[10]===n?u=e[11]:(u=e=>{let t=n!=null&&n>0&&e.teamId===n,r=e.name||(o[e.teamId]??`Team ${e.teamId}`);return(0,g.jsxs)(`tr`,{className:m.TeamRow,children:[(0,g.jsx)(`td`,{className:t?m.TeamNameFriendly:m.TeamNameEnemy,children:r}),(0,g.jsxs)(`td`,{className:m.TeamCount,children:[`(`,e.playerCount.toLocaleString(),`)`]}),(0,g.jsx)(`td`,{className:m.TeamScore,children:e.score.toLocaleString()})]},e.teamId)},e[10]=n,e[11]=u),a=l.map(u),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=a,e[5]=c}else i=e[3],a=e[4],c=e[5];let l;e[12]!==i||e[13]!==a?(l=(0,g.jsxs)(`tbody`,{children:[i,a]}),e[12]=i,e[13]=a,e[14]=l):l=e[14];let u;return e[15]!==c||e[16]!==l?(u=(0,g.jsx)(`table`,{className:c,children:l}),e[15]=c,e[16]=l,e[17]=u):u=e[17],u}function K(e){return e.playback.streamSnapshot?.playerRoster?.filter(q).length??0}function q(e){return e.teamId<=0}function J(e){return e.playback.streamSnapshot?.playerSensorGroup}function Y(e){return e.playback.streamSnapshot?.teamScores}var X={0:`gui/hud_new_packammo`,1:`gui/hud_new_packcloak`,2:`gui/hud_new_packenergy`,3:`gui/hud_new_packrepair`,4:`gui/hud_new_packsatchel`,5:`gui/hud_new_packshield`,6:`gui/hud_new_packinventory`,7:`gui/hud_new_packmotionsens`,8:`gui/hud_new_packradar`,9:`gui/hud_new_packturretout`,10:`gui/hud_new_packturretin`,11:`gui/hud_new_packsensjam`,12:`gui/hud_new_packturret`,13:`gui/hud_new_packturret`,14:`gui/hud_new_packturret`,15:`gui/hud_new_packturret`,16:`gui/hud_new_packturret`,17:`gui/hud_new_packturret`,18:`gui/hud_satchel_unarmed`,19:`gui/hud_new_packenergy`},Z={1:`gui/hud_new_packcloak_armed`,3:`gui/hud_new_packrepair_armed`,4:`gui/hud_satchel_armed`,5:`gui/hud_new_packshield_armed`,11:`gui/hud_new_packsensjam_armed`},re=new Map(Object.entries(X).map(([e,t])=>[Number(e),a(t)])),ie=new Map(Object.entries(Z).map(([e,t])=>[Number(e),a(t)])),Q={0:{icon:`gui/hud_handgren`,label:`Grenade`},1:{icon:`gui/hud_mine`,label:`Mine`},2:{icon:`gui/hud_beacon`,label:`Beacon`},3:{icon:`gui/hud_medpack`,label:`Repair Kit`}},ae=new Map(Object.entries(Q).map(([e,t])=>[Number(e),a(t.icon)]));function oe(){let e=(0,p.c)(25),t=s(ce),n=s(se),r=t&&t.packIndex>=0,i;if(r){let n;e[0]!==t.active||e[1]!==t.packIndex?(n=t.active?ie.get(t.packIndex):void 0,e[0]=t.active,e[1]=t.packIndex,e[2]=n):n=e[2];let r=n,a;e[3]!==r||e[4]!==t.packIndex?(a=r??re.get(t.packIndex),e[3]=r,e[4]=t.packIndex,e[5]=a):a=e[5],i=a}let a;if(e[6]!==n){if(a=new Map,n)for(let e of n.slots)a.set(e.slot,e.count);e[6]=n,e[7]=a}else a=e[7];let o,c,l,u;if(e[8]!==t||e[9]!==a||e[10]!==r||e[11]!==i){u=Symbol.for(`react.early_return_sentinel`);bb0:{let n=Object.keys(Q).map(Number).sort($);if(!r&&!a.size){u=null;break bb0}o=m.PackInventoryHUD,e[16]!==t||e[17]!==i?(c=i&&(0,g.jsxs)(`div`,{className:m.PackInvItem,"data-active":t.active??!1,children:[(0,g.jsx)(`img`,{src:i,alt:``,className:m.PackInvIcon}),(0,g.jsx)(`span`,{className:m.PackInvCount,children:t.text||`\xA0`})]}),e[16]=t,e[17]=i,e[18]=c):c=e[18];let s;e[19]===a?s=e[20]:(s=e=>{let t=Q[e],n=ae.get(e);return!t||!n?null:(0,g.jsxs)(`div`,{className:m.PackInvItem,children:[(0,g.jsx)(`img`,{src:n,alt:t.label,className:m.PackInvIcon}),(0,g.jsx)(`span`,{className:m.PackInvCount,children:a.get(e)??0})]},e)},e[19]=a,e[20]=s),l=n.map(s)}e[8]=t,e[9]=a,e[10]=r,e[11]=i,e[12]=o,e[13]=c,e[14]=l,e[15]=u}else o=e[12],c=e[13],l=e[14],u=e[15];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d;return e[21]!==o||e[22]!==c||e[23]!==l?(d=(0,g.jsxs)(`div`,{className:o,children:[c,l]}),e[21]=o,e[22]=c,e[23]=l,e[24]=d):d=e[24],d}function $(e,t){return e-t}function se(e){return e.playback.streamSnapshot?.inventoryHud}function ce(e){return e.playback.streamSnapshot?.backpackHud}function le(){let e=(0,p.c)(13),t=s(de),n=f(l,ue),r=t&&n!==`freeFly`,{showChat:a,showReticle:o}=i(),c;e[0]===a?c=e[1]:(c=a&&(0,g.jsx)(ee,{}),e[0]=a,e[1]=c);let u;e[2]===r?u=e[3]:(u=r&&(0,g.jsxs)(`div`,{className:m.Bars,children:[(0,g.jsx)(j,{}),(0,g.jsx)(N,{})]}),e[2]=r,e[3]=u);let d;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(O,{}),e[4]=d):d=e[4];let h;e[5]!==r||e[6]!==o?(h=r&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(U,{}),(0,g.jsx)(oe,{}),o&&(0,g.jsx)(L,{})]}),e[5]=r,e[6]=o,e[7]=h):h=e[7];let _;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,g.jsx)(G,{}),e[8]=_):_=e[8];let v;return e[9]!==c||e[10]!==u||e[11]!==h?(v=(0,g.jsxs)(`div`,{className:m.PlayerHUD,children:[c,u,d,h,_]}),e[9]=c,e[10]=u,e[11]=h,e[12]=v):v=e[12],v}function ue(e){return e.cameraMode}function de(e){return!!e.playback.streamSnapshot?.controlPlayerGhostId}export{le as PlayerHUD}; \ No newline at end of file +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatInput-CpChuNkg.js","assets/chunk-DECur_0Z.js","assets/index-BZ0wFa-D.js","assets/preload-helper-BPkniflS.js","assets/mission-yeigCtfF.js","assets/logger-B058WGzf.js","assets/PlayerModel-D6m6HpJF.js","assets/Html-CXAi5FD_.js","assets/extends-lXRikpl0.js","assets/react-three-fiber.esm-El6vNTZj.js","assets/jsx-runtime-BpGWiA-R.js","assets/three.module-DKAirPAO.js","assets/traditional-CCqNJZlI.js","assets/useQuery-6REtM5HO.js","assets/SettingsProvider-BdqQ2Cm4.js","assets/engineStore-B1KAgiiF.js","assets/manifest-BIDT_vSa.js","assets/stringUtils-1MyeFdQ_.js","assets/AudioEmitter-3VHhCc7Y.js","assets/DebugBounds-CZKrvsAw.js","assets/loaders-5n1D4iOD.js","assets/cameraTourStore-CtH3IrnD.js","assets/AudioEmitter-DAQByNim.css","assets/DebugSuspense-ChOWTvws.js","assets/playbackUtils-DuS6opSR.js","assets/textureUtils-Bk_jPZib.js","assets/useAnisotropy-D9othEmk.js","assets/streamPlaybackStore-D5ldcfU5.js","assets/PlayerModel-Bi7C0zGW.css","assets/streamHelpers-CYLk-lCT.js","assets/iconBase-DZ3jidsI.js","assets/JoystickContext-B2sO9eYx.js","assets/scene-C20n9V3Y.js","assets/index-CiZqoesx.css","assets/ChatInput-bC9wt42K.css"])))=>i.map(i=>d[i]); +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i}from"./SettingsProvider-BdqQ2Cm4.js";import{p as a}from"./loaders-5n1D4iOD.js";import{n as o}from"./stringUtils-1MyeFdQ_.js";import{i as s}from"./engineStore-B1KAgiiF.js";import{t as c}from"./preload-helper-BPkniflS.js";import{n as l}from"./streamPlaybackStore-D5ldcfU5.js";var u=e(n(),1),d=e=>e;function f(e,t=d){let n=u.useSyncExternalStore(e.subscribe,u.useCallback(()=>t(e.getState()),[e,t]),u.useCallback(()=>t(e.getInitialState()),[e,t]));return u.useDebugValue(n),n}var p=t(),m={PlayerHUD:`_PlayerHUD_13ssv_1`,Compass:`_Compass_13ssv_11`,CompassRing:`_CompassRing_13ssv_20`,CompassNSEW:`_CompassNSEW_13ssv_29`,CompassClock:`_CompassClock_13ssv_38`,Bars:`_Bars_13ssv_51`,BarTrack:`_BarTrack_13ssv_63`,BarFillHealth:`_BarFillHealth_13ssv_71`,BarFillEnergy:`_BarFillEnergy_13ssv_77`,WeaponHUD:`_WeaponHUD_13ssv_85`,PackInvItem:`_PackInvItem_13ssv_95`,WeaponSeparator:`_WeaponSeparator_13ssv_105`,TeamScores:`_TeamScores_13ssv_111`,ObserverCount:`_ObserverCount_13ssv_126`,TeamRow:`_TeamRow_13ssv_136`,TeamName:`_TeamName_13ssv_145`,TeamNameFriendly:`_TeamNameFriendly_13ssv_152 _TeamName_13ssv_145`,TeamNameEnemy:`_TeamNameEnemy_13ssv_157 _TeamName_13ssv_145`,TeamScore:`_TeamScore_13ssv_111`,TeamCount:`_TeamCount_13ssv_170`,PackInventoryHUD:`_PackInventoryHUD_13ssv_179`,PackInvIcon:`_PackInvIcon_13ssv_210`,PackInvCount:`_PackInvCount_13ssv_215`,PackInvInfinity:`_PackInvInfinity_13ssv_222`,Reticle:`_Reticle_13ssv_230`,ReticleImage:`_ReticleImage_13ssv_237`,ReticleDot:`_ReticleDot_13ssv_242`},h={ChatContainer:`_ChatContainer_qc3qt_1`,ChatWindow:`_ChatWindow_qc3qt_14`,ChatMessage:`_ChatMessage_qc3qt_39`,ChatColor0:`_ChatColor0_qc3qt_46`,ChatColor1:`_ChatColor1_qc3qt_49`,ChatColor2:`_ChatColor2_qc3qt_52`,ChatColor3:`_ChatColor3_qc3qt_55`,ChatColor4:`_ChatColor4_qc3qt_58`,ChatColor5:`_ChatColor5_qc3qt_61`,ChatColor6:`_ChatColor6_qc3qt_64`,ChatColor7:`_ChatColor7_qc3qt_67`,ChatColor8:`_ChatColor8_qc3qt_70`,ChatColor9:`_ChatColor9_qc3qt_73`},g=r(),_=(0,u.lazy)(()=>c(()=>import(`./ChatInput-CpChuNkg.js`).then(e=>({default:e.ChatInput})),__vite__mapDeps([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,32,33,34]))),v=[],y={0:h.ChatColor0,1:h.ChatColor1,2:h.ChatColor2,3:h.ChatColor3,4:h.ChatColor4,5:h.ChatColor5,6:h.ChatColor6,7:h.ChatColor7,8:h.ChatColor8,9:h.ChatColor9};function b(e){return y[e]??y[0]}function x(e){return e.colorCode!=null&&y[e.colorCode]?y[e.colorCode]:y[0]}var ee=(0,u.memo)(function(){let e=(0,p.c)(12),t=s(te),n=s(S),r=(0,u.useRef)(null),i=n[n.length-1]?.id,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},e[0]=a):a=e[0];let o;e[1]===i?o=e[2]:(o=[i],e[1]=i,e[2]=o),(0,u.useEffect)(a,o);let c;e[3]===n?c=e[4]:(c=n.map(w),e[3]=n,e[4]=c);let l;e[5]===c?l=e[6]:(l=(0,g.jsx)(`div`,{ref:r,className:h.ChatWindow,children:c}),e[5]=c,e[6]=l);let d;e[7]===t?d=e[8]:(d=t&&(0,g.jsx)(u.Suspense,{children:(0,g.jsx)(_,{})}),e[7]=t,e[8]=d);let f;return e[9]!==l||e[10]!==d?(f=(0,g.jsxs)(`div`,{className:h.ChatContainer,children:[l,d]}),e[9]=l,e[10]=d,e[11]=f):f=e[11],f});function te(e){return e.playback.recording?.source===`live`}function S(e){return e.playback.streamSnapshot?.chatMessages??v}function C(e,t){return(0,g.jsx)(`span`,{className:b(e.colorCode),children:e.text},t)}function w(e){return(0,g.jsx)(`div`,{className:h.ChatMessage,hidden:!e.text,children:e.segments?e.segments.map(C):(0,g.jsxs)(`span`,{className:x(e),children:[e.sender?`${e.sender}: `:``,e.text]})},e.id)}var T=a(`gui/hud_new_compass`),E=a(`gui/hud_new_NSEW`);function D(e){let t=Math.abs(e)/1e3,n=e<0?Math.ceil(t):Math.floor(t),r=Math.floor(n/60),i=n%60;return`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function O(){let e=(0,p.c)(8),t=s(A),n=s(k);if(t==null)return null;let r=t*180/Math.PI,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,g.jsx)(`img`,{src:T,alt:``,className:m.CompassRing}),e[0]=i):i=e[0];let a=`rotate(${-r}deg)`,o;e[1]===a?o=e[2]:(o=(0,g.jsx)(`img`,{src:E,alt:``,className:m.CompassNSEW,style:{transform:a}}),e[1]=a,e[2]=o);let c;e[3]===n?c=e[4]:(c=n!=null&&(0,g.jsx)(`span`,{className:m.CompassClock,children:D(n)}),e[3]=n,e[4]=c);let l;return e[5]!==o||e[6]!==c?(l=(0,g.jsxs)(`div`,{className:m.Compass,children:[i,o,c]}),e[5]=o,e[6]=c,e[7]=l):l=e[7],l}function k(e){return e.playback.streamSnapshot?.matchClockMs}function A(e){return e.playback.streamSnapshot?.camera?.yaw}function j(){let e=(0,p.c)(2),t=s(M);if(t==null)return null;let n=`${Math.max(0,Math.min(100,t*100))}%`,r;return e[0]===n?r=e[1]:(r=(0,g.jsx)(`div`,{className:m.BarTrack,children:(0,g.jsx)(`div`,{className:m.BarFillHealth,style:{width:n}})}),e[0]=n,e[1]=r),r}function M(e){return e.playback.streamSnapshot?.status?.health}function N(){let e=(0,p.c)(2),t=s(P);if(t==null)return null;let n=`${Math.max(0,Math.min(100,t*100))}%`,r;return e[0]===n?r=e[1]:(r=(0,g.jsx)(`div`,{className:m.BarTrack,children:(0,g.jsx)(`div`,{className:m.BarFillEnergy,style:{width:n}})}),e[0]=n,e[1]=r),r}function P(e){return e.playback.streamSnapshot?.status?.energy}var F={weapon_energy:`gui/ret_blaster`,weapon_plasma:`gui/ret_plasma`,weapon_chaingun:`gui/ret_chaingun`,weapon_disc:`gui/ret_disc`,weapon_grenade_launcher:`gui/ret_grenade`,weapon_sniper:`gui/hud_ret_sniper`,weapon_elf:`gui/ret_elf`,weapon_mortar:`gui/ret_mortor`,weapon_missile:`gui/ret_missile`,weapon_targeting:`gui/hud_ret_targlaser`,weapon_shocklance:`gui/hud_ret_shocklance`};function I(e){return e?e.replace(/\.dts$/i,``).toLowerCase():``}function L(){let e=(0,p.c)(5),t=s(R);if(t===void 0)return null;let n=F[I(t)];if(n){let t;e[0]===n?t=e[1]:(t=a(n),e[0]=n,e[1]=t);let r;return e[2]===t?r=e[3]:(r=(0,g.jsx)(`div`,{className:m.Reticle,children:(0,g.jsx)(`img`,{src:t,alt:``,className:m.ReticleImage})}),e[2]=t,e[3]=r),r}let r;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,g.jsx)(`div`,{className:m.Reticle,children:(0,g.jsx)(`div`,{className:m.ReticleDot})}),e[4]=r):r=e[4],r}function R(e){let t=e.playback.streamSnapshot;if(!t||t.camera?.mode!==`first-person`)return;let n=t.controlPlayerGhostId;if(n)return t.entities.find(e=>e.id===n)?.imageSlots?.[0]?.shapeName}var z={0:{icon:`gui/hud_blaster`,label:`Blaster`},1:{icon:`gui/hud_plasma`,label:`Plasma`},2:{icon:`gui/hud_chaingun`,label:`Chaingun`},3:{icon:`gui/hud_disc`,label:`Spinfusor`},4:{icon:`gui/hud_grenlaunch`,label:`GL`},5:{icon:`gui/hud_sniper`,label:`Laser Rifle`},6:{icon:`gui/hud_elfgun`,label:`ELF Gun`},7:{icon:`gui/hud_new_mortar`,label:`Mortar`},8:{icon:`gui/hud_missiles`,label:`Missile`},9:{icon:`gui/hud_targetlaser`,label:`Targeting`},10:{icon:`gui/hud_shocklance`,label:`Shocklance`},11:{icon:`gui/hud_disc`,label:`Spinfusor`},12:{icon:`gui/hud_grenlaunch`,label:`GL`},13:{icon:`gui/hud_chaingun`,label:`Chaingun`},14:{icon:`gui/hud_targetlaser`,label:`Targeting`},15:{icon:`gui/hud_targetlaser`,label:`Targeting`},16:{icon:`gui/hud_shocklance`,label:`Shocklance`},17:{icon:`gui/hud_new_mortar`,label:`Mortar`}},B=new Map(Object.entries(z).map(([e,t])=>[Number(e),a(t.icon)])),V=new Set([9,14,15]),ne=a(`gui/hud_infinity`);function H(e){let t=(0,p.c)(12),{slot:n,isSelected:r}=e,i=z[n.index];if(!i)return null;let a=n.ammo<0,o;t[0]===n.index?o=t[1]:(o=B.get(n.index),t[0]=n.index,t[1]=o);let s;t[2]!==i.label||t[3]!==o?(s=(0,g.jsx)(`img`,{src:o,alt:i.label,className:m.PackInvIcon}),t[2]=i.label,t[3]=o,t[4]=s):s=t[4];let c;t[5]!==a||t[6]!==n.ammo?(c=a?(0,g.jsx)(`img`,{src:ne,alt:`\\u221E`,className:m.PackInvInfinity}):(0,g.jsx)(`span`,{className:m.PackInvCount,children:n.ammo}),t[5]=a,t[6]=n.ammo,t[7]=c):c=t[7];let l;return t[8]!==r||t[9]!==s||t[10]!==c?(l=(0,g.jsxs)(`div`,{className:m.PackInvItem,"data-active":r,children:[s,c]}),t[8]=r,t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function U(){let e=(0,p.c)(15),t=s(W);if(!t||!t.slots.length)return null;let n,r;if(e[0]!==t.slots){r=[],n=[];for(let e of t.slots)V.has(e.index)?n.push(e):r.push(e);e[0]=t.slots,e[1]=n,e[2]=r}else n=e[1],r=e[2];let i;e[3]!==r||e[4]!==t?(i=r.map(e=>(0,g.jsx)(H,{slot:e,isSelected:e.index===t.activeIndex},e.index)),e[3]=r,e[4]=t,e[5]=i):i=e[5];let a;e[6]===n.length?a=e[7]:(a=n.length>0&&(0,g.jsx)(`div`,{className:m.WeaponSeparator}),e[6]=n.length,e[7]=a);let o;e[8]!==n||e[9]!==t?(o=n.map(e=>(0,g.jsx)(H,{slot:e,isSelected:e.index===t.activeIndex},e.index)),e[8]=n,e[9]=t,e[10]=o):o=e[10];let c;return e[11]!==i||e[12]!==a||e[13]!==o?(c=(0,g.jsxs)(`div`,{className:m.WeaponHUD,children:[i,a,o]}),e[11]=i,e[12]=a,e[13]=o,e[14]=c):c=e[14],c}function W(e){return e.playback.streamSnapshot?.weaponsHud}function G(){let e=(0,p.c)(18),t=s(Y),n=s(J),r=s(K);if(!t?.length)return null;let i,a,c;if(e[0]!==r||e[1]!==n||e[2]!==t){let s;e[6]===n?s=e[7]:(s=(e,t)=>{if(n){if(e.teamId===n)return-1;if(t.teamId===n)return 1}return e.teamId-t.teamId},e[6]=n,e[7]=s);let l=[...t].sort(s);c=m.TeamScores,e[8]===r?i=e[9]:(i=r>0&&(0,g.jsx)(`tr`,{children:(0,g.jsxs)(`td`,{className:m.ObserverCount,colSpan:3,children:[r,` `,r===1?`observer`:`observers`]})}),e[8]=r,e[9]=i);let u;e[10]===n?u=e[11]:(u=e=>{let t=n!=null&&n>0&&e.teamId===n,r=e.name||(o[e.teamId]??`Team ${e.teamId}`);return(0,g.jsxs)(`tr`,{className:m.TeamRow,children:[(0,g.jsx)(`td`,{className:t?m.TeamNameFriendly:m.TeamNameEnemy,children:r}),(0,g.jsxs)(`td`,{className:m.TeamCount,children:[`(`,e.playerCount.toLocaleString(),`)`]}),(0,g.jsx)(`td`,{className:m.TeamScore,children:e.score.toLocaleString()})]},e.teamId)},e[10]=n,e[11]=u),a=l.map(u),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=a,e[5]=c}else i=e[3],a=e[4],c=e[5];let l;e[12]!==i||e[13]!==a?(l=(0,g.jsxs)(`tbody`,{children:[i,a]}),e[12]=i,e[13]=a,e[14]=l):l=e[14];let u;return e[15]!==c||e[16]!==l?(u=(0,g.jsx)(`table`,{className:c,children:l}),e[15]=c,e[16]=l,e[17]=u):u=e[17],u}function K(e){return e.playback.streamSnapshot?.playerRoster?.filter(q).length??0}function q(e){return e.teamId<=0}function J(e){return e.playback.streamSnapshot?.playerSensorGroup}function Y(e){return e.playback.streamSnapshot?.teamScores}var X={0:`gui/hud_new_packammo`,1:`gui/hud_new_packcloak`,2:`gui/hud_new_packenergy`,3:`gui/hud_new_packrepair`,4:`gui/hud_new_packsatchel`,5:`gui/hud_new_packshield`,6:`gui/hud_new_packinventory`,7:`gui/hud_new_packmotionsens`,8:`gui/hud_new_packradar`,9:`gui/hud_new_packturretout`,10:`gui/hud_new_packturretin`,11:`gui/hud_new_packsensjam`,12:`gui/hud_new_packturret`,13:`gui/hud_new_packturret`,14:`gui/hud_new_packturret`,15:`gui/hud_new_packturret`,16:`gui/hud_new_packturret`,17:`gui/hud_new_packturret`,18:`gui/hud_satchel_unarmed`,19:`gui/hud_new_packenergy`},Z={1:`gui/hud_new_packcloak_armed`,3:`gui/hud_new_packrepair_armed`,4:`gui/hud_satchel_armed`,5:`gui/hud_new_packshield_armed`,11:`gui/hud_new_packsensjam_armed`},re=new Map(Object.entries(X).map(([e,t])=>[Number(e),a(t)])),ie=new Map(Object.entries(Z).map(([e,t])=>[Number(e),a(t)])),Q={0:{icon:`gui/hud_handgren`,label:`Grenade`},1:{icon:`gui/hud_mine`,label:`Mine`},2:{icon:`gui/hud_beacon`,label:`Beacon`},3:{icon:`gui/hud_medpack`,label:`Repair Kit`}},ae=new Map(Object.entries(Q).map(([e,t])=>[Number(e),a(t.icon)]));function oe(){let e=(0,p.c)(25),t=s(ce),n=s(se),r=t&&t.packIndex>=0,i;if(r){let n;e[0]!==t.active||e[1]!==t.packIndex?(n=t.active?ie.get(t.packIndex):void 0,e[0]=t.active,e[1]=t.packIndex,e[2]=n):n=e[2];let r=n,a;e[3]!==r||e[4]!==t.packIndex?(a=r??re.get(t.packIndex),e[3]=r,e[4]=t.packIndex,e[5]=a):a=e[5],i=a}let a;if(e[6]!==n){if(a=new Map,n)for(let e of n.slots)a.set(e.slot,e.count);e[6]=n,e[7]=a}else a=e[7];let o,c,l,u;if(e[8]!==t||e[9]!==a||e[10]!==r||e[11]!==i){u=Symbol.for(`react.early_return_sentinel`);bb0:{let n=Object.keys(Q).map(Number).sort($);if(!r&&!a.size){u=null;break bb0}o=m.PackInventoryHUD,e[16]!==t||e[17]!==i?(c=i&&(0,g.jsxs)(`div`,{className:m.PackInvItem,"data-active":t.active??!1,children:[(0,g.jsx)(`img`,{src:i,alt:``,className:m.PackInvIcon}),(0,g.jsx)(`span`,{className:m.PackInvCount,children:t.text||`\xA0`})]}),e[16]=t,e[17]=i,e[18]=c):c=e[18];let s;e[19]===a?s=e[20]:(s=e=>{let t=Q[e],n=ae.get(e);return!t||!n?null:(0,g.jsxs)(`div`,{className:m.PackInvItem,children:[(0,g.jsx)(`img`,{src:n,alt:t.label,className:m.PackInvIcon}),(0,g.jsx)(`span`,{className:m.PackInvCount,children:a.get(e)??0})]},e)},e[19]=a,e[20]=s),l=n.map(s)}e[8]=t,e[9]=a,e[10]=r,e[11]=i,e[12]=o,e[13]=c,e[14]=l,e[15]=u}else o=e[12],c=e[13],l=e[14],u=e[15];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d;return e[21]!==o||e[22]!==c||e[23]!==l?(d=(0,g.jsxs)(`div`,{className:o,children:[c,l]}),e[21]=o,e[22]=c,e[23]=l,e[24]=d):d=e[24],d}function $(e,t){return e-t}function se(e){return e.playback.streamSnapshot?.inventoryHud}function ce(e){return e.playback.streamSnapshot?.backpackHud}function le(){let e=(0,p.c)(13),t=s(de),n=f(l,ue),r=t&&n!==`freeFly`,{showChat:a,showReticle:o}=i(),c;e[0]===a?c=e[1]:(c=a&&(0,g.jsx)(ee,{}),e[0]=a,e[1]=c);let u;e[2]===r?u=e[3]:(u=r&&(0,g.jsxs)(`div`,{className:m.Bars,children:[(0,g.jsx)(j,{}),(0,g.jsx)(N,{})]}),e[2]=r,e[3]=u);let d;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(O,{}),e[4]=d):d=e[4];let h;e[5]!==r||e[6]!==o?(h=r&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(U,{}),(0,g.jsx)(oe,{}),o&&(0,g.jsx)(L,{})]}),e[5]=r,e[6]=o,e[7]=h):h=e[7];let _;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,g.jsx)(G,{}),e[8]=_):_=e[8];let v;return e[9]!==c||e[10]!==u||e[11]!==h?(v=(0,g.jsxs)(`div`,{className:m.PlayerHUD,children:[c,u,d,h,_]}),e[9]=c,e[10]=u,e[11]=h,e[12]=v):v=e[12],v}function ue(e){return e.cameraMode}function de(e){return!!e.playback.streamSnapshot?.controlPlayerGhostId}export{le as PlayerHUD}; \ No newline at end of file diff --git a/docs/assets/PlayerModel-Kcb6K1_s.js b/docs/assets/PlayerModel-8dF8wZN2.js similarity index 61% rename from docs/assets/PlayerModel-Kcb6K1_s.js rename to docs/assets/PlayerModel-8dF8wZN2.js index 80e30919..70ce6d22 100644 --- a/docs/assets/PlayerModel-Kcb6K1_s.js +++ b/docs/assets/PlayerModel-8dF8wZN2.js @@ -1 +1 @@ -import{i as e,n as t,r as n,t as r}from"./PlayerModel-D8NLwrT8.js";export{r as PlayerModel,t as fetchSkinManifest,n as playerEyePositions,e as skinManifestQueryKey}; \ No newline at end of file +import{i as e,n as t,r as n,t as r}from"./PlayerModel-D6m6HpJF.js";export{r as PlayerModel,t as fetchSkinManifest,n as playerEyePositions,e as skinManifestQueryKey}; \ No newline at end of file diff --git a/docs/assets/PlayerModel-D8NLwrT8.js b/docs/assets/PlayerModel-D6m6HpJF.js similarity index 86% rename from docs/assets/PlayerModel-D8NLwrT8.js rename to docs/assets/PlayerModel-D6m6HpJF.js index 0f7c98fa..ce420411 100644 --- a/docs/assets/PlayerModel-D8NLwrT8.js +++ b/docs/assets/PlayerModel-D6m6HpJF.js @@ -1,2 +1,2 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,i as a,o}from"./react-three-fiber.esm-El6vNTZj.js";import{t as s}from"./Html-CXAi5FD_.js";import{a as c,i as l,s as u}from"./SettingsProvider-BdqQ2Cm4.js";import{t as d}from"./useQuery-6REtM5HO.js";import{$ as f,B as p,Bt as m,Ct as h,F as g,G as _,Gt as v,I as y,It as b,J as x,K as S,L as C,M as w,Mt as T,Nt as E,O as D,Ot as O,P as k,Pt as ee,Q as A,R as j,St as M,T as N,U as P,Ut as F,V as I,W as L,Wt as R,Y as z,Z as te,a as B,at as V,b as H,bt as U,ct as W,d as G,dt as K,et as ne,f as re,ft as ie,gt as ae,h as oe,ht as se,i as ce,it as le,lt as ue,m as de,mt as fe,nt as pe,o as me,pt as he,q as ge,rt as _e,s as ve,st as q,tt as ye,ut as be,v as xe,vt as Se,wt as Ce,xt as we,yt as Te,z as Ee,zt as De}from"./three.module-DKAirPAO.js";import{_ as Oe,a as ke,c as Ae,g as je,h as Me,i as Ne,l as Pe,s as Fe,t as J,u as Ie,v as Le,y as Re}from"./playbackUtils-DjmjN4tv.js";import{t as ze}from"./textureUtils-Bk_jPZib.js";import{d as Be,p as Ve,r as He}from"./loaders-B4T775qz.js";import{t as Ue}from"./logger-B058WGzf.js";import{a as We,i as Ge,n as Ke,r as qe,s as Je}from"./engineStore-B1KAgiiF.js";import{t as Ye}from"./useAnisotropy-D9othEmk.js";import{a as Xe,c as Ze,d as Qe,f as $e,i as et,l as tt,o as nt,p as rt,r as it}from"./AudioEmitter-CJMuEzA2.js";import{r as at}from"./cameraTourStore-CtH3IrnD.js";import{t as ot}from"./DebugBounds-CZKrvsAw.js";import{t as st}from"./DebugSuspense-ChOWTvws.js";import{n as ct}from"./streamPlaybackStore-D5ldcfU5.js";function lt(e){let t=new Map,n=new Map,r=e.clone();return ut(e,r,function(e,r){t.set(r,e),n.set(e,r)}),r.traverse(function(e){if(!e.isSkinnedMesh)return;let r=e,i=t.get(e),a=i.skeleton.bones;r.skeleton=i.skeleton.clone(),r.bindMatrix.copy(i.bindMatrix),r.skeleton.bones=a.map(function(e){return n.get(e)}),r.bind(r.skeleton,r.bindMatrix)}),r}function ut(e,t,n){n(e,t);for(let r=0;r2||s>ft*ft)return r?{animation:`jet`,timeScale:1}:{animation:`root`,timeScale:1};let c=pt(t),l=Math.cos(c),u=Math.sin(c),d=i*l+a*u,f=-i*u+a*l,p=f,m=-f,h=-d,g=Math.max(p,m,h,d);return g0&&(this.delayTime=e[0].timeoutValue??0)}get stateIndex(){return this.currentStateIndex}reset(){this.currentStateIndex=0,this.delayTime=this.states.length>0?this.states[0].timeoutValue??0:0,this.lastFireCount=-1}tick(e,t){if(this.states.length===0)return{sequenceName:null,isFiring:!1,spinTimeScale:0,reverse:!1,scaleAnimation:!1,timeoutValue:0,transitioned:!1,soundDataBlockIds:[],stateIndex:-1};let n=this.lastFireCount>=0&&t.fireCount!==this.lastFireCount;this.lastFireCount=t.fireCount;let r=[];if(n){let e=this.states.findIndex(e=>e.fire);if(e>=0&&e!==this.currentStateIndex){this.currentStateIndex=e,this.delayTime=this.states[e].timeoutValue??0;let t=this.states[e].soundDataBlockId;t>=0&&r.push(t)}}this.delayTime-=e;let i=n,a=this.evaluateTickTransitions(t),o=0;for(;a>=0&&o=0&&r.push(c),this.states[a].spin){case _t:this.spinTimeScale=0;break;case bt:this.spinTimeScale=1;break;case vt:e===yt&&s>0&&(this.delayTime*=1-n/s);break;case yt:e===vt&&s>0&&(this.delayTime*=1-n/s);break}a=this.evaluateEntryTransitions(t)}let s=this.states[this.currentStateIndex],c=s.timeoutValue??0;switch(s.spin){case _t:this.spinTimeScale=0;break;case vt:this.spinTimeScale=c>0?Math.max(0,1-this.delayTime/c):1;break;case bt:this.spinTimeScale=1;break;case yt:this.spinTimeScale=c>0?Math.max(0,this.delayTime/c):0;break}return{sequenceName:this.resolveSequenceName(s),isFiring:s.fire,spinTimeScale:this.spinTimeScale,reverse:!s.direction,scaleAnimation:s.scaleAnimation,timeoutValue:s.timeoutValue??0,transitioned:i,soundDataBlockIds:r,stateIndex:this.currentStateIndex}}evaluateTickTransitions(e){let t=this.states[this.currentStateIndex],n=this.delayTime<=0;if(!(n||!t.waitForTimeout))return-1;let r=this.evaluateConditions(t,e);if(r!==-1)return r;if(n){let e=t.transitionOnTimeout;if(e!==ht)return e}return-1}evaluateEntryTransitions(e){let t=this.states[this.currentStateIndex];return this.evaluateConditions(t,e)}evaluateConditions(e,t){let n=t.loaded?e.transitionOnLoaded:e.transitionOnNotLoaded;if(n!==ht)return n;let r=t.ammo?e.transitionOnAmmo:e.transitionOnNoAmmo;if(r!==ht)return r;let i=t.target?e.transitionOnTarget:e.transitionOnNoTarget;if(i!==ht)return i;let a=t.wet?e.transitionOnWet:e.transitionOnNotWet;if(a!==ht)return a;let o=t.triggerDown?e.transitionOnTriggerDown:e.transitionOnTriggerUp;return o===ht?-1:o}resolveSequenceName(e){return e.sequence==null||e.sequence<0?null:this.seqIndexToName[e.sequence]??null}},Y=e(n(),1),St=(0,Y.createContext)(null),Ct={didCatch:!1,error:null},wt=class extends Y.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Ct}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(...e){let{error:t}=this.state;t!==null&&(this.props.onReset?.({args:e,reason:`imperative-api`}),this.setState(Ct))}componentDidCatch(e,t){this.props.onError?.(e,t)}componentDidUpdate(e,t){let{didCatch:n}=this.state,{resetKeys:r}=this.props;n&&t.error!==null&&Tt(e.resetKeys,r)&&(this.props.onReset?.({next:r,prev:e.resetKeys,reason:`keys`}),this.setState(Ct))}render(){let{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:i,error:a}=this.state,o=e;if(i){let e={error:a,resetErrorBoundary:this.resetErrorBoundary};if(typeof t==`function`)o=t(e);else if(n)o=(0,Y.createElement)(n,e);else if(r!==void 0)o=r;else throw a}return(0,Y.createElement)(St.Provider,{value:{didCatch:i,error:a,resetErrorBoundary:this.resetErrorBoundary}},o)}};function Tt(e=[],t=[]){return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}var Et=parseInt(`182`.replace(/\D+/g,``));function Dt(e,t){if(t===0)return console.warn(`THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.`),e;if(t===2||t===1){let n=e.getIndex();if(n===null){let t=[],r=e.getAttribute(`position`);if(r!==void 0){for(let e=0;e=2.0 are supported.`));return}let s=new On(i,{path:t||this.resourcePath||``,crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});s.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&o[t]===void 0&&console.warn(`THREE.GLTFLoader: Unknown extension "`+t+`".`)}}s.setExtensions(a),s.setPlugins(o),s.parse(n,r)}parseAsync(e,t){let n=this;return new Promise(function(r,i){n.parse(e,t,r,i)})}};function Pt(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var X={KHR_BINARY_GLTF:`KHR_binary_glTF`,KHR_DRACO_MESH_COMPRESSION:`KHR_draco_mesh_compression`,KHR_LIGHTS_PUNCTUAL:`KHR_lights_punctual`,KHR_MATERIALS_CLEARCOAT:`KHR_materials_clearcoat`,KHR_MATERIALS_DISPERSION:`KHR_materials_dispersion`,KHR_MATERIALS_IOR:`KHR_materials_ior`,KHR_MATERIALS_SHEEN:`KHR_materials_sheen`,KHR_MATERIALS_SPECULAR:`KHR_materials_specular`,KHR_MATERIALS_TRANSMISSION:`KHR_materials_transmission`,KHR_MATERIALS_IRIDESCENCE:`KHR_materials_iridescence`,KHR_MATERIALS_ANISOTROPY:`KHR_materials_anisotropy`,KHR_MATERIALS_UNLIT:`KHR_materials_unlit`,KHR_MATERIALS_VOLUME:`KHR_materials_volume`,KHR_TEXTURE_BASISU:`KHR_texture_basisu`,KHR_TEXTURE_TRANSFORM:`KHR_texture_transform`,KHR_MESH_QUANTIZATION:`KHR_mesh_quantization`,KHR_MATERIALS_EMISSIVE_STRENGTH:`KHR_materials_emissive_strength`,EXT_MATERIALS_BUMP:`EXT_materials_bump`,EXT_TEXTURE_WEBP:`EXT_texture_webp`,EXT_TEXTURE_AVIF:`EXT_texture_avif`,EXT_MESHOPT_COMPRESSION:`EXT_meshopt_compression`,EXT_MESH_GPU_INSTANCING:`EXT_mesh_gpu_instancing`},Ft=class{constructor(e){this.parser=e,this.name=X.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let n=0,r=t.length;n=0)throw Error(`THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures`);return null}return t.loadTextureImage(e,i.source,a)}},Yt=class{constructor(e){this.parser=e,this.name=X.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: WebP required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},Xt=class{constructor(e){this.parser=e,this.name=X.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: AVIF required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},Zt=class{constructor(e){this.name=X.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){let e=n.extensions[this.name],r=this.parser.getDependency(`buffer`,e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw Error(`THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files`);return null}return r.then(function(t){let n=e.byteOffset||0,r=e.byteLength||0,a=e.count,o=e.byteStride,s=new Uint8Array(t,n,r);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(a,o,s,e.mode,e.filter).then(function(e){return e.buffer}):i.ready.then(function(){let t=new ArrayBuffer(a*o);return i.decodeGltfBuffer(new Uint8Array(t),a,o,s,e.mode,e.filter),t})})}else return null}},Qt=class{constructor(e){this.name=X.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||n.mesh===void 0)return null;let r=t.meshes[n.mesh];for(let e of r.primitives)if(e.mode!==Z.TRIANGLES&&e.mode!==Z.TRIANGLE_STRIP&&e.mode!==Z.TRIANGLE_FAN&&e.mode!==void 0)return null;let i=n.extensions[this.name].attributes,a=[],o={};for(let e in i)a.push(this.parser.getDependency(`accessor`,i[e]).then(t=>(o[e]=t,o[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{let t=e.pop(),n=t.isGroup?t.children:[t],r=e[0].count,i=[];for(let e of n){let t=new _e,n=new R,a=new h,s=new R(1,1,1),c=new y(e.geometry,e.material,r);for(let e=0;e=152?{TEXCOORD_0:`uv`,TEXCOORD_1:`uv1`,TEXCOORD_2:`uv2`,TEXCOORD_3:`uv3`}:{TEXCOORD_0:`uv`,TEXCOORD_1:`uv2`},COLOR_0:`color`,WEIGHTS_0:`skinWeight`,JOINTS_0:`skinIndex`},hn={scale:`scale`,translation:`position`,rotation:`quaternion`,weights:`morphTargetInfluences`},gn={CUBICSPLINE:void 0,LINEAR:I,STEP:p},_n={OPAQUE:`OPAQUE`,MASK:`MASK`,BLEND:`BLEND`};function vn(e){return e.DefaultMaterial===void 0&&(e.DefaultMaterial=new W({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function yn(e,t,n){for(let r in n.extensions)e[r]===void 0&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=n.extensions[r])}function bn(e,t){t.extras!==void 0&&(typeof t.extras==`object`?Object.assign(e.userData,t.extras):console.warn(`THREE.GLTFLoader: Ignoring primitive type .extras, `+t.extras))}function xn(e,t,n){let r=!1,i=!1,a=!1;for(let e=0,n=t.length;e0||e.search(/^data\:image\/jpeg/)===0?`image/jpeg`:e.search(/\.webp($|\?)/i)>0||e.search(/^data\:image\/webp/)===0?`image/webp`:`image/png`}var Dn=new _e,On=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new Pt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,r=!1,i=-1;typeof navigator<`u`&&navigator.userAgent!==void 0&&(n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,r=navigator.userAgent.indexOf(`Firefox`)>-1,i=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>`u`||n||r&&i<98?this.textureLoader=new m(this.options.manager):this.textureLoader=new k(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new D(this.options.manager),this.fileLoader.setResponseType(`arraybuffer`),this.options.crossOrigin===`use-credentials`&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let n=this,r=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies(`scene`),n.getDependencies(`animation`),n.getDependencies(`camera`)])}).then(function(t){let a={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:n,userData:{}};return yn(i,a,r),bn(a,r),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(let e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,r=t.length;n{let n=this.associations.get(e);n!=null&&this.associations.set(t,n);for(let[n,r]of e.children.entries())i(r,t.children[n])};return i(n,r),r.name+=`_instance_`+ e.uses[t]++,r}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let n=0;n=2&&p.setY(t,u[e*a+1]),a>=3&&p.setZ(t,u[e*a+2]),a>=4&&p.setW(t,u[e*a+3]),a>=5)throw Error(`THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.`)}}return p})}loadTexture(e){let t=this.json,n=this.options,r=t.textures[e].source,i=t.images[r],a=this.textureLoader;if(i.uri){let e=n.manager.getHandler(i.uri);e!==null&&(a=e)}return this.loadTextureImage(e,r,a)}loadTextureImage(e,t,n){let r=this,i=this.json,a=i.textures[e],o=i.images[t],s=(o.uri||o.bufferView)+`:`+a.sampler;if(this.textureCache[s])return this.textureCache[s];let c=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||o.name||``,t.name===``&&typeof o.uri==`string`&&o.uri.startsWith(`data:image/`)===!1&&(t.name=o.uri);let n=(i.samplers||{})[a.sampler]||{};return t.magFilter=dn[n.magFilter]||1006,t.minFilter=dn[n.minFilter]||1008,t.wrapS=fn[n.wrapS]||1e3,t.wrapT=fn[n.wrapT]||1e3,r.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[s]=c,c}loadImageSource(e,t){let n=this,r=this.json,i=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(e=>e.clone());let a=r.images[e],o=self.URL||self.webkitURL,s=a.uri||``,c=!1;if(a.bufferView!==void 0)s=n.getDependency(`bufferView`,a.bufferView).then(function(e){c=!0;let t=new Blob([e],{type:a.mimeType});return s=o.createObjectURL(t),s});else if(a.uri===void 0)throw Error(`THREE.GLTFLoader: Image `+e+` is missing URI and bufferView`);let l=Promise.resolve(s).then(function(e){return new Promise(function(n,r){let a=n;t.isImageBitmapLoader===!0&&(a=function(e){let t=new De(e);t.needsUpdate=!0,n(t)}),t.load(A.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){return c===!0&&o.revokeObjectURL(s),bn(e,a),e.userData.mimeType=a.mimeType||En(a.uri),e}).catch(function(e){throw console.error(`THREE.GLTFLoader: Couldn't load texture`,s),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,r){let i=this;return this.getDependency(`texture`,n.index).then(function(a){if(!a)return null;if(n.texCoord!==void 0&&n.texCoord>0&&(a=a.clone(),a.channel=n.texCoord),i.extensions[X.KHR_TEXTURE_TRANSFORM]){let e=n.extensions===void 0?void 0:n.extensions[X.KHR_TEXTURE_TRANSFORM];if(e){let t=i.associations.get(a);a=i.extensions[X.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),i.associations.set(a,t)}}return r!==void 0&&(typeof r==`number`&&(r=r===jt?kt:At),`colorSpace`in a?a.colorSpace=r:a.encoding=r===kt?jt:Mt),e[t]=a,a})}assignFinalMaterial(e){let t=e.geometry,n=e.material,r=t.attributes.tangent===void 0,i=t.attributes.color!==void 0,a=t.attributes.normal===void 0;if(e.isPoints){let e=`PointsMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new U,ye.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){let e=`LineBasicMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new L,ye.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(r||i||a){let e=`ClonedMaterial:`+n.uuid+`:`;r&&(e+=`derivative-tangents:`),i&&(e+=`vertex-colors:`),a&&(e+=`flat-shading:`);let t=this.cache.get(e);t||(t=n.clone(),i&&(t.vertexColors=!0),a&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return W}loadMaterial(e){let t=this,n=this.json,r=this.extensions,i=n.materials[e],a,o={},s=i.extensions||{},c=[];if(s[X.KHR_MATERIALS_UNLIT]){let e=r[X.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),c.push(e.extendParams(o,i,t))}else{let n=i.pbrMetallicRoughness||{};if(o.color=new H(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],At),o.opacity=e[3]}n.baseColorTexture!==void 0&&c.push(t.assignTexture(o,`map`,n.baseColorTexture,kt)),o.metalness=n.metallicFactor===void 0?1:n.metallicFactor,o.roughness=n.roughnessFactor===void 0?1:n.roughnessFactor,n.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(o,`metalnessMap`,n.metallicRoughnessTexture)),c.push(t.assignTexture(o,`roughnessMap`,n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}i.doubleSided===!0&&(o.side=2);let l=i.alphaMode||_n.OPAQUE;if(l===_n.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,l===_n.MASK&&(o.alphaTest=i.alphaCutoff===void 0?.5:i.alphaCutoff)),i.normalTexture!==void 0&&a!==V&&(c.push(t.assignTexture(o,`normalMap`,i.normalTexture)),o.normalScale=new F(1,1),i.normalTexture.scale!==void 0)){let e=i.normalTexture.scale;o.normalScale.set(e,e)}if(i.occlusionTexture!==void 0&&a!==V&&(c.push(t.assignTexture(o,`aoMap`,i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&a!==V){let e=i.emissiveFactor;o.emissive=new H().setRGB(e[0],e[1],e[2],At)}return i.emissiveTexture!==void 0&&a!==V&&c.push(t.assignTexture(o,`emissiveMap`,i.emissiveTexture,kt)),Promise.all(c).then(function(){let n=new a(o);return i.name&&(n.name=i.name),bn(n,i),t.associations.set(n,{materials:e}),i.extensions&&yn(r,n,i),n})}createUniqueName(e){let t=M.sanitizeNodeName(e||``);return t in this.nodeNamesUsed?t+`_`+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,n=this.extensions,r=this.primitiveCache;function i(e){return n[X.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return An(n,e,t)})}let a=[];for(let n=0,o=e.length;n0&&Sn(d,i),d.name=t.createUniqueName(i.name||`mesh_`+e),bn(d,i),u.extensions&&yn(r,d,u),t.assignFinalMaterial(d),c.push(d)}for(let n=0,r=c.length;n1?new w:t.length===1?t[0]:new fe,o!==t[0])for(let e=0,n=t.length;e{let t=new Map;for(let[e,n]of r.associations)(e instanceof ye||e instanceof De)&&t.set(e,n);return e.traverse(e=>{let n=r.associations.get(e);n!=null&&t.set(e,n)}),t})(i),i})}_createAnimationTracks(e,t,n,r,i){let a=[],o=e.name?e.name:e.uuid,s=[];hn[i.path]===hn.weights?e.traverse(function(e){e.morphTargetInfluences&&s.push(e.name?e.name:e.uuid)}):s.push(o);let c;switch(hn[i.path]){case hn.weights:c=he;break;case hn.rotation:c=Ce;break;case hn.position:case hn.scale:c=v;break;default:switch(n.itemSize){case 1:c=he;break;default:c=v;break}break}let l=r.interpolation===void 0?I:gn[r.interpolation],u=this._getArrayFromAccessor(n);for(let e=0,n=s.length;e{let n={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,n).then(t).catch(r)},n,r)}decodeDracoFile(e,t,n,r){let i={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(let e in t.attributeTypes){let n=t.attributeTypes[e];n.BYTES_PER_ELEMENT!==void 0&&(t.attributeTypes[e]=n.name)}let n=JSON.stringify(t);if(jn.has(e)){let t=jn.get(e);if(t.key===n)return t.promise;if(e.byteLength===0)throw Error(`THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.`)}let r,i=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(i,a).then(n=>(r=n,new Promise((n,a)=>{r._callbacks[i]={resolve:n,reject:a},r.postMessage({type:`decode`,id:i,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return o.catch(()=>!0).then(()=>{r&&i&&this._releaseTask(r,i)}),jn.set(e,{key:n,promise:o}),o}_createGeometry(e){let t=new oe;e.index&&t.setIndex(new de(e.index.array,1));for(let n=0;n{n.load(e,t,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e=typeof WebAssembly!=`object`||this.decoderConfig.type===`js`,t=[];return e?t.push(this._loadLibrary(`draco_decoder.js`,`text`)):(t.push(this._loadLibrary(`draco_wasm_wrapper.js`,`text`)),t.push(this._loadLibrary(`draco_decoder.wasm`,`arraybuffer`))),this.decoderPending=Promise.all(t).then(t=>{let n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let r=Nn.toString(),i=[`/* draco decoder */`,n,``,`/* worker */`,r.substring(r.indexOf(`{`)+1,r.lastIndexOf(`}`))].join(` -`);this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengtht._taskLoad?-1:1});let n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log(`Task load: `,this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{let t=e.draco,o=new t.Decoder,s=new t.DecoderBuffer;s.Init(new Int8Array(r),r.byteLength);try{let e=n(t,o,s,a),r=e.attributes.map(e=>e.array.buffer);e.index&&r.push(e.index.array.buffer),self.postMessage({type:`decode`,id:i.id,geometry:e},r)}catch(e){console.error(e),self.postMessage({type:`error`,id:i.id,error:e.message})}finally{t.destroy(s),t.destroy(o)}});break}};function n(e,t,n,a){let o=a.attributeIDs,s=a.attributeTypes,c,l,u=t.GetEncodedGeometryType(n);if(u===e.TRIANGULAR_MESH)c=new e.Mesh,l=t.DecodeBufferToMesh(n,c);else if(u===e.POINT_CLOUD)c=new e.PointCloud,l=t.DecodeBufferToPointCloud(n,c);else throw Error(`THREE.DRACOLoader: Unexpected geometry type.`);if(!l.ok()||c.ptr===0)throw Error(`THREE.DRACOLoader: Decoding failed: `+l.error_msg());let d={index:null,attributes:[]};for(let n in o){let r=self[s[n]],l,u;if(a.useUniqueIDs)u=o[n],l=t.GetAttributeByUniqueId(c,u);else{if(u=t.GetAttributeId(c,e[o[n]]),u===-1)continue;l=t.GetAttribute(c,u)}d.attributes.push(i(e,t,c,n,r,l))}return u===e.TRIANGULAR_MESH&&(d.index=r(e,t,c)),e.destroy(c),d}function r(e,t,n){let r=n.num_faces()*3,i=r*4,a=e._malloc(i);t.GetTrianglesUInt32Array(n,i,a);let o=new Uint32Array(e.HEAPF32.buffer,a,r).slice();return e._free(a),{array:o,itemSize:1}}function i(e,t,n,r,i,o){let s=o.num_components(),c=n.num_points()*s,l=c*i.BYTES_PER_ELEMENT,u=a(e,i),d=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,o,u,l,d);let f=new i(e.HEAPF32.buffer,d,c).slice();return e._free(d),{name:r,array:f,itemSize:s}}function a(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}}var Pn,Fn=()=>{if(Pn)return Pn;let e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!=`object`)return{supported:!1};let n=`B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB`;WebAssembly.validate(e)&&(n=`B9h9z9tFBBBFiI9gBB9gLaaaaaFa9gEaaaB9gFaFaEMcBBFBFFGGGEILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBOn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBNI9z9iqlBVc+N9IcIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMk8lLbaE97F9+FaL978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAeDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAeDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBReCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBH8ZCFD9tA8ZAPD9OD9hD9RH8ZDQBTFtGmEYIPLdKeOnHpAIAQJDBIBHyCFD9tAyAPD9OD9hD9RHyAIASJDBIBH8cCFD9tA8cAPD9OD9hD9RH8cDQBTFtGmEYIPLdKeOnH8dDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAeD9uHeDyBjGBAEAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeApA8dDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeAdA8ZDQNiV8ZcpMyS8cQ8df8eb8fHdAyA8cDQNiV8ZcpMyS8cQ8df8eb8fH8ZDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeAdA8ZDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/dLEK97FaF97GXGXAGCI9HQBAF9FQFCBRGEXABABDBBBHECiD+rFCiD+sFD/6FHIAECND+rFCiD+sFD/6FAID/gFAECTD+rFCiD+sFD/6FHLD/gFD/kFD/lFHKCBDtD+2FHOAICUUUU94DtHND9OD9RD/kFHI9DBB/+hDYAIAID/mFAKAKD/mFALAOALAND9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHLD/mF9DBBX9LDYHOD/kFCgFDtD9OAECUUU94DtD9OD9QAIALD/mFAOD/kFCND+rFCU/+EDtD9OD9QAKALD/mFAOD/kFCTD+rFCUU/8ODtD9OD9QDMBBABCTJRBAGCIJHGAF9JQBSGMMAF9FQBCBRGEXABCTJHVAVDBBBHECBDtHOCUU98D8cFCUU98D8cEHND9OABDBBBHKAEDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAKAEDQBFGENVcMTtmYi8ZpyHECTD+sFD/6FHID/gFAECTD+rFCTD+sFD/6FHLD/gFD/kFD/lFHE9DB/+g6DYALAEAOD+2FHOALCUUUU94DtHcD9OD9RD/kFHLALD/mFAEAED/mFAIAOAIAcD9OD9RD/kFHEAED/mFD/kFD/kFD/jFD/nFHID/mF9DBBX9LDYHOD/kFCTD+rFALAID/mFAOD/kFCggEDtD9OD9QHLAEAID/mFAOD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHEDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAKAND9OALAEDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM/hEIGaF97FaL978jUUUUBCTlREGXAF9FQBCBRIEXAEABDBBBHLABCTJHKDBBBHODQILKOSQfbPden8c8d8e8fHNCTD+sFHVCID+rFDMIBAB9DBBU8/DY9D/zI818/DYAVCEDtD9QD/6FD/nFHVALAODQBFGENVcMTtmYi8ZpyHLCTD+rFCTD+sFD/6FD/mFHOAOD/mFAVALCTD+sFD/6FD/mFHcAcD/mFAVANCTD+rFCTD+sFD/6FD/mFHNAND/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHVD/mF9DBBX9LDYHLD/kFCggEDtHMD9OAcAVD/mFALD/kFCTD+rFD9QHcANAVD/mFALD/kFCTD+rFAOAVD/mFALD/kFAMD9OD9QHVDQBFTtGEmYILPdKOenHLD8dBAEDBIBDyB+t+J83EBABCNJALD8dFAEDBIBDyF+t+J83EBAKAcAVDQNVi8ZcMpySQ8c8dfb8e8fHVD8dBAEDBIBDyG+t+J83EBABCiJAVD8dFAEDBIBDyE+t+J83EBABCAJRBAICIJHIAF9JQBMMM9jFF97GXAGCGrAF9sHG9FQBCBRFEXABABDBBBHECND+rFCND+sFD/6FAECiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBABCTJRBAFCIJHFAG9JQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB`);let r,i=WebAssembly.instantiate(a(n),{}).then(e=>{r=e.instance,r.exports.__wasm_call_ctors()});function a(e){let n=new Uint8Array(e.length);for(let t=0;t96?r-71:r>64?r-65:r>47?r+4:r>46?63:62}let r=0;for(let i=0;i{n&&n(r),e&&(In||=new Mn,In.setDecoderPath(typeof e==`string`?e:Ln),r.setDRACOLoader(In)),t&&r.setMeshoptDecoder(typeof Fn==`function`?Fn():Fn)}}var zn=(e,t,n,r)=>o(Nt,e,Rn(t,n,r));zn.preload=(e,t,n,r)=>o.preload(Nt,e,Rn(t,n,r)),zn.clear=e=>o.clear(Nt,e),zn.setDecoderPath=e=>{Ln=e};var Q=t(),Bn=4;function Vn(e,t){let n=(0,Q.c)(10),{audioLoader:r,audioListener:a}=Qe(),{audioEnabled:o}=c(),s;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=Array.from({length:Bn},Un),n[0]=s):s=n[0];let l=(0,Y.useRef)(s),d;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(d=new Map,n[1]=d):d=n[1];let f=(0,Y.useRef)(d),p,m;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>{for(let e of l.current)if(e){tt(e.sound);try{e.sound.stop()}catch{}try{e.sound.disconnect()}catch{}e.sound.parent?.remove(e.sound)}l.current=Array.from({length:Bn},Hn)},m=[],n[2]=p,n[3]=m):(p=n[2],m=n[3]),(0,Y.useEffect)(p,m);let h;n[4]!==o||n[5]!==a||n[6]!==r||n[7]!==t||n[8]!==e?(h=()=>{if(!o||!a||!r||!t)return;let n=e.current?.soundSlots,i=l.current,s=qe.getState().playback.status===`playing`,c=[];if(n)for(let e of n)c[e.index]=e;for(let e=0;e{f.current.set(l,{profile:t,buffer:e})})}catch{}}}else if(d){tt(d.sound);try{d.sound.stop()}catch{}d.sound.parent?.remove(d.sound),i[e]=null}}},n[4]=o,n[5]=a,n[6]=r,n[7]=t,n[8]=e,n[9]=h):h=n[9],i(h)}function Hn(){return null}function Un(){return null}function Wn(e,t){if(e!=null){let t=qe.getState().playback.recording?.streamingPlayback;if(t)return!!t.getDataBlockData(e)?.emap}if(t){let e=qe.getState().runtime.runtime;if(e)return!!e.state.datablocks.get(t)?.emap}return!1}function Gn(e){if(e==null)return!1;let t=qe.getState().playback.recording?.streamingPlayback;return t?!!t.getDataBlockData(e)?.emap:!1}var $=r(),Kn=null;function qn(){return Kn||(Kn=ze(Ve(`special/cloakTexture`)),Kn.wrapS=O,Kn.wrapT=O,Kn.colorSpace=``),Kn}var Jn=0,Yn=0,Xn=-1;function Zn(e){e!==Xn&&(Xn=e,Jn=(Jn+1)%128,Yn=(Yn+1)%127,qn().offset.set(Jn/127,Yn/126))}var Qn=[0,Math.PI/2,0],$n=Ue(`GenericShape`);function er(e){let t=(0,Q.c)(20),{shapeName:n,imageDataBlockId:r,entityId:i,shapeType:a,skinName:o}=e,s=a===void 0?`StaticShape`:a,c=nr(n),l;t[0]===r?l=t[1]:(l=Gn(r),t[0]=r,t[1]=l);let u=l,d;if(t[2]!==c.animations||t[3]!==c.scene){bb0:{let e=Ae(c.scene,c.animations,`Mountpoint`);if(!e){d=null;break bb0}let n=e.quaternion.clone().invert(),r=e.position.clone().negate().applyQuaternion(n),i;t[5]!==r||t[6]!==n?(i={position:r,quaternion:n},t[5]=r,t[6]=n,t[7]=i):i=t[7],d=i}t[2]=c.animations,t[3]=c.scene,t[4]=d}else d=t[4];let f=d,p=f?.position,m=f?.quaternion,h;t[8]!==u||t[9]!==i||t[10]!==o?(h=(0,$.jsx)(ar,{emap:u,entityId:i,skinName:o,noRotation:!0}),t[8]=u,t[9]=i,t[10]=o,t[11]=h):h=t[11];let g;t[12]!==p||t[13]!==m||t[14]!==h?(g=(0,$.jsx)(`group`,{position:p,quaternion:m,children:h}),t[12]=p,t[13]=m,t[14]=h,t[15]=g):g=t[15];let _;return t[16]!==n||t[17]!==s||t[18]!==g?(_=(0,$.jsx)(Le,{shapeName:n,type:s,children:g}),t[16]=n,t[17]=s,t[18]=g,t[19]=_):_=t[19],_}function tr(){let{recording:e}=qe.getState().playback;return e==null?performance.now()/1e3:Ke()/1e3}function nr(e){let t=(0,Q.c)(2),n;return t[0]===e?n=t[1]:(n=Be(e),t[0]=e,t[1]=n),zn(n)}function rr(e){let t=(0,Q.c)(9),{color:n,label:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`boxGeometry`,{args:[10,10,10]}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(`meshStandardMaterial`,{color:n,wireframe:!0}),t[1]=n,t[2]=a);let o;t[3]!==n||t[4]!==r?(o=r?(0,$.jsx)($e,{color:n,children:r}):null,t[3]=n,t[4]=r,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,$.jsxs)(`mesh`,{children:[i,a,o]}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function ir(e){let t=(0,Q.c)(4),{color:n,label:r}=e,{debugMode:i}=l(),a;return t[0]!==n||t[1]!==i||t[2]!==r?(a=i?(0,$.jsx)(rr,{color:n,label:r}):null,t[0]=n,t[1]=i,t[2]=r,t[3]=a):a=t[3],a}var ar=(0,Y.memo)(function(e){let t=(0,Q.c)(24),{loadingColor:n,streamEntity:r,emap:i,entityId:a,children:o,mounted:s,noRotation:c,skinName:l,lightConfig:u}=e,d=n===void 0?`yellow`:n,{shapeName:f}=Re();if(!f){let e=`${a}: `,n;return t[0]===e?n=t[1]:(n=(0,$.jsx)(ir,{color:`orange`,label:e}),t[0]=e,t[1]=n),n}let p=`${a}: ${f}`,m;t[2]===p?m=t[3]:(m=(0,$.jsx)(ir,{color:`red`,label:p}),t[2]=p,t[3]=m);let h;t[4]===f?h=t[5]:(h=e=>{$n.error(`Shape error: %s: %o`,f,e)},t[4]=f,t[5]=h);let g;t[6]===d?g=t[7]:(g=(0,$.jsx)(rr,{color:d}),t[6]=d,t[7]=g);let _;t[8]!==o||t[9]!==i||t[10]!==a||t[11]!==u||t[12]!==s||t[13]!==c||t[14]!==l||t[15]!==r?(_=(0,$.jsx)(sr,{streamEntity:r,emap:i,entityId:a,mounted:s,noRotation:c,skinName:l,lightConfig:u,children:o}),t[8]=o,t[9]=i,t[10]=a,t[11]=u,t[12]=s,t[13]=c,t[14]=l,t[15]=r,t[16]=_):_=t[16];let v;t[17]!==g||t[18]!==_?(v=(0,$.jsx)(Y.Suspense,{fallback:g,children:_}),t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;return t[20]!==m||t[21]!==h||t[22]!==v?(y=(0,$.jsx)(wt,{fallback:m,onError:h,children:v}),t[20]=m,t[21]=h,t[22]=v,t[23]=y):y=t[23],y}),or=(0,Y.memo)(function({gltf:e,streamEntity:t,emap:n,entityId:r,children:o,mounted:s,noRotation:u,skinName:d,lightConfig:p}){let{object:m,shapeName:h}=Re(),{debugMode:g}=l(),{animationEnabled:_}=c(),v=Ge(e=>e.runtime.runtime),y=Ye(),{clonedScene:b,mixer:x,clipsByName:S,morphClipsBySeq:C,visNodesBySequence:w,iflMeshes:T}=(0,Y.useMemo)(()=>{let t=lt(e.scene),r=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let n=new Set(t.userData.flag_names??[]),i=t.userData.resource_path;if(n.has(`IflMaterial`)&&i){let t=e.userData,a=t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,o=t?.ifl_duration?Number(t.ifl_duration):void 0,s=t?.ifl_sequence?!!t.ifl_cyclic:void 0,c=t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin);r.push({mesh:e,iflPath:`textures/${i}.ifl`,hasVisSequence:!!t?.vis_sequence,repeat:n.has(`SWrap`)||n.has(`TWrap`),iflSequence:a,iflDuration:o,iflCyclic:s,iflToolBegin:c})}}),Pe(t,h??void 0,{anisotropy:y,emap:n,skinName:d});for(let{mesh:e,hasVisSequence:t}of r)t||(e.visible=!0);let i=new Map;t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=(t,n,r,a)=>{if(!t||!Array.isArray(n)||n.length<=1||!r||r<=0)return;let o=i.get(t);o||(o=[],i.set(t,o)),!o.some(t=>t.mesh===e)&&o.push({mesh:e,keyframes:n,duration:r,cyclic:a})};n((t.vis_sequence??``).toLowerCase(),t.vis_keyframes,t.vis_duration,!!t.vis_cyclic);for(let e of Object.keys(t)){let r=e.match(/^vis_keyframes_(.+)$/);if(r){let e=r[1];n(e,t[`vis_keyframes_${e}`],t[`vis_duration_${e}`],!!t[`vis_cyclic_${e}`])}}});let a=new Set,o=t.userData?.dts_sequence_names,s=t.userData?.dts_sequence_blend;if(typeof o==`string`)try{let e=JSON.parse(o),t=typeof s==`string`?JSON.parse(s):[];for(let n=0;nr.length+1+5){let e=u.get(r);e||(e=[],u.set(r,e)),e.push(n),t=!0;break}if(t)continue}if(a.has(e)){let r=n.clone(),i=Ne(t,r);ve.makeClipAdditive(r,0,i,30),l.set(e,r)}else l.set(e,n)}return{clonedScene:t,mixer:l.size>0?new me(t):null,clipsByName:l,morphClipsBySeq:u,visNodesBySequence:i,iflMeshes:r}},[e.scene,e.animations,h,y,n,d]);(0,Y.useEffect)(()=>()=>{ke(b),x?.uncacheRoot(b)},[b,x]);let E=(0,Y.useRef)(new Map),D=(0,Y.useRef)(new Map),O=(0,Y.useRef)([]),k=(0,Y.useRef)(0),ee=(0,Y.useRef)(_);ee.current=_;let A=(0,Y.useRef)(null),j=(0,Y.useRef)(t);j.current=t;let M=(0,Y.useRef)(null),N=(0,Y.useRef)(null),P=(0,Y.useRef)(void 0);(0,Y.useEffect)(()=>{O.current=[],D.current.clear();for(let e of T)je(e.iflPath,{repeat:e.repeat}).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0);let r={atlas:t,mat:n,sequenceName:e.iflSequence,sequenceDuration:e.iflDuration,cyclic:e.iflCyclic,toolBegin:e.iflToolBegin};O.current.push(r),D.current.set(e.mesh,t)}).catch(t=>{$n.warn(`Failed to load IFL atlas for %s: %o`,e.iflPath,t)})},[T]);let{seqCyclicByName:F,seqBlendByName:I}=(0,Y.useMemo)(()=>{let t=new Map,n=new Map,r=e.scene.userData?.dts_sequence_names,i=e.scene.userData?.dts_sequence_cyclic,a=e.scene.userData?.dts_sequence_blend;if(typeof r==`string`)try{let e=JSON.parse(r),o=typeof i==`string`?JSON.parse(i):[],s=typeof a==`string`?JSON.parse(a):[];for(let r=0;r{let e=E.current,t=j.current==null;function n(e){if(e.mesh.visible=!0,e.mesh.material?.isMeshStandardMaterial){let t=e.mesh.material,n=Ie(t,e.mesh.userData?.vis??0);e.mesh.material=n.material}if(e.mesh.material&&!Array.isArray(e.mesh.material)){let t=e.mesh.material.userData??={};t._visOrigTransparent??(t._visOrigTransparent=e.mesh.material.transparent,t._visOrigDepthWrite=e.mesh.material.depthWrite,t._visOrigAlphaTest=e.mesh.material.alphaTest)}let t=D.current.get(e.mesh);t&&e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.map=t.texture,e.mesh.material.needsUpdate=!0)}function r(t,r,a=!0){let o=r.toLowerCase();i(t);let s=S.get(o),c=w.get(o),l={sequence:o,startTime:tr(),forward:a};if(s&&x){let e=x.clipAction(s),t=F.get(o)??!0;t?e.setLoop(ne,1/0):(e.setLoop(f,1),e.clampWhenFinished=!0),I.has(o)&&(e.blendMode=ce),e.timeScale=a?1:-1,e.reset(),a||(e.time=s.duration),e.play(),l.action=e;let n=C.get(o);if(n){l.morphActions=[];for(let e of n){let n=x.clipAction(e);n.setLoop(t?ne:f,t?1/0:1),t||(n.clampWhenFinished=!0),n.timeScale=a?1:-1,n.reset(),a||(n.time=e.duration),n.play(),l.morphActions.push(n)}}}if(c){for(let e of c)n(e);l.visNodes=c}e.set(t,l)}function i(t){let n=e.get(t);if(n){if(n.action&&n.action.stop(),n.morphActions)for(let e of n.morphActions)e.stop();if(n.visNodes){for(let e of n.visNodes)if(e.mesh.material&&!Array.isArray(e.mesh.material)){let t=e.mesh.material;t.opacity=e.keyframes[0],e.mesh.visible=e.keyframes[0]>.01;let n=t.userData;n?._visOrigTransparent!=null&&(t.transparent=n._visOrigTransparent,t.depthWrite=n._visOrigDepthWrite,t.alphaTest=n._visOrigAlphaTest)}}e.delete(t)}}if(M.current=r,N.current=i,x&&S.has(`wheel0`)){let e=[];for(let t=0;t<6;t++){let n={rotation:0},r=S.get(`wheel${t}`);if(r){let e=x.clipAction(r);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),n.wheelAction=e}let i=S.get(`spring${t}`);if(i){let e=x.clipAction(i);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=0,n.springAction=e}let a=S.get(`turn${t}`);if(a){let e=x.clipAction(a);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=a.duration*.5,n.turnAction=e}e.push(n)}A.current=e}else A.current=null;if(!t)return()=>{M.current=null,N.current=null,P.current=void 0,A.current=null;for(let t of[...e.keys()])i(t)};let a=[];v&&(a.push(v.$.onMethodCalled(`ShapeBase`,`playThread`,(e,t,n)=>{e._id===m?._id&&r(Number(t),String(n))})),a.push(v.$.onMethodCalled(`ShapeBase`,`stopThread`,(e,t)=>{e._id===m?._id&&i(Number(t))})),a.push(v.$.onMethodCalled(`ShapeBase`,`pauseThread`,(t,n)=>{if(t._id!==m?._id)return;let r=e.get(Number(n));if(r?.action&&(r.action.paused=!0,r.morphActions))for(let e of r.morphActions)e.paused=!0})));for(let[e,t]of[[0,`power`],[1,`ambient`]])(S.has(t)||w.has(t)||C.has(t))&&r(e,t);return()=>{a.forEach(e=>e()),M.current=null,N.current=null,P.current=void 0,A.current=null;for(let t of[...e.keys()])i(t)}},[x,S,w,F,I,m,v]);let L=(0,Y.useMemo)(()=>{let t=e.scene.userData?.dts_sequence_names;if(typeof t==`string`)try{return JSON.parse(t).map(e=>e.toLowerCase())}catch{}return e.animations.map(e=>e.name.toLowerCase())},[e]);i((e,t)=>{let n=E.current,r=j.current!=null,i=qe.getState().playback,a=r?i.status===`playing`?t*i.rate:0:t,o=j.current?.threads,s=P.current;if(o!==s){let e=M.current,t=N.current;if(e&&t){P.current=o;let r=[];if(o)for(let e of o)r[e.index]=e;let i=[];if(s)for(let e of s)i[e.index]=e;let a=Math.max(r.length,i.length);for(let o=0;o.01}}else{let t=n.get(o);if(!t||t.sequence!==r||t.forward!==a.forward)e(o,r,a.forward);else if(t?.action?.paused&&(t.action.paused=!1,t.action.timeScale=a.forward?1:-1,t.morphActions))for(let e of t.morphActions)e.paused=!1,e.timeScale=a.forward?1:-1}}else s&&t(o)}}}x&&_&&x.update(a);for(let[,e]of n)if(e.visNodes)for(let{mesh:t,keyframes:n,duration:r,cyclic:i}of e.visNodes){let a=t.material;if(!a||Array.isArray(a))continue;if(!_){a.opacity=n[0],t.visible=a.opacity>.01;continue}let o=tr()-e.startTime,s;s=i?(o%r+r)%r/r:e.forward?Math.min(o/r,1):Math.max(1-o/r,0);let c=n.length,l=s*(c-1),u=Math.min(Math.floor(l),c-1),d=Math.min(u+1,c-1),f=l-u;a.opacity=n[u]+(n[d]-n[u])*f,t.visible=a.opacity>.01;let p=a.userData;a.opacity>=.99?p?._visOrigTransparent!=null&&(a.transparent!==p._visOrigTransparent&&(a.transparent=p._visOrigTransparent,a.needsUpdate=!0),a.depthWrite=p._visOrigDepthWrite,a.alphaTest=p._visOrigAlphaTest):a.transparent||(a.transparent=!0,a.depthWrite=!1,a.alphaTest=0,a.needsUpdate=!0)}let c=j.current?.damageState??0,l=w.get(`visibility`);if(l){let e=c>=2?1:0;for(let{mesh:t,keyframes:n}of l){let r=t.material;if(!r||Array.isArray(r))continue;let i=n.length;r.opacity=n[Math.min(Math.floor(e*i),i-1)],t.visible=r.opacity>.01}}let u=A.current;if(u&&_){let e=j.current,t=e?.wheels,n=e?.steeringYaw??0,r=e?.maxSteeringAngle??.3;for(let e=0;e0){k.current+=a;for(let e of d){let t=(e,t)=>{Oe(e.atlas,t),e.atlas.swapMode&&e.mat.map!==e.atlas.texture&&(e.mat.map=e.atlas.texture,e.mat.needsUpdate=!0)},r=0;if(_){let t=0;if(e.sequenceName&&e.sequenceDuration){for(let[,r]of n)if(r.sequence===e.sequenceName){let n=tr()-r.startTime,i=e.sequenceDuration;t=(e.cyclic?n/i%1:Math.min(n/i,1))*i+(e.toolBegin??0);break}}else t=k.current;r=Me(e.atlas,t)}t(e,r)}}});let z=(0,Y.useRef)(1),te=(0,Y.useRef)(0);i(e=>{let t=j.current,n=t?.fadeVal??1,r=t?.cloakLevel??0,i=r>0;if(i&&Zn(e.frameloop===`never`?0:e.clock.elapsedTime*60|0),n===z.current&&r===te.current)return;z.current=n,te.current=r;let a=i?.125+(1-r)*.875:n,o=i?qn():Kn;b.traverse(e=>{if(!e.isMesh||!e.material||Array.isArray(e.material))return;let t=e.material,n=t.userData??={};n._baseFadeOpacity??(n._baseFadeOpacity=t.opacity??1,n._baseFadeTransparent=t.transparent??!1,n._originalMap=t.map,n._isOriginallyTranslucent=n._baseFadeTransparent||t.alphaTest>0||t.blending!==1);let r=n._baseFadeOpacity;i&&!n._isOriginallyTranslucent?t.map!==o&&(t.map=o,t.needsUpdate=!0):!i&&n._originalMap!==void 0&&t.map===o&&(t.map=n._originalMap,t.needsUpdate=!0),t.opacity=a*r,t.transparent=a<1||n._baseFadeTransparent,t.depthWrite=a>=1&&!n._baseFadeTransparent})}),Vn(j,b);let B=at(r??``),V=(0,Y.useMemo)(()=>{if(!B)return null;let t=new re().setFromObject(e.scene),n=new R,r=new R;return t.getCenter(n),t.getSize(r),{center:[n.x,n.y,n.z],size:[r.x,r.y,r.z]}},[B,e.scene]),U=(0,Y.useMemo)(()=>{let e={};return b.traverse(t=>{let n=t.name.match(/^Mount(\d+)$/);n&&(e[Number(n[1])]=t)}),Object.keys(e).length>0?e:null},[b]),W=(0,Y.useMemo)(()=>{let e=null;return b.traverse(t=>{t.name===`Eye`&&(e=t)}),e},[b]);(0,Y.useEffect)(()=>{if(!(!W||!r))return()=>{yr.delete(r)}},[W,r]),i(()=>{if(!W||!r)return;let e=yr.get(r);e||(e=new R,yr.set(r,e)),W.getWorldPosition(e),b.worldToLocal(e);let t=e.x,n=e.y,i=e.z;e.set(i,n,-t)});let G=(0,Y.useRef)(null),K=(0,Y.useMemo)(()=>{let t=p;if(!t)return null;let n=new re().setFromObject(e.scene),r=new R;return n.getCenter(r),{type:t.type,color:new H(t.color[0],t.color[1],t.color[2]),time:t.time,radius:t.radius,onlyStatic:t.onlyStatic,isStatic:t.isStatic,center:[r.x,r.y,r.z]}},[e.scene,p]);return i(()=>{if(!G.current||!K)return;if(K.onlyStatic&&!K.isStatic){G.current.intensity=0;return}let e=j.current?.fadeVal??1,t=tr()*1e3,n;n=K.type===2?(.15+(.5+.5*Math.sin(Math.PI*t/K.time))*.85)*e:e,G.current.intensity=n*K.radius*K.radius}),(0,$.jsxs)(`group`,{rotation:u?void 0:Qn,children:[(0,$.jsx)(`primitive`,{object:b}),K&&(0,$.jsx)(`pointLight`,{ref:G,color:K.color,position:K.center,intensity:0,distance:K.radius*2,decay:1}),g?(0,$.jsxs)($e,{children:[r,`: `,h]}):null,V&&(0,$.jsx)(`group`,{position:V.center,children:(0,$.jsx)(ot,{size:V.size})}),o,U&&s&&Object.entries(s).map(([e,t])=>{let n=U[Number(e)];return n?(0,$.jsx)(Y.Fragment,{children:a((0,$.jsx)(`group`,{children:t}),n)},e):null})]})});function sr(e){let t=(0,Q.c)(10),{streamEntity:n,emap:r,entityId:i,children:a,mounted:o,noRotation:s,skinName:c,lightConfig:l}=e,{shapeName:u}=Re(),d=nr(u),f;return t[0]!==a||t[1]!==r||t[2]!==i||t[3]!==d||t[4]!==l||t[5]!==o||t[6]!==s||t[7]!==c||t[8]!==n?(f=(0,$.jsx)(or,{gltf:d,streamEntity:n,emap:r,entityId:i,mounted:o,noRotation:s,skinName:c,lightConfig:l,children:a}),t[0]=a,t[1]=r,t[2]=i,t[3]=d,t[4]=l,t[5]=o,t[6]=s,t[7]=c,t[8]=n,t[9]=f):f=t[9],f}var cr=Ue(`ShapeErrorBoundary`),lr=class extends Y.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){cr.error(`Shape load failed: %s %s`,e.message,t.componentStack)}render(){return this.state.hasError?this.props.fallback:this.props.children}},ur={Root:`_Root_1i0cm_1`,Top:`_Top_1i0cm_10 _Root_1i0cm_1`,Bottom:`_Bottom_1i0cm_15 _Root_1i0cm_1`,IffArrow:`_IffArrow_1i0cm_20`,Name:`_Name_1i0cm_27`,HealthBar:`_HealthBar_1i0cm_35`,HealthFill:`_HealthFill_1i0cm_44`},dr=150,fr=.1,pr=-.2,mr=Ve(`gui/hud_alliedtriangle`),hr=Ve(`gui/hud_enemytriangle`),gr=[];function _r(e){let t=(0,Q.c)(23),{entity:n}=e,r=nr(n.shapeName),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={fadeDistance:dr},t[0]=a):a=t[0];let{groupRef:o,isVisible:c,opacityRef:l}=rt(a),u=(0,Y.useRef)(null),d=(0,Y.useRef)(null),f=(0,Y.useRef)(null),p=(0,Y.useRef)(null),m=(0,Y.useRef)(null),h;t[1]===r.scene?h=t[2]:(h=new re().setFromObject(r.scene),t[1]=r.scene,t[2]=h);let g=h.max.y+fr,_=n.keyframes??gr,v;t[3]===_?v=t[4]:(v=_.some(vr),t[3]=_,t[4]=v);let y=v,b;t[5]!==n.id||t[6]!==n.iffColor||t[7]!==n.playerName||t[8]!==y||t[9]!==c||t[10]!==_||t[11]!==l?(b=()=>{if(!c)return;let e=Fe(_,ct.getState().time),t=e?.health??1;if(e?.damageState!=null&&e.damageState>=1){u.current&&(u.current.style.opacity=`0`),d.current&&(d.current.style.opacity=`0`);return}let r=l.current;if(u.current&&(u.current.style.opacity=r),d.current&&(d.current.style.opacity=r),m.current){let e=n.playerName??n.id;m.current.textContent!==e&&(m.current.textContent=e)}if(p.current&&n.iffColor){let e=n.iffColor.r>n.iffColor.g?hr:mr;p.current.getAttribute(`src`)!==e&&(p.current.src=e)}f.current&&y&&(f.current.style.width=`${Math.max(0,Math.min(100,t*100))}%`,f.current.style.background=n.iffColor?`rgb(${n.iffColor.r}, ${n.iffColor.g}, ${n.iffColor.b})`:``)},t[5]=n.id,t[6]=n.iffColor,t[7]=n.playerName,t[8]=y,t[9]=c,t[10]=_,t[11]=l,t[12]=b):b=t[12],i(b);let x=n.iffColor&&n.iffColor.r>n.iffColor.g?hr:mr,S;t[13]!==n.id||t[14]!==n.playerName||t[15]!==y||t[16]!==g||t[17]!==x||t[18]!==c?(S=c&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(s,{position:[0,g,0],center:!0,children:(0,$.jsx)(`div`,{ref:u,className:ur.Top,children:(0,$.jsx)(`img`,{ref:p,className:ur.IffArrow,src:x,alt:``})})}),(0,$.jsx)(s,{position:[0,pr,0],center:!0,children:(0,$.jsxs)(`div`,{ref:d,className:ur.Bottom,children:[(0,$.jsx)(`div`,{ref:m,className:ur.Name,children:n.playerName??n.id}),y&&(0,$.jsx)(`div`,{className:ur.HealthBar,children:(0,$.jsx)(`div`,{ref:f,className:ur.HealthFill})})]})})]}),t[13]=n.id,t[14]=n.playerName,t[15]=y,t[16]=g,t[17]=x,t[18]=c,t[19]=S):S=t[19];let C;return t[20]!==o||t[21]!==S?(C=(0,$.jsx)(`group`,{ref:o,children:S}),t[20]=o,t[21]=S,t[22]=C):C=t[22],C}function vr(e){return e.health!=null}var yr=new Map,br=`https://exogen.github.io/t2-skins/skins/`,xr=`https://exogen.github.io/t2-skins/skins.json`,Sr={"light_male.dts":`lmale`,"light_female.dts":`lfemale`,"medium_male.dts":`mmale`,"medium_female.dts":`mfemale`,"heavy_male.dts":`hmale`,"bioderm_light.dts":`lbioderm`,"bioderm_medium.dts":`mbioderm`,"bioderm_heavy.dts":`hbioderm`},Cr=[`customSkinManifest`];async function wr(){let e=await fetch(xr);if(!e.ok)throw Error(`${e.status}`);let t=await e.json(),n={};if(t.customSkins)for(let[e,r]of Object.entries(t.customSkins))n[e]=new Set(r);return n}function Tr(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:Cr,queryFn:wr,staleTime:1/0,retry:1},e[0]=t):t=e[0],d(t)}var Er=8,Dr=[`root`,`run`,`back`,`side`,`fall`,`jet`,`jump`,`land`];function Or(e,t,n=0){let r=new Map,i=[];for(let n of e){let e=n.indexOf(` `);if(e===-1)continue;let r=n.slice(0,e).toLowerCase(),a=n.slice(e+1).trim().toLowerCase();if(!a||!r.startsWith(t)||!r.endsWith(`.dsq`))continue;let o=r.slice(t.length,-4);o&&i.push({clipName:o,alias:a})}let a=new Set;for(let e=0;e{let t=n?.toLowerCase();return t?e.runtime.sequenceAliases.get(t):void 0}),s=Ye(),l=Ge(e=>e.playback.streamSnapshot?.controlPlayerGhostId),{data:d}=Tr(),p=(0,Y.useMemo)(()=>{let t=e.skinPrefName??e.skinName;if(!t||t===`base`)return;let r=Sr[n.toLowerCase()];if(r){try{return Ve(`skins/${t}.${r}`,null)}catch{}if(d?.[r]?.has(t))return`${br}${t}.${r}.png`}},[e.skinPrefName,e.skinName,n,d]),m=(0,Y.useMemo)(()=>Wn(e.dataBlockId,e.dataBlock),[e.dataBlockId,e.dataBlock]),{clonedScene:h,mixer:g,mount0:_,mount1:v,mount2:y,eyeBone:b,iflInitializers:x}=(0,Y.useMemo)(()=>{let e=lt(r.scene),t=Pe(e,void 0,{anisotropy:s,emap:m,skinUrl:p});e.traverse(e=>{if(e.isMesh&&(e.frustumCulled=!1,e.material)){let t=Array.isArray(e.material)?e.material:[e.material];for(let e of t)e.side=0}});let n=new me(e),i=null,a=null,o=null,c=null;return e.traverse(e=>{!i&&e.name===`Mount0`&&(i=e),!a&&e.name===`Mount1`&&(a=e),!o&&e.name===`Mount2`&&(o=e),!c&&e.name===`Eye`&&(c=e)}),{clonedScene:e,mixer:n,mount0:i,mount1:a,mount2:o,eyeBone:c,iflInitializers:t}},[r.scene,s,m,p]);(0,Y.useEffect)(()=>()=>{yr.delete(e.id),ke(h),g.uncacheRoot(h)},[h,g]);let S=(0,Y.useRef)(new Map),C=(0,Y.useRef)({head:null,headside:null}),w=(0,Y.useRef)(new Map),T=(0,Y.useRef)(null),E=(0,Y.useRef)({name:`root`,timeScale:1}),D=(0,Y.useRef)(!1),O=(0,Y.useRef)(void 0),k=(0,Y.useMemo)(()=>{let e=t.getState().playback.recording?.streamingPlayback,i=n?.toLowerCase();if(!e||!i)return new Map;let a=e.getShapeConstructorSequences(i);if(!a)return new Map;let o=i.replace(/\.dts$/i,``)+`_`;return Or(a,o,Ar(r.scene,a,o))},[t,n,r.scene]),ee=(0,Y.useMemo)(()=>{let e=new Map,t=r.scene.userData?.dts_sequence_names,n=r.scene.userData?.dts_sequence_cyclic;if(typeof t==`string`&&typeof n==`string`)try{let r=JSON.parse(t),i=JSON.parse(n),a=new Map;for(let e=0;e{let e=Je(r.animations,g,o);S.current=e;let t=e.get(`root`);t&&t.play(),E.current={name:`root`,timeScale:1};let n={head:null,headside:null};for(let{key:e,names:t}of[{key:`head`,names:[`head`]},{key:`headside`,names:[`headside`]}]){let i=r.animations.find(e=>t.includes(e.name.toLowerCase()));if(!i)continue;let a=i.clone(),o=Math.round(i.duration*30/2);ve.makeClipAdditive(a,o,i,30);let s=g.clipAction(a);s.blendMode=ce,s.timeScale=0,s.weight=1,s.play(),n[e]=s}C.current=n;let i=r.animations.find(e=>e.name.toLowerCase()===`root`);if(i){let e=new Set;for(let t of r.animations){let n=t.name.toLowerCase();if([`forward`,`back`,`side`,`fall`].includes(n))for(let n of t.tracks)e.add(n.name.slice(0,n.name.lastIndexOf(`.`)))}let t=i.tracks.filter(t=>{let n=t.name.slice(0,t.name.lastIndexOf(`.`));return!e.has(n)});if(t.length>0){let e=new B(`root_arms`,i.duration,t);g.clipAction(e).play()}}let a=new Map,s=r.scene.userData?.dts_sequence_names,c=r.scene.userData?.dts_sequence_blend;if(typeof s==`string`&&typeof c==`string`)try{let e=JSON.parse(s),t=JSON.parse(c);for(let n=0;ne.name.toLowerCase()===i);if(!o)continue;let s=o.clone(),c=Ne(r.scene,s);ve.makeClipAdditive(s,0,c,30);let l=g.clipAction(s);l.blendMode=ce,l.timeScale=0,l.weight=0,l.play(),a.set(i,l)}}catch{}w.current=a;let l=a.get(`lookde`);return l&&(l.weight=1,T.current=`lookde`),g.update(0),()=>{g.stopAllAction(),S.current=new Map,C.current={head:null,headside:null},w.current=new Map,T.current=null}},[g,r.animations,o]),(0,Y.useEffect)(()=>{let e=[];for(let{mesh:t,initialize:n}of x)n(t,()=>ct.getState().time).then(t=>e.push(t)).catch(()=>{});return()=>e.forEach(e=>e())},[x]);let A=t=>e.imageSlots?.[t]?.shapeName,j=(0,Y.useRef)(A(0)),[M,N]=(0,Y.useState)(A(0)),P=(0,Y.useRef)(A(2)),[F,I]=(0,Y.useState)(A(2)),L=(0,Y.useRef)(A(3)),[z,te]=(0,Y.useState)(A(3)),V=(0,Y.useRef)(e);V.current=e,Vn(V,h);let{audioLoader:H,audioListener:U}=Qe(),{audioEnabled:W}=c(),G=(0,Y.useRef)(null),K=(0,Y.useRef)(null),re=(0,Y.useRef)(null);return(0,Y.useEffect)(()=>{if(!H)return;let n=t.getState().playback.recording?.streamingPlayback;if(!n||!e.dataBlockId)return;let r=n.getDataBlockData.bind(n),i=r(e.dataBlockId)?.sounds?.[0];if(i==null)return;let a=nt(i,r);if(a){re.current=a;try{it(He(a.filename),H,e=>{K.current=e})}catch{}}},[H,t,e.dataBlockId]),(0,Y.useEffect)(()=>()=>{let e=G.current;if(e){tt(e);try{e.stop()}catch{}try{e.disconnect()}catch{}e.parent?.remove(e),G.current=null}},[]),i((n,r)=>{let i=A(0);i!==j.current&&(j.current=i,N(i));let a=A(2);a!==P.current&&(P.current=a,I(a));let o=A(3);o!==L.current&&(L.current=o,te(o));let s=t.getState().playback,c=s.status===`playing`,l=ct.getState().time,d=Fe(e.keyframes??[],l),p=d?.damageState!=null&&d.damageState>=1,m=S.current;if(p&&!D.current){D.current=!0;let e=d.actionAnim==null?void 0:k.get(d.actionAnim);if(e){let t=m.get(e.clipName);if(t){let n=m.get(E.current.name.toLowerCase());n&&n.fadeOut(J),t.setLoop(f,1),t.clampWhenFinished=!0,t.reset().fadeIn(J).play(),E.current={name:e.clipName,timeScale:1},O.current=d.actionAnim}}}if(!p&&D.current){D.current=!1,O.current=void 0;let e=m.get(E.current.name.toLowerCase());e&&(e.stop(),e.setLoop(ne,1/0),e.clampWhenFinished=!1),E.current={name:`root`,timeScale:1};let t=m.get(`root`);t&&t.reset().play()}let _=d?.actionAnim,v=O.current;if(!D.current&&_!==v){O.current=_;let e=_!=null&&_>=Er,t=v!=null&&v>=Er;if(e){let e=k.get(_);if(e){let t=m.get(e.clipName);if(t){let n=m.get(E.current.name.toLowerCase());n&&n.fadeOut(J),t.setLoop(f,1),t.clampWhenFinished=!0,t.reset().fadeIn(J).play(),E.current={name:e.clipName,timeScale:1}}}}else if(t){let e=k.get(v);if(e){let t=m.get(e.clipName);t&&(t.fadeOut(J),t.setLoop(ne,1/0),t.clampWhenFinished=!1)}E.current={name:`root`,timeScale:1};let t=m.get(`root`);t&&t.reset().fadeIn(J).play()}}if(_!=null&&_>=Er&&d?.actionAtEnd){let e=k.get(_);if(e){let t=m.get(e.clipName);t&&(t.paused=!0)}}let y=O.current!=null&&O.current>=Er;if(!D.current&&!y){let t=mt(d?.velocity,d?.rotation??[0,0,0,1],e.falling,e.jetting),n=E.current;if(t.animation!==n.name||t.timeScale!==n.timeScale){let e=m.get(n.name.toLowerCase()),r=m.get(t.animation.toLowerCase());r&&(ee.get(t.animation)??!0?(r.setLoop(ne,1/0),r.clampWhenFinished=!1):(r.setLoop(f,1),r.clampWhenFinished=!0),c&&e&&e!==r?(e.fadeOut(J),r.reset().fadeIn(J).play()):(e&&e!==r&&e.stop(),r.reset().play()),r.timeScale=t.timeScale,E.current={name:t.animation,timeScale:t.timeScale})}}let x=(e.armAction==null?void 0:k.get(e.armAction))?.clipName??`lookde`;if(x!==T.current){let e=w.current,t=T.current?e.get(T.current):null,n=e.get(x);n&&(t&&(t.weight=0),n.weight=p?0:1,T.current=x)}let{head:M,headside:F}=C.current,z=T.current?w.current.get(T.current):null,B=p?0:1,V=e.headPitch??0,H=e.headYaw??0,ie=(V+1)/2,ae=(H+1)/2;z&&(z.time=ie*z.getClip().duration,z.weight=B),M&&(M.time=ie*M.getClip().duration,M.weight=B),F&&(F.time=ae*F.getClip().duration,F.weight=B);let oe=!!e.jetting&&!p,se=re.current,ce=G.current,le=ce?.isPlaying??!1;if(oe&&!le){if(W&&U&&K.current&&se){let e=ce;e||(e=new we(U),e.setDistanceModel(`inverse`),e.setRefDistance(se.refDist),e.setMaxDistance(se.maxDist),e.setRolloffFactor(1),e.setVolume(se.volume),h.add(e),G.current=e);try{e.setBuffer(K.current),e.setLoop(!0),e.setPlaybackRate(u()),e.play(),Ze(e,1)}catch{}}}else if(!oe&&le&&ce){tt(ce);try{ce.stop()}catch{}}if(c?g.update(r*s.rate):g.update(0),b){let t=yr.get(e.id);t||(t=new R,yr.set(e.id,t)),b.getWorldPosition(t),h.worldToLocal(t);let n=t.x,r=t.y,i=t.z;t.set(i,r,-n)}}),(0,$.jsxs)($.Fragment,{children:[e.id!==l&&(0,$.jsx)(_r,{entity:e}),(0,$.jsxs)(`group`,{rotation:[0,Math.PI/2,0],children:[(0,$.jsx)(`primitive`,{object:h}),(0,$.jsx)(Nr,{entityId:e.id,scene:r.scene})]}),M&&_&&(0,$.jsx)(lr,{fallback:(0,$.jsx)(rr,{color:`red`,label:M}),children:(0,$.jsx)(st,{name:`Weapon:${e.id}/${M}`,fallback:(0,$.jsx)(rr,{color:`cyan`,label:M}),children:(0,$.jsx)(Fr,{entity:e,weaponShape:M,mount0:_})})},M),F&&v&&a((0,$.jsx)(Y.Suspense,{children:(0,$.jsx)(er,{shapeName:F,imageDataBlockId:e.imageSlots?.[2]?.dataBlockId,entityId:e.id})}),v),z&&y&&a((0,$.jsx)(Y.Suspense,{children:(0,$.jsx)(er,{shapeName:z,imageDataBlockId:e.imageSlots?.[3]?.dataBlockId,entityId:e.id,skinName:e.imageSlots?.[3]?.skinName})}),y)]})}function Nr(e){let t=(0,Q.c)(19),{entityId:n,scene:r}=e,i=at(n),a;bb0:{if(!i){a=null;break bb0}let e,n;if(t[0]!==r){let i=new re().setFromObject(r);e=new R,n=new R,i.getCenter(e),i.getSize(n),t[0]=r,t[1]=e,t[2]=n}else e=t[1],n=t[2];let o;t[3]!==e.x||t[4]!==e.y||t[5]!==e.z?(o=[e.x,e.y,e.z],t[3]=e.x,t[4]=e.y,t[5]=e.z,t[6]=o):o=t[6];let s=o,c;t[7]!==n.x||t[8]!==n.y||t[9]!==n.z?(c=[n.x,n.y,n.z],t[7]=n.x,t[8]=n.y,t[9]=n.z,t[10]=c):c=t[10];let l=c,u;t[11]!==s||t[12]!==l?(u={center:s,size:l},t[11]=s,t[12]=l,t[13]=u):u=t[13],a=u}let o=a;if(!o)return null;let s;t[14]===o.size?s=t[15]:(s=(0,$.jsx)(ot,{size:o.size}),t[14]=o.size,t[15]=s);let c;return t[16]!==o.center||t[17]!==s?(c=(0,$.jsx)(`group`,{position:o.center,children:s}),t[16]=o.center,t[17]=s,t[18]=c):c=t[18],c}function Pr(e,t){let n=e.userData?.dts_sequence_names;if(typeof n==`string`)try{return JSON.parse(n).map(e=>e.toLowerCase())}catch{}return t.map(e=>e.name.toLowerCase())}function Fr(e){let t=(0,Q.c)(46),{entity:n,weaponShape:r,mount0:a}=e,o=We(),s=nr(r),l=n.imageSlots?.[0]?.dataBlockId,d;t[0]===l?d=t[1]:(d=Gn(l),t[0]=l,t[1]=d);let f=d,p=Ye(),m,h,g,_;if(t[2]!==p||t[3]!==f||t[4]!==s.animations||t[5]!==s.scene){m=lt(s.scene),h=Pe(m,void 0,{anisotropy:p,emap:f});let e=Ae(s.scene,s.animations,`Mountpoint`);if(e){let t=e.quaternion.clone().invert(),n=e.position.clone().negate().applyQuaternion(t);m.position.copy(n),m.quaternion.copy(t)}_=new Map,m.traverse(e=>{if(!e.isMesh)return;let t=(e.userData?.vis_sequence??``).toLowerCase();if(!t)return;let n=_.get(t);n||(n=[],_.set(t,n)),n.push(e)}),g=new me(m),t[2]=p,t[3]=f,t[4]=s.animations,t[5]=s.scene,t[6]=m,t[7]=h,t[8]=g,t[9]=_}else m=t[6],h=t[7],g=t[8],_=t[9];let v=g,y=s.scene,b;t[10]!==y||t[11]!==s.animations?(b=Pr(y,s.animations),t[10]=y,t[11]=s.animations,t[12]=b):b=t[12];let x=b,S;t[13]!==m||t[14]!==h||t[15]!==v||t[16]!==x||t[17]!==_?(S={weaponClone:m,weaponMixer:v,seqIndexToName:x,visNodesBySequence:_,weaponIflInitializers:h},t[13]=m,t[14]=h,t[15]=v,t[16]=x,t[17]=_,t[18]=S):S=t[18];let{weaponClone:C,weaponMixer:w,seqIndexToName:T,visNodesBySequence:E,weaponIflInitializers:D}=S,O,k;t[19]!==C||t[20]!==w?(O=()=>()=>{ke(C),w.uncacheRoot(C)},k=[C,w],t[19]=C,t[20]=w,t[21]=O,t[22]=k):(O=t[21],k=t[22]),(0,Y.useEffect)(O,k);let ee;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(ee=new Map,t[23]=ee):ee=t[23];let A=(0,Y.useRef)(ee),j=(0,Y.useRef)(null),M,N;t[24]!==s.animations||t[25]!==w?(M=()=>{let e=new Map;for(let t of s.animations)e.set(t.name.toLowerCase(),w.clipAction(t));A.current=e;let t=e.get(`spin`);return t&&(t.setLoop(ne,1/0),t.timeScale=0,t.play()),j.current=t??null,w.update(0),()=>{w.stopAllAction(),A.current=new Map,j.current=null,jr(V,H)}},N=[w,s.animations],t[24]=s.animations,t[25]=w,t[26]=M,t[27]=N):(M=t[26],N=t[27]),(0,Y.useEffect)(M,N);let P,F;t[28]===D?(P=t[29],F=t[30]):(P=()=>{let e=[];for(let{mesh:t,initialize:n}of D)n(t,Rr).then(t=>e.push(t)).catch(Lr);return()=>e.forEach(Ir)},F=[D],t[28]=D,t[29]=P,t[30]=F),(0,Y.useEffect)(P,F);let{audioLoader:I,audioListener:L}=Qe(),R=c()?.audioEnabled??!1,z=(0,Y.useRef)(null),te=(0,Y.useRef)(null),B=(0,Y.useRef)(n.weaponImageStates),V=(0,Y.useRef)(null),H=(0,Y.useRef)(-1),U,W;t[31]!==a||t[32]!==C?(U=()=>(a.add(C),()=>{a.remove(C)}),W=[C,a],t[31]=a,t[32]=C,t[33]=U,t[34]=W):(U=t[33],W=t[34]),(0,Y.useEffect)(U,W);let G;return t[35]!==R||t[36]!==L||t[37]!==I||t[38]!==o||t[39]!==n.weaponImageState||t[40]!==n.weaponImageStates||t[41]!==T||t[42]!==E||t[43]!==C||t[44]!==w?(G=(e,t)=>{let r=o.getState().playback,i=r.status===`playing`,a=A.current,s=n.weaponImageState,c=n.weaponImageStates;c!==B.current&&(B.current=c,c&&c.length>0?z.current=new xt(c,T):z.current=null,te.current=null,jr(V,H,C)),!z.current&&c&&c.length>0&&(z.current=new xt(c,T));let l=z.current;if(l&&s&&i){let e=t*r.rate,n=l.tick(e,s);if(zr(n,a,te,E),V.current&&n.stateIndex!==H.current&&jr(V,H,C),R&&I&&L&&n.soundDataBlockIds.length>0){let e=r.recording?.streamingPlayback.getDataBlockData.bind(r.recording.streamingPlayback);if(e)for(let t of n.soundDataBlockIds){let n=nt(t,e);if(n)if(n.isLooping){if(!V.current)try{let e=He(n.filename),t=et();it(e,I,e=>{if(t!==et()||V.current)return;let r=l.stateIndex,i=new we(L);i.setBuffer(e),i.setDistanceModel(`inverse`),i.setRefDistance(n.refDist),i.setMaxDistance(n.maxDist),i.setRolloffFactor(1),i.setVolume(n.volume),i.setPlaybackRate(u()),i.setLoop(!0),C.add(i),Ze(i),i.play(),V.current=i,H.current=r})}catch{}}else Xe(n,L,I,void 0,C)}}j.current&&(j.current.timeScale=n.spinTimeScale)}i?w.update(t*r.rate):w.update(0)},t[35]=R,t[36]=L,t[37]=I,t[38]=o,t[39]=n.weaponImageState,t[40]=n.weaponImageStates,t[41]=T,t[42]=E,t[43]=C,t[44]=w,t[45]=G):G=t[45],i(G),null}function Ir(e){return e()}function Lr(){}function Rr(){return ct.getState().time}function zr(e,t,n,r){let i=e.sequenceName,a=n.current;if(i===a&&!e.transitioned)return;if(i!==a){if(a){let e=r.get(a);if(e)for(let t of e)t.visible=!1}if(i){let e=r.get(i);if(e)for(let t of e)t.visible=!0}}if(!i){if(a){let e=t.get(a);e&&e.fadeOut(J),n.current=null}return}let o=t.get(i);if(o&&(e.transitioned||i!==a)){let r=a?t.get(a):null;if(e.isFiring||e.timeoutValue>0?(o.setLoop(f,1),o.clampWhenFinished=!0):(o.setLoop(ne,1/0),o.clampWhenFinished=!1),e.scaleAnimation&&e.timeoutValue>0){let t=o.getClip().duration;o.timeScale=t>0?t/e.timeoutValue:1}else o.timeScale=e.reverse?-1:1;r&&r!==o?(r.fadeOut(J),o.reset().fadeIn(J).play()):o.reset().play(),n.current=i}}export{lr as a,nr as c,wt as d,lt as f,Cr as i,Wn as l,wr as n,er as o,yr as r,ar as s,Mr as t,zn as u}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,i as a,o}from"./react-three-fiber.esm-El6vNTZj.js";import{t as s}from"./Html-CXAi5FD_.js";import{a as c,i as l,s as u}from"./SettingsProvider-BdqQ2Cm4.js";import{t as d}from"./useQuery-6REtM5HO.js";import{$ as f,B as p,Bt as m,Ct as h,F as g,G as _,Gt as v,I as y,It as b,J as x,K as S,L as C,M as w,Mt as T,Nt as E,O as D,Ot as O,P as k,Pt as ee,Q as A,R as j,St as M,T as N,U as P,Ut as F,V as I,W as L,Wt as R,Y as z,Z as te,a as B,at as V,b as H,bt as U,ct as W,d as G,dt as K,et as ne,f as re,ft as ie,gt as ae,h as oe,ht as se,i as ce,it as le,lt as ue,m as de,mt as fe,nt as pe,o as me,pt as he,q as ge,rt as _e,s as ve,st as q,tt as ye,ut as be,v as xe,vt as Se,wt as Ce,xt as we,yt as Te,z as Ee,zt as De}from"./three.module-DKAirPAO.js";import{_ as Oe,a as ke,c as Ae,g as je,h as Me,i as Ne,l as Pe,s as Fe,t as J,u as Ie,v as Le,y as Re}from"./playbackUtils-DuS6opSR.js";import{t as ze}from"./textureUtils-Bk_jPZib.js";import{d as Be,p as Ve,r as He}from"./loaders-5n1D4iOD.js";import{t as Ue}from"./logger-B058WGzf.js";import{a as We,i as Ge,n as Ke,r as qe,s as Je}from"./engineStore-B1KAgiiF.js";import{t as Ye}from"./useAnisotropy-D9othEmk.js";import{a as Xe,c as Ze,d as Qe,f as $e,i as et,l as tt,o as nt,p as rt,r as it}from"./AudioEmitter-3VHhCc7Y.js";import{r as at}from"./cameraTourStore-CtH3IrnD.js";import{t as ot}from"./DebugBounds-CZKrvsAw.js";import{t as st}from"./DebugSuspense-ChOWTvws.js";import{n as ct}from"./streamPlaybackStore-D5ldcfU5.js";function lt(e){let t=new Map,n=new Map,r=e.clone();return ut(e,r,function(e,r){t.set(r,e),n.set(e,r)}),r.traverse(function(e){if(!e.isSkinnedMesh)return;let r=e,i=t.get(e),a=i.skeleton.bones;r.skeleton=i.skeleton.clone(),r.bindMatrix.copy(i.bindMatrix),r.skeleton.bones=a.map(function(e){return n.get(e)}),r.bind(r.skeleton,r.bindMatrix)}),r}function ut(e,t,n){n(e,t);for(let r=0;r2||s>ft*ft)return r?{animation:`jet`,timeScale:1}:{animation:`root`,timeScale:1};let c=pt(t),l=Math.cos(c),u=Math.sin(c),d=i*l+a*u,f=-i*u+a*l,p=f,m=-f,h=-d,g=Math.max(p,m,h,d);return g0&&(this.delayTime=e[0].timeoutValue??0)}get stateIndex(){return this.currentStateIndex}reset(){this.currentStateIndex=0,this.delayTime=this.states.length>0?this.states[0].timeoutValue??0:0,this.lastFireCount=-1}tick(e,t){if(this.states.length===0)return{sequenceName:null,isFiring:!1,spinTimeScale:0,reverse:!1,scaleAnimation:!1,timeoutValue:0,transitioned:!1,soundDataBlockIds:[],stateIndex:-1};let n=this.lastFireCount>=0&&t.fireCount!==this.lastFireCount;this.lastFireCount=t.fireCount;let r=[];if(n){let e=this.states.findIndex(e=>e.fire);if(e>=0&&e!==this.currentStateIndex){this.currentStateIndex=e,this.delayTime=this.states[e].timeoutValue??0;let t=this.states[e].soundDataBlockId;t>=0&&r.push(t)}}this.delayTime-=e;let i=n,a=this.evaluateTickTransitions(t),o=0;for(;a>=0&&o=0&&r.push(c),this.states[a].spin){case _t:this.spinTimeScale=0;break;case bt:this.spinTimeScale=1;break;case vt:e===yt&&s>0&&(this.delayTime*=1-n/s);break;case yt:e===vt&&s>0&&(this.delayTime*=1-n/s);break}a=this.evaluateEntryTransitions(t)}let s=this.states[this.currentStateIndex],c=s.timeoutValue??0;switch(s.spin){case _t:this.spinTimeScale=0;break;case vt:this.spinTimeScale=c>0?Math.max(0,1-this.delayTime/c):1;break;case bt:this.spinTimeScale=1;break;case yt:this.spinTimeScale=c>0?Math.max(0,this.delayTime/c):0;break}return{sequenceName:this.resolveSequenceName(s),isFiring:s.fire,spinTimeScale:this.spinTimeScale,reverse:!s.direction,scaleAnimation:s.scaleAnimation,timeoutValue:s.timeoutValue??0,transitioned:i,soundDataBlockIds:r,stateIndex:this.currentStateIndex}}evaluateTickTransitions(e){let t=this.states[this.currentStateIndex],n=this.delayTime<=0;if(!(n||!t.waitForTimeout))return-1;let r=this.evaluateConditions(t,e);if(r!==-1)return r;if(n){let e=t.transitionOnTimeout;if(e!==ht)return e}return-1}evaluateEntryTransitions(e){let t=this.states[this.currentStateIndex];return this.evaluateConditions(t,e)}evaluateConditions(e,t){let n=t.loaded?e.transitionOnLoaded:e.transitionOnNotLoaded;if(n!==ht)return n;let r=t.ammo?e.transitionOnAmmo:e.transitionOnNoAmmo;if(r!==ht)return r;let i=t.target?e.transitionOnTarget:e.transitionOnNoTarget;if(i!==ht)return i;let a=t.wet?e.transitionOnWet:e.transitionOnNotWet;if(a!==ht)return a;let o=t.triggerDown?e.transitionOnTriggerDown:e.transitionOnTriggerUp;return o===ht?-1:o}resolveSequenceName(e){return e.sequence==null||e.sequence<0?null:this.seqIndexToName[e.sequence]??null}},Y=e(n(),1),St=(0,Y.createContext)(null),Ct={didCatch:!1,error:null},wt=class extends Y.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Ct}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(...e){let{error:t}=this.state;t!==null&&(this.props.onReset?.({args:e,reason:`imperative-api`}),this.setState(Ct))}componentDidCatch(e,t){this.props.onError?.(e,t)}componentDidUpdate(e,t){let{didCatch:n}=this.state,{resetKeys:r}=this.props;n&&t.error!==null&&Tt(e.resetKeys,r)&&(this.props.onReset?.({next:r,prev:e.resetKeys,reason:`keys`}),this.setState(Ct))}render(){let{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:i,error:a}=this.state,o=e;if(i){let e={error:a,resetErrorBoundary:this.resetErrorBoundary};if(typeof t==`function`)o=t(e);else if(n)o=(0,Y.createElement)(n,e);else if(r!==void 0)o=r;else throw a}return(0,Y.createElement)(St.Provider,{value:{didCatch:i,error:a,resetErrorBoundary:this.resetErrorBoundary}},o)}};function Tt(e=[],t=[]){return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}var Et=parseInt(`182`.replace(/\D+/g,``));function Dt(e,t){if(t===0)return console.warn(`THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.`),e;if(t===2||t===1){let n=e.getIndex();if(n===null){let t=[],r=e.getAttribute(`position`);if(r!==void 0){for(let e=0;e=2.0 are supported.`));return}let s=new On(i,{path:t||this.resourcePath||``,crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});s.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&o[t]===void 0&&console.warn(`THREE.GLTFLoader: Unknown extension "`+t+`".`)}}s.setExtensions(a),s.setPlugins(o),s.parse(n,r)}parseAsync(e,t){let n=this;return new Promise(function(r,i){n.parse(e,t,r,i)})}};function Pt(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var X={KHR_BINARY_GLTF:`KHR_binary_glTF`,KHR_DRACO_MESH_COMPRESSION:`KHR_draco_mesh_compression`,KHR_LIGHTS_PUNCTUAL:`KHR_lights_punctual`,KHR_MATERIALS_CLEARCOAT:`KHR_materials_clearcoat`,KHR_MATERIALS_DISPERSION:`KHR_materials_dispersion`,KHR_MATERIALS_IOR:`KHR_materials_ior`,KHR_MATERIALS_SHEEN:`KHR_materials_sheen`,KHR_MATERIALS_SPECULAR:`KHR_materials_specular`,KHR_MATERIALS_TRANSMISSION:`KHR_materials_transmission`,KHR_MATERIALS_IRIDESCENCE:`KHR_materials_iridescence`,KHR_MATERIALS_ANISOTROPY:`KHR_materials_anisotropy`,KHR_MATERIALS_UNLIT:`KHR_materials_unlit`,KHR_MATERIALS_VOLUME:`KHR_materials_volume`,KHR_TEXTURE_BASISU:`KHR_texture_basisu`,KHR_TEXTURE_TRANSFORM:`KHR_texture_transform`,KHR_MESH_QUANTIZATION:`KHR_mesh_quantization`,KHR_MATERIALS_EMISSIVE_STRENGTH:`KHR_materials_emissive_strength`,EXT_MATERIALS_BUMP:`EXT_materials_bump`,EXT_TEXTURE_WEBP:`EXT_texture_webp`,EXT_TEXTURE_AVIF:`EXT_texture_avif`,EXT_MESHOPT_COMPRESSION:`EXT_meshopt_compression`,EXT_MESH_GPU_INSTANCING:`EXT_mesh_gpu_instancing`},Ft=class{constructor(e){this.parser=e,this.name=X.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let n=0,r=t.length;n=0)throw Error(`THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures`);return null}return t.loadTextureImage(e,i.source,a)}},Yt=class{constructor(e){this.parser=e,this.name=X.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: WebP required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},Xt=class{constructor(e){this.parser=e,this.name=X.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: AVIF required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},Zt=class{constructor(e){this.name=X.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){let e=n.extensions[this.name],r=this.parser.getDependency(`buffer`,e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw Error(`THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files`);return null}return r.then(function(t){let n=e.byteOffset||0,r=e.byteLength||0,a=e.count,o=e.byteStride,s=new Uint8Array(t,n,r);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(a,o,s,e.mode,e.filter).then(function(e){return e.buffer}):i.ready.then(function(){let t=new ArrayBuffer(a*o);return i.decodeGltfBuffer(new Uint8Array(t),a,o,s,e.mode,e.filter),t})})}else return null}},Qt=class{constructor(e){this.name=X.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||n.mesh===void 0)return null;let r=t.meshes[n.mesh];for(let e of r.primitives)if(e.mode!==Z.TRIANGLES&&e.mode!==Z.TRIANGLE_STRIP&&e.mode!==Z.TRIANGLE_FAN&&e.mode!==void 0)return null;let i=n.extensions[this.name].attributes,a=[],o={};for(let e in i)a.push(this.parser.getDependency(`accessor`,i[e]).then(t=>(o[e]=t,o[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{let t=e.pop(),n=t.isGroup?t.children:[t],r=e[0].count,i=[];for(let e of n){let t=new _e,n=new R,a=new h,s=new R(1,1,1),c=new y(e.geometry,e.material,r);for(let e=0;e=152?{TEXCOORD_0:`uv`,TEXCOORD_1:`uv1`,TEXCOORD_2:`uv2`,TEXCOORD_3:`uv3`}:{TEXCOORD_0:`uv`,TEXCOORD_1:`uv2`},COLOR_0:`color`,WEIGHTS_0:`skinWeight`,JOINTS_0:`skinIndex`},hn={scale:`scale`,translation:`position`,rotation:`quaternion`,weights:`morphTargetInfluences`},gn={CUBICSPLINE:void 0,LINEAR:I,STEP:p},_n={OPAQUE:`OPAQUE`,MASK:`MASK`,BLEND:`BLEND`};function vn(e){return e.DefaultMaterial===void 0&&(e.DefaultMaterial=new W({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function yn(e,t,n){for(let r in n.extensions)e[r]===void 0&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=n.extensions[r])}function bn(e,t){t.extras!==void 0&&(typeof t.extras==`object`?Object.assign(e.userData,t.extras):console.warn(`THREE.GLTFLoader: Ignoring primitive type .extras, `+t.extras))}function xn(e,t,n){let r=!1,i=!1,a=!1;for(let e=0,n=t.length;e0||e.search(/^data\:image\/jpeg/)===0?`image/jpeg`:e.search(/\.webp($|\?)/i)>0||e.search(/^data\:image\/webp/)===0?`image/webp`:`image/png`}var Dn=new _e,On=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new Pt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,r=!1,i=-1;typeof navigator<`u`&&navigator.userAgent!==void 0&&(n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,r=navigator.userAgent.indexOf(`Firefox`)>-1,i=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>`u`||n||r&&i<98?this.textureLoader=new m(this.options.manager):this.textureLoader=new k(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new D(this.options.manager),this.fileLoader.setResponseType(`arraybuffer`),this.options.crossOrigin===`use-credentials`&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let n=this,r=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies(`scene`),n.getDependencies(`animation`),n.getDependencies(`camera`)])}).then(function(t){let a={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:n,userData:{}};return yn(i,a,r),bn(a,r),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(let e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,r=t.length;n{let n=this.associations.get(e);n!=null&&this.associations.set(t,n);for(let[n,r]of e.children.entries())i(r,t.children[n])};return i(n,r),r.name+=`_instance_`+ e.uses[t]++,r}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let n=0;n=2&&p.setY(t,u[e*a+1]),a>=3&&p.setZ(t,u[e*a+2]),a>=4&&p.setW(t,u[e*a+3]),a>=5)throw Error(`THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.`)}}return p})}loadTexture(e){let t=this.json,n=this.options,r=t.textures[e].source,i=t.images[r],a=this.textureLoader;if(i.uri){let e=n.manager.getHandler(i.uri);e!==null&&(a=e)}return this.loadTextureImage(e,r,a)}loadTextureImage(e,t,n){let r=this,i=this.json,a=i.textures[e],o=i.images[t],s=(o.uri||o.bufferView)+`:`+a.sampler;if(this.textureCache[s])return this.textureCache[s];let c=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||o.name||``,t.name===``&&typeof o.uri==`string`&&o.uri.startsWith(`data:image/`)===!1&&(t.name=o.uri);let n=(i.samplers||{})[a.sampler]||{};return t.magFilter=dn[n.magFilter]||1006,t.minFilter=dn[n.minFilter]||1008,t.wrapS=fn[n.wrapS]||1e3,t.wrapT=fn[n.wrapT]||1e3,r.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[s]=c,c}loadImageSource(e,t){let n=this,r=this.json,i=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(e=>e.clone());let a=r.images[e],o=self.URL||self.webkitURL,s=a.uri||``,c=!1;if(a.bufferView!==void 0)s=n.getDependency(`bufferView`,a.bufferView).then(function(e){c=!0;let t=new Blob([e],{type:a.mimeType});return s=o.createObjectURL(t),s});else if(a.uri===void 0)throw Error(`THREE.GLTFLoader: Image `+e+` is missing URI and bufferView`);let l=Promise.resolve(s).then(function(e){return new Promise(function(n,r){let a=n;t.isImageBitmapLoader===!0&&(a=function(e){let t=new De(e);t.needsUpdate=!0,n(t)}),t.load(A.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){return c===!0&&o.revokeObjectURL(s),bn(e,a),e.userData.mimeType=a.mimeType||En(a.uri),e}).catch(function(e){throw console.error(`THREE.GLTFLoader: Couldn't load texture`,s),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,r){let i=this;return this.getDependency(`texture`,n.index).then(function(a){if(!a)return null;if(n.texCoord!==void 0&&n.texCoord>0&&(a=a.clone(),a.channel=n.texCoord),i.extensions[X.KHR_TEXTURE_TRANSFORM]){let e=n.extensions===void 0?void 0:n.extensions[X.KHR_TEXTURE_TRANSFORM];if(e){let t=i.associations.get(a);a=i.extensions[X.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),i.associations.set(a,t)}}return r!==void 0&&(typeof r==`number`&&(r=r===jt?kt:At),`colorSpace`in a?a.colorSpace=r:a.encoding=r===kt?jt:Mt),e[t]=a,a})}assignFinalMaterial(e){let t=e.geometry,n=e.material,r=t.attributes.tangent===void 0,i=t.attributes.color!==void 0,a=t.attributes.normal===void 0;if(e.isPoints){let e=`PointsMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new U,ye.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){let e=`LineBasicMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new L,ye.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(r||i||a){let e=`ClonedMaterial:`+n.uuid+`:`;r&&(e+=`derivative-tangents:`),i&&(e+=`vertex-colors:`),a&&(e+=`flat-shading:`);let t=this.cache.get(e);t||(t=n.clone(),i&&(t.vertexColors=!0),a&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return W}loadMaterial(e){let t=this,n=this.json,r=this.extensions,i=n.materials[e],a,o={},s=i.extensions||{},c=[];if(s[X.KHR_MATERIALS_UNLIT]){let e=r[X.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),c.push(e.extendParams(o,i,t))}else{let n=i.pbrMetallicRoughness||{};if(o.color=new H(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],At),o.opacity=e[3]}n.baseColorTexture!==void 0&&c.push(t.assignTexture(o,`map`,n.baseColorTexture,kt)),o.metalness=n.metallicFactor===void 0?1:n.metallicFactor,o.roughness=n.roughnessFactor===void 0?1:n.roughnessFactor,n.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(o,`metalnessMap`,n.metallicRoughnessTexture)),c.push(t.assignTexture(o,`roughnessMap`,n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}i.doubleSided===!0&&(o.side=2);let l=i.alphaMode||_n.OPAQUE;if(l===_n.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,l===_n.MASK&&(o.alphaTest=i.alphaCutoff===void 0?.5:i.alphaCutoff)),i.normalTexture!==void 0&&a!==V&&(c.push(t.assignTexture(o,`normalMap`,i.normalTexture)),o.normalScale=new F(1,1),i.normalTexture.scale!==void 0)){let e=i.normalTexture.scale;o.normalScale.set(e,e)}if(i.occlusionTexture!==void 0&&a!==V&&(c.push(t.assignTexture(o,`aoMap`,i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&a!==V){let e=i.emissiveFactor;o.emissive=new H().setRGB(e[0],e[1],e[2],At)}return i.emissiveTexture!==void 0&&a!==V&&c.push(t.assignTexture(o,`emissiveMap`,i.emissiveTexture,kt)),Promise.all(c).then(function(){let n=new a(o);return i.name&&(n.name=i.name),bn(n,i),t.associations.set(n,{materials:e}),i.extensions&&yn(r,n,i),n})}createUniqueName(e){let t=M.sanitizeNodeName(e||``);return t in this.nodeNamesUsed?t+`_`+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,n=this.extensions,r=this.primitiveCache;function i(e){return n[X.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return An(n,e,t)})}let a=[];for(let n=0,o=e.length;n0&&Sn(d,i),d.name=t.createUniqueName(i.name||`mesh_`+e),bn(d,i),u.extensions&&yn(r,d,u),t.assignFinalMaterial(d),c.push(d)}for(let n=0,r=c.length;n1?new w:t.length===1?t[0]:new fe,o!==t[0])for(let e=0,n=t.length;e{let t=new Map;for(let[e,n]of r.associations)(e instanceof ye||e instanceof De)&&t.set(e,n);return e.traverse(e=>{let n=r.associations.get(e);n!=null&&t.set(e,n)}),t})(i),i})}_createAnimationTracks(e,t,n,r,i){let a=[],o=e.name?e.name:e.uuid,s=[];hn[i.path]===hn.weights?e.traverse(function(e){e.morphTargetInfluences&&s.push(e.name?e.name:e.uuid)}):s.push(o);let c;switch(hn[i.path]){case hn.weights:c=he;break;case hn.rotation:c=Ce;break;case hn.position:case hn.scale:c=v;break;default:switch(n.itemSize){case 1:c=he;break;default:c=v;break}break}let l=r.interpolation===void 0?I:gn[r.interpolation],u=this._getArrayFromAccessor(n);for(let e=0,n=s.length;e{let n={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,n).then(t).catch(r)},n,r)}decodeDracoFile(e,t,n,r){let i={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(let e in t.attributeTypes){let n=t.attributeTypes[e];n.BYTES_PER_ELEMENT!==void 0&&(t.attributeTypes[e]=n.name)}let n=JSON.stringify(t);if(jn.has(e)){let t=jn.get(e);if(t.key===n)return t.promise;if(e.byteLength===0)throw Error(`THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.`)}let r,i=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(i,a).then(n=>(r=n,new Promise((n,a)=>{r._callbacks[i]={resolve:n,reject:a},r.postMessage({type:`decode`,id:i,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return o.catch(()=>!0).then(()=>{r&&i&&this._releaseTask(r,i)}),jn.set(e,{key:n,promise:o}),o}_createGeometry(e){let t=new oe;e.index&&t.setIndex(new de(e.index.array,1));for(let n=0;n{n.load(e,t,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e=typeof WebAssembly!=`object`||this.decoderConfig.type===`js`,t=[];return e?t.push(this._loadLibrary(`draco_decoder.js`,`text`)):(t.push(this._loadLibrary(`draco_wasm_wrapper.js`,`text`)),t.push(this._loadLibrary(`draco_decoder.wasm`,`arraybuffer`))),this.decoderPending=Promise.all(t).then(t=>{let n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let r=Nn.toString(),i=[`/* draco decoder */`,n,``,`/* worker */`,r.substring(r.indexOf(`{`)+1,r.lastIndexOf(`}`))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengtht._taskLoad?-1:1});let n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log(`Task load: `,this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{let t=e.draco,o=new t.Decoder,s=new t.DecoderBuffer;s.Init(new Int8Array(r),r.byteLength);try{let e=n(t,o,s,a),r=e.attributes.map(e=>e.array.buffer);e.index&&r.push(e.index.array.buffer),self.postMessage({type:`decode`,id:i.id,geometry:e},r)}catch(e){console.error(e),self.postMessage({type:`error`,id:i.id,error:e.message})}finally{t.destroy(s),t.destroy(o)}});break}};function n(e,t,n,a){let o=a.attributeIDs,s=a.attributeTypes,c,l,u=t.GetEncodedGeometryType(n);if(u===e.TRIANGULAR_MESH)c=new e.Mesh,l=t.DecodeBufferToMesh(n,c);else if(u===e.POINT_CLOUD)c=new e.PointCloud,l=t.DecodeBufferToPointCloud(n,c);else throw Error(`THREE.DRACOLoader: Unexpected geometry type.`);if(!l.ok()||c.ptr===0)throw Error(`THREE.DRACOLoader: Decoding failed: `+l.error_msg());let d={index:null,attributes:[]};for(let n in o){let r=self[s[n]],l,u;if(a.useUniqueIDs)u=o[n],l=t.GetAttributeByUniqueId(c,u);else{if(u=t.GetAttributeId(c,e[o[n]]),u===-1)continue;l=t.GetAttribute(c,u)}d.attributes.push(i(e,t,c,n,r,l))}return u===e.TRIANGULAR_MESH&&(d.index=r(e,t,c)),e.destroy(c),d}function r(e,t,n){let r=n.num_faces()*3,i=r*4,a=e._malloc(i);t.GetTrianglesUInt32Array(n,i,a);let o=new Uint32Array(e.HEAPF32.buffer,a,r).slice();return e._free(a),{array:o,itemSize:1}}function i(e,t,n,r,i,o){let s=o.num_components(),c=n.num_points()*s,l=c*i.BYTES_PER_ELEMENT,u=a(e,i),d=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,o,u,l,d);let f=new i(e.HEAPF32.buffer,d,c).slice();return e._free(d),{name:r,array:f,itemSize:s}}function a(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}}var Pn,Fn=()=>{if(Pn)return Pn;let e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!=`object`)return{supported:!1};let n=`B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB`;WebAssembly.validate(e)&&(n=`B9h9z9tFBBBFiI9gBB9gLaaaaaFa9gEaaaB9gFaFaEMcBBFBFFGGGEILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBOn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBNI9z9iqlBVc+N9IcIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMk8lLbaE97F9+FaL978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAeDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAeDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBReCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBH8ZCFD9tA8ZAPD9OD9hD9RH8ZDQBTFtGmEYIPLdKeOnHpAIAQJDBIBHyCFD9tAyAPD9OD9hD9RHyAIASJDBIBH8cCFD9tA8cAPD9OD9hD9RH8cDQBTFtGmEYIPLdKeOnH8dDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAeD9uHeDyBjGBAEAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeApA8dDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeAdA8ZDQNiV8ZcpMyS8cQ8df8eb8fHdAyA8cDQNiV8ZcpMyS8cQ8df8eb8fH8ZDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeAdA8ZDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/dLEK97FaF97GXGXAGCI9HQBAF9FQFCBRGEXABABDBBBHECiD+rFCiD+sFD/6FHIAECND+rFCiD+sFD/6FAID/gFAECTD+rFCiD+sFD/6FHLD/gFD/kFD/lFHKCBDtD+2FHOAICUUUU94DtHND9OD9RD/kFHI9DBB/+hDYAIAID/mFAKAKD/mFALAOALAND9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHLD/mF9DBBX9LDYHOD/kFCgFDtD9OAECUUU94DtD9OD9QAIALD/mFAOD/kFCND+rFCU/+EDtD9OD9QAKALD/mFAOD/kFCTD+rFCUU/8ODtD9OD9QDMBBABCTJRBAGCIJHGAF9JQBSGMMAF9FQBCBRGEXABCTJHVAVDBBBHECBDtHOCUU98D8cFCUU98D8cEHND9OABDBBBHKAEDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAKAEDQBFGENVcMTtmYi8ZpyHECTD+sFD/6FHID/gFAECTD+rFCTD+sFD/6FHLD/gFD/kFD/lFHE9DB/+g6DYALAEAOD+2FHOALCUUUU94DtHcD9OD9RD/kFHLALD/mFAEAED/mFAIAOAIAcD9OD9RD/kFHEAED/mFD/kFD/kFD/jFD/nFHID/mF9DBBX9LDYHOD/kFCTD+rFALAID/mFAOD/kFCggEDtD9OD9QHLAEAID/mFAOD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHEDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAKAND9OALAEDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM/hEIGaF97FaL978jUUUUBCTlREGXAF9FQBCBRIEXAEABDBBBHLABCTJHKDBBBHODQILKOSQfbPden8c8d8e8fHNCTD+sFHVCID+rFDMIBAB9DBBU8/DY9D/zI818/DYAVCEDtD9QD/6FD/nFHVALAODQBFGENVcMTtmYi8ZpyHLCTD+rFCTD+sFD/6FD/mFHOAOD/mFAVALCTD+sFD/6FD/mFHcAcD/mFAVANCTD+rFCTD+sFD/6FD/mFHNAND/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHVD/mF9DBBX9LDYHLD/kFCggEDtHMD9OAcAVD/mFALD/kFCTD+rFD9QHcANAVD/mFALD/kFCTD+rFAOAVD/mFALD/kFAMD9OD9QHVDQBFTtGEmYILPdKOenHLD8dBAEDBIBDyB+t+J83EBABCNJALD8dFAEDBIBDyF+t+J83EBAKAcAVDQNVi8ZcMpySQ8c8dfb8e8fHVD8dBAEDBIBDyG+t+J83EBABCiJAVD8dFAEDBIBDyE+t+J83EBABCAJRBAICIJHIAF9JQBMMM9jFF97GXAGCGrAF9sHG9FQBCBRFEXABABDBBBHECND+rFCND+sFD/6FAECiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBABCTJRBAFCIJHFAG9JQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB`);let r,i=WebAssembly.instantiate(a(n),{}).then(e=>{r=e.instance,r.exports.__wasm_call_ctors()});function a(e){let n=new Uint8Array(e.length);for(let t=0;t96?r-71:r>64?r-65:r>47?r+4:r>46?63:62}let r=0;for(let i=0;i{n&&n(r),e&&(In||=new Mn,In.setDecoderPath(typeof e==`string`?e:Ln),r.setDRACOLoader(In)),t&&r.setMeshoptDecoder(typeof Fn==`function`?Fn():Fn)}}var zn=(e,t,n,r)=>o(Nt,e,Rn(t,n,r));zn.preload=(e,t,n,r)=>o.preload(Nt,e,Rn(t,n,r)),zn.clear=e=>o.clear(Nt,e),zn.setDecoderPath=e=>{Ln=e};var Q=t(),Bn=4;function Vn(e,t){let n=(0,Q.c)(10),{audioLoader:r,audioListener:a}=Qe(),{audioEnabled:o}=c(),s;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=Array.from({length:Bn},Un),n[0]=s):s=n[0];let l=(0,Y.useRef)(s),d;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(d=new Map,n[1]=d):d=n[1];let f=(0,Y.useRef)(d),p,m;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>{for(let e of l.current)if(e){tt(e.sound);try{e.sound.stop()}catch{}try{e.sound.disconnect()}catch{}e.sound.parent?.remove(e.sound)}l.current=Array.from({length:Bn},Hn)},m=[],n[2]=p,n[3]=m):(p=n[2],m=n[3]),(0,Y.useEffect)(p,m);let h;n[4]!==o||n[5]!==a||n[6]!==r||n[7]!==t||n[8]!==e?(h=()=>{if(!o||!a||!r||!t)return;let n=e.current?.soundSlots,i=l.current,s=qe.getState().playback.status===`playing`,c=[];if(n)for(let e of n)c[e.index]=e;for(let e=0;e{f.current.set(l,{profile:t,buffer:e})})}catch{}}}else if(d){tt(d.sound);try{d.sound.stop()}catch{}d.sound.parent?.remove(d.sound),i[e]=null}}},n[4]=o,n[5]=a,n[6]=r,n[7]=t,n[8]=e,n[9]=h):h=n[9],i(h)}function Hn(){return null}function Un(){return null}function Wn(e,t){if(e!=null){let t=qe.getState().playback.recording?.streamingPlayback;if(t)return!!t.getDataBlockData(e)?.emap}if(t){let e=qe.getState().runtime.runtime;if(e)return!!e.state.datablocks.get(t)?.emap}return!1}function Gn(e){if(e==null)return!1;let t=qe.getState().playback.recording?.streamingPlayback;return t?!!t.getDataBlockData(e)?.emap:!1}var $=r(),Kn=null;function qn(){return Kn||(Kn=ze(Ve(`special/cloakTexture`)),Kn.wrapS=O,Kn.wrapT=O,Kn.colorSpace=``),Kn}var Jn=0,Yn=0,Xn=-1;function Zn(e){e!==Xn&&(Xn=e,Jn=(Jn+1)%128,Yn=(Yn+1)%127,qn().offset.set(Jn/127,Yn/126))}var Qn=[0,Math.PI/2,0],$n=Ue(`GenericShape`);function er(e){let t=(0,Q.c)(20),{shapeName:n,imageDataBlockId:r,entityId:i,shapeType:a,skinName:o}=e,s=a===void 0?`StaticShape`:a,c=nr(n),l;t[0]===r?l=t[1]:(l=Gn(r),t[0]=r,t[1]=l);let u=l,d;if(t[2]!==c.animations||t[3]!==c.scene){bb0:{let e=Ae(c.scene,c.animations,`Mountpoint`);if(!e){d=null;break bb0}let n=e.quaternion.clone().invert(),r=e.position.clone().negate().applyQuaternion(n),i;t[5]!==r||t[6]!==n?(i={position:r,quaternion:n},t[5]=r,t[6]=n,t[7]=i):i=t[7],d=i}t[2]=c.animations,t[3]=c.scene,t[4]=d}else d=t[4];let f=d,p=f?.position,m=f?.quaternion,h;t[8]!==u||t[9]!==i||t[10]!==o?(h=(0,$.jsx)(ar,{emap:u,entityId:i,skinName:o,noRotation:!0}),t[8]=u,t[9]=i,t[10]=o,t[11]=h):h=t[11];let g;t[12]!==p||t[13]!==m||t[14]!==h?(g=(0,$.jsx)(`group`,{position:p,quaternion:m,children:h}),t[12]=p,t[13]=m,t[14]=h,t[15]=g):g=t[15];let _;return t[16]!==n||t[17]!==s||t[18]!==g?(_=(0,$.jsx)(Le,{shapeName:n,type:s,children:g}),t[16]=n,t[17]=s,t[18]=g,t[19]=_):_=t[19],_}function tr(){let{recording:e}=qe.getState().playback;return e==null?performance.now()/1e3:Ke()/1e3}function nr(e){let t=(0,Q.c)(2),n;return t[0]===e?n=t[1]:(n=Be(e),t[0]=e,t[1]=n),zn(n)}function rr(e){let t=(0,Q.c)(9),{color:n,label:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`boxGeometry`,{args:[10,10,10]}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(`meshStandardMaterial`,{color:n,wireframe:!0}),t[1]=n,t[2]=a);let o;t[3]!==n||t[4]!==r?(o=r?(0,$.jsx)($e,{color:n,children:r}):null,t[3]=n,t[4]=r,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,$.jsxs)(`mesh`,{children:[i,a,o]}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function ir(e){let t=(0,Q.c)(4),{color:n,label:r}=e,{debugMode:i}=l(),a;return t[0]!==n||t[1]!==i||t[2]!==r?(a=i?(0,$.jsx)(rr,{color:n,label:r}):null,t[0]=n,t[1]=i,t[2]=r,t[3]=a):a=t[3],a}var ar=(0,Y.memo)(function(e){let t=(0,Q.c)(24),{loadingColor:n,streamEntity:r,emap:i,entityId:a,children:o,mounted:s,noRotation:c,skinName:l,lightConfig:u}=e,d=n===void 0?`yellow`:n,{shapeName:f}=Re();if(!f){let e=`${a}: `,n;return t[0]===e?n=t[1]:(n=(0,$.jsx)(ir,{color:`orange`,label:e}),t[0]=e,t[1]=n),n}let p=`${a}: ${f}`,m;t[2]===p?m=t[3]:(m=(0,$.jsx)(ir,{color:`red`,label:p}),t[2]=p,t[3]=m);let h;t[4]===f?h=t[5]:(h=e=>{$n.error(`Shape error: %s: %o`,f,e)},t[4]=f,t[5]=h);let g;t[6]===d?g=t[7]:(g=(0,$.jsx)(rr,{color:d}),t[6]=d,t[7]=g);let _;t[8]!==o||t[9]!==i||t[10]!==a||t[11]!==u||t[12]!==s||t[13]!==c||t[14]!==l||t[15]!==r?(_=(0,$.jsx)(sr,{streamEntity:r,emap:i,entityId:a,mounted:s,noRotation:c,skinName:l,lightConfig:u,children:o}),t[8]=o,t[9]=i,t[10]=a,t[11]=u,t[12]=s,t[13]=c,t[14]=l,t[15]=r,t[16]=_):_=t[16];let v;t[17]!==g||t[18]!==_?(v=(0,$.jsx)(Y.Suspense,{fallback:g,children:_}),t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;return t[20]!==m||t[21]!==h||t[22]!==v?(y=(0,$.jsx)(wt,{fallback:m,onError:h,children:v}),t[20]=m,t[21]=h,t[22]=v,t[23]=y):y=t[23],y}),or=(0,Y.memo)(function({gltf:e,streamEntity:t,emap:n,entityId:r,children:o,mounted:s,noRotation:u,skinName:d,lightConfig:p}){let{object:m,shapeName:h}=Re(),{debugMode:g}=l(),{animationEnabled:_}=c(),v=Ge(e=>e.runtime.runtime),y=Ye(),{clonedScene:b,mixer:x,clipsByName:S,morphClipsBySeq:C,visNodesBySequence:w,iflMeshes:T}=(0,Y.useMemo)(()=>{let t=lt(e.scene),r=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let n=new Set(t.userData.flag_names??[]),i=t.userData.resource_path;if(n.has(`IflMaterial`)&&i){let t=e.userData,a=t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,o=t?.ifl_duration?Number(t.ifl_duration):void 0,s=t?.ifl_sequence?!!t.ifl_cyclic:void 0,c=t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin);r.push({mesh:e,iflPath:`textures/${i}.ifl`,hasVisSequence:!!t?.vis_sequence,repeat:n.has(`SWrap`)||n.has(`TWrap`),iflSequence:a,iflDuration:o,iflCyclic:s,iflToolBegin:c})}}),Pe(t,h??void 0,{anisotropy:y,emap:n,skinName:d});for(let{mesh:e,hasVisSequence:t}of r)t||(e.visible=!0);let i=new Map;t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=(t,n,r,a)=>{if(!t||!Array.isArray(n)||n.length<=1||!r||r<=0)return;let o=i.get(t);o||(o=[],i.set(t,o)),!o.some(t=>t.mesh===e)&&o.push({mesh:e,keyframes:n,duration:r,cyclic:a})};n((t.vis_sequence??``).toLowerCase(),t.vis_keyframes,t.vis_duration,!!t.vis_cyclic);for(let e of Object.keys(t)){let r=e.match(/^vis_keyframes_(.+)$/);if(r){let e=r[1];n(e,t[`vis_keyframes_${e}`],t[`vis_duration_${e}`],!!t[`vis_cyclic_${e}`])}}});let a=new Set,o=t.userData?.dts_sequence_names,s=t.userData?.dts_sequence_blend;if(typeof o==`string`)try{let e=JSON.parse(o),t=typeof s==`string`?JSON.parse(s):[];for(let n=0;nr.length+1+5){let e=u.get(r);e||(e=[],u.set(r,e)),e.push(n),t=!0;break}if(t)continue}if(a.has(e)){let r=n.clone(),i=Ne(t,r);ve.makeClipAdditive(r,0,i,30),l.set(e,r)}else l.set(e,n)}return{clonedScene:t,mixer:l.size>0?new me(t):null,clipsByName:l,morphClipsBySeq:u,visNodesBySequence:i,iflMeshes:r}},[e.scene,e.animations,h,y,n,d]);(0,Y.useEffect)(()=>()=>{ke(b),x?.uncacheRoot(b)},[b,x]);let E=(0,Y.useRef)(new Map),D=(0,Y.useRef)(new Map),O=(0,Y.useRef)([]),k=(0,Y.useRef)(0),ee=(0,Y.useRef)(_);ee.current=_;let A=(0,Y.useRef)(null),j=(0,Y.useRef)(t);j.current=t;let M=(0,Y.useRef)(null),N=(0,Y.useRef)(null),P=(0,Y.useRef)(void 0);(0,Y.useEffect)(()=>{O.current=[],D.current.clear();for(let e of T)je(e.iflPath,{repeat:e.repeat}).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0);let r={atlas:t,mat:n,sequenceName:e.iflSequence,sequenceDuration:e.iflDuration,cyclic:e.iflCyclic,toolBegin:e.iflToolBegin};O.current.push(r),D.current.set(e.mesh,t)}).catch(t=>{$n.warn(`Failed to load IFL atlas for %s: %o`,e.iflPath,t)})},[T]);let{seqCyclicByName:F,seqBlendByName:I}=(0,Y.useMemo)(()=>{let t=new Map,n=new Map,r=e.scene.userData?.dts_sequence_names,i=e.scene.userData?.dts_sequence_cyclic,a=e.scene.userData?.dts_sequence_blend;if(typeof r==`string`)try{let e=JSON.parse(r),o=typeof i==`string`?JSON.parse(i):[],s=typeof a==`string`?JSON.parse(a):[];for(let r=0;r{let e=E.current,t=j.current==null;function n(e){if(e.mesh.visible=!0,e.mesh.material?.isMeshStandardMaterial){let t=e.mesh.material,n=Ie(t,e.mesh.userData?.vis??0);e.mesh.material=n.material}if(e.mesh.material&&!Array.isArray(e.mesh.material)){let t=e.mesh.material.userData??={};t._visOrigTransparent??(t._visOrigTransparent=e.mesh.material.transparent,t._visOrigDepthWrite=e.mesh.material.depthWrite,t._visOrigAlphaTest=e.mesh.material.alphaTest)}let t=D.current.get(e.mesh);t&&e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.map=t.texture,e.mesh.material.needsUpdate=!0)}function r(t,r,a=!0){let o=r.toLowerCase();i(t);let s=S.get(o),c=w.get(o),l={sequence:o,startTime:tr(),forward:a};if(s&&x){let e=x.clipAction(s),t=F.get(o)??!0;t?e.setLoop(ne,1/0):(e.setLoop(f,1),e.clampWhenFinished=!0),I.has(o)&&(e.blendMode=ce),e.timeScale=a?1:-1,e.reset(),a||(e.time=s.duration),e.play(),l.action=e;let n=C.get(o);if(n){l.morphActions=[];for(let e of n){let n=x.clipAction(e);n.setLoop(t?ne:f,t?1/0:1),t||(n.clampWhenFinished=!0),n.timeScale=a?1:-1,n.reset(),a||(n.time=e.duration),n.play(),l.morphActions.push(n)}}}if(c){for(let e of c)n(e);l.visNodes=c}e.set(t,l)}function i(t){let n=e.get(t);if(n){if(n.action&&n.action.stop(),n.morphActions)for(let e of n.morphActions)e.stop();if(n.visNodes){for(let e of n.visNodes)if(e.mesh.material&&!Array.isArray(e.mesh.material)){let t=e.mesh.material;t.opacity=e.keyframes[0],e.mesh.visible=e.keyframes[0]>.01;let n=t.userData;n?._visOrigTransparent!=null&&(t.transparent=n._visOrigTransparent,t.depthWrite=n._visOrigDepthWrite,t.alphaTest=n._visOrigAlphaTest)}}e.delete(t)}}if(M.current=r,N.current=i,x&&S.has(`wheel0`)){let e=[];for(let t=0;t<6;t++){let n={rotation:0},r=S.get(`wheel${t}`);if(r){let e=x.clipAction(r);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),n.wheelAction=e}let i=S.get(`spring${t}`);if(i){let e=x.clipAction(i);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=0,n.springAction=e}let a=S.get(`turn${t}`);if(a){let e=x.clipAction(a);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=a.duration*.5,n.turnAction=e}e.push(n)}A.current=e}else A.current=null;if(!t)return()=>{M.current=null,N.current=null,P.current=void 0,A.current=null;for(let t of[...e.keys()])i(t)};let a=[];v&&(a.push(v.$.onMethodCalled(`ShapeBase`,`playThread`,(e,t,n)=>{e._id===m?._id&&r(Number(t),String(n))})),a.push(v.$.onMethodCalled(`ShapeBase`,`stopThread`,(e,t)=>{e._id===m?._id&&i(Number(t))})),a.push(v.$.onMethodCalled(`ShapeBase`,`pauseThread`,(t,n)=>{if(t._id!==m?._id)return;let r=e.get(Number(n));if(r?.action&&(r.action.paused=!0,r.morphActions))for(let e of r.morphActions)e.paused=!0})));for(let[e,t]of[[0,`power`],[1,`ambient`]])(S.has(t)||w.has(t)||C.has(t))&&r(e,t);return()=>{a.forEach(e=>e()),M.current=null,N.current=null,P.current=void 0,A.current=null;for(let t of[...e.keys()])i(t)}},[x,S,w,F,I,m,v]);let L=(0,Y.useMemo)(()=>{let t=e.scene.userData?.dts_sequence_names;if(typeof t==`string`)try{return JSON.parse(t).map(e=>e.toLowerCase())}catch{}return e.animations.map(e=>e.name.toLowerCase())},[e]);i((e,t)=>{let n=E.current,r=j.current!=null,i=qe.getState().playback,a=r?i.status===`playing`?t*i.rate:0:t,o=j.current?.threads,s=P.current;if(o!==s){let e=M.current,t=N.current;if(e&&t){P.current=o;let r=[];if(o)for(let e of o)r[e.index]=e;let i=[];if(s)for(let e of s)i[e.index]=e;let a=Math.max(r.length,i.length);for(let o=0;o.01}}else{let t=n.get(o);if(!t||t.sequence!==r||t.forward!==a.forward)e(o,r,a.forward);else if(t?.action?.paused&&(t.action.paused=!1,t.action.timeScale=a.forward?1:-1,t.morphActions))for(let e of t.morphActions)e.paused=!1,e.timeScale=a.forward?1:-1}}else s&&t(o)}}}x&&_&&x.update(a);for(let[,e]of n)if(e.visNodes)for(let{mesh:t,keyframes:n,duration:r,cyclic:i}of e.visNodes){let a=t.material;if(!a||Array.isArray(a))continue;if(!_){a.opacity=n[0],t.visible=a.opacity>.01;continue}let o=tr()-e.startTime,s;s=i?(o%r+r)%r/r:e.forward?Math.min(o/r,1):Math.max(1-o/r,0);let c=n.length,l=s*(c-1),u=Math.min(Math.floor(l),c-1),d=Math.min(u+1,c-1),f=l-u;a.opacity=n[u]+(n[d]-n[u])*f,t.visible=a.opacity>.01;let p=a.userData;a.opacity>=.99?p?._visOrigTransparent!=null&&(a.transparent!==p._visOrigTransparent&&(a.transparent=p._visOrigTransparent,a.needsUpdate=!0),a.depthWrite=p._visOrigDepthWrite,a.alphaTest=p._visOrigAlphaTest):a.transparent||(a.transparent=!0,a.depthWrite=!1,a.alphaTest=0,a.needsUpdate=!0)}let c=j.current?.damageState??0,l=w.get(`visibility`);if(l){let e=c>=2?1:0;for(let{mesh:t,keyframes:n}of l){let r=t.material;if(!r||Array.isArray(r))continue;let i=n.length;r.opacity=n[Math.min(Math.floor(e*i),i-1)],t.visible=r.opacity>.01}}let u=A.current;if(u&&_){let e=j.current,t=e?.wheels,n=e?.steeringYaw??0,r=e?.maxSteeringAngle??.3;for(let e=0;e0){k.current+=a;for(let e of d){let t=(e,t)=>{Oe(e.atlas,t),e.atlas.swapMode&&e.mat.map!==e.atlas.texture&&(e.mat.map=e.atlas.texture,e.mat.needsUpdate=!0)},r=0;if(_){let t=0;if(e.sequenceName&&e.sequenceDuration){for(let[,r]of n)if(r.sequence===e.sequenceName){let n=tr()-r.startTime,i=e.sequenceDuration;t=(e.cyclic?n/i%1:Math.min(n/i,1))*i+(e.toolBegin??0);break}}else t=k.current;r=Me(e.atlas,t)}t(e,r)}}});let z=(0,Y.useRef)(1),te=(0,Y.useRef)(0);i(e=>{let t=j.current,n=t?.fadeVal??1,r=t?.cloakLevel??0,i=r>0;if(i&&Zn(e.frameloop===`never`?0:e.clock.elapsedTime*60|0),n===z.current&&r===te.current)return;z.current=n,te.current=r;let a=i?.125+(1-r)*.875:n,o=i?qn():Kn;b.traverse(e=>{if(!e.isMesh||!e.material||Array.isArray(e.material))return;let t=e.material,n=t.userData??={};n._baseFadeOpacity??(n._baseFadeOpacity=t.opacity??1,n._baseFadeTransparent=t.transparent??!1,n._originalMap=t.map,n._isOriginallyTranslucent=n._baseFadeTransparent||t.alphaTest>0||t.blending!==1);let r=n._baseFadeOpacity;i&&!n._isOriginallyTranslucent?t.map!==o&&(t.map=o,t.needsUpdate=!0):!i&&n._originalMap!==void 0&&t.map===o&&(t.map=n._originalMap,t.needsUpdate=!0),t.opacity=a*r,t.transparent=a<1||n._baseFadeTransparent,t.depthWrite=a>=1&&!n._baseFadeTransparent})}),Vn(j,b);let B=at(r??``),V=(0,Y.useMemo)(()=>{if(!B)return null;let t=new re().setFromObject(e.scene),n=new R,r=new R;return t.getCenter(n),t.getSize(r),{center:[n.x,n.y,n.z],size:[r.x,r.y,r.z]}},[B,e.scene]),U=(0,Y.useMemo)(()=>{let e={};return b.traverse(t=>{let n=t.name.match(/^Mount(\d+)$/);n&&(e[Number(n[1])]=t)}),Object.keys(e).length>0?e:null},[b]),W=(0,Y.useMemo)(()=>{let e=null;return b.traverse(t=>{t.name===`Eye`&&(e=t)}),e},[b]);(0,Y.useEffect)(()=>{if(!(!W||!r))return()=>{yr.delete(r)}},[W,r]),i(()=>{if(!W||!r)return;let e=yr.get(r);e||(e=new R,yr.set(r,e)),W.getWorldPosition(e),b.worldToLocal(e);let t=e.x,n=e.y,i=e.z;e.set(i,n,-t)});let G=(0,Y.useRef)(null),K=(0,Y.useMemo)(()=>{let t=p;if(!t)return null;let n=new re().setFromObject(e.scene),r=new R;return n.getCenter(r),{type:t.type,color:new H(t.color[0],t.color[1],t.color[2]),time:t.time,radius:t.radius,onlyStatic:t.onlyStatic,isStatic:t.isStatic,center:[r.x,r.y,r.z]}},[e.scene,p]);return i(()=>{if(!G.current||!K)return;if(K.onlyStatic&&!K.isStatic){G.current.intensity=0;return}let e=j.current?.fadeVal??1,t=tr()*1e3,n;n=K.type===2?(.15+(.5+.5*Math.sin(Math.PI*t/K.time))*.85)*e:e,G.current.intensity=n*K.radius*K.radius}),(0,$.jsxs)(`group`,{rotation:u?void 0:Qn,children:[(0,$.jsx)(`primitive`,{object:b}),K&&(0,$.jsx)(`pointLight`,{ref:G,color:K.color,position:K.center,intensity:0,distance:K.radius*2,decay:1}),g?(0,$.jsxs)($e,{children:[r,`: `,h]}):null,V&&(0,$.jsx)(`group`,{position:V.center,children:(0,$.jsx)(ot,{size:V.size})}),o,U&&s&&Object.entries(s).map(([e,t])=>{let n=U[Number(e)];return n?(0,$.jsx)(Y.Fragment,{children:a((0,$.jsx)(`group`,{children:t}),n)},e):null})]})});function sr(e){let t=(0,Q.c)(10),{streamEntity:n,emap:r,entityId:i,children:a,mounted:o,noRotation:s,skinName:c,lightConfig:l}=e,{shapeName:u}=Re(),d=nr(u),f;return t[0]!==a||t[1]!==r||t[2]!==i||t[3]!==d||t[4]!==l||t[5]!==o||t[6]!==s||t[7]!==c||t[8]!==n?(f=(0,$.jsx)(or,{gltf:d,streamEntity:n,emap:r,entityId:i,mounted:o,noRotation:s,skinName:c,lightConfig:l,children:a}),t[0]=a,t[1]=r,t[2]=i,t[3]=d,t[4]=l,t[5]=o,t[6]=s,t[7]=c,t[8]=n,t[9]=f):f=t[9],f}var cr=Ue(`ShapeErrorBoundary`),lr=class extends Y.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){cr.error(`Shape load failed: %s %s`,e.message,t.componentStack)}render(){return this.state.hasError?this.props.fallback:this.props.children}},ur={Root:`_Root_1i0cm_1`,Top:`_Top_1i0cm_10 _Root_1i0cm_1`,Bottom:`_Bottom_1i0cm_15 _Root_1i0cm_1`,IffArrow:`_IffArrow_1i0cm_20`,Name:`_Name_1i0cm_27`,HealthBar:`_HealthBar_1i0cm_35`,HealthFill:`_HealthFill_1i0cm_44`},dr=150,fr=.1,pr=-.2,mr=Ve(`gui/hud_alliedtriangle`),hr=Ve(`gui/hud_enemytriangle`),gr=[];function _r(e){let t=(0,Q.c)(23),{entity:n}=e,r=nr(n.shapeName),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={fadeDistance:dr},t[0]=a):a=t[0];let{groupRef:o,isVisible:c,opacityRef:l}=rt(a),u=(0,Y.useRef)(null),d=(0,Y.useRef)(null),f=(0,Y.useRef)(null),p=(0,Y.useRef)(null),m=(0,Y.useRef)(null),h;t[1]===r.scene?h=t[2]:(h=new re().setFromObject(r.scene),t[1]=r.scene,t[2]=h);let g=h.max.y+fr,_=n.keyframes??gr,v;t[3]===_?v=t[4]:(v=_.some(vr),t[3]=_,t[4]=v);let y=v,b;t[5]!==n.id||t[6]!==n.iffColor||t[7]!==n.playerName||t[8]!==y||t[9]!==c||t[10]!==_||t[11]!==l?(b=()=>{if(!c)return;let e=Fe(_,ct.getState().time),t=e?.health??1;if(e?.damageState!=null&&e.damageState>=1){u.current&&(u.current.style.opacity=`0`),d.current&&(d.current.style.opacity=`0`);return}let r=l.current;if(u.current&&(u.current.style.opacity=r),d.current&&(d.current.style.opacity=r),m.current){let e=n.playerName??n.id;m.current.textContent!==e&&(m.current.textContent=e)}if(p.current&&n.iffColor){let e=n.iffColor.r>n.iffColor.g?hr:mr;p.current.getAttribute(`src`)!==e&&(p.current.src=e)}f.current&&y&&(f.current.style.width=`${Math.max(0,Math.min(100,t*100))}%`,f.current.style.background=n.iffColor?`rgb(${n.iffColor.r}, ${n.iffColor.g}, ${n.iffColor.b})`:``)},t[5]=n.id,t[6]=n.iffColor,t[7]=n.playerName,t[8]=y,t[9]=c,t[10]=_,t[11]=l,t[12]=b):b=t[12],i(b);let x=n.iffColor&&n.iffColor.r>n.iffColor.g?hr:mr,S;t[13]!==n.id||t[14]!==n.playerName||t[15]!==y||t[16]!==g||t[17]!==x||t[18]!==c?(S=c&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(s,{position:[0,g,0],center:!0,children:(0,$.jsx)(`div`,{ref:u,className:ur.Top,children:(0,$.jsx)(`img`,{ref:p,className:ur.IffArrow,src:x,alt:``})})}),(0,$.jsx)(s,{position:[0,pr,0],center:!0,children:(0,$.jsxs)(`div`,{ref:d,className:ur.Bottom,children:[(0,$.jsx)(`div`,{ref:m,className:ur.Name,children:n.playerName??n.id}),y&&(0,$.jsx)(`div`,{className:ur.HealthBar,children:(0,$.jsx)(`div`,{ref:f,className:ur.HealthFill})})]})})]}),t[13]=n.id,t[14]=n.playerName,t[15]=y,t[16]=g,t[17]=x,t[18]=c,t[19]=S):S=t[19];let C;return t[20]!==o||t[21]!==S?(C=(0,$.jsx)(`group`,{ref:o,children:S}),t[20]=o,t[21]=S,t[22]=C):C=t[22],C}function vr(e){return e.health!=null}var yr=new Map,br=`https://assets.tribes2.online/skins/files/`,xr=`https://assets.tribes2.online/skins/manifest.json`,Sr={"light_male.dts":`lmale`,"light_female.dts":`lfemale`,"medium_male.dts":`mmale`,"medium_female.dts":`mfemale`,"heavy_male.dts":`hmale`,"bioderm_light.dts":`lbioderm`,"bioderm_medium.dts":`mbioderm`,"bioderm_heavy.dts":`hbioderm`},Cr=[`customSkinManifest`];async function wr(){let e=await fetch(xr);if(!e.ok)throw Error(`${e.status}`);let t=await e.json(),n={};if(t.customSkins)for(let[e,r]of Object.entries(t.customSkins))n[e]=new Set(r);return n}function Tr(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:Cr,queryFn:wr,staleTime:1/0,retry:1},e[0]=t):t=e[0],d(t)}var Er=8,Dr=[`root`,`run`,`back`,`side`,`fall`,`jet`,`jump`,`land`];function Or(e,t,n=0){let r=new Map,i=[];for(let n of e){let e=n.indexOf(` `);if(e===-1)continue;let r=n.slice(0,e).toLowerCase(),a=n.slice(e+1).trim().toLowerCase();if(!a||!r.startsWith(t)||!r.endsWith(`.dsq`))continue;let o=r.slice(t.length,-4);o&&i.push({clipName:o,alias:a})}let a=new Set;for(let e=0;e{let t=n?.toLowerCase();return t?e.runtime.sequenceAliases.get(t):void 0}),s=Ye(),l=Ge(e=>e.playback.streamSnapshot?.controlPlayerGhostId),{data:d}=Tr(),p=(0,Y.useMemo)(()=>{let t=e.skinPrefName??e.skinName;if(!t||t===`base`)return;let r=Sr[n.toLowerCase()];if(r){try{return Ve(`skins/${t}.${r}`,null)}catch{}if(d?.[r]?.has(t))return`${br}${t}.${r}.png`}},[e.skinPrefName,e.skinName,n,d]),m=(0,Y.useMemo)(()=>Wn(e.dataBlockId,e.dataBlock),[e.dataBlockId,e.dataBlock]),{clonedScene:h,mixer:g,mount0:_,mount1:v,mount2:y,eyeBone:b,iflInitializers:x}=(0,Y.useMemo)(()=>{let e=lt(r.scene),t=Pe(e,void 0,{anisotropy:s,emap:m,skinUrl:p});e.traverse(e=>{if(e.isMesh&&(e.frustumCulled=!1,e.material)){let t=Array.isArray(e.material)?e.material:[e.material];for(let e of t)e.side=0}});let n=new me(e),i=null,a=null,o=null,c=null;return e.traverse(e=>{!i&&e.name===`Mount0`&&(i=e),!a&&e.name===`Mount1`&&(a=e),!o&&e.name===`Mount2`&&(o=e),!c&&e.name===`Eye`&&(c=e)}),{clonedScene:e,mixer:n,mount0:i,mount1:a,mount2:o,eyeBone:c,iflInitializers:t}},[r.scene,s,m,p]);(0,Y.useEffect)(()=>()=>{yr.delete(e.id),ke(h),g.uncacheRoot(h)},[h,g]);let S=(0,Y.useRef)(new Map),C=(0,Y.useRef)({head:null,headside:null}),w=(0,Y.useRef)(new Map),T=(0,Y.useRef)(null),E=(0,Y.useRef)({name:`root`,timeScale:1}),D=(0,Y.useRef)(!1),O=(0,Y.useRef)(void 0),k=(0,Y.useMemo)(()=>{let e=t.getState().playback.recording?.streamingPlayback,i=n?.toLowerCase();if(!e||!i)return new Map;let a=e.getShapeConstructorSequences(i);if(!a)return new Map;let o=i.replace(/\.dts$/i,``)+`_`;return Or(a,o,Ar(r.scene,a,o))},[t,n,r.scene]),ee=(0,Y.useMemo)(()=>{let e=new Map,t=r.scene.userData?.dts_sequence_names,n=r.scene.userData?.dts_sequence_cyclic;if(typeof t==`string`&&typeof n==`string`)try{let r=JSON.parse(t),i=JSON.parse(n),a=new Map;for(let e=0;e{let e=Je(r.animations,g,o);S.current=e;let t=e.get(`root`);t&&t.play(),E.current={name:`root`,timeScale:1};let n={head:null,headside:null};for(let{key:e,names:t}of[{key:`head`,names:[`head`]},{key:`headside`,names:[`headside`]}]){let i=r.animations.find(e=>t.includes(e.name.toLowerCase()));if(!i)continue;let a=i.clone(),o=Math.round(i.duration*30/2);ve.makeClipAdditive(a,o,i,30);let s=g.clipAction(a);s.blendMode=ce,s.timeScale=0,s.weight=1,s.play(),n[e]=s}C.current=n;let i=r.animations.find(e=>e.name.toLowerCase()===`root`);if(i){let e=new Set;for(let t of r.animations){let n=t.name.toLowerCase();if([`forward`,`back`,`side`,`fall`].includes(n))for(let n of t.tracks)e.add(n.name.slice(0,n.name.lastIndexOf(`.`)))}let t=i.tracks.filter(t=>{let n=t.name.slice(0,t.name.lastIndexOf(`.`));return!e.has(n)});if(t.length>0){let e=new B(`root_arms`,i.duration,t);g.clipAction(e).play()}}let a=new Map,s=r.scene.userData?.dts_sequence_names,c=r.scene.userData?.dts_sequence_blend;if(typeof s==`string`&&typeof c==`string`)try{let e=JSON.parse(s),t=JSON.parse(c);for(let n=0;ne.name.toLowerCase()===i);if(!o)continue;let s=o.clone(),c=Ne(r.scene,s);ve.makeClipAdditive(s,0,c,30);let l=g.clipAction(s);l.blendMode=ce,l.timeScale=0,l.weight=0,l.play(),a.set(i,l)}}catch{}w.current=a;let l=a.get(`lookde`);return l&&(l.weight=1,T.current=`lookde`),g.update(0),()=>{g.stopAllAction(),S.current=new Map,C.current={head:null,headside:null},w.current=new Map,T.current=null}},[g,r.animations,o]),(0,Y.useEffect)(()=>{let e=[];for(let{mesh:t,initialize:n}of x)n(t,()=>ct.getState().time).then(t=>e.push(t)).catch(()=>{});return()=>e.forEach(e=>e())},[x]);let A=t=>e.imageSlots?.[t]?.shapeName,j=(0,Y.useRef)(A(0)),[M,N]=(0,Y.useState)(A(0)),P=(0,Y.useRef)(A(2)),[F,I]=(0,Y.useState)(A(2)),L=(0,Y.useRef)(A(3)),[z,te]=(0,Y.useState)(A(3)),V=(0,Y.useRef)(e);V.current=e,Vn(V,h);let{audioLoader:H,audioListener:U}=Qe(),{audioEnabled:W}=c(),G=(0,Y.useRef)(null),K=(0,Y.useRef)(null),re=(0,Y.useRef)(null);return(0,Y.useEffect)(()=>{if(!H)return;let n=t.getState().playback.recording?.streamingPlayback;if(!n||!e.dataBlockId)return;let r=n.getDataBlockData.bind(n),i=r(e.dataBlockId)?.sounds?.[0];if(i==null)return;let a=nt(i,r);if(a){re.current=a;try{it(He(a.filename),H,e=>{K.current=e})}catch{}}},[H,t,e.dataBlockId]),(0,Y.useEffect)(()=>()=>{let e=G.current;if(e){tt(e);try{e.stop()}catch{}try{e.disconnect()}catch{}e.parent?.remove(e),G.current=null}},[]),i((n,r)=>{let i=A(0);i!==j.current&&(j.current=i,N(i));let a=A(2);a!==P.current&&(P.current=a,I(a));let o=A(3);o!==L.current&&(L.current=o,te(o));let s=t.getState().playback,c=s.status===`playing`,l=ct.getState().time,d=Fe(e.keyframes??[],l),p=d?.damageState!=null&&d.damageState>=1,m=S.current;if(p&&!D.current){D.current=!0;let e=d.actionAnim==null?void 0:k.get(d.actionAnim);if(e){let t=m.get(e.clipName);if(t){let n=m.get(E.current.name.toLowerCase());n&&n.fadeOut(J),t.setLoop(f,1),t.clampWhenFinished=!0,t.reset().fadeIn(J).play(),E.current={name:e.clipName,timeScale:1},O.current=d.actionAnim}}}if(!p&&D.current){D.current=!1,O.current=void 0;let e=m.get(E.current.name.toLowerCase());e&&(e.stop(),e.setLoop(ne,1/0),e.clampWhenFinished=!1),E.current={name:`root`,timeScale:1};let t=m.get(`root`);t&&t.reset().play()}let _=d?.actionAnim,v=O.current;if(!D.current&&_!==v){O.current=_;let e=_!=null&&_>=Er,t=v!=null&&v>=Er;if(e){let e=k.get(_);if(e){let t=m.get(e.clipName);if(t){let n=m.get(E.current.name.toLowerCase());n&&n.fadeOut(J),t.setLoop(f,1),t.clampWhenFinished=!0,t.reset().fadeIn(J).play(),E.current={name:e.clipName,timeScale:1}}}}else if(t){let e=k.get(v);if(e){let t=m.get(e.clipName);t&&(t.fadeOut(J),t.setLoop(ne,1/0),t.clampWhenFinished=!1)}E.current={name:`root`,timeScale:1};let t=m.get(`root`);t&&t.reset().fadeIn(J).play()}}if(_!=null&&_>=Er&&d?.actionAtEnd){let e=k.get(_);if(e){let t=m.get(e.clipName);t&&(t.paused=!0)}}let y=O.current!=null&&O.current>=Er;if(!D.current&&!y){let t=mt(d?.velocity,d?.rotation??[0,0,0,1],e.falling,e.jetting),n=E.current;if(t.animation!==n.name||t.timeScale!==n.timeScale){let e=m.get(n.name.toLowerCase()),r=m.get(t.animation.toLowerCase());r&&(ee.get(t.animation)??!0?(r.setLoop(ne,1/0),r.clampWhenFinished=!1):(r.setLoop(f,1),r.clampWhenFinished=!0),c&&e&&e!==r?(e.fadeOut(J),r.reset().fadeIn(J).play()):(e&&e!==r&&e.stop(),r.reset().play()),r.timeScale=t.timeScale,E.current={name:t.animation,timeScale:t.timeScale})}}let x=(e.armAction==null?void 0:k.get(e.armAction))?.clipName??`lookde`;if(x!==T.current){let e=w.current,t=T.current?e.get(T.current):null,n=e.get(x);n&&(t&&(t.weight=0),n.weight=p?0:1,T.current=x)}let{head:M,headside:F}=C.current,z=T.current?w.current.get(T.current):null,B=p?0:1,V=e.headPitch??0,H=e.headYaw??0,ie=(V+1)/2,ae=(H+1)/2;z&&(z.time=ie*z.getClip().duration,z.weight=B),M&&(M.time=ie*M.getClip().duration,M.weight=B),F&&(F.time=ae*F.getClip().duration,F.weight=B);let oe=!!e.jetting&&!p,se=re.current,ce=G.current,le=ce?.isPlaying??!1;if(oe&&!le){if(W&&U&&K.current&&se){let e=ce;e||(e=new we(U),e.setDistanceModel(`inverse`),e.setRefDistance(se.refDist),e.setMaxDistance(se.maxDist),e.setRolloffFactor(1),e.setVolume(se.volume),h.add(e),G.current=e);try{e.setBuffer(K.current),e.setLoop(!0),e.setPlaybackRate(u()),e.play(),Ze(e,1)}catch{}}}else if(!oe&&le&&ce){tt(ce);try{ce.stop()}catch{}}if(c?g.update(r*s.rate):g.update(0),b){let t=yr.get(e.id);t||(t=new R,yr.set(e.id,t)),b.getWorldPosition(t),h.worldToLocal(t);let n=t.x,r=t.y,i=t.z;t.set(i,r,-n)}}),(0,$.jsxs)($.Fragment,{children:[e.id!==l&&(0,$.jsx)(_r,{entity:e}),(0,$.jsxs)(`group`,{rotation:[0,Math.PI/2,0],children:[(0,$.jsx)(`primitive`,{object:h}),(0,$.jsx)(Nr,{entityId:e.id,scene:r.scene})]}),M&&_&&(0,$.jsx)(lr,{fallback:(0,$.jsx)(rr,{color:`red`,label:M}),children:(0,$.jsx)(st,{name:`Weapon:${e.id}/${M}`,fallback:(0,$.jsx)(rr,{color:`cyan`,label:M}),children:(0,$.jsx)(Fr,{entity:e,weaponShape:M,mount0:_})})},M),F&&v&&a((0,$.jsx)(Y.Suspense,{children:(0,$.jsx)(er,{shapeName:F,imageDataBlockId:e.imageSlots?.[2]?.dataBlockId,entityId:e.id})}),v),z&&y&&a((0,$.jsx)(Y.Suspense,{children:(0,$.jsx)(er,{shapeName:z,imageDataBlockId:e.imageSlots?.[3]?.dataBlockId,entityId:e.id,skinName:e.imageSlots?.[3]?.skinName})}),y)]})}function Nr(e){let t=(0,Q.c)(19),{entityId:n,scene:r}=e,i=at(n),a;bb0:{if(!i){a=null;break bb0}let e,n;if(t[0]!==r){let i=new re().setFromObject(r);e=new R,n=new R,i.getCenter(e),i.getSize(n),t[0]=r,t[1]=e,t[2]=n}else e=t[1],n=t[2];let o;t[3]!==e.x||t[4]!==e.y||t[5]!==e.z?(o=[e.x,e.y,e.z],t[3]=e.x,t[4]=e.y,t[5]=e.z,t[6]=o):o=t[6];let s=o,c;t[7]!==n.x||t[8]!==n.y||t[9]!==n.z?(c=[n.x,n.y,n.z],t[7]=n.x,t[8]=n.y,t[9]=n.z,t[10]=c):c=t[10];let l=c,u;t[11]!==s||t[12]!==l?(u={center:s,size:l},t[11]=s,t[12]=l,t[13]=u):u=t[13],a=u}let o=a;if(!o)return null;let s;t[14]===o.size?s=t[15]:(s=(0,$.jsx)(ot,{size:o.size}),t[14]=o.size,t[15]=s);let c;return t[16]!==o.center||t[17]!==s?(c=(0,$.jsx)(`group`,{position:o.center,children:s}),t[16]=o.center,t[17]=s,t[18]=c):c=t[18],c}function Pr(e,t){let n=e.userData?.dts_sequence_names;if(typeof n==`string`)try{return JSON.parse(n).map(e=>e.toLowerCase())}catch{}return t.map(e=>e.name.toLowerCase())}function Fr(e){let t=(0,Q.c)(46),{entity:n,weaponShape:r,mount0:a}=e,o=We(),s=nr(r),l=n.imageSlots?.[0]?.dataBlockId,d;t[0]===l?d=t[1]:(d=Gn(l),t[0]=l,t[1]=d);let f=d,p=Ye(),m,h,g,_;if(t[2]!==p||t[3]!==f||t[4]!==s.animations||t[5]!==s.scene){m=lt(s.scene),h=Pe(m,void 0,{anisotropy:p,emap:f});let e=Ae(s.scene,s.animations,`Mountpoint`);if(e){let t=e.quaternion.clone().invert(),n=e.position.clone().negate().applyQuaternion(t);m.position.copy(n),m.quaternion.copy(t)}_=new Map,m.traverse(e=>{if(!e.isMesh)return;let t=(e.userData?.vis_sequence??``).toLowerCase();if(!t)return;let n=_.get(t);n||(n=[],_.set(t,n)),n.push(e)}),g=new me(m),t[2]=p,t[3]=f,t[4]=s.animations,t[5]=s.scene,t[6]=m,t[7]=h,t[8]=g,t[9]=_}else m=t[6],h=t[7],g=t[8],_=t[9];let v=g,y=s.scene,b;t[10]!==y||t[11]!==s.animations?(b=Pr(y,s.animations),t[10]=y,t[11]=s.animations,t[12]=b):b=t[12];let x=b,S;t[13]!==m||t[14]!==h||t[15]!==v||t[16]!==x||t[17]!==_?(S={weaponClone:m,weaponMixer:v,seqIndexToName:x,visNodesBySequence:_,weaponIflInitializers:h},t[13]=m,t[14]=h,t[15]=v,t[16]=x,t[17]=_,t[18]=S):S=t[18];let{weaponClone:C,weaponMixer:w,seqIndexToName:T,visNodesBySequence:E,weaponIflInitializers:D}=S,O,k;t[19]!==C||t[20]!==w?(O=()=>()=>{ke(C),w.uncacheRoot(C)},k=[C,w],t[19]=C,t[20]=w,t[21]=O,t[22]=k):(O=t[21],k=t[22]),(0,Y.useEffect)(O,k);let ee;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(ee=new Map,t[23]=ee):ee=t[23];let A=(0,Y.useRef)(ee),j=(0,Y.useRef)(null),M,N;t[24]!==s.animations||t[25]!==w?(M=()=>{let e=new Map;for(let t of s.animations)e.set(t.name.toLowerCase(),w.clipAction(t));A.current=e;let t=e.get(`spin`);return t&&(t.setLoop(ne,1/0),t.timeScale=0,t.play()),j.current=t??null,w.update(0),()=>{w.stopAllAction(),A.current=new Map,j.current=null,jr(V,H)}},N=[w,s.animations],t[24]=s.animations,t[25]=w,t[26]=M,t[27]=N):(M=t[26],N=t[27]),(0,Y.useEffect)(M,N);let P,F;t[28]===D?(P=t[29],F=t[30]):(P=()=>{let e=[];for(let{mesh:t,initialize:n}of D)n(t,Rr).then(t=>e.push(t)).catch(Lr);return()=>e.forEach(Ir)},F=[D],t[28]=D,t[29]=P,t[30]=F),(0,Y.useEffect)(P,F);let{audioLoader:I,audioListener:L}=Qe(),R=c()?.audioEnabled??!1,z=(0,Y.useRef)(null),te=(0,Y.useRef)(null),B=(0,Y.useRef)(n.weaponImageStates),V=(0,Y.useRef)(null),H=(0,Y.useRef)(-1),U,W;t[31]!==a||t[32]!==C?(U=()=>(a.add(C),()=>{a.remove(C)}),W=[C,a],t[31]=a,t[32]=C,t[33]=U,t[34]=W):(U=t[33],W=t[34]),(0,Y.useEffect)(U,W);let G;return t[35]!==R||t[36]!==L||t[37]!==I||t[38]!==o||t[39]!==n.weaponImageState||t[40]!==n.weaponImageStates||t[41]!==T||t[42]!==E||t[43]!==C||t[44]!==w?(G=(e,t)=>{let r=o.getState().playback,i=r.status===`playing`,a=A.current,s=n.weaponImageState,c=n.weaponImageStates;c!==B.current&&(B.current=c,c&&c.length>0?z.current=new xt(c,T):z.current=null,te.current=null,jr(V,H,C)),!z.current&&c&&c.length>0&&(z.current=new xt(c,T));let l=z.current;if(l&&s&&i){let e=t*r.rate,n=l.tick(e,s);if(zr(n,a,te,E),V.current&&n.stateIndex!==H.current&&jr(V,H,C),R&&I&&L&&n.soundDataBlockIds.length>0){let e=r.recording?.streamingPlayback.getDataBlockData.bind(r.recording.streamingPlayback);if(e)for(let t of n.soundDataBlockIds){let n=nt(t,e);if(n)if(n.isLooping){if(!V.current)try{let e=He(n.filename),t=et();it(e,I,e=>{if(t!==et()||V.current)return;let r=l.stateIndex,i=new we(L);i.setBuffer(e),i.setDistanceModel(`inverse`),i.setRefDistance(n.refDist),i.setMaxDistance(n.maxDist),i.setRolloffFactor(1),i.setVolume(n.volume),i.setPlaybackRate(u()),i.setLoop(!0),C.add(i),Ze(i),i.play(),V.current=i,H.current=r})}catch{}}else Xe(n,L,I,void 0,C)}}j.current&&(j.current.timeScale=n.spinTimeScale)}i?w.update(t*r.rate):w.update(0)},t[35]=R,t[36]=L,t[37]=I,t[38]=o,t[39]=n.weaponImageState,t[40]=n.weaponImageStates,t[41]=T,t[42]=E,t[43]=C,t[44]=w,t[45]=G):G=t[45],i(G),null}function Ir(e){return e()}function Lr(){}function Rr(){return ct.getState().time}function zr(e,t,n,r){let i=e.sequenceName,a=n.current;if(i===a&&!e.transitioned)return;if(i!==a){if(a){let e=r.get(a);if(e)for(let t of e)t.visible=!1}if(i){let e=r.get(i);if(e)for(let t of e)t.visible=!0}}if(!i){if(a){let e=t.get(a);e&&e.fadeOut(J),n.current=null}return}let o=t.get(i);if(o&&(e.transitioned||i!==a)){let r=a?t.get(a):null;if(e.isFiring||e.timeoutValue>0?(o.setLoop(f,1),o.clampWhenFinished=!0):(o.setLoop(ne,1/0),o.clampWhenFinished=!1),e.scaleAnimation&&e.timeoutValue>0){let t=o.getClip().duration;o.timeScale=t>0?t/e.timeoutValue:1}else o.timeScale=e.reverse?-1:1;r&&r!==o?(r.fadeOut(J),o.reset().fadeIn(J).play()):o.reset().play(),n.current=i}}export{lr as a,nr as c,wt as d,lt as f,Cr as i,Wn as l,wr as n,er as o,yr as r,ar as s,Mr as t,zn as u}; \ No newline at end of file diff --git a/docs/assets/Projectiles-D417zqjU.js b/docs/assets/Projectiles-CWChdCSv.js similarity index 97% rename from docs/assets/Projectiles-D417zqjU.js rename to docs/assets/Projectiles-CWChdCSv.js index 5eb1d600..c23a2cf3 100644 --- a/docs/assets/Projectiles-D417zqjU.js +++ b/docs/assets/Projectiles-CWChdCSv.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i}from"./react-three-fiber.esm-El6vNTZj.js";import{Ct as a,Wt as o,b as s,kt as c}from"./three.module-DKAirPAO.js";import{d as l,f as u,m as d}from"./playbackUtils-DjmjN4tv.js";import{p as f}from"./loaders-B4T775qz.js";import{t as p}from"./Texture-BYh0PjzP.js";var m=t(),h=e(n(),1),g=r(),_=new o,v=new o,y=new o,b=new o,x=new o,S=new o,C=new o(0,1,0);function w(e){let t=(0,m.c)(14),{entity:n}=e,{visual:r}=n,i;t[0]===r.texture?i=t[1]:(i=f(r.texture),t[0]=r.texture,t[1]=i);let a=p(i,T),o=Array.isArray(a)?a[0]:a,l;t[2]!==r.color.b||t[3]!==r.color.g||t[4]!==r.color.r?(l=new s().setRGB(r.color.r,r.color.g,r.color.b,c),t[2]=r.color.b,t[3]=r.color.g,t[4]=r.color.r,t[5]=l):l=t[5];let u=l,d;t[6]===r.size?d=t[7]:(d=[r.size,r.size,1],t[6]=r.size,t[7]=d);let h;t[8]!==u||t[9]!==o?(h=(0,g.jsx)(`spriteMaterial`,{map:o,color:u,transparent:!0,blending:2,depthWrite:!1,toneMapped:!1}),t[8]=u,t[9]=o,t[10]=h):h=t[10];let _;return t[11]!==d||t[12]!==h?(_=(0,g.jsx)(`sprite`,{scale:d,children:h}),t[11]=d,t[12]=h,t[13]=_):_=t[13],_}function T(e){u(Array.isArray(e)?e[0]:e)}function E(e){let t=(0,m.c)(29),{entity:n}=e,{visual:r}=n,o=(0,h.useRef)(null),s=(0,h.useRef)(null),c=(0,h.useRef)(null),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=new a,t[0]=u):u=t[0];let w=(0,h.useRef)(u),T;t[1]===r.texture?T=t[2]:(T=f(r.texture),t[1]=r.texture,t[2]=T);let E=r.crossTexture??r.texture,O;t[3]===E?O=t[4]:(O=f(E),t[3]=E,t[4]=O);let k;t[5]!==T||t[6]!==O?(k=[T,O],t[5]=T,t[6]=O,t[7]=k):k=t[7];let A=p(k,D),j;t[8]===A?j=t[9]:(j=Array.isArray(A)?A:[A,A],t[8]=A,t[9]=j);let[M,N]=j,P;t[10]!==n.direction||t[11]!==n.keyframes?.[0]||t[12]!==r.crossSize||t[13]!==r.crossViewAng||t[14]!==r.renderCross||t[15]!==r.tracerLength||t[16]!==r.tracerWidth?(P=e=>{let{camera:t}=e,i=o.current,a=s.current;if(!i||!a)return;let u=n.keyframes?.[0],f=u?.position,p=n.direction??u?.velocity;if(!f||!p){i.visible=!1,c.current&&(c.current.visible=!1);return}if(d(p,_),_.lengthSq()<1e-8){i.visible=!1,c.current&&(c.current.visible=!1);return}_.normalize(),i.visible=!0,d(f,S),v.copy(S).sub(t.position),y.crossVectors(v,_),y.lengthSq()<1e-8&&(y.crossVectors(C,_),y.lengthSq()<1e-8&&y.set(1,0,0)),y.normalize().multiplyScalar(r.tracerWidth);let m=r.tracerLength*.5;b.copy(_).multiplyScalar(-m),x.copy(_).multiplyScalar(m);let h=a.array;h[0]=b.x+y.x,h[1]=b.y+y.y,h[2]=b.z+y.z,h[3]=b.x-y.x,h[4]=b.y-y.y,h[5]=b.z-y.z,h[6]=x.x-y.x,h[7]=x.y-y.y,h[8]=x.z-y.z,h[9]=x.x+y.x,h[10]=x.y+y.y,h[11]=x.z+y.z,a.needsUpdate=!0;let g=c.current;if(!g)return;if(!r.renderCross){g.visible=!1;return}v.normalize();let T=_.dot(v);if(T>-r.crossViewAng&&T{let{camera:t}=e,i=o.current,a=s.current;if(!i||!a)return;let u=n.keyframes?.[0],f=u?.position,p=n.direction??u?.velocity;if(!f||!p){i.visible=!1,c.current&&(c.current.visible=!1);return}if(d(p,_),_.lengthSq()<1e-8){i.visible=!1,c.current&&(c.current.visible=!1);return}_.normalize(),i.visible=!0,d(f,S),v.copy(S).sub(t.position),y.crossVectors(v,_),y.lengthSq()<1e-8&&(y.crossVectors(C,_),y.lengthSq()<1e-8&&y.set(1,0,0)),y.normalize().multiplyScalar(r.tracerWidth);let m=r.tracerLength*.5;b.copy(_).multiplyScalar(-m),x.copy(_).multiplyScalar(m);let h=a.array;h[0]=b.x+y.x,h[1]=b.y+y.y,h[2]=b.z+y.z,h[3]=b.x-y.x,h[4]=b.y-y.y,h[5]=b.z-y.z,h[6]=x.x-y.x,h[7]=x.y-y.y,h[8]=x.z-y.z,h[9]=x.x+y.x,h[10]=x.y+y.y,h[11]=x.z+y.z,a.needsUpdate=!0;let g=c.current;if(!g)return;if(!r.renderCross){g.visible=!1;return}v.normalize();let T=_.dot(v);if(T>-r.crossViewAng&&Te.ping),n=t.reduce((e,t)=>e+t,0)/t.length,r=t.reduce((e,t)=>e+(t-n)**2,0)/t.length;return{avg:Math.round(n),dev:Math.round(Math.sqrt(r))}}function m(e){let t=e<0?`-`:``,n=Math.abs(e),r=Math.floor(n/60),i=Math.floor(n%60);return`${t}${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function h(e){let t=(0,u.c)(5),{clockMs:n}=e,r=Math.abs(n)/1e3,i=n<0?Math.ceil(r):Math.floor(r),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,f.jsx)(c,{className:d.ClockIcon}),t[0]=a):a=t[0];let o;t[1]===i?o=t[2]:(o=m(i),t[1]=i,t[2]=o);let s;return t[3]===o?s=t[4]:(s=(0,f.jsxs)(`span`,{className:d.MatchClock,children:[a,` `,(0,f.jsx)(`span`,{className:d.Time,children:o})]}),t[3]=o,t[4]=s),s}function g(e){return e.name||i[e.teamId]||`Team ${e.teamId}`}function _(e){let t=(0,u.c)(56),{onClose:n}=e,r=(0,l.useRef)(null),i=o()===`live`,{connectedClientId:s,teamScores:c,playerRoster:m,matchClockMs:_}=a(se,oe),y,b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{r.current?.focus();try{document.exitPointerLock()}catch{}},b=[],t[0]=y,t[1]=b):(y=t[0],b=t[1]),(0,l.useEffect)(y,b);let x,S;t[2]===n?(x=t[3],S=t[4]):(x=()=>{let e=e=>{e.key===`Escape`&&n(),e.stopImmediatePropagation()},t=ae;return window.addEventListener(`keydown`,e,{capture:!0}),window.addEventListener(`keyup`,t,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),window.removeEventListener(`keyup`,t,{capture:!0})}},S=[n],t[2]=n,t[3]=x,t[4]=S),(0,l.useEffect)(x,S);let C,w;t[5]===i?(C=t[6],w=t[7]):(C=()=>{if(!i)return;let e=ie;e();let t=setInterval(e,4e3);return()=>clearInterval(t)},w=[i],t[5]=i,t[6]=C,t[7]=w),(0,l.useEffect)(C,w);let T;if(t[8]!==m){let e=new Map,n=[];if(m)for(let t of m)if(t.teamId>0){let n=e.get(t.teamId);n?n.push(t):e.set(t.teamId,[t])}else n.push(t);for(let t of e.values())t.sort(re);n.sort(ne),T={teamPlayers:e,observers:n},t[8]=m,t[9]=T}else T=t[9];let{teamPlayers:E,observers:D}=T,O;bb0:{if(!c?.length){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[10]=e):e=t[10],O=e;break bb0}let e;t[11]===c?e=t[12]:(e=[...c].sort(te),t[11]=c,t[12]=e),O=e}let k=O,A=k.length>=2,j=k[0],M=k[1],N;t[13]!==j||t[14]!==E?(N=j?E.get(j.teamId)??[]:[],t[13]=j,t[14]=E,t[15]=N):N=t[15];let P=N,F;t[16]!==M||t[17]!==E?(F=M?E.get(M.teamId)??[]:[],t[16]=M,t[17]=E,t[18]=F):F=t[18];let I=F,L;t[19]===P?L=t[20]:(L=p(P),t[19]=P,t[20]=L);let R=L,z;t[21]===I?z=t[22]:(z=p(I),t[21]=I,t[22]=z);let B=z,V=Math.max(P.length,I.length),H;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,f.jsx)(`h2`,{className:d.Title,children:`Score`}),t[23]=H):H=t[23];let U;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,f.jsx)(ee,{className:d.PlayersIcon}),t[24]=U):U=t[24];let W=m?.length??0,G;t[25]===W?G=t[26]:(G=(0,f.jsxs)(`span`,{className:d.PlayerTotal,children:[U,` `,W,` players`]}),t[25]=W,t[26]=G);let K;t[27]===_?K=t[28]:(K=_!=null&&(0,f.jsx)(h,{clockMs:_}),t[27]=_,t[28]=K);let q;t[29]!==G||t[30]!==K?(q=(0,f.jsxs)(`header`,{className:d.TitleBar,children:[H,` `,G,` `,K]}),t[29]=G,t[30]=K,t[31]=q):q=t[31];let J;t[32]!==s||t[33]!==A||t[34]!==V||t[35]!==D||t[36]!==m?.length||t[37]!==j||t[38]!==R||t[39]!==P||t[40]!==M||t[41]!==B||t[42]!==I?(J=A?(0,f.jsx)(`div`,{className:d.TableWrapper,children:(0,f.jsxs)(`table`,{className:d.Table,children:[(0,f.jsxs)(`thead`,{children:[(0,f.jsxs)(`tr`,{className:d.TeamHeaderRow,children:[(0,f.jsx)(`th`,{className:d.TeamName,children:g(j)}),(0,f.jsx)(`th`,{className:d.TeamScore,children:j.score}),(0,f.jsx)(`th`,{className:d.TeamName,children:g(M)}),(0,f.jsx)(`th`,{className:d.TeamScore,children:M.score})]}),(0,f.jsxs)(`tr`,{className:d.ColumnHeaderRow,children:[(0,f.jsxs)(`th`,{className:d.ColumnHeader,children:[(0,f.jsxs)(`span`,{children:[`Players (`,P.length,`)`]}),P.length>0&&(0,f.jsxs)(`span`,{className:d.ColumnPing,children:[` `,`PING: `,R.avg,` ± `,R.dev,` ms`]})]}),(0,f.jsx)(`th`,{className:d.ColumnHeaderScore,children:`Score`}),(0,f.jsxs)(`th`,{className:d.ColumnHeader,children:[(0,f.jsxs)(`span`,{children:[`Players (`,I.length,`)`]}),I.length>0&&(0,f.jsxs)(`span`,{className:d.ColumnPing,children:[` `,`PING: `,B.avg,` ± `,B.dev,` ms`]})]}),(0,f.jsx)(`th`,{className:d.ColumnHeaderScore,children:`Score`})]})]}),(0,f.jsx)(`tbody`,{className:d.PlayerBody,children:Array.from({length:V},(e,t)=>{let n=P[t],r=I[t],i=s!=null&&n?.clientId===s,a=s!=null&&r?.clientId===s;return(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`td`,{className:i?d.PlayerNameLocal:d.PlayerName,children:n?.name||(n?`...`:``)}),(0,f.jsx)(`td`,{className:i?d.PlayerScoreLocal:d.PlayerScore,children:n==null?``:n.score}),(0,f.jsx)(`td`,{className:a?d.PlayerNameLocal:d.PlayerName,children:r?.name||(r?`...`:``)}),(0,f.jsx)(`td`,{className:a?d.PlayerScoreLocal:d.PlayerScore,children:r==null?``:r.score})]},`${n?.clientId??``}-${r?.clientId??``}`)})}),D.length>0&&(()=>{let e=Math.ceil(D.length/2),t=Math.ceil(D.length/2);return(0,f.jsxs)(`tbody`,{className:d.ObserverBody,children:[(0,f.jsxs)(`tr`,{className:d.ColumnHeaderRow,children:[(0,f.jsxs)(`th`,{colSpan:2,className:d.ColumnHeader,children:[`Observers (`,D.length,`)`]}),(0,f.jsx)(`th`,{colSpan:2,className:d.ColumnHeader,children:`\xA0`})]}),Array.from({length:t},(t,n)=>{let r=D[n],i=D[n+e],a=s!=null&&r?.clientId===s,o=s!=null&&i?.clientId===s;return(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`td`,{className:a?d.PlayerNameLocal:d.PlayerName,children:r?.name||(r?`...`:``)}),(0,f.jsx)(`td`,{className:a?d.PlayerScoreLocal:d.PlayerScore,children:r==null?``:r.score}),(0,f.jsx)(`td`,{className:o?d.PlayerNameLocal:d.PlayerName,children:i?.name||``}),(0,f.jsx)(`td`,{className:o?d.PlayerScoreLocal:d.PlayerScore,children:i==null?``:i.score})]},`${r?.clientId??``}-${i?.clientId??``}`)})]})})()]})}):(0,f.jsx)(`div`,{className:d.Empty,children:m?.length?`No team data available`:`Waiting for player data…`}),t[32]=s,t[33]=A,t[34]=V,t[35]=D,t[36]=m?.length,t[37]=j,t[38]=R,t[39]=P,t[40]=M,t[41]=B,t[42]=I,t[43]=J):J=t[43];let Y;t[44]===n?Y=t[45]:(Y=(0,f.jsx)(`button`,{className:d.CloseButton,onClick:n,children:`Close`}),t[44]=n,t[45]=Y);let X;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,f.jsx)(`span`,{className:d.Hint,children:`Esc to close`}),t[46]=X):X=t[46];let Z;t[47]===Y?Z=t[48]:(Z=(0,f.jsxs)(`div`,{className:d.Footer,children:[Y,X]}),t[47]=Y,t[48]=Z);let Q;t[49]!==q||t[50]!==J||t[51]!==Z?(Q=(0,f.jsxs)(`div`,{ref:r,className:d.Dialog,onClick:v,role:`dialog`,"aria-modal":`true`,"aria-label":`Score Screen`,tabIndex:-1,children:[q,J,Z]}),t[49]=q,t[50]=J,t[51]=Z,t[52]=Q):Q=t[52];let $;return t[53]!==n||t[54]!==Q?($=(0,f.jsx)(`div`,{className:d.Overlay,onClick:n,children:Q}),t[53]=n,t[54]=Q,t[55]=$):$=t[55],$}function v(e){return e.stopPropagation()}function te(e,t){return e.teamId-t.teamId}function ne(e,t){return(e.name??``).localeCompare(t.name??``)}function re(e,t){return t.score-e.score||(e.name??``).localeCompare(t.name??``)}function ie(){s.getState().sendCommand(`getScores`)}function ae(e){e.stopImmediatePropagation()}function oe(e,t){return e.connectedClientId===t.connectedClientId&&e.teamScores===t.teamScores&&e.playerRoster===t.playerRoster&&e.matchClockMs===t.matchClockMs}function se(e){let t=e.playback.streamSnapshot;return{connectedClientId:t?.connectedClientId,teamScores:t?.teamScores,playerRoster:t?.playerRoster,matchClockMs:t?.matchClockMs}}export{_ as ScoreScreen}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{n as i}from"./stringUtils-1MyeFdQ_.js";import{i as a}from"./engineStore-B1KAgiiF.js";import{N as o,k as s,v as c,y as ee}from"./index-BZ0wFa-D.js";var l=e(n(),1),u=t(),d={Dialog:`_Dialog_4rdu6_1 _Dialog_1t9wa_1`,Overlay:`_Overlay_4rdu6_11 _Overlay_1t9wa_22`,TitleBar:`_TitleBar_4rdu6_15`,PlayerTotal:`_PlayerTotal_4rdu6_27`,Title:`_Title_4rdu6_15`,MatchClock:`_MatchClock_4rdu6_46`,Time:`_Time_4rdu6_56`,PlayersIcon:`_PlayersIcon_4rdu6_60`,ClockIcon:`_ClockIcon_4rdu6_64`,TableWrapper:`_TableWrapper_4rdu6_69`,Table:`_Table_4rdu6_69`,TeamHeaderRow:`_TeamHeaderRow_4rdu6_92`,TeamName:`_TeamName_4rdu6_99`,TeamScore:`_TeamScore_4rdu6_109`,ColumnHeaderRow:`_ColumnHeaderRow_4rdu6_117`,ColumnHeader:`_ColumnHeader_4rdu6_117`,ColumnHeaderScore:`_ColumnHeaderScore_4rdu6_134`,PlayerScore:`_PlayerScore_4rdu6_141`,ColumnPing:`_ColumnPing_4rdu6_145`,PlayerBody:`_PlayerBody_4rdu6_154`,PlayerName:`_PlayerName_4rdu6_168`,PlayerNameLocal:`_PlayerNameLocal_4rdu6_179 _PlayerName_4rdu6_168`,PlayerScoreLocal:`_PlayerScoreLocal_4rdu6_193 _PlayerScore_4rdu6_141`,ObserverBody:`_ObserverBody_4rdu6_202`,Footer:`_Footer_4rdu6_223`,CloseButton:`_CloseButton_4rdu6_233 _DialogButton_1t9wa_33`,Hint:`_Hint_4rdu6_237`,Empty:`_Empty_4rdu6_243`},f=r();function p(e){if(!e.length)return{avg:0,dev:0};let t=e.map(e=>e.ping),n=t.reduce((e,t)=>e+t,0)/t.length,r=t.reduce((e,t)=>e+(t-n)**2,0)/t.length;return{avg:Math.round(n),dev:Math.round(Math.sqrt(r))}}function m(e){let t=e<0?`-`:``,n=Math.abs(e),r=Math.floor(n/60),i=Math.floor(n%60);return`${t}${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`}function h(e){let t=(0,u.c)(5),{clockMs:n}=e,r=Math.abs(n)/1e3,i=n<0?Math.ceil(r):Math.floor(r),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,f.jsx)(c,{className:d.ClockIcon}),t[0]=a):a=t[0];let o;t[1]===i?o=t[2]:(o=m(i),t[1]=i,t[2]=o);let s;return t[3]===o?s=t[4]:(s=(0,f.jsxs)(`span`,{className:d.MatchClock,children:[a,` `,(0,f.jsx)(`span`,{className:d.Time,children:o})]}),t[3]=o,t[4]=s),s}function g(e){return e.name||i[e.teamId]||`Team ${e.teamId}`}function _(e){let t=(0,u.c)(56),{onClose:n}=e,r=(0,l.useRef)(null),i=o()===`live`,{connectedClientId:s,teamScores:c,playerRoster:m,matchClockMs:_}=a(se,oe),y,b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{r.current?.focus();try{document.exitPointerLock()}catch{}},b=[],t[0]=y,t[1]=b):(y=t[0],b=t[1]),(0,l.useEffect)(y,b);let x,S;t[2]===n?(x=t[3],S=t[4]):(x=()=>{let e=e=>{e.key===`Escape`&&n(),e.stopImmediatePropagation()},t=ae;return window.addEventListener(`keydown`,e,{capture:!0}),window.addEventListener(`keyup`,t,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),window.removeEventListener(`keyup`,t,{capture:!0})}},S=[n],t[2]=n,t[3]=x,t[4]=S),(0,l.useEffect)(x,S);let C,w;t[5]===i?(C=t[6],w=t[7]):(C=()=>{if(!i)return;let e=ie;e();let t=setInterval(e,4e3);return()=>clearInterval(t)},w=[i],t[5]=i,t[6]=C,t[7]=w),(0,l.useEffect)(C,w);let T;if(t[8]!==m){let e=new Map,n=[];if(m)for(let t of m)if(t.teamId>0){let n=e.get(t.teamId);n?n.push(t):e.set(t.teamId,[t])}else n.push(t);for(let t of e.values())t.sort(re);n.sort(ne),T={teamPlayers:e,observers:n},t[8]=m,t[9]=T}else T=t[9];let{teamPlayers:E,observers:D}=T,O;bb0:{if(!c?.length){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[10]=e):e=t[10],O=e;break bb0}let e;t[11]===c?e=t[12]:(e=[...c].sort(te),t[11]=c,t[12]=e),O=e}let k=O,A=k.length>=2,j=k[0],M=k[1],N;t[13]!==j||t[14]!==E?(N=j?E.get(j.teamId)??[]:[],t[13]=j,t[14]=E,t[15]=N):N=t[15];let P=N,F;t[16]!==M||t[17]!==E?(F=M?E.get(M.teamId)??[]:[],t[16]=M,t[17]=E,t[18]=F):F=t[18];let I=F,L;t[19]===P?L=t[20]:(L=p(P),t[19]=P,t[20]=L);let R=L,z;t[21]===I?z=t[22]:(z=p(I),t[21]=I,t[22]=z);let B=z,V=Math.max(P.length,I.length),H;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,f.jsx)(`h2`,{className:d.Title,children:`Score`}),t[23]=H):H=t[23];let U;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,f.jsx)(ee,{className:d.PlayersIcon}),t[24]=U):U=t[24];let W=m?.length??0,G;t[25]===W?G=t[26]:(G=(0,f.jsxs)(`span`,{className:d.PlayerTotal,children:[U,` `,W,` players`]}),t[25]=W,t[26]=G);let K;t[27]===_?K=t[28]:(K=_!=null&&(0,f.jsx)(h,{clockMs:_}),t[27]=_,t[28]=K);let q;t[29]!==G||t[30]!==K?(q=(0,f.jsxs)(`header`,{className:d.TitleBar,children:[H,` `,G,` `,K]}),t[29]=G,t[30]=K,t[31]=q):q=t[31];let J;t[32]!==s||t[33]!==A||t[34]!==V||t[35]!==D||t[36]!==m?.length||t[37]!==j||t[38]!==R||t[39]!==P||t[40]!==M||t[41]!==B||t[42]!==I?(J=A?(0,f.jsx)(`div`,{className:d.TableWrapper,children:(0,f.jsxs)(`table`,{className:d.Table,children:[(0,f.jsxs)(`thead`,{children:[(0,f.jsxs)(`tr`,{className:d.TeamHeaderRow,children:[(0,f.jsx)(`th`,{className:d.TeamName,children:g(j)}),(0,f.jsx)(`th`,{className:d.TeamScore,children:j.score}),(0,f.jsx)(`th`,{className:d.TeamName,children:g(M)}),(0,f.jsx)(`th`,{className:d.TeamScore,children:M.score})]}),(0,f.jsxs)(`tr`,{className:d.ColumnHeaderRow,children:[(0,f.jsxs)(`th`,{className:d.ColumnHeader,children:[(0,f.jsxs)(`span`,{children:[`Players (`,P.length,`)`]}),P.length>0&&(0,f.jsxs)(`span`,{className:d.ColumnPing,children:[` `,`PING: `,R.avg,` ± `,R.dev,` ms`]})]}),(0,f.jsx)(`th`,{className:d.ColumnHeaderScore,children:`Score`}),(0,f.jsxs)(`th`,{className:d.ColumnHeader,children:[(0,f.jsxs)(`span`,{children:[`Players (`,I.length,`)`]}),I.length>0&&(0,f.jsxs)(`span`,{className:d.ColumnPing,children:[` `,`PING: `,B.avg,` ± `,B.dev,` ms`]})]}),(0,f.jsx)(`th`,{className:d.ColumnHeaderScore,children:`Score`})]})]}),(0,f.jsx)(`tbody`,{className:d.PlayerBody,children:Array.from({length:V},(e,t)=>{let n=P[t],r=I[t],i=s!=null&&n?.clientId===s,a=s!=null&&r?.clientId===s;return(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`td`,{className:i?d.PlayerNameLocal:d.PlayerName,children:n?.name||(n?`...`:``)}),(0,f.jsx)(`td`,{className:i?d.PlayerScoreLocal:d.PlayerScore,children:n==null?``:n.score}),(0,f.jsx)(`td`,{className:a?d.PlayerNameLocal:d.PlayerName,children:r?.name||(r?`...`:``)}),(0,f.jsx)(`td`,{className:a?d.PlayerScoreLocal:d.PlayerScore,children:r==null?``:r.score})]},`${n?.clientId??``}-${r?.clientId??``}`)})}),D.length>0&&(()=>{let e=Math.ceil(D.length/2),t=Math.ceil(D.length/2);return(0,f.jsxs)(`tbody`,{className:d.ObserverBody,children:[(0,f.jsxs)(`tr`,{className:d.ColumnHeaderRow,children:[(0,f.jsxs)(`th`,{colSpan:2,className:d.ColumnHeader,children:[`Observers (`,D.length,`)`]}),(0,f.jsx)(`th`,{colSpan:2,className:d.ColumnHeader,children:`\xA0`})]}),Array.from({length:t},(t,n)=>{let r=D[n],i=D[n+e],a=s!=null&&r?.clientId===s,o=s!=null&&i?.clientId===s;return(0,f.jsxs)(`tr`,{children:[(0,f.jsx)(`td`,{className:a?d.PlayerNameLocal:d.PlayerName,children:r?.name||(r?`...`:``)}),(0,f.jsx)(`td`,{className:a?d.PlayerScoreLocal:d.PlayerScore,children:r==null?``:r.score}),(0,f.jsx)(`td`,{className:o?d.PlayerNameLocal:d.PlayerName,children:i?.name||``}),(0,f.jsx)(`td`,{className:o?d.PlayerScoreLocal:d.PlayerScore,children:i==null?``:i.score})]},`${r?.clientId??``}-${i?.clientId??``}`)})]})})()]})}):(0,f.jsx)(`div`,{className:d.Empty,children:m?.length?`No team data available`:`Waiting for player data…`}),t[32]=s,t[33]=A,t[34]=V,t[35]=D,t[36]=m?.length,t[37]=j,t[38]=R,t[39]=P,t[40]=M,t[41]=B,t[42]=I,t[43]=J):J=t[43];let Y;t[44]===n?Y=t[45]:(Y=(0,f.jsx)(`button`,{className:d.CloseButton,onClick:n,children:`Close`}),t[44]=n,t[45]=Y);let X;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,f.jsx)(`span`,{className:d.Hint,children:`Esc to close`}),t[46]=X):X=t[46];let Z;t[47]===Y?Z=t[48]:(Z=(0,f.jsxs)(`div`,{className:d.Footer,children:[Y,X]}),t[47]=Y,t[48]=Z);let Q;t[49]!==q||t[50]!==J||t[51]!==Z?(Q=(0,f.jsxs)(`div`,{ref:r,className:d.Dialog,onClick:v,role:`dialog`,"aria-modal":`true`,"aria-label":`Score Screen`,tabIndex:-1,children:[q,J,Z]}),t[49]=q,t[50]=J,t[51]=Z,t[52]=Q):Q=t[52];let $;return t[53]!==n||t[54]!==Q?($=(0,f.jsx)(`div`,{className:d.Overlay,onClick:n,children:Q}),t[53]=n,t[54]=Q,t[55]=$):$=t[55],$}function v(e){return e.stopPropagation()}function te(e,t){return e.teamId-t.teamId}function ne(e,t){return(e.name??``).localeCompare(t.name??``)}function re(e,t){return t.score-e.score||(e.name??``).localeCompare(t.name??``)}function ie(){s.getState().sendCommand(`getScores`)}function ae(e){e.stopImmediatePropagation()}function oe(e,t){return e.connectedClientId===t.connectedClientId&&e.teamScores===t.teamScores&&e.playerRoster===t.playerRoster&&e.matchClockMs===t.matchClockMs}function se(e){let t=e.playback.streamSnapshot;return{connectedClientId:t?.connectedClientId,teamScores:t?.teamScores,playerRoster:t?.playerRoster,matchClockMs:t?.matchClockMs}}export{_ as ScoreScreen}; \ No newline at end of file diff --git a/docs/assets/ServerBrowser-DlvPvTfO.js b/docs/assets/ServerBrowser-CL7giwqp.js similarity index 98% rename from docs/assets/ServerBrowser-DlvPvTfO.js rename to docs/assets/ServerBrowser-CL7giwqp.js index 89c5f72f..dd777f77 100644 --- a/docs/assets/ServerBrowser-DlvPvTfO.js +++ b/docs/assets/ServerBrowser-CL7giwqp.js @@ -1 +1 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as ee}from"./SettingsProvider-BdqQ2Cm4.js";import{A as i,y as te}from"./index-BnXbiEzA.js";var a=e(n(),1),ne=t(),o={Dialog:`_Dialog_1s844_1 _Dialog_1t9wa_1`,Overlay:`_Overlay_1s844_10 _Overlay_1t9wa_22`,Header:`_Header_1s844_14`,Title:`_Title_1s844_22`,HiddenRadio:`_HiddenRadio_1s844_31`,RefreshButton:`_RefreshButton_1s844_41 _DialogButton_1t9wa_33`,ServerCount:`_ServerCount_1s844_47`,TableWrapper:`_TableWrapper_1s844_52`,Table:`_Table_1s844_52`,CompactHidden:`_CompactHidden_1s844_118`,EmptyServer:`_EmptyServer_1s844_169`,Empty:`_Empty_1s844_169`,PasswordIcon:`_PasswordIcon_1s844_186`,PlayersIcon:`_PlayersIcon_1s844_198`,Footer:`_Footer_1s844_209`,JoinButton:`_JoinButton_1s844_220 _DialogButton_1t9wa_33`,CloseButton:`_CloseButton_1s844_225 _Secondary_1t9wa_72 _DialogButton_1t9wa_33`,WarriorField:`_WarriorField_1s844_229`,WarriorLabel:`_WarriorLabel_1s844_235`,WarriorInput:`_WarriorInput_1s844_241`,Hint:`_Hint_1s844_261`,Actions:`_Actions_1s844_267 _Actions_1t9wa_86`},s=r();function c(e){let t=(0,ne.c)(102),{onClose:n}=e,r=i(le),c=i(ce),l=i(se),u=i(oe),d=i(ae),{warriorName:f,setWarriorName:ue}=ee(),[p,de]=(0,a.useState)(null),m;t[0]!==d||t[1]!==n||t[2]!==p||t[3]!==f?(m=()=>{p&&(d(p,f),n())},t[0]=d,t[1]=n,t[2]=p,t[3]=f,t[4]=m):m=t[4];let h=m,g;t[5]!==d||t[6]!==n||t[7]!==f?(g=e=>{d(e,f),n()},t[5]=d,t[6]=n,t[7]=f,t[8]=g):g=t[8];let _=g,[v,fe]=(0,a.useState)(`ping`),[y,pe]=(0,a.useState)(`asc`),me=(0,a.useRef)(null),b,x;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{me.current?.focus();try{document.exitPointerLock()}catch{}},x=[],t[9]=b,t[10]=x):(b=t[9],x=t[10]),(0,a.useEffect)(b,x);let S,C;t[11]===u?(S=t[12],C=t[13]):(S=()=>{u()},C=[u],t[11]=u,t[12]=S,t[13]=C),(0,a.useEffect)(S,C);let w,he;t[14]===n?(w=t[15],he=t[16]):(w=()=>{let e=e=>{e.stopPropagation(),e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},he=[n],t[14]=n,t[15]=w,t[16]=he),(0,a.useEffect)(w,he);let T;t[17]===v?T=t[18]:(T=e=>{v===e?pe(ie):(fe(e),pe(`desc`))},t[17]=v,t[18]=T);let E=T,D;if(t[19]!==r||t[20]!==y||t[21]!==v){let e;t[23]!==y||t[24]!==v?(e=(e,t)=>{let n=e[v],r=t[v],ee=typeof n==`number`&&typeof r==`number`?n-r:String(n).localeCompare(String(r));return y===`asc`?ee:-ee},t[23]=y,t[24]=v,t[25]=e):e=t[25],D=[...r].sort(e),t[19]=r,t[20]=y,t[21]=v,t[22]=D}else D=t[22];let ge=D,O;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,s.jsx)(`h2`,{className:o.Title,children:`Server Browser`}),t[26]=O):O=t[26];let _e=r.length===1?``:`s`,k;t[27]!==r.length||t[28]!==_e?(k=(0,s.jsxs)(`span`,{className:o.ServerCount,children:[r.length,` server`,_e]}),t[27]=r.length,t[28]=_e,t[29]=k):k=t[29];let A;t[30]!==u||t[31]!==c?(A=(0,s.jsx)(`button`,{className:o.RefreshButton,onClick:u,disabled:c,children:`Refresh`}),t[30]=u,t[31]=c,t[32]=A):A=t[32];let j;t[33]!==k||t[34]!==A?(j=(0,s.jsxs)(`div`,{className:o.Header,children:[O,k,A]}),t[33]=k,t[34]=A,t[35]=j):j=t[35];let M;t[36]===E?M=t[37]:(M=(0,s.jsx)(`th`,{"data-column":`server`,onClick:()=>E(`name`),children:`Server Name`}),t[36]=E,t[37]=M);let N;t[38]===E?N=t[39]:(N=()=>E(`playerCount`),t[38]=E,t[39]=N);let P;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,s.jsx)(te,{className:o.PlayersIcon,title:`Players`,"aria-label":`Players`}),t[40]=P):P=t[40];let F;t[41]===N?F=t[42]:(F=(0,s.jsx)(`th`,{"data-column":`players`,onClick:N,children:P}),t[41]=N,t[42]=F);let I;t[43]===E?I=t[44]:(I=(0,s.jsx)(`th`,{"data-column":`ping`,onClick:()=>E(`ping`),children:`Ping`}),t[43]=E,t[44]=I);let L;t[45]===E?L=t[46]:(L=(0,s.jsx)(`th`,{"data-column":`map`,onClick:()=>E(`mapName`),children:`Map`}),t[45]=E,t[46]=L);let R;t[47]===E?R=t[48]:(R=(0,s.jsx)(`th`,{"data-column":`gameType`,onClick:()=>E(`gameType`),children:`Type`}),t[47]=E,t[48]=R);let z;t[49]===E?z=t[50]:(z=(0,s.jsx)(`th`,{"data-column":`mod`,onClick:()=>E(`mod`),children:`Mod`}),t[49]=E,t[50]=z);let B;t[51]!==M||t[52]!==F||t[53]!==I||t[54]!==L||t[55]!==R||t[56]!==z?(B=(0,s.jsx)(`thead`,{children:(0,s.jsxs)(`tr`,{children:[M,F,I,L,R,z]})}),t[51]=M,t[52]=F,t[53]=I,t[54]=L,t[55]=R,t[56]=z,t[57]=B):B=t[57];let V;if(t[58]!==l||t[59]!==_||t[60]!==n||t[61]!==p||t[62]!==ge){let e;t[64]!==l||t[65]!==_||t[66]!==n||t[67]!==p?(e=e=>(0,s.jsxs)(`tr`,{onClick:()=>{de(e.address);let t=document.forms.namedItem(`serverList`).elements.namedItem(`serverAddress`);Array.from(t).find(t=>t.value===e.address).focus()},onDoubleClick:()=>{de(e.address),_(e.address),n()},children:[(0,s.jsxs)(`td`,{"data-column":`server`,children:[(0,s.jsx)(`input`,{type:`radio`,className:o.HiddenRadio,name:`serverAddress`,value:e.address,checked:p===e.address,onChange:e=>{de(e.target.value)}}),e.passwordRequired&&(0,s.jsx)(`span`,{className:o.PasswordIcon,children:`🔒`}),e.name]}),(0,s.jsxs)(`td`,{className:e.playerCount===0?o.EmptyServer:void 0,"data-column":`players`,children:[e.playerCount,(0,s.jsxs)(`span`,{className:o.CompactHidden,children:[` / `,e.maxPlayers]})]}),(0,s.jsx)(`td`,{"data-column":`ping`,children:l==null?`—`:(e.ping+l).toLocaleString()}),(0,s.jsx)(`td`,{"data-column":`map`,children:e.mapName}),(0,s.jsx)(`td`,{"data-column":`gameType`,children:e.gameType}),(0,s.jsx)(`td`,{"data-column":`mod`,children:e.mod})]},e.address),t[64]=l,t[65]=_,t[66]=n,t[67]=p,t[68]=e):e=t[68],V=ge.map(e),t[58]=l,t[59]=_,t[60]=n,t[61]=p,t[62]=ge,t[63]=V}else V=t[63];let H;t[69]===V?H=t[70]:(H=(0,s.jsx)(`tbody`,{children:V}),t[69]=V,t[70]=H);let U;t[71]!==B||t[72]!==H?(U=(0,s.jsxs)(`table`,{className:o.Table,children:[B,H]}),t[71]=B,t[72]=H,t[73]=U):U=t[73];let W;t[74]!==h||t[75]!==U?(W=(0,s.jsx)(`div`,{className:o.TableWrapper,children:(0,s.jsx)(`form`,{name:`serverList`,onSubmit:h,children:U})}),t[74]=h,t[75]=U,t[76]=W):W=t[76];let G;t[77]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,s.jsx)(`label`,{className:o.WarriorLabel,htmlFor:`warriorName`,children:`Warrior`}),t[77]=G):G=t[77];let K;t[78]===ue?K=t[79]:(K=e=>ue(e.target.value),t[78]=ue,t[79]=K);let q;t[80]!==K||t[81]!==f?(q=(0,s.jsxs)(`div`,{className:o.WarriorField,children:[G,(0,s.jsx)(`input`,{id:`warriorName`,className:o.WarriorInput,type:`text`,value:f,onChange:K,placeholder:`Name thyself…`,maxLength:24})]}),t[80]=K,t[81]=f,t[82]=q):q=t[82];let J;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,s.jsx)(`span`,{className:o.Hint,children:`Double-click a server to join`}),t[83]=J):J=t[83];let Y;t[84]===n?Y=t[85]:(Y=(0,s.jsx)(`button`,{onClick:n,className:o.CloseButton,children:`Cancel`}),t[84]=n,t[85]=Y);let ve=!p,X;t[86]!==h||t[87]!==ve?(X=(0,s.jsx)(`button`,{onClick:h,disabled:ve,className:o.JoinButton,children:`Join`}),t[86]=h,t[87]=ve,t[88]=X):X=t[88];let Z;t[89]!==Y||t[90]!==X?(Z=(0,s.jsxs)(`div`,{className:o.Actions,children:[Y,X]}),t[89]=Y,t[90]=X,t[91]=Z):Z=t[91];let Q;t[92]!==q||t[93]!==Z?(Q=(0,s.jsxs)(`div`,{className:o.Footer,children:[q,J,Z]}),t[92]=q,t[93]=Z,t[94]=Q):Q=t[94];let $;t[95]!==j||t[96]!==W||t[97]!==Q?($=(0,s.jsxs)(`div`,{className:o.Dialog,ref:me,tabIndex:-1,onClick:re,children:[j,W,Q]}),t[95]=j,t[96]=W,t[97]=Q,t[98]=$):$=t[98];let ye;return t[99]!==n||t[100]!==$?(ye=(0,s.jsx)(`div`,{className:o.Overlay,onClick:n,children:$}),t[99]=n,t[100]=$,t[101]=ye):ye=t[101],ye}function re(e){return e.stopPropagation()}function ie(e){return e===`asc`?`desc`:`asc`}function ae(e){return e.joinServer}function oe(e){return e.listServers}function se(e){return e.browserToRelayPing}function ce(e){return e.serversLoading}function le(e){return e.servers}export{c as ServerBrowser}; \ No newline at end of file +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as ee}from"./SettingsProvider-BdqQ2Cm4.js";import{A as i,y as te}from"./index-BZ0wFa-D.js";var a=e(n(),1),ne=t(),o={Dialog:`_Dialog_1s844_1 _Dialog_1t9wa_1`,Overlay:`_Overlay_1s844_10 _Overlay_1t9wa_22`,Header:`_Header_1s844_14`,Title:`_Title_1s844_22`,HiddenRadio:`_HiddenRadio_1s844_31`,RefreshButton:`_RefreshButton_1s844_41 _DialogButton_1t9wa_33`,ServerCount:`_ServerCount_1s844_47`,TableWrapper:`_TableWrapper_1s844_52`,Table:`_Table_1s844_52`,CompactHidden:`_CompactHidden_1s844_118`,EmptyServer:`_EmptyServer_1s844_169`,Empty:`_Empty_1s844_169`,PasswordIcon:`_PasswordIcon_1s844_186`,PlayersIcon:`_PlayersIcon_1s844_198`,Footer:`_Footer_1s844_209`,JoinButton:`_JoinButton_1s844_220 _DialogButton_1t9wa_33`,CloseButton:`_CloseButton_1s844_225 _Secondary_1t9wa_72 _DialogButton_1t9wa_33`,WarriorField:`_WarriorField_1s844_229`,WarriorLabel:`_WarriorLabel_1s844_235`,WarriorInput:`_WarriorInput_1s844_241`,Hint:`_Hint_1s844_261`,Actions:`_Actions_1s844_267 _Actions_1t9wa_86`},s=r();function c(e){let t=(0,ne.c)(102),{onClose:n}=e,r=i(le),c=i(ce),l=i(se),u=i(oe),d=i(ae),{warriorName:f,setWarriorName:ue}=ee(),[p,de]=(0,a.useState)(null),m;t[0]!==d||t[1]!==n||t[2]!==p||t[3]!==f?(m=()=>{p&&(d(p,f),n())},t[0]=d,t[1]=n,t[2]=p,t[3]=f,t[4]=m):m=t[4];let h=m,g;t[5]!==d||t[6]!==n||t[7]!==f?(g=e=>{d(e,f),n()},t[5]=d,t[6]=n,t[7]=f,t[8]=g):g=t[8];let _=g,[v,fe]=(0,a.useState)(`ping`),[y,pe]=(0,a.useState)(`asc`),me=(0,a.useRef)(null),b,x;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{me.current?.focus();try{document.exitPointerLock()}catch{}},x=[],t[9]=b,t[10]=x):(b=t[9],x=t[10]),(0,a.useEffect)(b,x);let S,C;t[11]===u?(S=t[12],C=t[13]):(S=()=>{u()},C=[u],t[11]=u,t[12]=S,t[13]=C),(0,a.useEffect)(S,C);let w,he;t[14]===n?(w=t[15],he=t[16]):(w=()=>{let e=e=>{e.stopPropagation(),e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},he=[n],t[14]=n,t[15]=w,t[16]=he),(0,a.useEffect)(w,he);let T;t[17]===v?T=t[18]:(T=e=>{v===e?pe(ie):(fe(e),pe(`desc`))},t[17]=v,t[18]=T);let E=T,D;if(t[19]!==r||t[20]!==y||t[21]!==v){let e;t[23]!==y||t[24]!==v?(e=(e,t)=>{let n=e[v],r=t[v],ee=typeof n==`number`&&typeof r==`number`?n-r:String(n).localeCompare(String(r));return y===`asc`?ee:-ee},t[23]=y,t[24]=v,t[25]=e):e=t[25],D=[...r].sort(e),t[19]=r,t[20]=y,t[21]=v,t[22]=D}else D=t[22];let ge=D,O;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,s.jsx)(`h2`,{className:o.Title,children:`Server Browser`}),t[26]=O):O=t[26];let _e=r.length===1?``:`s`,k;t[27]!==r.length||t[28]!==_e?(k=(0,s.jsxs)(`span`,{className:o.ServerCount,children:[r.length,` server`,_e]}),t[27]=r.length,t[28]=_e,t[29]=k):k=t[29];let A;t[30]!==u||t[31]!==c?(A=(0,s.jsx)(`button`,{className:o.RefreshButton,onClick:u,disabled:c,children:`Refresh`}),t[30]=u,t[31]=c,t[32]=A):A=t[32];let j;t[33]!==k||t[34]!==A?(j=(0,s.jsxs)(`div`,{className:o.Header,children:[O,k,A]}),t[33]=k,t[34]=A,t[35]=j):j=t[35];let M;t[36]===E?M=t[37]:(M=(0,s.jsx)(`th`,{"data-column":`server`,onClick:()=>E(`name`),children:`Server Name`}),t[36]=E,t[37]=M);let N;t[38]===E?N=t[39]:(N=()=>E(`playerCount`),t[38]=E,t[39]=N);let P;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,s.jsx)(te,{className:o.PlayersIcon,title:`Players`,"aria-label":`Players`}),t[40]=P):P=t[40];let F;t[41]===N?F=t[42]:(F=(0,s.jsx)(`th`,{"data-column":`players`,onClick:N,children:P}),t[41]=N,t[42]=F);let I;t[43]===E?I=t[44]:(I=(0,s.jsx)(`th`,{"data-column":`ping`,onClick:()=>E(`ping`),children:`Ping`}),t[43]=E,t[44]=I);let L;t[45]===E?L=t[46]:(L=(0,s.jsx)(`th`,{"data-column":`map`,onClick:()=>E(`mapName`),children:`Map`}),t[45]=E,t[46]=L);let R;t[47]===E?R=t[48]:(R=(0,s.jsx)(`th`,{"data-column":`gameType`,onClick:()=>E(`gameType`),children:`Type`}),t[47]=E,t[48]=R);let z;t[49]===E?z=t[50]:(z=(0,s.jsx)(`th`,{"data-column":`mod`,onClick:()=>E(`mod`),children:`Mod`}),t[49]=E,t[50]=z);let B;t[51]!==M||t[52]!==F||t[53]!==I||t[54]!==L||t[55]!==R||t[56]!==z?(B=(0,s.jsx)(`thead`,{children:(0,s.jsxs)(`tr`,{children:[M,F,I,L,R,z]})}),t[51]=M,t[52]=F,t[53]=I,t[54]=L,t[55]=R,t[56]=z,t[57]=B):B=t[57];let V;if(t[58]!==l||t[59]!==_||t[60]!==n||t[61]!==p||t[62]!==ge){let e;t[64]!==l||t[65]!==_||t[66]!==n||t[67]!==p?(e=e=>(0,s.jsxs)(`tr`,{onClick:()=>{de(e.address);let t=document.forms.namedItem(`serverList`).elements.namedItem(`serverAddress`);Array.from(t).find(t=>t.value===e.address).focus()},onDoubleClick:()=>{de(e.address),_(e.address),n()},children:[(0,s.jsxs)(`td`,{"data-column":`server`,children:[(0,s.jsx)(`input`,{type:`radio`,className:o.HiddenRadio,name:`serverAddress`,value:e.address,checked:p===e.address,onChange:e=>{de(e.target.value)}}),e.passwordRequired&&(0,s.jsx)(`span`,{className:o.PasswordIcon,children:`🔒`}),e.name]}),(0,s.jsxs)(`td`,{className:e.playerCount===0?o.EmptyServer:void 0,"data-column":`players`,children:[e.playerCount,(0,s.jsxs)(`span`,{className:o.CompactHidden,children:[` / `,e.maxPlayers]})]}),(0,s.jsx)(`td`,{"data-column":`ping`,children:l==null?`—`:(e.ping+l).toLocaleString()}),(0,s.jsx)(`td`,{"data-column":`map`,children:e.mapName}),(0,s.jsx)(`td`,{"data-column":`gameType`,children:e.gameType}),(0,s.jsx)(`td`,{"data-column":`mod`,children:e.mod})]},e.address),t[64]=l,t[65]=_,t[66]=n,t[67]=p,t[68]=e):e=t[68],V=ge.map(e),t[58]=l,t[59]=_,t[60]=n,t[61]=p,t[62]=ge,t[63]=V}else V=t[63];let H;t[69]===V?H=t[70]:(H=(0,s.jsx)(`tbody`,{children:V}),t[69]=V,t[70]=H);let U;t[71]!==B||t[72]!==H?(U=(0,s.jsxs)(`table`,{className:o.Table,children:[B,H]}),t[71]=B,t[72]=H,t[73]=U):U=t[73];let W;t[74]!==h||t[75]!==U?(W=(0,s.jsx)(`div`,{className:o.TableWrapper,children:(0,s.jsx)(`form`,{name:`serverList`,onSubmit:h,children:U})}),t[74]=h,t[75]=U,t[76]=W):W=t[76];let G;t[77]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,s.jsx)(`label`,{className:o.WarriorLabel,htmlFor:`warriorName`,children:`Warrior`}),t[77]=G):G=t[77];let K;t[78]===ue?K=t[79]:(K=e=>ue(e.target.value),t[78]=ue,t[79]=K);let q;t[80]!==K||t[81]!==f?(q=(0,s.jsxs)(`div`,{className:o.WarriorField,children:[G,(0,s.jsx)(`input`,{id:`warriorName`,className:o.WarriorInput,type:`text`,value:f,onChange:K,placeholder:`Name thyself…`,maxLength:24})]}),t[80]=K,t[81]=f,t[82]=q):q=t[82];let J;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,s.jsx)(`span`,{className:o.Hint,children:`Double-click a server to join`}),t[83]=J):J=t[83];let Y;t[84]===n?Y=t[85]:(Y=(0,s.jsx)(`button`,{onClick:n,className:o.CloseButton,children:`Cancel`}),t[84]=n,t[85]=Y);let ve=!p,X;t[86]!==h||t[87]!==ve?(X=(0,s.jsx)(`button`,{onClick:h,disabled:ve,className:o.JoinButton,children:`Join`}),t[86]=h,t[87]=ve,t[88]=X):X=t[88];let Z;t[89]!==Y||t[90]!==X?(Z=(0,s.jsxs)(`div`,{className:o.Actions,children:[Y,X]}),t[89]=Y,t[90]=X,t[91]=Z):Z=t[91];let Q;t[92]!==q||t[93]!==Z?(Q=(0,s.jsxs)(`div`,{className:o.Footer,children:[q,J,Z]}),t[92]=q,t[93]=Z,t[94]=Q):Q=t[94];let $;t[95]!==j||t[96]!==W||t[97]!==Q?($=(0,s.jsxs)(`div`,{className:o.Dialog,ref:me,tabIndex:-1,onClick:re,children:[j,W,Q]}),t[95]=j,t[96]=W,t[97]=Q,t[98]=$):$=t[98];let ye;return t[99]!==n||t[100]!==$?(ye=(0,s.jsx)(`div`,{className:o.Overlay,onClick:n,children:$}),t[99]=n,t[100]=$,t[101]=ye):ye=t[101],ye}function re(e){return e.stopPropagation()}function ie(e){return e===`asc`?`desc`:`asc`}function ae(e){return e.joinServer}function oe(e){return e.listServers}function se(e){return e.browserToRelayPing}function ce(e){return e.serversLoading}function le(e){return e.servers}export{c as ServerBrowser}; \ No newline at end of file diff --git a/docs/assets/StreamingController-mmR1lAIE.js b/docs/assets/StreamingController-CEWgeQUH.js similarity index 98% rename from docs/assets/StreamingController-mmR1lAIE.js rename to docs/assets/StreamingController-CEWgeQUH.js index 87cb29e5..ca3abc46 100644 --- a/docs/assets/StreamingController-mmR1lAIE.js +++ b/docs/assets/StreamingController-CEWgeQUH.js @@ -1,4 +1,4 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,s as a}from"./react-three-fiber.esm-El6vNTZj.js";import{a as o,i as s,s as c}from"./SettingsProvider-BdqQ2Cm4.js";import{C as l,Ct as u,Ft as d,Ht as f,Lt as p,Rt as m,Tt as h,Vt as g,Wt as _,at as v,g as y,h as b,it as x,jt as S,k as C,m as w,p as T,xt as E}from"./three.module-DKAirPAO.js";import{r as D}from"./PlayerModel-D8NLwrT8.js";import{f as O,n as k,p as A,r as j}from"./playbackUtils-DjmjN4tv.js";import{t as M}from"./textureUtils-Bk_jPZib.js";import{p as N,r as ee}from"./loaders-B4T775qz.js";import{t as P}from"./logger-B058WGzf.js";import{a as F,n as I,r as te,t as L}from"./engineStore-B1KAgiiF.js";import{a as ne,c as re,d as ie,i as ae,l as oe,o as se,r as ce,s as le}from"./AudioEmitter-CJMuEzA2.js";import{n as R,t as ue}from"./streamPlaybackStore-D5ldcfU5.js";import{j as z}from"./index-BnXbiEzA.js";import{t as de}from"./gameEntityTypes-CIesm-Ll.js";var B=e(n(),1),fe=t(),pe=Math.PI/180,me=-9.81,he=Math.PI/(180*1e3),ge=1/100,_e=-1e3,ve=50,V=5,ye=5,be=10;function H(e,t,n){let r=e[t];return typeof r==`number`&&Number.isFinite(r)?r:n}function U(e,t,n){let r=e[t];return typeof r==`boolean`?r:typeof r==`number`?r!==0:n}function xe(e){let t=e.keys,n=[];if(Array.isArray(t)&&t.length>0)for(let e=0;e0&&t[0]&&(r=t[0])}return{dragCoefficient:H(e,`dragCoefficient`,0)*ye,windCoefficient:H(e,`windCoefficient`,1),gravityCoefficient:H(e,`gravityCoefficient`,0)*be,inheritedVelFactor:H(e,`inheritedVelFactor`,0),constantAcceleration:H(e,`constantAcceleration`,0),lifetimeMS:H(e,`lifetimeMS`,31)<=t){let r=e[n-1],i=e[n],a=i.time-r.time,o=a>0?(t-r.time)/a:0;return{r:r.r+(i.r-r.r)*o,g:r.g+(i.g-r.g)*o,b:r.b+(i.b-r.b)*o,a:r.a+(i.a-r.a)*o,size:r.size+(i.size-r.size)*o}}let n=e[e.length-1];return{r:n.r,g:n.g,b:n.b,a:n.a,size:n.size}}var De=class{data;particles=[];maxParticles;internalClock=0;nextParticleTime=0;emitterAge=0;emitterLifetime;emitterDead=!1;constructor(e,t=256,n){this.data=e,this.maxParticles=t;let r=n??e.lifetimeMS;!n&&e.lifetimeVarianceMS>0&&(r+=Math.round(W(0,e.lifetimeVarianceMS))),this.emitterLifetime=r}emitBurst(e,t,n=[0,0,1]){for(let r=0;r0;){if(this.nextParticleTime>0){let e=Math.min(r,this.nextParticleTime);this.nextParticleTime-=e,r-=e,this.internalClock+=e;continue}if(this.particles.length0)){let e=this.particles[this.particles.length-1];e.currentAge+=r,e.currentAge>=e.totalLifetime&&this.particles.pop()}let t=this.data.ejectionPeriodMS;this.data.periodVarianceMS>0&&(t+=Math.round(W(0,this.data.periodVarianceMS))),this.nextParticleTime=Math.max(1,t)}}update(e){this.emitterAge+=e,this.emitterLifetime>0&&this.emitterAge>this.emitterLifetime&&(this.emitterDead=!0);let t=e/1e3,n=this.data.particles;for(let r=this.particles.length-1;r>=0;r--){let i=this.particles[r];if(i.currentAge+=e,i.currentAge>=i.totalLifetime){this.particles[r]=this.particles[this.particles.length-1],this.particles.pop();continue}let a=n.dragCoefficient,o=n.gravityCoefficient,s=i.acc[0]-i.vel[0]*a,c=i.acc[1]-i.vel[1]*a,l=i.acc[2]-i.vel[2]*a+me*o;i.vel[0]+=s*t,i.vel[1]+=c*t,i.vel[2]+=l*t,i.pos[0]+=i.vel[0]*t,i.pos[1]+=i.vel[1]*t,i.pos[2]+=i.vel[2]*t;let u=i.currentAge/i.totalLifetime,d=Ee(n.keys,u);i.r=d.r,i.g=d.g,i.b=d.b,i.a=d.a,i.size=d.size,i.currentSpin=i.spinSpeed*i.currentAge*he}}isDead(){return this.emitterDead&&this.particles.length===0}kill(){this.emitterDead=!0}addParticle(e,t){let n=this.data,r=n.particles,i=t[0],a=t[1],o=t[2],s=we(i,a,o),c=(n.thetaMin+Math.random()*(n.thetaMax-n.thetaMin))*pe,l=(this.internalClock/1e3*n.phiReferenceVel+Math.random()*n.phiVariance)*pe;[i,a,o]=Te(i,a,o,s[0],s[1],s[2],c),[i,a,o]=Te(i,a,o,t[0],t[1],t[2],l);let u=Math.sqrt(i*i+a*a+o*o);u>1e-8&&(i/=u,a/=u,o/=u);let d=W(n.ejectionVelocity,n.velocityVariance),f=[e[0]+i*n.ejectionOffset,e[1]+a*n.ejectionOffset,e[2]+o*n.ejectionOffset],p=[i*d,a*d,o*d],m=r.constantAcceleration,h=[p[0]*m,p[1]*m,p[2]*m],g=r.lifetimeMS;r.lifetimeVarianceMS>0&&(g+=Math.round(W(0,r.lifetimeVarianceMS))),g=Math.max(1,g);let _=r.spinSpeed+Ce(r.spinRandomMin,r.spinRandomMax),v=r.keys[0];this.particles.push({pos:f,vel:p,acc:h,orientDir:[i,a,o],currentAge:0,totalLifetime:g,dataIndex:0,spinSpeed:_,currentSpin:0,r:v.r,g:v.g,b:v.b,a:v.a,size:v.size})}},Oe=` +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,s as a}from"./react-three-fiber.esm-El6vNTZj.js";import{a as o,i as s,s as c}from"./SettingsProvider-BdqQ2Cm4.js";import{C as l,Ct as u,Ft as d,Ht as f,Lt as p,Rt as m,Tt as h,Vt as g,Wt as _,at as v,g as y,h as b,it as x,jt as S,k as C,m as w,p as T,xt as E}from"./three.module-DKAirPAO.js";import{r as D}from"./PlayerModel-D6m6HpJF.js";import{f as O,n as k,p as A,r as j}from"./playbackUtils-DuS6opSR.js";import{t as M}from"./textureUtils-Bk_jPZib.js";import{p as N,r as ee}from"./loaders-5n1D4iOD.js";import{t as P}from"./logger-B058WGzf.js";import{a as F,n as I,r as te,t as L}from"./engineStore-B1KAgiiF.js";import{a as ne,c as re,d as ie,i as ae,l as oe,o as se,r as ce,s as le}from"./AudioEmitter-3VHhCc7Y.js";import{n as R,t as ue}from"./streamPlaybackStore-D5ldcfU5.js";import{j as z}from"./index-BZ0wFa-D.js";import{t as de}from"./gameEntityTypes-CIesm-Ll.js";var B=e(n(),1),fe=t(),pe=Math.PI/180,me=-9.81,he=Math.PI/(180*1e3),ge=1/100,_e=-1e3,ve=50,V=5,ye=5,be=10;function H(e,t,n){let r=e[t];return typeof r==`number`&&Number.isFinite(r)?r:n}function U(e,t,n){let r=e[t];return typeof r==`boolean`?r:typeof r==`number`?r!==0:n}function xe(e){let t=e.keys,n=[];if(Array.isArray(t)&&t.length>0)for(let e=0;e0&&t[0]&&(r=t[0])}return{dragCoefficient:H(e,`dragCoefficient`,0)*ye,windCoefficient:H(e,`windCoefficient`,1),gravityCoefficient:H(e,`gravityCoefficient`,0)*be,inheritedVelFactor:H(e,`inheritedVelFactor`,0),constantAcceleration:H(e,`constantAcceleration`,0),lifetimeMS:H(e,`lifetimeMS`,31)<=t){let r=e[n-1],i=e[n],a=i.time-r.time,o=a>0?(t-r.time)/a:0;return{r:r.r+(i.r-r.r)*o,g:r.g+(i.g-r.g)*o,b:r.b+(i.b-r.b)*o,a:r.a+(i.a-r.a)*o,size:r.size+(i.size-r.size)*o}}let n=e[e.length-1];return{r:n.r,g:n.g,b:n.b,a:n.a,size:n.size}}var De=class{data;particles=[];maxParticles;internalClock=0;nextParticleTime=0;emitterAge=0;emitterLifetime;emitterDead=!1;constructor(e,t=256,n){this.data=e,this.maxParticles=t;let r=n??e.lifetimeMS;!n&&e.lifetimeVarianceMS>0&&(r+=Math.round(W(0,e.lifetimeVarianceMS))),this.emitterLifetime=r}emitBurst(e,t,n=[0,0,1]){for(let r=0;r0;){if(this.nextParticleTime>0){let e=Math.min(r,this.nextParticleTime);this.nextParticleTime-=e,r-=e,this.internalClock+=e;continue}if(this.particles.length0)){let e=this.particles[this.particles.length-1];e.currentAge+=r,e.currentAge>=e.totalLifetime&&this.particles.pop()}let t=this.data.ejectionPeriodMS;this.data.periodVarianceMS>0&&(t+=Math.round(W(0,this.data.periodVarianceMS))),this.nextParticleTime=Math.max(1,t)}}update(e){this.emitterAge+=e,this.emitterLifetime>0&&this.emitterAge>this.emitterLifetime&&(this.emitterDead=!0);let t=e/1e3,n=this.data.particles;for(let r=this.particles.length-1;r>=0;r--){let i=this.particles[r];if(i.currentAge+=e,i.currentAge>=i.totalLifetime){this.particles[r]=this.particles[this.particles.length-1],this.particles.pop();continue}let a=n.dragCoefficient,o=n.gravityCoefficient,s=i.acc[0]-i.vel[0]*a,c=i.acc[1]-i.vel[1]*a,l=i.acc[2]-i.vel[2]*a+me*o;i.vel[0]+=s*t,i.vel[1]+=c*t,i.vel[2]+=l*t,i.pos[0]+=i.vel[0]*t,i.pos[1]+=i.vel[1]*t,i.pos[2]+=i.vel[2]*t;let u=i.currentAge/i.totalLifetime,d=Ee(n.keys,u);i.r=d.r,i.g=d.g,i.b=d.b,i.a=d.a,i.size=d.size,i.currentSpin=i.spinSpeed*i.currentAge*he}}isDead(){return this.emitterDead&&this.particles.length===0}kill(){this.emitterDead=!0}addParticle(e,t){let n=this.data,r=n.particles,i=t[0],a=t[1],o=t[2],s=we(i,a,o),c=(n.thetaMin+Math.random()*(n.thetaMax-n.thetaMin))*pe,l=(this.internalClock/1e3*n.phiReferenceVel+Math.random()*n.phiVariance)*pe;[i,a,o]=Te(i,a,o,s[0],s[1],s[2],c),[i,a,o]=Te(i,a,o,t[0],t[1],t[2],l);let u=Math.sqrt(i*i+a*a+o*o);u>1e-8&&(i/=u,a/=u,o/=u);let d=W(n.ejectionVelocity,n.velocityVariance),f=[e[0]+i*n.ejectionOffset,e[1]+a*n.ejectionOffset,e[2]+o*n.ejectionOffset],p=[i*d,a*d,o*d],m=r.constantAcceleration,h=[p[0]*m,p[1]*m,p[2]*m],g=r.lifetimeMS;r.lifetimeVarianceMS>0&&(g+=Math.round(W(0,r.lifetimeVarianceMS))),g=Math.max(1,g);let _=r.spinSpeed+Ce(r.spinRandomMin,r.spinRandomMax),v=r.keys[0];this.particles.push({pos:f,vel:p,acc:h,orientDir:[i,a,o],currentAge:0,totalLifetime:g,dataIndex:0,spinSpeed:_,currentSpin:0,r:v.r,g:v.g,b:v.b,a:v.a,size:v.size})}},Oe=` // 'position' is auto-declared by Three.js for ShaderMaterial. attribute vec4 particleColor; attribute float particleSize; diff --git a/docs/assets/TouchHandler-C-XYcmBd.js b/docs/assets/TouchHandler-BYqo6IGL.js similarity index 95% rename from docs/assets/TouchHandler-C-XYcmBd.js rename to docs/assets/TouchHandler-BYqo6IGL.js index 9a3c14f5..8c4b815a 100644 --- a/docs/assets/TouchHandler-C-XYcmBd.js +++ b/docs/assets/TouchHandler-BYqo6IGL.js @@ -1 +1 @@ -import{n as e}from"./jsx-runtime-BpGWiA-R.js";import{a as t}from"./react-three-fiber.esm-El6vNTZj.js";import{r as n}from"./SettingsProvider-BdqQ2Cm4.js";import{n as r}from"./JoystickContext-B2sO9eYx.js";import{f as i,h as a}from"./index-BnXbiEzA.js";var o=e(),s=.004,c=2.5,l=.08,u=.15,d=.15;function f(){let e=(0,o.c)(9),{speedMultiplier:f,touchMode:p,invertDrag:m,invertJoystick:h}=n(),{moveState:g,lookState:_}=r(),v=a(),[,y]=i(),b;return e[0]!==y||e[1]!==m||e[2]!==h||e[3]!==_.current||e[4]!==g.current||e[5]!==v||e[6]!==f||e[7]!==p?(b=(e,t)=>{let{force:n,angle:r}=g.current,{force:i,angle:a}=_.current,o=y().touchLook,b=m?1:-1,x=0,S=0;p===`moveLookStick`&&o&&o.dragging&&(x=b*o.deltaX*s,S=b*o.deltaY*s);let C=0,w=0;if(p===`dualStick`){if(i>u){let e=(i-u)/(1-u),n=Math.cos(a),r=Math.sin(a),o=h?1:-1;x-=o*n*e*c*t,S+=o*r*e*c*t}if(n>l){let e=(n-l)/(1-l),t=Math.cos(r),i=Math.sin(r);C=Math.max(-1,Math.min(1,t*e*(.8*f+.05))),w=Math.max(-1,Math.min(1,i*e*(.8*f+.05)))}}else if(p===`moveLookStick`&&n>0&&(w=Math.min(1,.5*f+.05),n>=d)){let e=Math.cos(r),i=Math.sin(r),a=(n-d)/(1-d),o=h?1:-1;x-=o*e*a*c*.5*t,S+=o*i*a*c*.5*t}!(x!==0||S!==0)&&!(C!==0||w!==0)||v({deltaYaw:x,deltaPitch:S,x:C,y:w,z:0,triggers:[],delta:t})},e[0]=y,e[1]=m,e[2]=h,e[3]=_.current,e[4]=g.current,e[5]=v,e[6]=f,e[7]=p,e[8]=b):b=e[8],t(b),null}export{f as TouchHandler}; \ No newline at end of file +import{n as e}from"./jsx-runtime-BpGWiA-R.js";import{a as t}from"./react-three-fiber.esm-El6vNTZj.js";import{r as n}from"./SettingsProvider-BdqQ2Cm4.js";import{n as r}from"./JoystickContext-B2sO9eYx.js";import{f as i,h as a}from"./index-BZ0wFa-D.js";var o=e(),s=.004,c=2.5,l=.08,u=.15,d=.15;function f(){let e=(0,o.c)(9),{speedMultiplier:f,touchMode:p,invertDrag:m,invertJoystick:h}=n(),{moveState:g,lookState:_}=r(),v=a(),[,y]=i(),b;return e[0]!==y||e[1]!==m||e[2]!==h||e[3]!==_.current||e[4]!==g.current||e[5]!==v||e[6]!==f||e[7]!==p?(b=(e,t)=>{let{force:n,angle:r}=g.current,{force:i,angle:a}=_.current,o=y().touchLook,b=m?1:-1,x=0,S=0;p===`moveLookStick`&&o&&o.dragging&&(x=b*o.deltaX*s,S=b*o.deltaY*s);let C=0,w=0;if(p===`dualStick`){if(i>u){let e=(i-u)/(1-u),n=Math.cos(a),r=Math.sin(a),o=h?1:-1;x-=o*n*e*c*t,S+=o*r*e*c*t}if(n>l){let e=(n-l)/(1-l),t=Math.cos(r),i=Math.sin(r);C=Math.max(-1,Math.min(1,t*e*(.8*f+.05))),w=Math.max(-1,Math.min(1,i*e*(.8*f+.05)))}}else if(p===`moveLookStick`&&n>0&&(w=Math.min(1,.5*f+.05),n>=d)){let e=Math.cos(r),i=Math.sin(r),a=(n-d)/(1-d),o=h?1:-1;x-=o*e*a*c*.5*t,S+=o*i*a*c*.5*t}!(x!==0||S!==0)&&!(C!==0||w!==0)||v({deltaYaw:x,deltaPitch:S,x:C,y:w,z:0,triggers:[],delta:t})},e[0]=y,e[1]=m,e[2]=h,e[3]=_.current,e[4]=g.current,e[5]=v,e[6]=f,e[7]=p,e[8]=b):b=e[8],t(b),null}export{f as TouchHandler}; \ No newline at end of file diff --git a/docs/assets/WaterBlock-BoR_edBt.js b/docs/assets/WaterBlock-DV6neJfD.js similarity index 99% rename from docs/assets/WaterBlock-BoR_edBt.js rename to docs/assets/WaterBlock-DV6neJfD.js index 2aa423ae..97d107a3 100644 --- a/docs/assets/WaterBlock-BoR_edBt.js +++ b/docs/assets/WaterBlock-DV6neJfD.js @@ -1,4 +1,4 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,s as a}from"./react-three-fiber.esm-El6vNTZj.js";import{a as o,i as s}from"./SettingsProvider-BdqQ2Cm4.js";import{Ot as c,_t as l,b as u,jt as d,rt as f}from"./three.module-DKAirPAO.js";import{a as p,i as m,l as h}from"./textureUtils-Bk_jPZib.js";import{p as g}from"./loaders-B4T775qz.js";import{t as _}from"./extends-lXRikpl0.js";import{t as v}from"./Texture-BYh0PjzP.js";import{t as y}from"./useAnisotropy-D9othEmk.js";import{r as ee}from"./cameraTourStore-CtH3IrnD.js";import{t as te}from"./DebugBounds-CZKrvsAw.js";import{n as b,r as x,t as S}from"./scene-C20n9V3Y.js";var C=e(n());function w(e,t){let n=e+`Geometry`;return C.forwardRef(({args:e,children:r,...i},a)=>{let o=C.useRef(null);return C.useImperativeHandle(a,()=>o.current),C.useLayoutEffect(()=>void t?.(o.current)),C.createElement(`mesh`,_({ref:o},i),C.createElement(n,{attach:`geometry`,args:e}),r)})}var T=w(`box`),E=t(),D=` +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,s as a}from"./react-three-fiber.esm-El6vNTZj.js";import{a as o,i as s}from"./SettingsProvider-BdqQ2Cm4.js";import{Ot as c,_t as l,b as u,jt as d,rt as f}from"./three.module-DKAirPAO.js";import{a as p,i as m,l as h}from"./textureUtils-Bk_jPZib.js";import{p as g}from"./loaders-5n1D4iOD.js";import{t as _}from"./extends-lXRikpl0.js";import{t as v}from"./Texture-BYh0PjzP.js";import{t as y}from"./useAnisotropy-D9othEmk.js";import{r as ee}from"./cameraTourStore-CtH3IrnD.js";import{t as te}from"./DebugBounds-CZKrvsAw.js";import{n as b,r as x,t as S}from"./scene-C20n9V3Y.js";var C=e(n());function w(e,t){let n=e+`Geometry`;return C.forwardRef(({args:e,children:r,...i},a)=>{let o=C.useRef(null);return C.useImperativeHandle(a,()=>o.current),C.useLayoutEffect(()=>void t?.(o.current)),C.createElement(`mesh`,_({ref:o},i),C.createElement(n,{attach:`geometry`,args:e}),r)})}var T=w(`box`),E=t(),D=` #include #ifdef USE_FOG diff --git a/docs/assets/demoStreaming-VZXXHEQr.js b/docs/assets/demoStreaming-BFlLHKkt.js similarity index 99% rename from docs/assets/demoStreaming-VZXXHEQr.js rename to docs/assets/demoStreaming-BFlLHKkt.js index dbd03499..8c97e852 100644 --- a/docs/assets/demoStreaming-VZXXHEQr.js +++ b/docs/assets/demoStreaming-BFlLHKkt.js @@ -1 +1 @@ -import{A as e,E as t,M as n,a as r,b as i,f as a,l as o,n as s,r as c,t as l,v as u,x as d,y as f}from"./streamHelpers-CYLk-lCT.js";import{i as p}from"./scene-C20n9V3Y.js";import{L as m}from"./index-BnXbiEzA.js";function h(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=NaN,c=null;for(let l=0;l=3&&d[1]?.endsWith(`Game`)&&(r=d[1]),e[l]!==`readplayerinfo`)continue;let f=e[l+1];if(f){if(f.startsWith(`1 `)){let e=f.split(` `);e[1]&&(s=parseInt(e[1],10)),e[2]&&(o=u(e[2]).trim());continue}if(f.startsWith(`2 `)){let e=f.split(` `);e[1]&&(i=e[1]),e[3]&&(c=e[3]),e[4]&&(t=e[4]);continue}if(f.startsWith(`3 `)){let e=f.split(` `);e[1]&&(a=e[1]),e[2]&&(n=e[2])}}}return{missionDisplayName:t,missionType:n,gameClassName:r,serverDisplayName:i,mod:a,recorderName:o,recorderClientId:Number.isFinite(s)?s:null,recordingDate:c}}function g(e){let t={weaponsHud:null,backpackHud:null,inventoryHud:null,teamScores:[],playerRoster:new Map,chatMessages:[],clockTimeMin:null,gravity:-20};if(!e.length)return t;let n=0,r=()=>{let t=e[n++];return t===``?``:t??``};if(r(),n>=e.length)return t;let i=parseInt(r(),10)||0,a=new Map;for(let e=0;e0&&a.set(o,(a.get(o)??0)+1)}if(n>=e.length||(r(),n>=e.length))return t;{let e=r().split(` `),n=e[0]??``,i=e[1]===`1`||e[1]===`true`,a=e[2]??``,o=e[4]===`1`||e[4]===`true`;i&&n&&(t.backpackHud={packIndex:s(n),active:o,text:a})}if(n>=e.length)return t;let o=r().split(` `),c=parseInt(o[4],10)||0,l=parseInt(o[5],10)||0,d=parseInt(o[6],10);for(let e=0;e=e.length)return t;let p=r().split(` `),m=parseInt(p[4],10)||0,h=parseInt(p[5],10)||0,g=parseInt(p[6],10);for(let e=0;e0&&e.set(n,i)}e.size>0&&(t.inventoryHud={slots:e,activeSlot:isNaN(g)?-1:g})}if(n>=e.length)return t;let _=r().split(` `),v=_[1]??``,y=parseInt(_[2],10)||0,b=[];for(let e=0;e=8)for(let e=0;e<2;e++){let n=e*4,r=e+1;t.teamScores.push({teamId:r,name:b[n]??``,score:parseInt(b[n+1],10)||0,playerCount:a.get(r)??0})}else if(v===`TR2Game`&&y>=4)for(let e=0;e<2;e++){let n=e*2,r=e+1;t.teamScores.push({teamId:r,name:b[n+1]??``,score:parseInt(b[n],10)||0,playerCount:a.get(r)??0})}if(n>=e.length)return t;{let e=r().split(` `),n=parseFloat(e[1]??``);Number.isFinite(n)&&(t.clockTimeMin=n)}for(let i=0;i<10&&!(n>=e.length);i++){let e=r();e&&t.chatMessages.push(e)}if(n=0?this.entityIdByGhostIndex.get(this.initialBlock.controlObjectGhostIndex):void 0,this.playerSensorGroup===0&&this.lastControlType===`player`&&this.latestControl.ghostIndex>=0){let e=this.entityIdByGhostIndex.get(this.latestControl.ghostIndex),t=e?this.entities.get(e):void 0;t?.sensorGroup!=null&&t.sensorGroup>0&&(this.playerSensorGroup=t.sensorGroup)}for(let e of this.initialBlock.initialEvents){let t=this.registry.getEventParser(e.classId)?.name;if(t===`SetSensorGroupEvent`&&e.parsedData){let t=e.parsedData.sensorGroup;t!=null&&(this.playerSensorGroup=t)}else if(t===`RemoteCommandEvent`&&e.parsedData){let t=this.resolveNetString(e.parsedData.funcName),n=e.parsedData.args;t===`ServerMessage`&&this.handleServerMessage(n),this.handleHudRemoteCommand(t,n)}}let s=g(this.initialBlock.demoValues);s.weaponsHud&&(this.weaponsHud.slots=s.weaponsHud.slots,this.weaponsHud.activeIndex=s.weaponsHud.activeIndex),s.backpackHud&&(this.backpackHud.packIndex=s.backpackHud.packIndex,this.backpackHud.active=s.backpackHud.active,this.backpackHud.text=s.backpackHud.text),s.inventoryHud&&(this.inventoryHud.slots=s.inventoryHud.slots,this.inventoryHud.activeSlot=s.inventoryHud.activeSlot),this.teamScores=s.teamScores,this.playerRoster=new Map(s.playerRoster),s.clockTimeMin!=null&&(this.clockAnchorStreamSec=0,this.clockDurationMs=s.clockTimeMin*60*1e3);for(let e of s.chatMessages){let t=a(e);if(!t.length)continue;let n=t.map(e=>e.text).join(``);if(!n.trim())continue;let r=t[0].colorCode;if(t.some(e=>e.colorCode===3||e.colorCode===4)&&n.includes(`: `)){let e=n.indexOf(`: `);this.pushChatMessage({timeSec:0,sender:n.slice(0,e),text:n.slice(e+2),kind:`chat`,colorCode:r,segments:t})}else this.pushChatMessage({timeSec:0,sender:``,text:n,kind:`server`,colorCode:r,segments:t})}this.updateCameraAndHud()}getSnapshot(){if(this._cachedSnapshot&&this._cachedSnapshotTick===this.moveTicks&&this._cachedSnapshotGen===this.entityGeneration)return this._cachedSnapshot;let e=this.buildSnapshot();return this._cachedSnapshot=e,this._cachedSnapshotTick=this.moveTicks,this._cachedSnapshotGen=this.entityGeneration,e}getEffectShapes(){let e=new Set,t=t=>{let n=t.dtsFileName;n&&e.add(n);let r=t.subExplosions;if(Array.isArray(r))for(let t of r){if(t==null)continue;let n=this.getDataBlockData(t);n?.dtsFileName&&e.add(n.dtsFileName)}};for(let[,e]of this.initialBlock.dataBlocks){let n=e.data?.explosion;if(n==null)continue;let r=this.getDataBlockData(n);r&&t(r)}return[...e]}stepToTime(e,t=1/0){let n=Math.floor((Number.isFinite(e)?Math.max(0,e):0)*1e3/32),r=!1;n({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},o=n&&n.inventoryHudGen===this._inventoryHudGen?n.inventoryHud:{slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},s=n&&n.backpackPackIndex===this.backpackHud.packIndex&&n.backpackActive===this.backpackHud.active&&n.backpackText===this.backpackHud.text?n.backpackHud:this.backpackHud.packIndex>=0?{...this.backpackHud}:null,c,l;if(n&&n.teamScoresGen===this._teamScoresGen&&n.rosterGen===this._rosterGen)c=n.teamScores,l=n.playerRoster;else{c=this.teamScores.map(e=>({...e}));let e=new Map;for(let{teamId:t}of this.playerRoster.values())t>0&&e.set(t,(e.get(t)??0)+1);for(let t of c)t.playerCount=e.get(t.teamId)??0;l=[];for(let[e,t]of this.playerRoster)l.push({clientId:e,...t})}return this._snap={teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,teamScores:c,playerRoster:l,weaponsHudGen:this._weaponsHudGen,weaponsHud:a,inventoryHudGen:this._inventoryHudGen,inventoryHud:o,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,backpackText:this.backpackHud.text,backpackHud:s},{timeSec:t,exhausted:this.exhausted,camera:this.camera,entities:e,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:r,audioEvents:i,weaponsHud:a,backpackHud:s,inventoryHud:o,teamScores:c,playerRoster:l,connectedClientId:this.connectedClientId,matchClockMs:this.computeMatchClockMs(t)}}isPacketData(e){return!!e&&typeof e==`object`&&`gameState`in e&&`events`in e&&`ghosts`in e}isMoveData(e){return!!e&&typeof e==`object`&&`yaw`in e}isInfoData(e){return!!e&&typeof e==`object`&&`value1`in e&&typeof e.value1==`number`&&`value2`in e&&typeof e.value2==`number`}};async function v(e){let t=new n(new Uint8Array(e)),{header:r,initialBlock:i}=await t.load(),a=h(i.demoValues),o=new _(t);return o.missionDisplayName=a.missionDisplayName,o.missionTypeDisplayName=a.missionType,o.gameClassName=a.gameClassName,o.serverDisplayName=a.serverDisplayName,o.connectedPlayerName=a.recorderName,o.connectedClientId=a.recorderClientId,{source:`demo`,duration:r.demoLengthMs/1e3,missionName:i.missionName??null,gameType:a.missionType,serverDisplayName:a.serverDisplayName,recorderName:a.recorderName,recordingDate:a.recordingDate,streamingPlayback:o}}export{v as createDemoStreamingRecording}; \ No newline at end of file +import{A as e,E as t,M as n,a as r,b as i,f as a,l as o,n as s,r as c,t as l,v as u,x as d,y as f}from"./streamHelpers-CYLk-lCT.js";import{i as p}from"./scene-C20n9V3Y.js";import{L as m}from"./index-BZ0wFa-D.js";function h(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=NaN,c=null;for(let l=0;l=3&&d[1]?.endsWith(`Game`)&&(r=d[1]),e[l]!==`readplayerinfo`)continue;let f=e[l+1];if(f){if(f.startsWith(`1 `)){let e=f.split(` `);e[1]&&(s=parseInt(e[1],10)),e[2]&&(o=u(e[2]).trim());continue}if(f.startsWith(`2 `)){let e=f.split(` `);e[1]&&(i=e[1]),e[3]&&(c=e[3]),e[4]&&(t=e[4]);continue}if(f.startsWith(`3 `)){let e=f.split(` `);e[1]&&(a=e[1]),e[2]&&(n=e[2])}}}return{missionDisplayName:t,missionType:n,gameClassName:r,serverDisplayName:i,mod:a,recorderName:o,recorderClientId:Number.isFinite(s)?s:null,recordingDate:c}}function g(e){let t={weaponsHud:null,backpackHud:null,inventoryHud:null,teamScores:[],playerRoster:new Map,chatMessages:[],clockTimeMin:null,gravity:-20};if(!e.length)return t;let n=0,r=()=>{let t=e[n++];return t===``?``:t??``};if(r(),n>=e.length)return t;let i=parseInt(r(),10)||0,a=new Map;for(let e=0;e0&&a.set(o,(a.get(o)??0)+1)}if(n>=e.length||(r(),n>=e.length))return t;{let e=r().split(` `),n=e[0]??``,i=e[1]===`1`||e[1]===`true`,a=e[2]??``,o=e[4]===`1`||e[4]===`true`;i&&n&&(t.backpackHud={packIndex:s(n),active:o,text:a})}if(n>=e.length)return t;let o=r().split(` `),c=parseInt(o[4],10)||0,l=parseInt(o[5],10)||0,d=parseInt(o[6],10);for(let e=0;e=e.length)return t;let p=r().split(` `),m=parseInt(p[4],10)||0,h=parseInt(p[5],10)||0,g=parseInt(p[6],10);for(let e=0;e0&&e.set(n,i)}e.size>0&&(t.inventoryHud={slots:e,activeSlot:isNaN(g)?-1:g})}if(n>=e.length)return t;let _=r().split(` `),v=_[1]??``,y=parseInt(_[2],10)||0,b=[];for(let e=0;e=8)for(let e=0;e<2;e++){let n=e*4,r=e+1;t.teamScores.push({teamId:r,name:b[n]??``,score:parseInt(b[n+1],10)||0,playerCount:a.get(r)??0})}else if(v===`TR2Game`&&y>=4)for(let e=0;e<2;e++){let n=e*2,r=e+1;t.teamScores.push({teamId:r,name:b[n+1]??``,score:parseInt(b[n],10)||0,playerCount:a.get(r)??0})}if(n>=e.length)return t;{let e=r().split(` `),n=parseFloat(e[1]??``);Number.isFinite(n)&&(t.clockTimeMin=n)}for(let i=0;i<10&&!(n>=e.length);i++){let e=r();e&&t.chatMessages.push(e)}if(n=0?this.entityIdByGhostIndex.get(this.initialBlock.controlObjectGhostIndex):void 0,this.playerSensorGroup===0&&this.lastControlType===`player`&&this.latestControl.ghostIndex>=0){let e=this.entityIdByGhostIndex.get(this.latestControl.ghostIndex),t=e?this.entities.get(e):void 0;t?.sensorGroup!=null&&t.sensorGroup>0&&(this.playerSensorGroup=t.sensorGroup)}for(let e of this.initialBlock.initialEvents){let t=this.registry.getEventParser(e.classId)?.name;if(t===`SetSensorGroupEvent`&&e.parsedData){let t=e.parsedData.sensorGroup;t!=null&&(this.playerSensorGroup=t)}else if(t===`RemoteCommandEvent`&&e.parsedData){let t=this.resolveNetString(e.parsedData.funcName),n=e.parsedData.args;t===`ServerMessage`&&this.handleServerMessage(n),this.handleHudRemoteCommand(t,n)}}let s=g(this.initialBlock.demoValues);s.weaponsHud&&(this.weaponsHud.slots=s.weaponsHud.slots,this.weaponsHud.activeIndex=s.weaponsHud.activeIndex),s.backpackHud&&(this.backpackHud.packIndex=s.backpackHud.packIndex,this.backpackHud.active=s.backpackHud.active,this.backpackHud.text=s.backpackHud.text),s.inventoryHud&&(this.inventoryHud.slots=s.inventoryHud.slots,this.inventoryHud.activeSlot=s.inventoryHud.activeSlot),this.teamScores=s.teamScores,this.playerRoster=new Map(s.playerRoster),s.clockTimeMin!=null&&(this.clockAnchorStreamSec=0,this.clockDurationMs=s.clockTimeMin*60*1e3);for(let e of s.chatMessages){let t=a(e);if(!t.length)continue;let n=t.map(e=>e.text).join(``);if(!n.trim())continue;let r=t[0].colorCode;if(t.some(e=>e.colorCode===3||e.colorCode===4)&&n.includes(`: `)){let e=n.indexOf(`: `);this.pushChatMessage({timeSec:0,sender:n.slice(0,e),text:n.slice(e+2),kind:`chat`,colorCode:r,segments:t})}else this.pushChatMessage({timeSec:0,sender:``,text:n,kind:`server`,colorCode:r,segments:t})}this.updateCameraAndHud()}getSnapshot(){if(this._cachedSnapshot&&this._cachedSnapshotTick===this.moveTicks&&this._cachedSnapshotGen===this.entityGeneration)return this._cachedSnapshot;let e=this.buildSnapshot();return this._cachedSnapshot=e,this._cachedSnapshotTick=this.moveTicks,this._cachedSnapshotGen=this.entityGeneration,e}getEffectShapes(){let e=new Set,t=t=>{let n=t.dtsFileName;n&&e.add(n);let r=t.subExplosions;if(Array.isArray(r))for(let t of r){if(t==null)continue;let n=this.getDataBlockData(t);n?.dtsFileName&&e.add(n.dtsFileName)}};for(let[,e]of this.initialBlock.dataBlocks){let n=e.data?.explosion;if(n==null)continue;let r=this.getDataBlockData(n);r&&t(r)}return[...e]}stepToTime(e,t=1/0){let n=Math.floor((Number.isFinite(e)?Math.max(0,e):0)*1e3/32),r=!1;n({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},o=n&&n.inventoryHudGen===this._inventoryHudGen?n.inventoryHud:{slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},s=n&&n.backpackPackIndex===this.backpackHud.packIndex&&n.backpackActive===this.backpackHud.active&&n.backpackText===this.backpackHud.text?n.backpackHud:this.backpackHud.packIndex>=0?{...this.backpackHud}:null,c,l;if(n&&n.teamScoresGen===this._teamScoresGen&&n.rosterGen===this._rosterGen)c=n.teamScores,l=n.playerRoster;else{c=this.teamScores.map(e=>({...e}));let e=new Map;for(let{teamId:t}of this.playerRoster.values())t>0&&e.set(t,(e.get(t)??0)+1);for(let t of c)t.playerCount=e.get(t.teamId)??0;l=[];for(let[e,t]of this.playerRoster)l.push({clientId:e,...t})}return this._snap={teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,teamScores:c,playerRoster:l,weaponsHudGen:this._weaponsHudGen,weaponsHud:a,inventoryHudGen:this._inventoryHudGen,inventoryHud:o,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,backpackText:this.backpackHud.text,backpackHud:s},{timeSec:t,exhausted:this.exhausted,camera:this.camera,entities:e,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:r,audioEvents:i,weaponsHud:a,backpackHud:s,inventoryHud:o,teamScores:c,playerRoster:l,connectedClientId:this.connectedClientId,matchClockMs:this.computeMatchClockMs(t)}}isPacketData(e){return!!e&&typeof e==`object`&&`gameState`in e&&`events`in e&&`ghosts`in e}isMoveData(e){return!!e&&typeof e==`object`&&`yaw`in e}isInfoData(e){return!!e&&typeof e==`object`&&`value1`in e&&typeof e.value1==`number`&&`value2`in e&&typeof e.value2==`number`}};async function v(e){let t=new n(new Uint8Array(e)),{header:r,initialBlock:i}=await t.load(),a=h(i.demoValues),o=new _(t);return o.missionDisplayName=a.missionDisplayName,o.missionTypeDisplayName=a.missionType,o.gameClassName=a.gameClassName,o.serverDisplayName=a.serverDisplayName,o.connectedPlayerName=a.recorderName,o.connectedClientId=a.recorderClientId,{source:`demo`,duration:r.demoLengthMs/1e3,missionName:i.missionName??null,gameType:a.missionType,serverDisplayName:a.serverDisplayName,recorderName:a.recorderName,recordingDate:a.recordingDate,streamingPlayback:o}}export{v as createDemoStreamingRecording}; \ No newline at end of file diff --git a/docs/assets/index-BnXbiEzA.js b/docs/assets/index-BZ0wFa-D.js similarity index 99% rename from docs/assets/index-BnXbiEzA.js rename to docs/assets/index-BZ0wFa-D.js index 281b59ce..314deaf2 100644 --- a/docs/assets/index-BnXbiEzA.js +++ b/docs/assets/index-BZ0wFa-D.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/demoStreaming-VZXXHEQr.js","assets/streamHelpers-CYLk-lCT.js","assets/chunk-DECur_0Z.js","assets/three.module-DKAirPAO.js","assets/scene-C20n9V3Y.js","assets/logger-B058WGzf.js","assets/demoTimelineScanner-BbHg_3A9.js","assets/TouchHandler-C-XYcmBd.js","assets/react-three-fiber.esm-El6vNTZj.js","assets/jsx-runtime-BpGWiA-R.js","assets/traditional-CCqNJZlI.js","assets/SettingsProvider-BdqQ2Cm4.js","assets/engineStore-B1KAgiiF.js","assets/manifest-BIDT_vSa.js","assets/stringUtils-1MyeFdQ_.js","assets/JoystickContext-B2sO9eYx.js","assets/TouchJoystick-Cnt0wcWJ.js","assets/preload-helper-BPkniflS.js","assets/TouchJoystick-Dn73xHvm.css","assets/KeyboardOverlay-8NIHVGaH.js","assets/gr-DFj_ScyC.js","assets/iconBase-DZ3jidsI.js","assets/cameraTourStore-CtH3IrnD.js","assets/KeyboardOverlay-CpSto9KR.css","assets/GameView-DDyKEtZP.js","assets/mission-yeigCtfF.js","assets/extends-lXRikpl0.js","assets/PlayerModel-D8NLwrT8.js","assets/Html-CXAi5FD_.js","assets/useQuery-6REtM5HO.js","assets/AudioEmitter-CJMuEzA2.js","assets/DebugBounds-CZKrvsAw.js","assets/loaders-B4T775qz.js","assets/AudioEmitter-DAQByNim.css","assets/DebugSuspense-ChOWTvws.js","assets/playbackUtils-DjmjN4tv.js","assets/textureUtils-Bk_jPZib.js","assets/useAnisotropy-D9othEmk.js","assets/streamPlaybackStore-D5ldcfU5.js","assets/PlayerModel-Bi7C0zGW.css","assets/Texture-BYh0PjzP.js","assets/gameEntityTypes-CIesm-Ll.js","assets/GameView-DxG7zBut.css","assets/DemoPlaybackControls-ByWxYIZa.js","assets/DemoPlaybackControls-D1aGRzqE.css","assets/PlayerHUD-oFKWuzte.js","assets/PlayerHUD-DWa6gIym.css","assets/MapInfoDialog-DlTvQpC9.js","assets/MapInfoDialog-qPSE5ow_.css","assets/ServerBrowser-DlvPvTfO.js","assets/ServerBrowser-B1ZZ25fp.css","assets/ScoreScreen-Di92fTHh.js","assets/ScoreScreen-FWyMMObP.css"])))=>i.map(i=>d[i]); -import{r as e,t}from"./chunk-DECur_0Z.js";import{n,r,t as i}from"./jsx-runtime-BpGWiA-R.js";import{a,s as o}from"./react-three-fiber.esm-El6vNTZj.js";import{n as s,r as c}from"./Html-CXAi5FD_.js";import{_ as l,a as u,d,f,g as p,h as m,i as h,l as g,m as _,n as v,p as y,r as b,t as x,u as S}from"./SettingsProvider-BdqQ2Cm4.js";import{S as C,_ as w,a as T,b as E,c as D,d as O,f as k,g as A,h as j,i as M,l as N,m as P,n as F,o as I,p as ee,r as L,s as R,u as te,v as ne,x as re,y as ie}from"./useQuery-6REtM5HO.js";import{Ct as ae,Wt as oe}from"./three.module-DKAirPAO.js";import{i as se,n as z,r as B}from"./traditional-CCqNJZlI.js";import{i as ce,n as le,u as ue}from"./PlayerModel-D8NLwrT8.js";import{n as de}from"./loaders-B4T775qz.js";import{t as fe}from"./logger-B058WGzf.js";import{a as pe,l as me,n as he,r as ge,s as _e}from"./manifest-BIDT_vSa.js";import{i as ve,n as ye,r as be}from"./stringUtils-1MyeFdQ_.js";import{i as xe}from"./mission-yeigCtfF.js";import{i as Se,o as Ce,r as we}from"./engineStore-B1KAgiiF.js";import{t as Te}from"./preload-helper-BPkniflS.js";import{n as Ee,t as De}from"./cameraTourStore-CtH3IrnD.js";import{t as V}from"./iconBase-DZ3jidsI.js";import{A as Oe,C as ke,D as Ae,E as je,O as Me,S as Ne,T as Pe,_ as Fe,a as Ie,b as Le,c as Re,d as ze,g as Be,h as Ve,i as He,j as Ue,k as We,l as Ge,m as Ke,o as qe,p as Je,r as Ye,s as Xe,t as Ze,u as Qe,v as $e,w as et,x as tt,y as nt}from"./streamHelpers-CYLk-lCT.js";import{i as rt,r as it}from"./scene-C20n9V3Y.js";import{t as at}from"./JoystickContext-B2sO9eYx.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var H=e(r(),1),ot=e(s(),1),U=n();function st(e,t,n){return r=>{if(!(t.length===0||t.some(t=>!y(r.getAll(t),e.getAll(t)))))return p("[nuqs `%s`] no change, returning previous",t.join(`,`),r),r;let i=ct(e,t,n);return p(`[nuqs \`%s\`] subbed search params change +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/demoStreaming-BFlLHKkt.js","assets/streamHelpers-CYLk-lCT.js","assets/chunk-DECur_0Z.js","assets/three.module-DKAirPAO.js","assets/scene-C20n9V3Y.js","assets/logger-B058WGzf.js","assets/demoTimelineScanner-BbHg_3A9.js","assets/TouchHandler-BYqo6IGL.js","assets/react-three-fiber.esm-El6vNTZj.js","assets/jsx-runtime-BpGWiA-R.js","assets/traditional-CCqNJZlI.js","assets/SettingsProvider-BdqQ2Cm4.js","assets/engineStore-B1KAgiiF.js","assets/manifest-BIDT_vSa.js","assets/stringUtils-1MyeFdQ_.js","assets/JoystickContext-B2sO9eYx.js","assets/TouchJoystick-Cnt0wcWJ.js","assets/preload-helper-BPkniflS.js","assets/TouchJoystick-Dn73xHvm.css","assets/KeyboardOverlay-mMSQ0ePd.js","assets/gr-DFj_ScyC.js","assets/iconBase-DZ3jidsI.js","assets/cameraTourStore-CtH3IrnD.js","assets/KeyboardOverlay-CpSto9KR.css","assets/GameView-Bie98edJ.js","assets/mission-yeigCtfF.js","assets/extends-lXRikpl0.js","assets/PlayerModel-D6m6HpJF.js","assets/Html-CXAi5FD_.js","assets/useQuery-6REtM5HO.js","assets/AudioEmitter-3VHhCc7Y.js","assets/DebugBounds-CZKrvsAw.js","assets/loaders-5n1D4iOD.js","assets/AudioEmitter-DAQByNim.css","assets/DebugSuspense-ChOWTvws.js","assets/playbackUtils-DuS6opSR.js","assets/textureUtils-Bk_jPZib.js","assets/useAnisotropy-D9othEmk.js","assets/streamPlaybackStore-D5ldcfU5.js","assets/PlayerModel-Bi7C0zGW.css","assets/Texture-BYh0PjzP.js","assets/gameEntityTypes-CIesm-Ll.js","assets/GameView-DxG7zBut.css","assets/DemoPlaybackControls-CwlogtTb.js","assets/DemoPlaybackControls-D1aGRzqE.css","assets/PlayerHUD-CuRF2gd3.js","assets/PlayerHUD-DWa6gIym.css","assets/MapInfoDialog-DSwIQB7a.js","assets/MapInfoDialog-qPSE5ow_.css","assets/ServerBrowser-CL7giwqp.js","assets/ServerBrowser-B1ZZ25fp.css","assets/ScoreScreen-BnLWM4r1.js","assets/ScoreScreen-FWyMMObP.css"])))=>i.map(i=>d[i]); +import{r as e,t}from"./chunk-DECur_0Z.js";import{n,r,t as i}from"./jsx-runtime-BpGWiA-R.js";import{a,s as o}from"./react-three-fiber.esm-El6vNTZj.js";import{n as s,r as c}from"./Html-CXAi5FD_.js";import{_ as l,a as u,d,f,g as p,h as m,i as h,l as g,m as _,n as v,p as y,r as b,t as x,u as S}from"./SettingsProvider-BdqQ2Cm4.js";import{S as C,_ as w,a as T,b as E,c as D,d as O,f as k,g as A,h as j,i as M,l as N,m as P,n as F,o as I,p as ee,r as L,s as R,u as te,v as ne,x as re,y as ie}from"./useQuery-6REtM5HO.js";import{Ct as ae,Wt as oe}from"./three.module-DKAirPAO.js";import{i as se,n as z,r as B}from"./traditional-CCqNJZlI.js";import{i as ce,n as le,u as ue}from"./PlayerModel-D6m6HpJF.js";import{n as de}from"./loaders-5n1D4iOD.js";import{t as fe}from"./logger-B058WGzf.js";import{a as pe,l as me,n as he,r as ge,s as _e}from"./manifest-BIDT_vSa.js";import{i as ve,n as ye,r as be}from"./stringUtils-1MyeFdQ_.js";import{i as xe}from"./mission-yeigCtfF.js";import{i as Se,o as Ce,r as we}from"./engineStore-B1KAgiiF.js";import{t as Te}from"./preload-helper-BPkniflS.js";import{n as Ee,t as De}from"./cameraTourStore-CtH3IrnD.js";import{t as V}from"./iconBase-DZ3jidsI.js";import{A as Oe,C as ke,D as Ae,E as je,O as Me,S as Ne,T as Pe,_ as Fe,a as Ie,b as Le,c as Re,d as ze,g as Be,h as Ve,i as He,j as Ue,k as We,l as Ge,m as Ke,o as qe,p as Je,r as Ye,s as Xe,t as Ze,u as Qe,v as $e,w as et,x as tt,y as nt}from"./streamHelpers-CYLk-lCT.js";import{i as rt,r as it}from"./scene-C20n9V3Y.js";import{t as at}from"./JoystickContext-B2sO9eYx.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var H=e(r(),1),ot=e(s(),1),U=n();function st(e,t,n){return r=>{if(!(t.length===0||t.some(t=>!y(r.getAll(t),e.getAll(t)))))return p("[nuqs `%s`] no change, returning previous",t.join(`,`),r),r;let i=ct(e,t,n);return p(`[nuqs \`%s\`] subbed search params change from %O - to %O`,t.join(`,`),r,i),i}}function ct(e,t,n){if(t.length===0)return e;let r=n?new URLSearchParams(e):e;for(let n of e.keys())t.includes(n)||r.delete(n);return r}var lt=`__nuqs__`,ut=_();function dt(e){return function(t,n){let r=new URL(location.href);r.search=l(t),p(`[nuqs react] Updating url: %s`,r),e&&n.shallow===!1?(n.history===`push`?location.assign:location.replace).call(location,r):(n.history===`push`?history.pushState:history.replaceState).call(history,history.state,lt,r),ut.emit(`update`,t),n.scroll===!0&&window.scrollTo({top:0})}}var ft=(0,H.createContext)({fullPageNavigationOnShallowFalseUpdates:!1});function pt(e){let{fullPageNavigationOnShallowFalseUpdates:t}=(0,H.useContext)(ft),[n,r]=(0,H.useState)(()=>typeof location>`u`?new URLSearchParams:ct(new URLSearchParams(location.search),e,!1));return(0,H.useEffect)(()=>{let t=()=>{r(st(new URLSearchParams(location.search),e,!1))},n=t=>{r(st(t,e,!0))};return ut.on(`update`,n),window.addEventListener(`popstate`,t),()=>{ut.off(`update`,n),window.removeEventListener(`popstate`,t)}},[e.join(`&`)]),{searchParams:n,updateUrl:(0,H.useMemo)(()=>dt(t),[t])}}var mt=m(pt);function ht({children:e,fullPageNavigationOnShallowFalseUpdates:t=!1,...n}){return(0,H.createElement)(ft.Provider,{value:{fullPageNavigationOnShallowFalseUpdates:t}},(0,H.createElement)(mt,{...n,children:e}))}function gt(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{D(e,()=>t.signal,()=>n=!0)},u=O(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?te:N;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?vt:_t,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:_t(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function _t(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function vt(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var yt=class extends M{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||bt(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=T({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),R.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function bt(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var xt=class extends C{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new yt({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=St(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=St(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=St(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=St(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){R.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>j(t,e))}findAll(e={}){return this.getAll().filter(t=>j(e,t))}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return R.batch(()=>Promise.all(e.map(e=>e.continue().catch(w))))}};function St(e){return e.options.scope?.id}var Ct=class extends C{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??P(r,t),a=this.get(i);return a||(a=new L({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){R.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>A(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>A(e,t)):t}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){R.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){R.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},wt=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Ct,this.#t=e.mutationCache||new xt,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=re.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=I.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(ie(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=k(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return R.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;R.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return R.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=R.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(w).catch(w)}invalidateQueries(e,t={}){return R.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=R.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(w)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(w)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(ie(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(w).catch(w)}fetchInfiniteQuery(e){return e.behavior=gt(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(w).catch(w)}ensureInfiniteQueryData(e){return e.behavior=gt(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return I.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(ee(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ne(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(ee(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ne(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=P(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===E&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},W=i(),Tt=(0,H.createContext)({live:!1});function Et(){return(0,H.useContext)(Tt)}function Dt(e){let t=(0,U.c)(5),{children:n}=e,[r]=f(`features`,d),i;t[0]===r?i=t[1]:(i=()=>({live:new Set((r??``).split(`,`).map(Ot).filter(Boolean)).has(`live`)}),t[0]=r,t[1]=i);let[a]=(0,H.useState)(i),o;return t[2]!==n||t[3]!==a?(o=(0,W.jsx)(Tt.Provider,{value:a,children:n}),t[2]=n,t[3]=a,t[4]=o):o=t[4],o}function Ot(e){return e.trim().toLowerCase()}function kt(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z`},child:[]}]})(e)}function At(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8l176 0 0 176c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z`},child:[]}]})(e)}function jt(e){return V({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z`},child:[]}]})(e)}function Mt(e){return V({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z`},child:[]}]})(e)}function Nt(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z`},child:[]}]})(e)}function Pt(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z`},child:[]}]})(e)}function Ft(e){return V({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z`},child:[]}]})(e)}function It(e){return V({tag:`svg`,attr:{viewBox:`0 0 576 512`},child:[{tag:`path`,attr:{d:`M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z`},child:[]}]})(e)}function Lt(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z`},child:[]}]})(e)}function Rt(e){return V({tag:`svg`,attr:{viewBox:`0 0 288 512`},child:[{tag:`path`,attr:{d:`M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z`},child:[]}]})(e)}function zt(e){return V({tag:`svg`,attr:{viewBox:`0 0 320 512`},child:[{tag:`path`,attr:{d:`M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z`},child:[]}]})(e)}function Bt(e){return V({tag:`svg`,attr:{viewBox:`0 0 320 512`},child:[{tag:`path`,attr:{d:`M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z`},child:[]}]})(e)}function Vt(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z`},child:[]}]})(e)}function Ht(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z`},child:[]}]})(e)}var Ut={Button:`_Button_p0g82_2`,ButtonLabel:`_ButtonLabel_p0g82_37`,Icon:`_Icon_p0g82_85`,ButtonHint:`_ButtonHint_p0g82_92`,ButtonGroup:`_ButtonGroup_p0g82_97`,DestructiveActionButton:`_DestructiveActionButton_p0g82_141 _Button_p0g82_2`},Wt={Button:`_Button_1xmvi_1 _Button_p0g82_2`,ClipboardIcon:`_ClipboardIcon_1xmvi_10`,showClipboardCheck:`_showClipboardCheck_1xmvi_1`,PinIcon:`_PinIcon_1xmvi_20`};function Gt({position:e,quaternion:t}){let n=e=>parseFloat(e.toFixed(3));return`#c${`${n(e.x)},${n(e.y)},${n(e.z)}`}~${`${n(t.x)},${n(t.y)},${n(t.z)},${n(t.w)}`}`}function Kt(e){let t=(0,U.c)(12),{cameraRef:n,missionName:r,missionType:i,disabled:a}=e,{fogEnabled:o}=u(),[s,c]=(0,H.useState)(!1),l=(0,H.useRef)(null),d;t[0]!==n||t[1]!==o||t[2]!==r||t[3]!==i?(d=async()=>{l.current&&clearTimeout(l.current);let e=n.current;if(!e)return;let t=Gt(e),a=new URLSearchParams,s=i?`${r}~${i}`:r;a.set(`mission`,s),a.set(`fog`,o.toString());let u=`${window.location.pathname}?${a}${t}`,d=`${window.location.origin}${u}`;window.history.replaceState(null,``,u);try{await navigator.clipboard.writeText(d),c(!0),l.current=setTimeout(()=>{c(!1)},1100)}catch(e){console.error(e)}},t[0]=n,t[1]=o,t[2]=r,t[3]=i,t[4]=d):d=t[4];let f=d,p=s?`true`:`false`,m,h,g;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,W.jsx)(Rt,{className:Wt.PinIcon}),h=(0,W.jsx)(jt,{className:Wt.ClipboardIcon}),g=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:` Link to coordinates`}),t[5]=m,t[6]=h,t[7]=g):(m=t[5],h=t[6],g=t[7]);let _;return t[8]!==a||t[9]!==f||t[10]!==p?(_=(0,W.jsxs)(`button`,{type:`button`,className:Wt.Button,"aria-label":`Link to coordinates`,title:`Copy the current coordinates to URL`,onClick:f,disabled:a,"data-copied":p,id:`copyCoordinatesButton`,children:[m,h,g]}),t[8]=a,t[9]=f,t[10]=p,t[11]=_):_=t[11],_}function qt(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{fill:`none`,d:`M0 0h24v24H0V0z`},child:[]},{tag:`path`,attr:{d:`M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-6-7 4V7z`},child:[]}]})(e)}function Jt(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{fill:`none`,d:`M0 0h24v24H0z`},child:[]},{tag:`path`,attr:{d:`m18.89 14.75-4.09-2.04c-.28-.14-.58-.21-.89-.21H13v-6c0-.83-.67-1.5-1.5-1.5S10 5.67 10 6.5v10.74l-3.25-.74a.99.99 0 0 0-.92.28l-.83.84 4.54 4.79c.38.38 1.14.59 1.67.59h6.16c1 0 1.84-.73 1.98-1.72l.63-4.46c.12-.85-.32-1.68-1.09-2.07z`},child:[]},{tag:`path`,attr:{d:`M20.13 3.87C18.69 2.17 15.6 1 12 1S5.31 2.17 3.87 3.87L2 2v5h5L4.93 4.93c1-1.29 3.7-2.43 7.07-2.43s6.07 1.14 7.07 2.43L17 7h5V2l-1.87 1.87z`},child:[]}]})(e)}var Yt=B(e=>({events:null,scanProgress:null,setEvents(t){e({events:t})},setScanProgress(t){e({scanProgress:t})},reset(){e({events:null,scanProgress:null})}}));function Xt(e,t){return z(Yt,e,t)}var Zt=fe(`relayClient`),Qt=class{ws=null;handlers;url;_connected=!1;wsPingInterval=null;smoothedWsPing=0;constructor(e,t){this.url=e,this.handlers=t}get connected(){return this._connected}connect(){this.ws=new WebSocket(this.url),this.ws.binaryType=`arraybuffer`,this.ws.onopen=()=>{Zt.info(`WebSocket connected to %s`,this.url),this._connected=!0,this.startWsPing(),this.handlers.onOpen?.()},this.ws.onmessage=e=>{if(e.data instanceof ArrayBuffer)this.handlers.onGamePacket?.(new Uint8Array(e.data));else try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){Zt.error(`Failed to parse relay message: %o`,e)}},this.ws.onclose=()=>{Zt.info(`WebSocket disconnected`),this._connected=!1,this.stopWsPing(),this.handlers.onClose?.()},this.ws.onerror=()=>{Zt.error(`WebSocket error`),this.handlers.onError?.(`WebSocket connection error`)}}handleMessage(e){switch(e.type){case`serverList`:this.handlers.onServerList?.(e.servers);break;case`status`:this.handlers.onStatus?.(e.status,e.message,e.connectSequence,e.mapName);break;case`ping`:this.handlers.onPing?.(e.ms);break;case`wsPong`:{let t=Date.now()-e.ts;this.smoothedWsPing=this.smoothedWsPing===0?t:this.smoothedWsPing*.5+t*.5,this.handlers.onWsPing?.(Math.round(this.smoothedWsPing));break}case`error`:this.handlers.onError?.(e.message);break}}listServers(){this.send({type:`listServers`})}sendWsPing(){this.send({type:`wsPing`,ts:Date.now()})}joinServer(e,t){Zt.info(`Joining server: %s`,e),this.send({type:`joinServer`,address:e,warriorName:t})}sendAuthEvent(e,t){this.send({type:`sendCommand`,command:e,args:t})}sendCommand(e,t){this.send({type:`sendCommand`,command:e,args:t})}sendCRCResponse(e,t,n){this.send({type:`sendCRCResponse`,crcValue:e,field1:t,field2:n})}sendCRCCompute(e,t,n,r){this.send({type:`sendCRCCompute`,seed:e,field2:t,includeTextures:r,datablocks:n})}sendGhostAck(e,t){this.send({type:`sendGhostAck`,sequence:e,ghostCount:t})}sendMoves(e,t){this.send({type:`sendMoves`,moves:e,moveStartIndex:t})}close(){this.stopWsPing(),this.ws&&=(this.ws.close(),null),this._connected=!1}startWsPing(){this.smoothedWsPing=0,this.send({type:`wsPing`,ts:Date.now()}),this.wsPingInterval=setInterval(()=>{this.send({type:`wsPing`,ts:Date.now()})},7e3)}stopWsPing(){this.wsPingInterval!=null&&(clearInterval(this.wsPingInterval),this.wsPingInterval=null)}send(e){this.ws?.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify(e)):Zt.warn(`send dropped (ws not open): %s`,e.type)}},$t=256,en=$t/2,tn=2048,nn=null;function rn(e){nn=e}function an(e,t){return nn?nn(e,t):null}function on(e,t){return(n,r)=>{let i=n/t+en,a=r/t+en,o=Math.max(0,Math.min($t-1,i)),s=Math.max(0,Math.min($t-1,a)),c=Math.floor(o),l=Math.floor(s),u=Math.min(c+1,$t-1),d=Math.min(l+1,$t-1),f=o-c,p=s-l,m=e[l*$t+c],h=e[l*$t+u],g=e[d*$t+c],_=e[d*$t+u],v=m*(1-f)+h*f,y=g*(1-f)+_*f;return(v*(1-p)+y*p)/65535*tn}}var sn=fe(`StreamEngine`),cn=class{registry;ghostTracker;entities=new Map;entityIdByGhostIndex=new Map;entityGeneration=0;tickCount=0;camera=null;chatMessages=[];chatMessageIdCounter=0;_chatGen=0;_chatSnapshotGen=-1;_chatSnapshot=[];audioEvents=[];netStrings=new Map;targetNames=new Map;targetSkins=new Map;targetSkinPrefs=new Map;targetTeams=new Map;targetRenderFlags=new Map;pendingNameTags=new Map;sensorGroupColors=new Map;playerSensorGroup=0;lastStatus={health:1,energy:1};latestControl={ghostIndex:-1};controlPlayerGhostId;lastControlType=`camera`;isPiloting=!1;lastPilotGhostIndex;lastVehicleHeading=0;lastVehiclePitch=0;lastVehicleOrbitDir;lastVehicleVelocity;lastVehiclePosTime=0;lastVehiclePos;firstPerson=!0;lastCameraMode;lastOrbitGhostIndex;lastOrbitDistance;latestFov=90;weaponsHud={slots:new Map,activeIndex:-1};backpackHud={packIndex:-1,active:!1,text:``};inventoryHud={slots:new Map,activeSlot:-1};teamScores=[];playerRoster=new Map;clockAnchorStreamSec=null;clockDurationMs=0;missionDisplayName=null;missionTypeDisplayName=null;gameClassName=null;serverDisplayName=null;connectedPlayerName=null;connectedClientId=null;onMissionInfoChange;nextExplosionId=0;resolveGhostClassName(e,t){if(typeof t==`number`){let e=this.registry.getGhostParser(t)?.name;if(e)return e}let n=this.entityIdByGhostIndex.get(e);if(n){let e=this.entities.get(n);if(e?.className)return e.className}let r=this.ghostTracker.getGhost(e);if(r?.className)return r.className}resolveEntityIdForGhostIndex(e){let t=this.entityIdByGhostIndex.get(e);if(t)return t;if(this.ghostTracker.getGhost(e)){let t=je();return this.entityIdByGhostIndex.set(e,t),t}}clearAllEntities(){this.entities.clear(),this.entityIdByGhostIndex.clear(),this.entityGeneration++}resetSharedState(){this.clearAllEntities(),this.tickCount=0,this.camera=null,this.chatMessages=[],this.chatMessageIdCounter=0,this._chatGen=0,this._chatSnapshotGen=-1,this._chatSnapshot=[],this.audioEvents=[],this.netStrings.clear(),this.targetNames.clear(),this.targetSkins.clear(),this.targetSkinPrefs.clear(),this.targetTeams.clear(),this.targetRenderFlags.clear(),this.sensorGroupColors.clear(),this.playerSensorGroup=0,this.lastStatus={health:1,energy:1},this.latestControl={ghostIndex:-1},this.controlPlayerGhostId=void 0,this.lastControlType=`camera`,this.isPiloting=!1,this.lastPilotGhostIndex=void 0,this.lastVehicleHeading=0,this.lastVehiclePitch=0,this.lastVehicleOrbitDir=void 0,this.lastVehicleVelocity=void 0,this.lastVehiclePosTime=0,this.lastVehiclePos=void 0,this.firstPerson=!0,this.lastCameraMode=void 0,this.lastOrbitGhostIndex=void 0,this.lastOrbitDistance=void 0,this.latestFov=90,this.weaponsHud={slots:new Map,activeIndex:-1},this.backpackHud={packIndex:-1,active:!1,text:``},this.inventoryHud={slots:new Map,activeSlot:-1},this.teamScores=[],this.playerRoster.clear(),this.clockAnchorStreamSec=null,this.clockDurationMs=0,this.nextExplosionId=0,this.missionDisplayName=null,this.missionTypeDisplayName=null,this.gameClassName=null,this.serverDisplayName=null}resolveNetString(e){if(e.length>=2&&e.charCodeAt(0)===1){let t=parseInt(e.slice(1),10);if(Number.isFinite(t))return this.netStrings.get(t)??e}return e}formatRemoteArgs(e,t){let n=this.resolveNetString(e);for(let e=0;e0&&(this.playerSensorGroup=t.sensorGroup)}if(t){let e=Ie(t);if(e&&(this.lastControlType=e),this.lastControlType===`player`)this.isPiloting=!!(t.pilot||t.controlObjectGhost!=null),this.isPiloting&&typeof t.controlObjectGhost==`number`?this.lastPilotGhostIndex=t.controlObjectGhost:this.isPiloting||(this.lastPilotGhostIndex=void 0,this.lastVehicleHeading=0,this.lastVehiclePitch=0,this.lastVehicleOrbitDir=void 0,this.lastVehicleVelocity=void 0,this.lastVehiclePosTime=0,this.lastVehiclePos=void 0);else if(this.isPiloting=!1,typeof t.cameraMode==`number`)if(this.lastCameraMode=t.cameraMode,t.cameraMode===3){typeof t.orbitObjectGhostIndex==`number`&&(this.lastOrbitGhostIndex=t.orbitObjectGhostIndex);let e=t.minOrbitDist,n=t.maxOrbitDist,r=t.curOrbitDist;typeof e==`number`&&typeof n==`number`&&Number.isFinite(e)&&Number.isFinite(n)?this.lastOrbitDistance=Math.max(0,n-e):typeof r==`number`&&Number.isFinite(r)&&(this.lastOrbitDistance=Math.max(0,r))}else this.lastOrbitGhostIndex=void 0,this.lastOrbitDistance=void 0}e.cameraFov!==void 0&&(this.latestFov=e.cameraFov)}processEvent(e,t){let n=e.parsedData;if(!n)return;let r=n.type;if(r===`GhostAlwaysObjectEvent`){let e=n,t=e.ghostIndex,r=e.classId,i=e.objectData,a=e._hasObjectData,o=typeof r==`number`?this.registry.getGhostParser(r)?.name??`classId=${r}`:`?`;sn.debug(`GhostAlwaysObjectEvent: ghost=%d class=%s hasData=%s %s`,t,o,a,i?`keys=[${Object.keys(i).join(`,`)}]`:`(no data)`),t!=null&&r!=null&&this.processGhostUpdate({index:t,type:`create`,classId:r,parsedData:i});return}if(r===`NetStringEvent`||t===`NetStringEvent`){let e=n,t=e.id,r=e.value;if(t!=null&&typeof r==`string`){this.netStrings.set(t,r);let e=this.pendingNameTags.get(t);if(e!=null){this.pendingNameTags.delete(t);let n=$e(r).trim();this.targetNames.set(e,n);for(let t of this.entities.values())t.targetId===e&&(t.playerName=n)}}return}if(r===`TargetInfoEvent`||t===`TargetInfoEvent`){let e=n,t=e.targetId,r=e.nameTag;if(t!=null&&r!=null){let e=this.netStrings.get(r);e?this.targetNames.set(t,$e(e).trim()):this.pendingNameTags.set(r,t)}let i=e.sensorGroup;t!=null&&i!=null&&this.targetTeams.set(t,i);let a=e.renderFlags;t!=null&&a!=null&&this.targetRenderFlags.set(t,a);let o=e.skinTag;if(t!=null&&o!=null&&o!==1024){let e=this.netStrings.get(o);e&&this.targetSkins.set(t,e)}let s=e.skinPrefTag;if(t!=null&&s!=null&&s!==1024){let e=this.netStrings.get(s);e&&this.targetSkinPrefs.set(t,e)}if(t!=null){let e=this.targetNames.get(t),n=this.targetTeams.get(t),r=this.targetRenderFlags.get(t),i=this.targetSkins.get(t),a=this.targetSkinPrefs.get(t);for(let o of this.entities.values())o.targetId===t&&(e&&(o.playerName=e),n!=null&&(o.sensorGroup=n),r!=null&&(o.targetRenderFlags=r),i&&(o.skinName=i),a&&(o.skinPrefName=a))}return}if(r===`SetSensorGroupEvent`||t===`SetSensorGroupEvent`){let e=n.sensorGroup;e!=null&&(this.playerSensorGroup=e);return}if(r===`SensorGroupColorEvent`||t===`SensorGroupColorEvent`){let e=n,t=e.sensorGroup,r=e.colors;if(r){let e=this.sensorGroupColors.get(t);e||(e=new Map,this.sensorGroupColors.set(t,e));for(let t of r)t.default?e.delete(t.index):e.set(t.index,{r:t.r??0,g:t.g??0,b:t.b??0})}return}if(r===`GhostingMessageEvent`){n.message===ke.EndGhosting&&this.clearAllEntities();return}if(r===`RemoteCommandEvent`||t===`RemoteCommandEvent`){let e=n,t=this.resolveNetString(e.funcName),r=e.args,i=this.getTimeSec();if(t===`ChatMessage`&&r.length>=4){let e=He(this.resolveNetString(r[3])),t=r[4]?$e(this.resolveNetString(r[4])):``,n=this.formatRemoteArgs(r[3],r.slice(4));if(n){let a=n.indexOf(`: `),{text:o,wavPath:s}=qe(a>=0?n.slice(a+2):n),c,l;if(s){let e=this.resolveNetString(r[1]);c=e?`voice/${e}/${s}.wav`:s;let t=this.resolveNetString(r[2]);if(t){let e=parseFloat(t);Number.isFinite(e)&&(l=Math.max(.5,Math.min(2,e)))}}let u=e??0;this.pushChatMessage({timeSec:i,sender:t,text:o,kind:`chat`,colorCode:u,segments:[{text:t?`${t}: ${o}`:o,colorCode:u}],soundPath:c,soundPitch:l})}}else if(t===`CannedChatMessage`&&r.length>=6){let e=He(this.resolveNetString(r[1])),t=$e(this.resolveNetString(r[2])),n=$e(this.resolveNetString(r[4])),a=this.formatRemoteArgs(r[1],r.slice(2));if(a){let{wavPath:o}=qe(a),s=qe($e(this.resolveNetString(r[3]))).text,c,l;if(o){let e=this.resolveNetString(r[5]);if(c=e?`voice/${e}/${o}.wav`:o,r[6]){let e=parseFloat(this.resolveNetString(r[6]));Number.isFinite(e)&&(l=Math.max(.5,Math.min(2,e)))}}let u=e??0,d=[];n&&d.push({text:`[${n}] `,colorCode:0}),d.push({text:t?`${t}: ${s}`:s,colorCode:u}),this.pushChatMessage({timeSec:i,sender:t,text:s,kind:`chat`,colorCode:u,segments:d,soundPath:c,soundPitch:l})}}else if(t===`ServerMessage`&&r.length>=2){this.handleServerMessage(r);let e=He(this.resolveNetString(r[1])),t=this.formatRemoteArgs(r[1],r.slice(2));if(t){let{text:n,wavPath:r}=qe(t),a=e??0;this.pushChatMessage({timeSec:i,sender:``,text:n,kind:`server`,colorCode:a,segments:[{text:n,colorCode:a}],soundPath:r??void 0})}}else this.handleHudRemoteCommand(t,r);return}if(r===`Sim3DAudioEvent`||r===`Sim2DAudioEvent`||t===`Sim3DAudioEvent`||t===`Sim2DAudioEvent`){let e=r===`Sim3DAudioEvent`||t===`Sim3DAudioEvent`,i=n.profileId;if(typeof i==`number`){let t=this.getTimeSec(),r=e?n.position:void 0;this.audioEvents.push({profileId:i,position:r,timeSec:t}),this.audioEvents.length>100&&this.audioEvents.splice(0,this.audioEvents.length-100)}}}processGhostUpdate(e){let t=e.index,n=this.entityIdByGhostIndex.get(t);if(n){let t=this.entities.get(n);t&&t.type===`Projectile`&&!t.hasExploded&&t.explosionDataBlockId!=null&&t.position&&(e.type===`delete`||e.type===`create`)&&this.spawnExplosion(t,[...t.position])}if(e.type===`delete`){n&&(this.entities.delete(n),this.entityIdByGhostIndex.delete(t),this.entityGeneration++);return}let r=this.resolveGhostClassName(t,e.classId);if(!r){if(e.type===`create`)throw Error(`No ghost parser for classId ${e.classId} (ghost index ${t})`);return}let i=n??je();n&&n!==i&&this.entities.delete(n);let a,o=this.entities.get(i);if(o&&e.type===`create`?(o.spawnTick=this.tickCount,this.resetEntity(o),a=o):o?a=o:(a={id:i,ghostIndex:t,className:r,spawnTick:this.tickCount,type:Oe(r),rotation:[0,0,0,1]},this.entities.set(i,a),this.entityGeneration++),a.ghostIndex=t,a.className=r,a.type=Oe(r),this.entityIdByGhostIndex.set(t,i),this.applyGhostData(a,e.parsedData),e.type===`create`&&e.parsedData){let n=rt(r,t,e.parsedData);n&&(a.sceneData=n)}}resetEntity(e){e.rotation=[0,0,0,1],e.hasExploded=void 0,e.explosionShape=void 0,e.explosionLifetimeTicks=void 0,e.faceViewer=void 0,e.simulatedVelocity=void 0,e.projectilePhysics=void 0,e.gravityMod=void 0,e.direction=void 0,e.velocity=void 0,e.position=void 0,e.dataBlock=void 0,e.dataBlockId=void 0,e.shapeHint=void 0,e.visual=void 0,e.targetId=void 0,e.targetRenderFlags=void 0,e.sensorGroup=void 0,e.playerName=void 0,e.imageSlots=void 0,e.mountObjectGhostIndex=void 0,e.mountNode=void 0,e.skinName=void 0,e.skinPrefName=void 0,e.falling=void 0,e.jetting=void 0,e.weaponImageState=void 0,e.weaponImageStates=void 0,e.weaponImageStatesDbId=void 0,e.itemPhysics=void 0,e.threads=void 0,e.headPitch=void 0,e.headYaw=void 0,e.health=void 0,e.energy=void 0,e.maxEnergy=void 0,e.damageState=void 0,e.fadeVal=void 0,e.fadeState=void 0,e.cloaked=void 0,e.cloakLevel=void 0,e.actionAnim=void 0,e.actionAtEnd=void 0,e.armAction=void 0,e.explosionDataBlockId=void 0,e.maintainEmitterId=void 0,e.soundSlots=void 0,e.isStaticItem=void 0}applyGhostData(e,t){if(!t)return;let n=t,r=n.dataBlockId;if(r!=null){e.dataBlockId=r;let t=this.getDataBlockData(r),i=Ve(e.className,t);e.visual=Fe(e.className,t)??Be(e.className,t),typeof i==`string`&&(e.shapeHint=i,e.dataBlock=i),e.type===`Player`&&typeof t?.maxEnergy==`number`&&(e.maxEnergy=t.maxEnergy);let a=t?.lightType;if(a&&a>0&&t){e.lightType=a;let n=t.lightColor;e.lightColor=n?[n.r,n.g,n.b,n.a??1]:[1,1,1,1],e.lightTime=t.lightTime??1e3,e.lightRadius=t.lightRadius??10,e.lightOnlyStatic=!!t.lightOnlyStatic}if(e.type===`Projectile`&&(Me.has(e.className)?e.projectilePhysics=`linear`:Ae.has(e.className)?(e.projectilePhysics=`ballistic`,e.gravityMod=Xe(t,[`gravityMod`])??1):We.has(e.className)&&(e.projectilePhysics=`seeker`)),e.type===`Projectile`&&e.explosionDataBlockId==null){let t=this.resolveExplosionInfo(r);t&&(e.explosionShape=t.shape,e.faceViewer=t.faceViewer,e.explosionLifetimeTicks=t.lifetimeTicks,e.explosionDataBlockId=t.explosionDataBlockId)}if(e.type===`Projectile`&&e.maintainEmitterId==null){let n=t?.baseEmitter;typeof n==`number`&&n>0&&(e.maintainEmitterId=n)}if(e.className===`WheeledVehicle`&&typeof t?.maxSteeringAngle==`number`&&(e.maxSteeringAngle=t.maxSteeringAngle),e.className===`ForceFieldBare`&&t){let r=t.color1,i=[];for(let e=0;e<5;e++){let n=t[`texture${e}`];n&&i.push(n)}let a=n.scale;e.forceFieldData={textures:i,color:r?[r.r,r.g,r.b]:[1,1,1],baseTranslucency:t.baseTranslucency??1,dimensions:a?[a.y,a.z,a.x]:[1,1,1],framesPerSec:t.framesPerSec??1,scrollSpeed:t.scrollSpeed??0,umapping:t.umapping??1,vmapping:t.vmapping??1}}}if(Array.isArray(n.wheels)){let t=n.wheels;if(!e.wheels||e.wheels.length!==t.length)e.wheels=t.map(e=>({speed:e.avel,lateralSlip:e.Dx,longitudinalSlip:e.Dy}));else for(let n=0;n0){for(let n of t)if(!(n.index==null||n.index<0||n.index>=8)){if(n.dataBlockId&&n.dataBlockId>0){let t=this.getDataBlockData(n.dataBlockId),r=Ve(`ShapeBaseImageData`,t),i=typeof t?.mountPoint==`number`?t.mountPoint:0,a;if(n.skinTagIndex==null?n.skinName&&(a=n.skinName):a=this.netStrings.get(n.skinTagIndex),r&&(e.imageSlots||=[],e.imageSlots[n.index]={shapeName:r,mountPoint:i,dataBlockId:n.dataBlockId,skinName:a}),n.index===0){let r=e.weaponImageState;e.weaponImageState={dataBlockId:n.dataBlockId,triggerDown:n.triggerDown??r?.triggerDown??!1,ammo:n.ammo??r?.ammo??!0,loaded:n.loaded??r?.loaded??!0,target:n.target??r?.target??!1,wet:n.wet??r?.wet??!1,fireCount:n.fireCount??r?.fireCount??0},t&&e.weaponImageStatesDbId!==n.dataBlockId&&(e.weaponImageStates=Je(t),e.weaponImageStatesDbId=n.dataBlockId)}if(n.index===3&&e.type===`Player`&&e.targetId!=null&&e.targetId>=0){let t=this.targetRenderFlags.get(e.targetId)??0,n=t|2;n!==t&&(this.targetRenderFlags.set(e.targetId,n),e.targetRenderFlags=n)}}else if(!n.dataBlockId&&(e.imageSlots&&(e.imageSlots[n.index]=void 0),n.index===0&&(e.weaponImageState=void 0,e.weaponImageStates=void 0),n.index===3&&e.type===`Player`&&e.targetId!=null&&e.targetId>=0)){let t=this.targetRenderFlags.get(e.targetId)??0,n=t&-3;n!==t&&(this.targetRenderFlags.set(e.targetId,n),e.targetRenderFlags=n)}}}}let i=Ge(n.position)?n.position:Ge(n.initialPosition)?n.initialPosition:Ge(n.explodePosition)?n.explodePosition:Ge(n.endPoint)?n.endPoint:Ge(n.transform?.position)?n.transform.position:void 0;i&&(e.position=[i.x,i.y,i.z]);let a=Qe(n.direction)?n.direction:void 0;if(a&&(e.direction=[a.x,a.y,a.z]),e.type===`Player`&&typeof n.rotationZ==`number`&&(e.rotation=Ke(n.rotationZ)),e.type===`Player`&&(typeof n.headX==`number`&&(e.headPitch=n.headX),typeof n.headZ==`number`&&(e.headYaw=n.headZ)),Re(n.angPosition)){let t=tt(n.angPosition);t&&(e.rotation=t)}else if(Re(n.transform?.rotation)){let t=tt(n.transform.rotation);t&&(e.rotation=t)}else if(Array.isArray(n.transform?.elements)){let t=ze(n.transform.elements);t&&(e.rotation=t)}else if(e.type===`Item`&&typeof n.rotation?.angle==`number`){let t=n.rotation;e.rotation=Ke((t.zSign??1)*t.angle)}else if(e.type===`Projectile`){let t=n.velocity??n.direction??(Ge(n.initialPosition)&&Ge(n.endPos)?{x:n.endPos.x-n.initialPosition.x,y:n.endPos.y-n.initialPosition.y,z:n.endPos.z-n.initialPosition.z}:void 0);Qe(t)&&(t.x!==0||t.y!==0)&&(e.rotation=Ke(Math.atan2(t.x,t.y)))}if(Qe(n.velocity)&&(e.velocity=[n.velocity.x,n.velocity.y,n.velocity.z],e.direction||=[n.velocity.x,n.velocity.y,n.velocity.z]),typeof n.moveFlag0==`boolean`&&(e.falling=n.moveFlag0),typeof n.moveFlag1==`boolean`&&(e.jetting=n.moveFlag1),e.type===`Item`){typeof n.isStatic==`boolean`&&(e.isStaticItem=n.isStatic,n.isStatic&&(e.itemPhysics=void 0));let t=n.atRest;if(t===!1&&!e.isStaticItem&&Qe(n.velocity)){let t=n.velocity;e.itemPhysics={velocity:[t.x,t.y,t.z],atRest:!1},sn.debug(`Item %s (%s): atRest=false pos=%s vel=%s`,e.id,e.shapeHint??e.dataBlock??`db#${e.dataBlockId}`,n.position?`${n.position.x.toFixed(1)},${n.position.y.toFixed(1)},${n.position.z.toFixed(1)}`:`none`,`${t.x.toFixed(1)},${t.y.toFixed(1)},${t.z.toFixed(1)}`)}else t===!0&&(sn.debug(`Item %s (%s): atRest=true pos=%s`,e.id,e.shapeHint??e.dataBlock??`db#${e.dataBlockId}`,e.position?`${e.position[0].toFixed(1)},${e.position[1].toFixed(1)},${e.position[2].toFixed(1)}`:`none`),e.itemPhysics=void 0)}if(e.projectilePhysics){if(e.projectilePhysics===`linear`){let t=Xe(e.dataBlockId==null?void 0:this.getDataBlockData(e.dataBlockId),[`dryVelocity`,`muzzleVelocity`,`bulletVelocity`])??80,r=e.direction??[0,1,0],i=r[0]*t,a=r[1]*t,o=r[2]*t,s=n.excessVel,c=n.excessDir;typeof s==`number`&&s>0&&Qe(c)&&(i+=c.x*s,a+=c.y*s,o+=c.z*s),e.simulatedVelocity=[i,a,o]}else Qe(n.velocity)&&(e.simulatedVelocity=[n.velocity.x,n.velocity.y,n.velocity.z]);let t=n.currTick;if(typeof t==`number`&&t>0&&e.simulatedVelocity&&e.position){let n=32/1e3*t,r=e.simulatedVelocity;if(e.position[0]+=r[0]*n,e.position[1]+=r[1]*n,e.position[2]+=r[2]*n,e.projectilePhysics===`ballistic`){let t=-9.81*(e.gravityMod??1);e.position[2]+=.5*t*n*n,r[2]+=t*n}}}let o=Ge(n.explodePosition)?n.explodePosition:Ge(n.explodePoint)?n.explodePoint:void 0;if(e.type===`Projectile`&&!e.hasExploded&&o&&e.explosionDataBlockId!=null&&this.spawnExplosion(e,[o.x,o.y,o.z]),typeof n.damageLevel==`number`&&(e.health=Ye(1-n.damageLevel,0,1)),typeof n.damageState==`number`&&(e.damageState=n.damageState),typeof n.cloaked==`boolean`&&n.cloaked!==e.cloaked){let t=e.cloaked!=null;e.cloaked=n.cloaked,!t&&n.cloaked&&(e.cloakLevel=1)}if(n.fading===!0&&typeof n.fadeTime==`number`){let t=!!n.fadeOut;n.fadeTime<=0?(e.fadeVal=t?0:1,e.fadeState=void 0):(e.fadeVal=t?1:0,e.fadeState={fadeOut:t,fadeTime:n.fadeTime,elapsed:0})}else typeof n.fadeVal==`boolean`&&(e.fadeVal=n.fadeVal?1:0,e.fadeState=void 0);if(typeof n.action==`number`&&(e.actionAnim=n.action,e.actionAtEnd=!!n.actionAtEnd),typeof n.armAction==`number`&&(e.armAction=n.armAction),typeof n.mountObject==`number`&&(n.mountObject>=0?(e.mountObjectGhostIndex=n.mountObject,e.mountNode=typeof n.mountNode==`number`?n.mountNode:0):(e.mountObjectGhostIndex=void 0,e.mountNode=void 0,e.actionAnim=void 0,e.actionAtEnd=void 0)),Array.isArray(n.threads)){let t=n.threads;if(e.threads){let n=[...e.threads];for(let e of t){let t=n.findIndex(t=>t.index===e.index);t>=0?n[t]=e:n.push(e)}e.threads=n}else e.threads=t}if(typeof n.energy==`number`&&(e.energy=Ye(n.energy,0,1)),typeof n.targetId==`number`){e.targetId=n.targetId;let t=this.targetNames.get(n.targetId);t&&(e.playerName=t);let r=this.targetTeams.get(n.targetId);r!=null&&(e.sensorGroup=r,e.ghostIndex===this.latestControl.ghostIndex&&this.lastControlType===`player`&&(this.playerSensorGroup=r));let i=this.targetRenderFlags.get(n.targetId);i!=null&&(e.targetRenderFlags=i);let a=this.targetSkins.get(n.targetId);a&&(e.skinName=a);let o=this.targetSkinPrefs.get(n.targetId);o&&(e.skinPrefName=o)}let s=n.sounds;Array.isArray(s)&&(e.soundSlots=s),e.className===`WayPoint`&&typeof n.name==`string`&&(e.label=n.name),e.className===`AudioEmitter`&&(typeof n.filename==`string`&&(e.audioFileName=n.filename),typeof n.volume==`number`&&(e.audioVolume=n.volume),typeof n.is3D==`boolean`&&(e.audioIs3D=n.is3D),typeof n.isLooping==`boolean`&&(e.audioIsLooping=n.isLooping),typeof n.minDistance==`number`&&(e.audioMinDistance=n.minDistance),typeof n.maxDistance==`number`&&(e.audioMaxDistance=n.maxDistance),typeof n.minLoopGap==`number`&&(e.audioMinLoopGap=n.minLoopGap),typeof n.maxLoopGap==`number`&&(e.audioMaxLoopGap=n.maxLoopGap))}resolveExplosionInfo(e){let t=this.getDataBlockData(e);if(!t)return;let n=t.explosion;if(n==null)return;let r=this.getDataBlockData(n);if(!r)return;let i=r.dtsFileName||void 0,a=r.lifetimeMS??31;return{shape:i,faceViewer:r.faceViewer!==!1&&r.faceViewer!==0,lifetimeTicks:a,explosionDataBlockId:n}}spawnExplosion(e,t){e.hasExploded=!0;let n=e.explosionLifetimeTicks??31,r=`fx_${this.nextExplosionId++}`,i={id:r,ghostIndex:-1,className:`Explosion`,spawnTick:this.tickCount,type:`Explosion`,dataBlock:e.explosionShape,explosionDataBlockId:e.explosionDataBlockId,position:t,rotation:[0,0,0,1],isExplosion:!0,faceViewer:e.faceViewer!==!1,expiryTick:this.tickCount+n};if(this.entities.set(r,i),e.explosionDataBlockId!=null){let n=this.getDataBlockData(e.explosionDataBlockId)?.subExplosions;if(Array.isArray(n))for(let e of n){if(e==null)continue;let n=this.getDataBlockData(e);if(!n)continue;let r=n.dtsFileName||void 0,i=n.lifetimeMS??31,a=n.offset??0,o=Math.random()*Math.PI*2,s=[t[0]+Math.cos(o)*a,t[1]+Math.sin(o)*a,t[2]],c=`fx_${this.nextExplosionId++}`,l={id:c,ghostIndex:-1,className:`Explosion`,spawnTick:this.tickCount,type:`Explosion`,dataBlock:r,explosionDataBlockId:e,position:s,rotation:[0,0,0,1],isExplosion:!0,faceViewer:n.faceViewer!==!1&&n.faceViewer!==0,expiryTick:this.tickCount+i};this.entities.set(c,l)}}e.position=void 0,e.simulatedVelocity=void 0}advanceProjectiles(){let e=32/1e3;for(let t of this.entities.values()){if(!t.simulatedVelocity||!t.position)continue;let n=t.simulatedVelocity,r=t.position;t.projectilePhysics===`ballistic`&&(n[2]+=-9.81*(t.gravityMod??1)*e),r[0]+=n[0]*e,r[1]+=n[1]*e,r[2]+=n[2]*e,(n[0]!==0||n[1]!==0)&&(t.rotation=Ke(Math.atan2(n[0],n[1])))}}advanceFades(){let e=32/1e3;for(let t of this.entities.values()){let n=t.fadeState;if(n)if(n.elapsed+=e,n.elapsed>=n.fadeTime)t.fadeVal=n.fadeOut?0:1,t.fadeState=void 0;else{let e=n.elapsed/n.fadeTime;t.fadeVal=n.fadeOut?1-e:e}t.cloakLevel!=null&&t.cloaked!=null&&(t.cloaked?t.cloakLevel=Math.min(t.cloakLevel+e*2,1):t.cloakLevel=Math.max(t.cloakLevel-e*2,0))}}advanceControlVehicle(){if(!this.isPiloting||this.lastPilotGhostIndex==null)return;if(!this.lastVehiclePos||!this.lastVehicleVelocity){this.tickCount%100==0&&console.warn(`[advanceControlVehicle] piloting but missing data:`,`pos:`,!!this.lastVehiclePos,`vel:`,!!this.lastVehicleVelocity,`ghost:`,this.lastPilotGhostIndex);return}let e=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex),t=e?this.entities.get(e):void 0;if(!t)return;let n=32/1e3,[r,i,a]=this.lastVehicleVelocity;this.lastVehiclePos[0]+=r*n,this.lastVehiclePos[1]+=i*n,this.lastVehiclePos[2]+=a*n,t.position=[...this.lastVehiclePos]}advanceItems(){let e=32/1e3;for(let t of this.entities.values()){let n=t.itemPhysics;if(!n||n.atRest||t.isStaticItem||t.fadeVal===0||!t.position)continue;let r=n.velocity,i=t.position;r[2]+=-20*e,i[0]+=r[0]*e,i[1]+=r[1]*e,i[2]+=r[2]*e;let a=an(i[0],i[1]);if(a!=null&&i[2]0){let e=Math.max(0,1-t/o);r[0]*=e,r[1]*=e}r[2]=e*.2,Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2])<.15&&(r[0]=r[1]=r[2]=0,n.atRest=!0)}i[2]<-1e3&&(n.atRest=!0)}}removeExpiredExplosions(){for(let[e,t]of this.entities)t.isExplosion&&t.expiryTick!=null&&this.tickCount>=t.expiryTick&&this.entities.delete(e)}updateCameraAndHud(){let e=this.latestControl,t=this.getTimeSec(),n=e.data,r=this.lastControlType;if(this.removeExpiredExplosions(),e.position){let{yaw:i,pitch:a}=this.getCameraYawPitch(n);if(this.isPiloting){if(n){let e=n.controlObjectData?.angPosition;if(e&&typeof e.w==`number`){this.lastVehicleHeading=nt(e),this.lastVehiclePitch=Le(e);let t=tt(e);if(t){let[e,n,r,i]=t,a=1-2*(n*n+r*r),o=2*(e*n+r*i),s=2*(e*r-n*i);this.lastVehicleOrbitDir=[-a,-o,-s]}}}i=this.lastVehicleHeading,a=this.lastVehiclePitch}if(this.camera={time:t,position:[e.position.x,e.position.y,e.position.z],rotation:Ne(i,Ye(a,-Ze,Ze)),fov:this.latestFov,mode:`observer`,yaw:i,pitch:a},r===`camera`)if((typeof n?.cameraMode==`number`?n.cameraMode:this.lastCameraMode)===3){this.camera.mode=`third-person`,typeof this.lastOrbitDistance==`number`&&(this.camera.orbitDistance=this.lastOrbitDistance);let e=typeof n?.orbitObjectGhostIndex==`number`?n.orbitObjectGhostIndex:this.lastOrbitGhostIndex;typeof e==`number`&&e>=0&&(this.camera.orbitTargetId=this.resolveEntityIdForGhostIndex(e))}else this.camera.mode=`observer`;else{if(e.ghostIndex>=0&&(this.controlPlayerGhostId=this.resolveEntityIdForGhostIndex(e.ghostIndex)),this.firstPerson)this.camera.mode=`first-person`;else if(this.camera.mode=`third-person`,this.isPiloting&&this.lastPilotGhostIndex!=null){let e=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex);this.camera.orbitTargetId=e;let t=e?this.entities.get(e):void 0,n=t?.dataBlockId==null?void 0:this.getDataBlockData(t.dataBlockId);this.camera.orbitDistance=typeof n?.cameraMaxDist==`number`?n.cameraMaxDist:15,this.camera.orbitOffset=typeof n?.cameraOffset==`number`?n.cameraOffset:0,this.lastVehicleOrbitDir&&(this.camera.orbitDirection=this.lastVehicleOrbitDir)}else this.camera.orbitTargetId=this.controlPlayerGhostId,this.camera.orbitDistance=3;this.isPiloting&&this.lastPilotGhostIndex!=null?this.camera.controlEntityId=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex):this.controlPlayerGhostId&&(this.camera.controlEntityId=this.controlPlayerGhostId)}if(r===`player`&&e.position){if(this.isPiloting&&this.lastPilotGhostIndex!=null){let t=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex),r=t?this.entities.get(t):void 0;if(r){r.position=[e.position.x,e.position.y,e.position.z],this.lastVehiclePos=r.position.slice();let t=n?.controlObjectData;if(t){let e=t.linMomentum;if(e&&Ge(e)){let t=r.dataBlockId,n=(t==null?void 0:this.getDataBlockData(t))?.mass??200,i=n>0?1/n:1/200;this.lastVehicleVelocity=[e.x*i,e.y*i,e.z*i],r.velocity=this.lastVehicleVelocity}let n=t.angPosition;if(n&&typeof n.w==`number`){let e=tt(n);e&&(r.rotation=e)}}}}else if(this.controlPlayerGhostId){let t=this.entities.get(this.controlPlayerGhostId);if(t){t.position=[e.position.x,e.position.y,e.position.z],t.rotation=Ke(i),t.headPitch=this.getControlPlayerHeadPitch(a);let r=n?.velocity;Qe(r)&&(t.velocity=[r.x,r.y,r.z])}}}}else this.camera&&={...this.camera,time:t,fov:this.latestFov};let i={health:1,energy:1};if(this.camera?.mode===`first-person`){let e=this.controlPlayerGhostId,t=e?this.entities.get(e):void 0;i.health=t?.health??1;let r=n?.energyLevel;if(typeof r==`number`){let e=t?.maxEnergy??60;e>0&&(i.energy=Ye(r/e,0,1))}else i.energy=t?.energy??1}else if(this.camera?.mode===`third-person`&&this.camera.orbitTargetId){let e=this.entities.get(this.camera.orbitTargetId);i.health=e?.health??1,i.energy=e?.energy??1}this.lastStatus=i}getControlPlayerHeadPitch(e){return Ye(e/Ze,-1,1)}getAbsoluteRotation(e){return e?typeof e.rotationZ==`number`&&typeof e.headX==`number`?{yaw:e.rotationZ,pitch:e.headX}:typeof e.rotZ==`number`&&typeof e.rotX==`number`?{yaw:e.rotZ,pitch:e.rotX}:null:null}resolveIffColor(e){if(this.playerSensorGroup===0)return;let t=this.sensorGroupColors.get(this.playerSensorGroup);if(t){let n=t.get(e);if(n)return n}if(e===this.playerSensorGroup)return et;if(e!==0)return Pe}pushChatMessage(e){this.chatMessages.push({...e,id:++this.chatMessageIdCounter}),this.chatMessages.length>200&&this.chatMessages.splice(0,this.chatMessages.length-200),this._chatGen++}handleServerMessage(e){if(e.length<2)return;let t=this.resolveNetString(e[0]);if((t===`MsgTeamScoreIs`||t===`MsgTeamScore`)&&e.length>=4){let t=parseInt(this.resolveNetString(e[2]),10),n=parseInt(this.resolveNetString(e[3]),10);if(!isNaN(t)&&!isNaN(n)){let e=this.teamScores.find(e=>e.teamId===t);e&&(e.score=n,this.onTeamScoresChanged())}}else if(t===`MsgCTFAddTeam`&&e.length>=6){let t=parseInt(this.resolveNetString(e[2]),10),n=$e(this.resolveNetString(e[3])),r=parseInt(this.resolveNetString(e[5]),10);if(!isNaN(t)&&t>0){let e=this.teamScores.find(e=>e.teamId===t);e?(e.name=n,e.score=isNaN(r)?e.score:r):this.teamScores.push({teamId:t,name:n,score:isNaN(r)?0:r,playerCount:0}),this.onTeamScoresChanged()}}else if(t===`MsgClientJoin`&&e.length>=4){let t=$e(this.resolveNetString(e[2])).trim(),n=parseInt(this.resolveNetString(e[3]),10);isNaN(n)||(this.playerRoster.set(n,{name:t,teamId:0,score:0,ping:0,packetLoss:0}),this.onRosterChanged()),!this.connectedPlayerName&&t&&$e(this.resolveNetString(e[1])).includes(`Welcome to Tribes`)&&(this.connectedPlayerName=t,this.connectedClientId=n,this.onMissionInfoChange?.())}else if(t===`MsgClientDrop`&&e.length>=4){let t=parseInt(this.resolveNetString(e[3]),10);isNaN(t)||(this.playerRoster.delete(t),this.onRosterChanged())}else if(t===`MsgClientJoinTeam`&&e.length>=6){let t=parseInt(this.resolveNetString(e[4]),10),n=parseInt(this.resolveNetString(e[5]),10);if(!isNaN(t)&&!isNaN(n)){let e=this.playerRoster.get(t);e?e.teamId=n:this.playerRoster.set(t,{name:``,teamId:n,score:0,ping:0,packetLoss:0}),this.onRosterChanged()}}else if(t===`MsgPlayerScore`&&e.length>=5){let t=parseInt(this.resolveNetString(e[2]),10);if(!isNaN(t)){let n=this.playerRoster.get(t);if(n){let t=parseInt(this.resolveNetString(e[3]),10),r=parseInt(this.resolveNetString(e[4]),10),i=parseInt(this.resolveNetString(e[5]??``),10);isNaN(t)||(n.score=t),isNaN(r)||(n.ping=r),isNaN(i)||(n.packetLoss=i),this.onRosterChanged()}}}else if(t===`MsgSystemClock`&&e.length>=4){let t=parseFloat(this.resolveNetString(e[3]));this.clockAnchorStreamSec=this.getTimeSec(),this.clockDurationMs=Number.isFinite(t)?t:0}else if(t===`MsgMissionDropInfo`&&e.length>=5){let t=$e(this.resolveNetString(e[2])),n=$e(this.resolveNetString(e[3])),r=$e(this.resolveNetString(e[4]));sn.info(`mission drop info: mission=%s gameType=%s server=%s`,t,n,r),this.missionDisplayName=t||this.missionDisplayName,this.missionTypeDisplayName=n||this.missionTypeDisplayName,this.serverDisplayName=r||this.serverDisplayName,this.onMissionInfoChange?.()}else if(t===`MsgLoadInfo`&&e.length>=5){let t=$e(this.resolveNetString(e[3])),n=$e(this.resolveNetString(e[4]));sn.info(`load info: mission=%s gameType=%s`,t,n),this.missionDisplayName=t||this.missionDisplayName,this.missionTypeDisplayName=n||this.missionTypeDisplayName,this.onMissionInfoChange?.()}else if(t===`MsgClientReady`&&e.length>=3){let t=this.resolveNetString(e[2]);sn.info(`client ready: gameClass=%s`,t),this.gameClassName=t||this.gameClassName,this.onMissionInfoChange?.()}}onTeamScoresChanged(){}onRosterChanged(){}handleHudRemoteCommand(e,t){if(e===`setWeaponsHudItem`&&t.length>=3){let e=parseInt(t[0],10),n=parseInt(t[1],10),r=t[2]===`1`||t[2]===`true`;isNaN(e)||(r?this.weaponsHud.slots.set(e,isNaN(n)?-1:n):this.weaponsHud.slots.delete(e),this.onWeaponsHudChanged())}else if(e===`setWeaponsHudAmmo`&&t.length>=2){let e=parseInt(t[0],10),n=parseInt(t[1],10);isNaN(e)||(this.weaponsHud.slots.set(e,isNaN(n)?-1:n),this.onWeaponsHudChanged())}else if(e===`setWeaponsHudActive`&&t.length>=1){let e=parseInt(t[0],10);this.weaponsHud.activeIndex=isNaN(e)?-1:e,!isNaN(e)&&e>=0&&!this.weaponsHud.slots.has(e)&&this.weaponsHud.slots.set(e,-1),this.onWeaponsHudChanged()}else if(e===`setWeaponsHudClearAll`)this.weaponsHud.slots.clear(),this.weaponsHud.activeIndex=-1,this.onWeaponsHudChanged();else if(e===`setBackpackHudItem`&&t.length>=2){let e=parseInt(t[0],10);(t[1]===`1`||t[1]===`true`)&&!isNaN(e)?(this.backpackHud.packIndex=e,this.backpackHud.active=!1,this.backpackHud.text=``):(this.backpackHud.packIndex=-1,this.backpackHud.active=!1,this.backpackHud.text=``)}else if(e===`setSatchelArmed`)this.backpackHud.active=!0;else if(e===`setCloakIconOn`||e===`setRepairPackIconOn`||e===`setShieldIconOn`||e===`setSenJamIconOn`)this.backpackHud.active=!0;else if(e===`setCloakIconOff`||e===`setRepairPackIconOff`||e===`setShieldIconOff`||e===`setSenJamIconOff`)this.backpackHud.active=!1;else if(e===`updatePackText`&&t.length>=1)this.backpackHud.text=t[0]??``;else if(e===`setInventoryHudItem`&&t.length>=3){let e=parseInt(t[0],10),n=parseInt(t[1],10),r=t[2]===`1`||t[2]===`true`;isNaN(e)||(r&&!isNaN(n)?this.inventoryHud.slots.set(e,n):this.inventoryHud.slots.delete(e),this.onInventoryHudChanged())}else if(e===`setInventoryHudAmount`&&t.length>=2){let e=parseInt(t[0],10),n=parseInt(t[1],10);!isNaN(e)&&!isNaN(n)&&(this.inventoryHud.slots.set(e,n),this.onInventoryHudChanged())}else e===`setInventoryHudClearAll`&&(this.inventoryHud.slots.clear(),this.inventoryHud.activeSlot=-1,this.onInventoryHudChanged())}onWeaponsHudChanged(){}onInventoryHudChanged(){}buildEntityList(e){let t=[];for(let n of this.entities.values()){if(e&&!e(n))continue;let r=n.targetId!=null&&n.targetId>=0?this.targetRenderFlags.get(n.targetId)??n.targetRenderFlags:n.targetRenderFlags;n.type===`Player`&&!n.imageSlots?.[3]&&(r=r==null?r:r&-3),t.push({id:n.id,type:n.type,visual:n.visual,direction:n.direction,ghostIndex:n.ghostIndex,className:n.className,dataBlockId:n.dataBlockId,shapeHint:n.shapeHint,dataBlock:n.dataBlock,imageSlots:n.imageSlots,lightType:n.lightType,lightColor:n.lightColor,lightTime:n.lightTime,lightRadius:n.lightRadius,lightOnlyStatic:n.lightOnlyStatic,isStaticItem:n.isStaticItem,mountObjectId:n.mountObjectGhostIndex==null?void 0:this.entityIdByGhostIndex.get(n.mountObjectGhostIndex),mountNode:n.mountNode,falling:n.falling,jetting:n.jetting,playerName:n.playerName,skinName:n.skinName,skinPrefName:n.skinPrefName,targetRenderFlags:r,iffColor:(n.type===`Player`||(r??0)&2)&&n.sensorGroup!=null?this.resolveIffColor(n.sensorGroup):void 0,position:n.position&&(n.simulatedVelocity||n.itemPhysics&&!n.itemPhysics.atRest)?[...n.position]:n.position,rotation:n.rotation,velocity:n.velocity,health:n.health,energy:n.energy,actionAnim:n.actionAnim,actionAtEnd:n.actionAtEnd,armAction:n.armAction,damageState:n.damageState,fadeVal:n.fadeVal??1,cloakLevel:n.cloakLevel??0,faceViewer:n.faceViewer,threads:n.threads,explosionDataBlockId:n.explosionDataBlockId,maintainEmitterId:n.maintainEmitterId,weaponImageState:n.weaponImageState,weaponImageStates:n.weaponImageStates,headPitch:n.headPitch,headYaw:n.headYaw,label:n.label,audioFileName:n.audioFileName,audioVolume:n.audioVolume,audioIs3D:n.audioIs3D,audioIsLooping:n.audioIsLooping,audioMinDistance:n.audioMinDistance,audioMaxDistance:n.audioMaxDistance,audioMinLoopGap:n.audioMinLoopGap,audioMaxLoopGap:n.audioMaxLoopGap,wheels:n.wheels,steeringYaw:n.steeringYaw,frozen:n.frozen,maxSteeringAngle:n.maxSteeringAngle,soundSlots:n.soundSlots,sceneData:n.sceneData,forceFieldData:n.forceFieldData})}return t}computeMatchClockMs(e){if(this.clockAnchorStreamSec==null)return null;let t=(e-this.clockAnchorStreamSec)*1e3;return-this.clockDurationMs+t}buildHudState(){let e={slots:Array.from(this.weaponsHud.slots.entries()).map(([e,t])=>({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},t={slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},n=this.backpackHud.packIndex>=0?{...this.backpackHud}:null,r=this.teamScores.map(e=>({...e})),i=new Map;for(let{teamId:e}of this.playerRoster.values())e>0&&i.set(e,(i.get(e)??0)+1);for(let e of r)e.playerCount=i.get(e.teamId)??0;let a=[];for(let[e,t]of this.playerRoster)a.push({clientId:e,...t});return{weaponsHud:e,inventoryHud:t,backpackHud:n,teamScores:r,playerRoster:a}}buildTimeFilteredEvents(e){return this._chatSnapshotGen!==this._chatGen&&(this._chatSnapshot=this.chatMessages.slice(),this._chatSnapshotGen=this._chatGen),{chatMessages:this._chatSnapshot,audioEvents:this.audioEvents.filter(t=>t.timeSec>e-.5&&t.timeSec<=e)}}},G=fe(`liveStreaming`),ln=class extends cn{packetParser;relay;currentTimeSec=0;connectSynced=!1;_snapshot=null;_snapshotTick=-1;_ready=!1;_teamScoresGen=0;_rosterGen=0;_weaponsHudGen=0;_inventoryHudGen=0;_cachedHud=null;dataBlockClassNames=new Map;onReady;onMissionChange;missionName=null;lastMoveAck=0;constructor(e){super(),this.relay=e;let{registry:t,ghostTracker:n,packetParser:r}=Ue();this.packetParser=r,this.ghostTracker=n,this.registry=t}getDataBlockData(e){return this.packetParser.getDataBlockDataMap()?.get(e)}_shapeConstructorCache=null;getShapeConstructorSequences(e){this._shapeConstructorCache=new Map;let t=this.packetParser.getDataBlockDataMap();if(t){for(let[,e]of t){let t=e.shape,n=e.sequences;t&&n&&this._shapeConstructorCache.set(t.toLowerCase(),n)}return this._shapeConstructorCache.get(e.toLowerCase())}}getTimeSec(){return this.currentTimeSec}getCameraYawPitch(e){return this.getAbsoluteRotation(e)??{yaw:0,pitch:0}}getEffectShapes(){let e=new Set,t=this.packetParser.getDataBlockDataMap();if(!t)return[];for(let[,n]of t){let r=n.explosion;if(r==null)continue;let i=t.get(r);i?.dtsFileName&&e.add(i.dtsFileName)}return[...e]}onTeamScoresChanged(){this._teamScoresGen++}onRosterChanged(){this._rosterGen++}onWeaponsHudChanged(){this._weaponsHudGen++}onInventoryHudChanged(){this._inventoryHudGen++}reset(){this.resetSharedState(),this.ghostTracker.clear?.(),this.currentTimeSec=0,this._snapshot=null,this._snapshotTick=-1,this._cachedHud=null,this.dataBlockClassNames.clear(),this.observerMode=`fly`,this.missionName=null}getSnapshot(){return this._snapshot&&this._snapshotTick===this.tickCount?this._snapshot:this.buildSnapshot()}stepToTime(e,t){return this.currentTimeSec=e,this.getSnapshot()}syncConnectSequence(e){if(this.connectSynced||e.length<1)return;this.connectSynced=!0;let t=e[0]>>1&1;this.packetParser.setConnectionProtocolState({lastSeqRecvdAtSend:Array(32).fill(0),lastSeqRecvd:0,highestAckedSeq:0,lastSendSeq:536870911,ackMask:0,connectSequence:t,lastRecvAckAck:0,connectionEstablished:!0})}feedPacket(e){this.syncConnectSequence(e),this.processPacket(e)}handleRelayCommands(e){let t=e.funcName;if(!t)return;let n=this.resolveNetString(t);if([`t2csri_pokeClient`,`t2csri_getChallengeChunk`,`t2csri_decryptChallenge`].includes(n)){let t=(e.args??[]).map(e=>this.resolveNetString(e)).filter(e=>e!==``);G.info(`auth event: %s %o`,n,t),this.relay.sendAuthEvent(n,t);return}let r=(e.args??[]).map(e=>this.resolveNetString(e));if(n===`MissionStartPhase1`){let e=r[0]??``,t=r[1]??null;G.info(`mission phase 1, seq=%s mission=%s resolvedArgs=%o`,e,t,r),t&&t!==this.missionName&&(this.missionName=t,this.entities.clear(),this.entityIdByGhostIndex.clear(),this._ready=!1,this._snapshot=null,this._snapshotTick=-1,this._cachedHud=null,this.observerMode=`fly`,this.lastMoveAck=0,this.missionDisplayName=null,this.missionTypeDisplayName=null,this.gameClassName=null,this.serverDisplayName=null,this.onMissionChange?.(t)),this.relay.sendCommand(`MissionStartPhase1Done`,[e])}else if(n===`MissionStartPhase2`){let e=r[0]??``;G.info(`mission phase 2 (datablocks), seq=%s`,e),this.relay.sendCommand(`MissionStartPhase2Done`,[e])}else if(n===`MissionStartPhase3`){let e=r[0]??``,t=r[1]??null;G.info(`mission phase 3 (ghosting), seq=%s mission=%s`,e,t),t&&(this.missionName=t),this.relay.sendCommand(`setClientFav`,[``]),this.relay.sendCommand(`MissionStartPhase3Done`,[e])}}handleCRCChallenge(e){let t=e.crcValue,n=e.field1,r=e.field2,i=(n&1)!=0;G.info(`CRC challenge: seed=0x%s f1=0x%s f2=0x%s includeTextures=%s`,(t>>>0).toString(16),(n>>>0).toString(16),(r>>>0).toString(16),i);let a=this.packetParser.getDataBlockDataMap(),o=[];if(a)for(let[e,t]of a){let n=this.dataBlockClassNames.get(e);if(!n)continue;let r=Ve(n,t);o.push({objectId:e,className:n,shapeName:r??``})}G.info(`CRC: sending %d datablocks for computation`,o.length),this.relay.sendCRCCompute(t,r,o,i)}handleGhostingMessage(e){let t=e.message,n=e.sequence,r=e.ghostCount;G.info(`GhostingMessageEvent: message=%d sequence=%d ghostCount=%d`,t,n,r),t===ke.GhostAlwaysDone&&(G.info(`Sending ghost ack for sequence %d`,n),this.relay.sendGhostAck(n,r))}observerMode=`fly`;requestScores(){this.relay.sendCommand(`getScores`,[])}getPlayerList(){let e=[];for(let[t,n]of this.targetNames){let r=this.targetTeams.get(t)??0;e.push({targetId:t,name:n,sensorGroup:r})}return e}processPacket(e){try{let t=this.packetParser.protocolRejected,n=this.packetParser.protocolNoDispatch,r=this.packetParser.parsePacket(e),i=this.packetParser.protocolRejected>t,a=this.packetParser.protocolNoDispatch>n;(i||a)&&G.warn(`packet #%d %s: %d bytes (total rejected=%d, noDispatch=%d)`,this.tickCount,i?`REJECTED`:`no-dispatch`,e.length,this.packetParser.protocolRejected,this.packetParser.protocolNoDispatch);let o=this.tickCount<20,s=this.tickCount%100==0,c=o||s;c&&G.debug(`packet #%d: %d events, %d ghosts, %d bytes%s%s`,this.tickCount,r.events.length,r.ghosts.length,e.length,r.gameState.controlObjectGhostIndex===void 0?``:`, control=${r.gameState.controlObjectGhostIndex}`,r.gameState.cameraFov===void 0?``:`, fov=${r.gameState.cameraFov}`),this.lastMoveAck=r.gameState.lastMoveAck,this.processControlObject(r.gameState);for(let e of r.events)if(e.parsedData){let t=e.parsedData.type;if(t===`RemoteCommandEvent`?this.handleRelayCommands(e.parsedData):t===`CRCChallengeEvent`?this.handleCRCChallenge(e.parsedData):t===`GhostingMessageEvent`&&this.handleGhostingMessage(e.parsedData),t===`RemoteCommandEvent`){let t=this.resolveNetString(e.parsedData.funcName??``);G.debug(`remote: %s`,t)}if(o&&t!==`NetStringEvent`&&t!==`RemoteCommandEvent`&&G.debug(`event: %s%s`,t,t===`SimDataBlockEvent`?` id=${e.parsedData.objectId} class=${e.parsedData.dataBlockClassName}`:``),t===`SimDataBlockEvent`){let t=e.parsedData.objectId,n=e.parsedData.dataBlockClassName;if(t!=null&&n&&this.dataBlockClassNames.set(t,n),c){let r=e.parsedData.dataBlockData,i=Ve(n??``,r);G.debug(`datablock: id=%d class=%s%s`,t,n??`?`,i?` shape=${i}`:``)}}let n=this.registry.getEventParser(e.classId)?.name;if(this.processEvent(e,n),o&&t===`NetStringEvent`){let t=e.parsedData.id,n=e.parsedData.value;t!=null&&typeof n==`string`&&G.trace(`netString #%d = "%s"`,t,n.length>60?n.slice(0,60)+`…`:n)}if(t===`TargetInfoEvent`){let t=e.parsedData.targetId,n=e.parsedData.nameTag;if(t!=null&&n!=null){let r=this.netStrings.get(n);if(r){let n=$e(r);G.info(`target #%d: "%s" team=%s`,t,n,e.parsedData.sensorGroup??`?`)}}}if(t===`SetSensorGroupEvent`){let t=e.parsedData.sensorGroup;t!=null&&G.info(`sensor group changed: → %d`,t)}if(t===`SensorGroupColorEvent`){let t=e.parsedData.sensorGroup,n=e.parsedData.colors;n&&G.debug(`sensor group colors: group=%d, %d entries`,t,n.length)}}for(let e of r.ghosts){if(e.type===`create`){let t=e.parsedData?.position,n=t&&typeof t.x==`number`&&typeof t.y==`number`&&typeof t.z==`number`,r=this.resolveGhostClassName(e.index,e.classId);G.debug(`ghost create: #%d %s%s (%d entities total)`,e.index,r??`?`,n?` at (${t.x.toFixed(1)}, ${t.y.toFixed(1)}, ${t.z.toFixed(1)})`:``,this.entities.size+1),this._ready||(this._ready=!0,this.onReady?.())}else if(e.type===`delete`){let t=this.entityIdByGhostIndex.get(e.index),n=t?this.entities.get(t):void 0;(this.tickCount<50||this.tickCount%200==0)&&G.debug(`ghost delete: #%d %s (%d entities remaining)`,e.index,n?.className??`?`,this.entities.size-1)}this.processGhostUpdate(e)}if(this.tickCount++,this.advanceProjectiles(),this.advanceItems(),this.advanceControlVehicle(),this.advanceFades(),s&&this.tickCount>1){let e=this.packetParser.getDataBlockDataMap();G.info(`status @ tick %d: %d entities, %d datablocks, rejected=%d, noDispatch=%d`,this.tickCount,this.entities.size,e?.size??0,this.packetParser.protocolRejected,this.packetParser.protocolNoDispatch)}let l=this.entities.size;if(this.tickCount===1||l>0&&l%25==0&&this.tickCount<100){let e=new Map;for(let t of this.entities.values())e.set(t.type,(e.get(t.type)??0)+1);let t=[...e.entries()].map(([e,t])=>`${e}=${t}`).join(` `);G.info(`entity count: %d (%s)`,l,t)}let u=this.camera?.mode;if(this.updateCameraAndHud(),this.camera&&this.camera.mode!==u&&G.info(`camera mode: %s → %s%s`,u??`none`,this.camera.mode,this.camera.mode===`third-person`?` orbit=${this.camera.orbitTargetId??`?`} dist=${this.camera.orbitDistance??`?`}`:``),this.tickCount<=5&&this.camera){let[e,t,n]=this.camera.position;G.debug(`camera: mode=%s pos=(%s, %s, %s) fov=%s`,this.camera.mode,e.toFixed(1),t.toFixed(1),n.toFixed(1),this.camera.fov)}}catch(t){let n={tickCount:this.tickCount,entityCount:this.entities.size,dataLength:e.length,controlGhost:this.latestControl.ghostIndex,connectSynced:this.connectSynced};G.error(`Failed to process live packet: %o %o`,t,n)}}buildSnapshot(){let e=this.buildEntityList(),t=this.currentTimeSec,{chatMessages:n,audioEvents:r}=this.buildTimeFilteredEvents(t),i=this._cachedHud,a,o,s,c,l;i&&i.weaponsHudGen===this._weaponsHudGen&&i.inventoryHudGen===this._inventoryHudGen&&i.teamScoresGen===this._teamScoresGen&&i.rosterGen===this._rosterGen&&i.backpackPackIndex===this.backpackHud.packIndex&&i.backpackActive===this.backpackHud.active?(a=i.weaponsHud,o=i.inventoryHud,s=i.backpackHud,c=i.teamScores,l=i.playerRoster):({weaponsHud:a,inventoryHud:o,backpackHud:s,teamScores:c,playerRoster:l}=this.buildHudState(),this._cachedHud={weaponsHudGen:this._weaponsHudGen,inventoryHudGen:this._inventoryHudGen,teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,weaponsHud:a,inventoryHud:o,backpackHud:s,teamScores:c,playerRoster:l}),this.camera||={time:t,position:[0,0,200],rotation:[0,0,0,1],fov:90,mode:`observer`};let u={timeSec:t,exhausted:!1,camera:this.camera,entities:e,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:n,audioEvents:r,weaponsHud:a,backpackHud:s,inventoryHud:o,teamScores:c,playerRoster:l,connectedClientId:this.connectedClientId,matchClockMs:this.computeMatchClockMs(t)};return this._snapshot=u,this._snapshotTick=this.tickCount,u}},K=B()((e,t)=>({missionEntities:new Map,streamEntities:new Map,isStreaming:!1,dataSource:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:0,setEntity(t){e(e=>{let n=new Map(e.missionEntities);return n.set(t.id,t),{missionEntities:n,version:e.version+1}})},deleteEntity(t){e(e=>{if(!e.missionEntities.has(t))return e;let n=new Map(e.missionEntities);return n.delete(t),{missionEntities:n,version:e.version+1}})},setEntities(t){e(e=>{let n=new Map(e.missionEntities);for(let e of t)n.set(e.id,e);return{missionEntities:n,version:e.version+1}})},setAllEntities(t){e(e=>{let n=new Map;for(let e of t)n.set(e.id,e);return{missionEntities:n,dataSource:e.isStreaming?e.dataSource:`map`}})},clearEntities(){e(e=>e.missionEntities.size===0?e:e.isStreaming?{missionEntities:new Map,version:e.version+1}:{missionEntities:new Map,dataSource:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:e.version+1})},setMissionInfo(t){let n={};if(t.missionName!==void 0&&(n.missionName=t.missionName),t.missionType!==void 0&&(n.missionType=t.missionType),t.missionTypeDisplayName!==void 0&&(n.missionTypeDisplayName=t.missionTypeDisplayName),t.missionDisplayName!==void 0&&(n.missionDisplayName=t.missionDisplayName),t.gameClassName!==void 0&&(n.gameClassName=t.gameClassName,t.missionType===void 0))if(t.gameClassName){let e=t.gameClassName.replace(/Game$/i,``);n.missionType=xe[e.toLowerCase()]??e}else n.missionType=null;t.serverDisplayName!==void 0&&(n.serverDisplayName=t.serverDisplayName),t.recorderName!==void 0&&(n.recorderName=t.recorderName),t.recordingDate!==void 0&&(n.recordingDate=t.recordingDate),e(e=>({...n,version:e.version+1}))},beginStreaming(t){e(e=>({isStreaming:!0,dataSource:t,streamEntities:new Map,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:e.version+1}))},endStreaming(){e(e=>e.isStreaming?{isStreaming:!1,dataSource:e.missionEntities.size>0?`map`:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,streamEntities:new Map,version:e.version+1}:e)},setStreamEntity(t){e(e=>{let n=new Map(e.streamEntities);return n.set(t.id,t),{streamEntities:n,version:e.version+1}})},deleteStreamEntity(t){e(e=>{if(!e.streamEntities.has(t))return e;let n=new Map(e.streamEntities);return n.delete(t),{streamEntities:n,version:e.version+1}})},setStreamEntities(t){e(e=>{let n=new Map(e.streamEntities);for(let e of t)n.set(e.id,e);return{streamEntities:n,version:e.version+1}})},setAllStreamEntities(t){e(e=>{let n=new Map;for(let e of t)n.set(e.id,e);let r=e.streamEntities;return n.size===r.size&&[...n.keys()].every(e=>r.has(e))?e:{streamEntities:n,version:e.version+1}})},clearStreamEntities(){e(e=>e.streamEntities.size===0?e:{streamEntities:new Map,version:e.version+1})},getStreamEntitiesMap(){return t().streamEntities},bumpStreamVersion(){e(e=>({version:e.version+1}))}}));function un(e){return e.isStreaming?e.streamEntities:e.missionEntities}function dn(e){return e.version}function fn(){return z(K,dn),z(K,un)}function pn(){return fn()}function mn(e){let t=e.isStreaming?e.streamEntities:e.missionEntities,n=[];for(let e of t.values())e.renderType!==`None`&&n.push(e);return n}function hn(e,t){if(e.length!==t.length)return!1;for(let n=0;n(t.isStreaming?t.streamEntities:t.missionEntities).get(e)?.debugHidden??!1,t[0]=e,t[1]=n),z(K,n)}function jn(){return z(K,Mn)}function Mn(e){return e.missionDisplayName}function Nn(){return z(K,Pn)}function Pn(e){return e.serverDisplayName}function Fn(){return z(K,In)}function In(e){return e.recorderName}function Ln(){return z(K,Rn)}function Rn(e){return e.recordingDate}var zn=fe(`liveConnectionStore`),Bn=`wss://t2-relay.fly.dev`,Vn=B((e,t)=>({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,servers:[],serversLoading:!1,adapter:null,liveReady:!1,_relay:null,_adapter:null,_pending:[],_listInFlight:!1,connectRelay(n=Bn){let r=t();r._relay&&r._relay.close();let i=new Qt(n,{onOpen(){e({relayConnected:!0});let n=t();for(let e of n._pending)e();n._pending=[]},onStatus(t,n,r,i){zn.info(`game status: %s%s%s`,t,n?` — ${n}`:``,i?` map=${i}`:``),e({gameStatus:t,gameStatusMessage:n,...i?{mapName:i}:{}})},onServerList(n){t()._listInFlight=!1,e({servers:n,serversLoading:!1})},onGamePacket(e){let n=t()._adapter;n||zn.warn(`received game packet but no adapter is active`),n?.feedPacket(e)},onPing(t){e({relayToGameServerPing:t})},onWsPing(t){e({browserToRelayPing:t})},onError(n){zn.error(`error: %s`,n),t()._listInFlight=!1,e({serversLoading:!1})},onClose(){let n=t();n._relay===i&&(n._relay=null,n._adapter=null,n._pending=[],n._listInFlight=!1,e({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,adapter:null,liveReady:!1}))}});i.connect(),t()._relay=i},disconnectRelay(){let n=t();n._relay?.close(),n._relay=null,n._adapter=null,n._pending=[],n._listInFlight=!1,e({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,adapter:null,liveReady:!1})},listServers(){let n=t();if(n._listInFlight)return;n._listInFlight=!0;let r=()=>{let e=t();e._relay?.sendWsPing(),e._relay?.listServers()};e({serversLoading:!0}),n._relay?.connected?r():(n._pending.push(r),n._relay||t().connectRelay())},joinServer(n,r){let i=t();if(!i._relay)return;let a=i.servers.find(e=>e.address===n),o=new ln(i._relay);o.onReady=()=>e({liveReady:!0}),o.onMissionChange=t=>{zn.info(`mission changed: %s`,t),e({mapName:t,liveReady:!1}),K.getState().setMissionInfo({missionName:t,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null})},o.onMissionInfoChange=()=>{K.getState().setMissionInfo({missionDisplayName:o.missionDisplayName??void 0,missionTypeDisplayName:o.missionTypeDisplayName??void 0,gameClassName:o.gameClassName??void 0,serverDisplayName:o.serverDisplayName??void 0,recorderName:o.connectedPlayerName??void 0})},i._adapter=o,e({mapName:a?.mapName??i.mapName,serverName:a?.name,warriorName:r,liveReady:!1,gameStatus:null,adapter:o}),K.getState().setMissionInfo({missionName:a?.mapName??void 0,missionTypeDisplayName:a?.gameType??void 0,serverDisplayName:a?.name??void 0,recorderName:r??void 0}),i._relay.joinServer(n,r)},disconnectServer(){t().disconnectRelay()},sendMoves(e,n){t()._relay?.sendMoves(e,n)},sendCommand(e,...n){t()._relay?.sendCommand(e,n)}}));function Hn(e,t){return z(Vn,e,t)}function Un(e){return e.relayToGameServerPing!=null&&e.browserToRelayPing!=null?e.relayToGameServerPing+e.browserToRelayPing:e.relayToGameServerPing??null}var Wn=[.25,.5,1,1.5,2,3,4];function Gn(){return Se(Kn)}function Kn(e){return e.playback.recording}function qn(){return Se(Jn)}function Jn(e){return e.playback.status===`playing`}function Yn(){return Se(Xn)}function Xn(e){return Math.floor(e.playback.streamSnapshot?.timeSec??e.playback.seekTime)}function Zn(){return Se(Qn)}function Qn(e){return e.playback.durationMs/1e3}function $n(){return Se(er)}function er(e){return e.playback.rate}function tr(){let e=(0,U.c)(17),t=Gn(),n=Se(ar),r=Se(ir),i=Se(rr),a=Se(nr),o;e[0]===n?o=e[1]:(o=e=>{n(e)},e[0]=n,e[1]=o);let s=o,c;e[2]!==t||e[3]!==r?(c=()=>{t&&r(`playing`)},e[2]=t,e[3]=r,e[4]=c):c=e[4];let l=c,u;e[5]===r?u=e[6]:(u=()=>{r(`paused`)},e[5]=r,e[6]=u);let d=u,f;e[7]===i?f=e[8]:(f=e=>{i(e)},e[7]=i,e[8]=f);let p=f,m;e[9]===a?m=e[10]:(m=e=>{a(e)},e[9]=a,e[10]=m);let h=m,g;return e[11]!==d||e[12]!==l||e[13]!==p||e[14]!==s||e[15]!==h?(g={setRecording:s,play:l,pause:d,seek:p,setSpeed:h},e[11]=d,e[12]=l,e[13]=p,e[14]=s,e[15]=h,e[16]=g):g=e[16],g}function nr(e){return e.setPlaybackRate}function rr(e){return e.seekPlayback}function ir(e){return e.setPlaybackStatus}function ar(e){return e.setRecording}var or=fe(`LoadDemoButton`);function sr({isActive:e=!1,choosingMap:t=!1,onCancelChoosingMap:n}){let r=Gn()?.source===`demo`,{setRecording:i}=tr(),a=(0,H.useRef)(null),o=(0,H.useRef)(0),s=(0,H.useRef)(null),c=(0,H.useCallback)(()=>{if(De.getState().cancel(),t&&r){n?.();return}if(r){o.current+=1,s.current?.abort(),s.current=null,i(null),Yt.getState().reset();return}a.current?.click()},[r,t,n,i]);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`input`,{ref:a,type:`file`,accept:`.rec`,style:{display:`none`},onChange:(0,H.useCallback)(async e=>{let t=e.target.files?.[0];if(t){e.target.value=``;try{let e=await t.arrayBuffer(),n=o.current+1;o.current=n;let{createDemoStreamingRecording:r}=await Te(async()=>{let{createDemoStreamingRecording:e}=await import(`./demoStreaming-VZXXHEQr.js`);return{createDemoStreamingRecording:e}},__vite__mapDeps([0,1,2,3,4,5])),a=await r(e);if(o.current!==n)return;Vn.getState().disconnectServer(),i(a),s.current?.abort();let c=new AbortController;s.current=c;let l=Yt.getState();l.reset(),l.setScanProgress(0),Te(async()=>{let{scanDemoTimeline:e}=await import(`./demoTimelineScanner-BbHg_3A9.js`);return{scanDemoTimeline:e}},__vite__mapDeps([6,1,2,3,5])).then(({scanDemoTimeline:t})=>t(e,a.recorderName,e=>{o.current===n&&Yt.getState().setScanProgress(e)},c.signal)).then(e=>{if(o.current!==n)return;let t=Yt.getState();t.setEvents(e),t.setScanProgress(null)}).catch(e=>{o.current===n&&(e instanceof Error&&e.name===`AbortError`||(or.error(`Timeline scan failed: %o`,e),Yt.getState().setScanProgress(null)))})}catch(e){or.error(`Failed to load demo: %o`,e)}}},[i])}),(0,W.jsxs)(`button`,{type:`button`,className:Ut.Button,"aria-label":r?`Unload demo`:`Load demo (.rec)`,title:r?`Unload demo`:`Load demo (.rec)`,onClick:c,"data-active":e,children:[(0,W.jsx)(qt,{className:Ut.DemoIcon}),(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Demo`}),(0,W.jsx)(`span`,{className:Ut.ButtonHint,children:t&&r?`Return to demo`:r?`Click to unload`:`Load a .rec file`})]})]})}function cr(e){return V({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`M11.251.068a.5.5 0 0 1 .227.58L9.677 6.5H13a.5.5 0 0 1 .364.843l-8 8.5a.5.5 0 0 1-.842-.49L6.323 9.5H3a.5.5 0 0 1-.364-.843l8-8.5a.5.5 0 0 1 .615-.09z`},child:[]}]})(e)}function lr(e){return V({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393`},child:[]}]})(e)}var ur={JoinServerButton:`_JoinServerButton_cz8os_1 _Button_p0g82_2`,Icon:`_Icon_cz8os_5 _Icon_p0g82_85`,blink:`_blink_cz8os_1`};function dr(e){let t=(0,U.c)(15),{isActive:n,onOpenServerBrowser:r}=e,i=Hn(pr),a=Hn(fr),o=i===`connected`,s=i===`connecting`||i===`challenging`||i===`authenticating`,c=o?`Connected –\xA0click to disconnect`:`Join server`,l=o?`Connected –\xA0click to disconnect`:`Join server`,u;t[0]!==a||t[1]!==o||t[2]!==r?(u=()=>{De.getState().cancel(),o?a():r()},t[0]=a,t[1]=o,t[2]=r,t[3]=u):u=t[3];let d,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,W.jsx)(cr,{className:ur.Icon}),f=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Live`}),t[4]=d,t[5]=f):(d=t[4],f=t[5]);let p=s?`Connecting…`:o?`Connected`:`Join a game`,m;t[6]===p?m=t[7]:(m=(0,W.jsxs)(W.Fragment,{children:[f,(0,W.jsx)(`span`,{className:Ut.ButtonHint,children:p})]}),t[6]=p,t[7]=m);let h;return t[8]!==n||t[9]!==o||t[10]!==c||t[11]!==l||t[12]!==u||t[13]!==m?(h=(0,W.jsxs)(`button`,{type:`button`,className:ur.JoinServerButton,"aria-label":c,title:l,"data-connected":o,onClick:u,"data-active":n,children:[d,m]}),t[8]=n,t[9]=o,t[10]=c,t[11]=l,t[12]=u,t[13]=m,t[14]=h):h=t[14],h}function fr(e){return e.disconnectServer}function pr(e){return e.gameStatus}function mr(e,t=[]){let n=[];function r(t,r){let i=H.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=H.useMemo(()=>o,Object.values(o));return(0,W.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=H.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>H.createContext(e));return function(n){let r=n?.[e]||t;return H.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,hr(i,...t)]}function hr(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return H.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function gr(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function _r(...e){return t=>{let n=!1,r=e.map(e=>{let r=gr(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t{let{children:r,...i}=e,a=H.Children.toArray(r),o=a.find(Sr);if(o){let e=o.props.children,r=a.map(t=>t===o?H.Children.count(e)>1?H.Children.only(null):H.isValidElement(e)?e.props.children:null:t);return(0,W.jsx)(t,{...i,ref:n,children:H.isValidElement(e)?H.cloneElement(e,void 0,r):null})}return(0,W.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function br(e){let t=H.forwardRef((e,t)=>{let{children:n,...r}=e;if(H.isValidElement(n)){let e=wr(n),i=Cr(r,n.props);return n.type!==H.Fragment&&(i.ref=t?_r(t,e):e),H.cloneElement(n,i)}return H.Children.count(n)>1?H.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var xr=Symbol(`radix.slottable`);function Sr(e){return H.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===xr}function Cr(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function wr(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Tr(e){let t=e+`CollectionProvider`,[n,r]=mr(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=H.useRef(null),a=H.useRef(new Map).current;return(0,W.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=yr(s),l=H.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,W.jsx)(c,{ref:vr(t,a(s,n).collectionRef),children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=yr(u),p=H.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=H.useRef(null),s=vr(t,o),c=a(u,n);return H.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,W.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return H.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:l,ItemSlot:p},m,r]}typeof window<`u`&&window.document&&window.document.createElement;function Er(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var Dr=globalThis?.document?H.useLayoutEffect:()=>{},Or=H.useInsertionEffect||Dr;function kr({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=Ar({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=H.useRef(e!==void 0);H.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,H.useCallback(t=>{if(s){let n=jr(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function Ar({defaultProp:e,onChange:t}){let[n,r]=H.useState(e),i=H.useRef(n),a=H.useRef(t);return Or(()=>{a.current=t},[t]),H.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function jr(e){return typeof e==`function`}var Mr=e(c(),1),Nr=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=yr(`Primitive.${t}`),r=H.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,W.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Pr(e,t){return H.useReducer((e,n)=>t[e][n]??e,e)}var Fr=e=>{let{present:t,children:n}=e,r=Ir(t),i=typeof n==`function`?n({present:r.isPresent}):H.Children.only(n),a=vr(r.ref,Rr(i));return typeof n==`function`||r.isPresent?H.cloneElement(i,{ref:a}):null};Fr.displayName=`Presence`;function Ir(e){let[t,n]=H.useState(),r=H.useRef(null),i=H.useRef(e),a=H.useRef(`none`),[o,s]=Pr(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return H.useEffect(()=>{let e=Lr(r.current);a.current=o===`mounted`?e:`none`},[o]),Dr(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=Lr(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),Dr(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=Lr(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=Lr(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:H.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function Lr(e){return e?.animationName||`none`}function Rr(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var zr=H.useId||(()=>void 0),Br=0;function Vr(e){let[t,n]=H.useState(zr());return Dr(()=>{e||n(e=>e??String(Br++))},[e]),e||(t?`radix-${t}`:``)}var Hr=`Collapsible`,[Ur,Wr]=mr(Hr),[Gr,Kr]=Ur(Hr),qr=H.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=kr({prop:r,defaultProp:i??!1,onChange:o,caller:Hr});return(0,W.jsx)(Gr,{scope:n,disabled:a,contentId:Vr(),open:c,onOpenToggle:H.useCallback(()=>l(e=>!e),[l]),children:(0,W.jsx)(Nr.div,{"data-state":$r(c),"data-disabled":a?``:void 0,...s,ref:t})})});qr.displayName=Hr;var Jr=`CollapsibleTrigger`,Yr=H.forwardRef((e,t)=>{let{__scopeCollapsible:n,...r}=e,i=Kr(Jr,n);return(0,W.jsx)(Nr.button,{type:`button`,"aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":$r(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:Er(e.onClick,i.onOpenToggle)})});Yr.displayName=Jr;var Xr=`CollapsibleContent`,Zr=H.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Kr(Xr,e.__scopeCollapsible);return(0,W.jsx)(Fr,{present:n||i.open,children:({present:e})=>(0,W.jsx)(Qr,{...r,ref:t,present:e})})});Zr.displayName=Xr;var Qr=H.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:r,children:i,...a}=e,o=Kr(Xr,n),[s,c]=H.useState(r),l=H.useRef(null),u=vr(t,l),d=H.useRef(0),f=d.current,p=H.useRef(0),m=p.current,h=o.open||s,g=H.useRef(h),_=H.useRef(void 0);return H.useEffect(()=>{let e=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(e)},[]),Dr(()=>{let e=l.current;if(e){_.current=_.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();d.current=t.height,p.current=t.width,g.current||(e.style.transitionDuration=_.current.transitionDuration,e.style.animationName=_.current.animationName),c(r)}},[o.open,r]),(0,W.jsx)(Nr.div,{"data-state":$r(o.open),"data-disabled":o.disabled?``:void 0,id:o.contentId,hidden:!h,...a,ref:u,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":m?`${m}px`:void 0,...e.style},children:h&&i})});function $r(e){return e?`open`:`closed`}var ei=qr,ti=Yr,ni=Zr,ri=H.createContext(void 0);function ii(e){let t=H.useContext(ri);return e||t||`ltr`}var ai=`Accordion`,oi=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[si,ci,li]=Tr(ai),[ui,di]=mr(ai,[li,Wr]),fi=Wr(),pi=H.forwardRef((e,t)=>{let{type:n,...r}=e,i=r,a=r;return(0,W.jsx)(si.Provider,{scope:e.__scopeAccordion,children:n===`multiple`?(0,W.jsx)(yi,{...a,ref:t}):(0,W.jsx)(vi,{...i,ref:t})})});pi.displayName=ai;var[mi,hi]=ui(ai),[gi,_i]=ui(ai,{collapsible:!1}),vi=H.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:a=!1,...o}=e,[s,c]=kr({prop:n,defaultProp:r??``,onChange:i,caller:ai});return(0,W.jsx)(mi,{scope:e.__scopeAccordion,value:H.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:H.useCallback(()=>a&&c(``),[a,c]),children:(0,W.jsx)(gi,{scope:e.__scopeAccordion,collapsible:a,children:(0,W.jsx)(Si,{...o,ref:t})})})}),yi=H.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=kr({prop:n,defaultProp:r??[],onChange:i,caller:ai}),c=H.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=H.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,W.jsx)(mi,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,W.jsx)(gi,{scope:e.__scopeAccordion,collapsible:!0,children:(0,W.jsx)(Si,{...a,ref:t})})})}),[bi,xi]=ui(ai),Si=H.forwardRef((e,t)=>{let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=`vertical`,...o}=e,s=vr(H.useRef(null),t),c=ci(n),l=ii(i)===`ltr`,u=Er(e.onKeyDown,e=>{if(!oi.includes(e.key))return;let t=e.target,n=c().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,u=()=>{o=r+1,o>s&&(o=0)},d=()=>{o=r-1,o<0&&(o=s)};switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===`horizontal`&&(l?u():d());break;case`ArrowDown`:a===`vertical`&&u();break;case`ArrowLeft`:a===`horizontal`&&(l?d():u());break;case`ArrowUp`:a===`vertical`&&d();break}n[o%i].ref.current?.focus()});return(0,W.jsx)(bi,{scope:n,disabled:r,direction:i,orientation:a,children:(0,W.jsx)(si.Slot,{scope:n,children:(0,W.jsx)(Nr.div,{...o,"data-orientation":a,ref:s,onKeyDown:r?void 0:u})})})}),Ci=`AccordionItem`,[wi,Ti]=ui(Ci),Ei=H.forwardRef((e,t)=>{let{__scopeAccordion:n,value:r,...i}=e,a=xi(Ci,n),o=hi(Ci,n),s=fi(n),c=Vr(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,W.jsx)(wi,{scope:n,open:l,disabled:u,triggerId:c,children:(0,W.jsx)(ei,{"data-orientation":a.orientation,"data-state":Ni(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})});Ei.displayName=Ci;var Di=`AccordionHeader`,Oi=H.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=xi(ai,n),a=Ti(Di,n);return(0,W.jsx)(Nr.h3,{"data-orientation":i.orientation,"data-state":Ni(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})});Oi.displayName=Di;var ki=`AccordionTrigger`,Ai=H.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=xi(ai,n),a=Ti(ki,n),o=_i(ki,n),s=fi(n);return(0,W.jsx)(si.ItemSlot,{scope:n,children:(0,W.jsx)(ti,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})});Ai.displayName=ki;var ji=`AccordionContent`,Mi=H.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=xi(ai,n),a=Ti(ji,n),o=fi(n);return(0,W.jsx)(ni,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})});Mi.displayName=ji;function Ni(e){return e?`open`:`closed`}var Pi=pi,Fi=Ei,Ii=Ai,Li=Mi;function Ri(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 16C141.31 16 48 109.31 48 224v154.83l82 32.81L146.88 496H192v-64h32v64h16v-64h32v64h16v-64h32v64h45.12L382 411.64l82-32.81V224c0-114.69-93.31-208-208-208zm-88 320a56 56 0 1 1 56-56 56.06 56.06 0 0 1-56 56zm51.51 64L244 320h24l24.49 80zM344 336a56 56 0 1 1 56-56 56.06 56.06 0 0 1-56 56zm104 32z`},child:[]}]})(e)}function zi(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`m190.06 414 163.12-139.78a24 24 0 0 0 0-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z`},child:[]}]})(e)}var Bi={AccordionGroup:`_AccordionGroup_b0qoe_1`,Trigger:`_Trigger_b0qoe_7`,TriggerIcon:`_TriggerIcon_b0qoe_24`,Content:`_Content_b0qoe_35`,slideDown:`_slideDown_b0qoe_1`,slideUp:`_slideUp_b0qoe_1`,Body:`_Body_b0qoe_47`,BodyNoPadding:`_BodyNoPadding_b0qoe_51`};function Vi(e){let t=(0,U.c)(2),n;return t[0]===e?n=t[1]:(n=(0,W.jsx)(Pi,{className:Bi.AccordionGroup,...e}),t[0]=e,t[1]=n),n}function Hi(e){let t=(0,U.c)(10),{value:n,label:r,children:i,noPadding:a}=e,o=a===void 0?!1:a,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,W.jsx)(zi,{className:Bi.TriggerIcon}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=(0,W.jsxs)(Ii,{className:Bi.Trigger,children:[s,` `,r]}),t[1]=r,t[2]=c);let l=o?Bi.BodyNoPadding:Bi.Body,u;t[3]!==i||t[4]!==l?(u=(0,W.jsx)(Li,{className:Bi.Content,children:(0,W.jsx)(`div`,{className:l,children:i})}),t[3]=i,t[4]=l,t[5]=u):u=t[5];let d;return t[6]!==c||t[7]!==u||t[8]!==n?(d=(0,W.jsxs)(Fi,{value:n,children:[c,u]}),t[6]=c,t[7]=u,t[8]=n,t[9]=d):d=t[9],d}function Ui(e){return V({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M144,16H112A64.07,64.07,0,0,0,48,80v96a64.07,64.07,0,0,0,64,64h32a64.07,64.07,0,0,0,64-64V80A64.07,64.07,0,0,0,144,16Zm48,160a48.05,48.05,0,0,1-48,48H112a48.05,48.05,0,0,1-48-48V80a48.05,48.05,0,0,1,48-48h32a48.05,48.05,0,0,1,48,48ZM136,83.31v89.38l10.34-10.35a8,8,0,0,1,11.32,11.32l-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L120,172.69V83.31L109.66,93.66A8,8,0,0,1,98.34,82.34l24-24a8,8,0,0,1,11.32,0l24,24a8,8,0,0,1-11.32,11.32Z`},child:[]}]})(e)}function Wi(e){return V({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M144,16H112A64.07,64.07,0,0,0,48,80v96a64.07,64.07,0,0,0,64,64h32a64.07,64.07,0,0,0,64-64V80A64.07,64.07,0,0,0,144,16Zm48,64v24H128V32h16A48.05,48.05,0,0,1,192,80ZM144,224H112a48.05,48.05,0,0,1-48-48V120H192v56A48.05,48.05,0,0,1,144,224Z`},child:[]}]})(e)}function Gi(e){return V({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M239.22,59.44l-45.63,95.82a3.54,3.54,0,0,1-.16.34l-34.21,71.84a8,8,0,1,1-14.44-6.88L173.62,160H40a8,8,0,0,1-5.66-13.66L76.69,104,34.34,61.66A8,8,0,0,1,40,48H232a8,8,0,0,1,7.22,11.44Z`},child:[]}]})(e)}function Ki(e){return V({tag:`svg`,attr:{viewBox:`0 0 1024 1024`},child:[{tag:`path`,attr:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z`},child:[]}]})(e)}function qi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`},child:[]},{tag:`circle`,attr:{cx:`9`,cy:`7`,r:`4`},child:[]},{tag:`path`,attr:{d:`M22 21v-2a4 4 0 0 0-3-3.87`},child:[]},{tag:`path`,attr:{d:`M16 3.13a4 4 0 0 1 0 7.75`},child:[]}]})(e)}function Ji(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M3 9h18`},child:[]},{tag:`path`,attr:{d:`m15 14-3 3-3-3`},child:[]}]})(e)}function Yi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M3 9h18`},child:[]},{tag:`path`,attr:{d:`m9 16 3-3 3 3`},child:[]}]})(e)}function Xi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M9 3v18`},child:[]},{tag:`path`,attr:{d:`m14 9 3 3-3 3`},child:[]}]})(e)}function Zi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M9 3v18`},child:[]},{tag:`path`,attr:{d:`m16 15-3-3 3-3`},child:[]}]})(e)}function Qi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`circle`,attr:{cx:`12`,cy:`12`,r:`10`},child:[]},{tag:`line`,attr:{x1:`22`,x2:`18`,y1:`12`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`6`,x2:`2`,y1:`12`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`12`,x2:`12`,y1:`6`,y2:`2`},child:[]},{tag:`line`,attr:{x1:`12`,x2:`12`,y1:`22`,y2:`18`},child:[]}]})(e)}function $i(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`},child:[]},{tag:`path`,attr:{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`},child:[]},{tag:`path`,attr:{d:`M12 11h4`},child:[]},{tag:`path`,attr:{d:`M12 16h4`},child:[]},{tag:`path`,attr:{d:`M8 11h.01`},child:[]},{tag:`path`,attr:{d:`M8 16h.01`},child:[]}]})(e)}function ea(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M2 8V2h6`},child:[]},{tag:`path`,attr:{d:`m2 2 10 10`},child:[]},{tag:`path`,attr:{d:`M12 2A10 10 0 1 1 2 12`},child:[]}]})(e)}var ta={Root:`_Root_cfjcw_1`,ProgressWrap:`_ProgressWrap_cfjcw_6`,ProgressLabel:`_ProgressLabel_cfjcw_13`,ProgressBar:`_ProgressBar_cfjcw_19`,ProgressFill:`_ProgressFill_cfjcw_27`,Filters:`_Filters_cfjcw_33`,FilterButton:`_FilterButton_cfjcw_40`,EventList:`_EventList_cfjcw_57`,EventRow:`_EventRow_cfjcw_63`,EventTime:`_EventTime_cfjcw_120`,EventIcon:`_EventIcon_cfjcw_129`,EventDescription:`_EventDescription_cfjcw_172`,Killer:`_Killer_cfjcw_177`,Victim:`_Victim_cfjcw_180`,DamageType:`_DamageType_cfjcw_183`,Empty:`_Empty_cfjcw_186`};function na(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,`0`)}`}var ra={kill:(0,W.jsx)(Qi,{}),death:(0,W.jsx)(Ri,{}),"flag-grab":(0,W.jsx)(Gi,{}),"flag-return":(0,W.jsx)(Gi,{}),"flag-cap":(0,W.jsx)(Gi,{}),"match-start":(0,W.jsx)(lr,{}),"match-end":(0,W.jsx)(Ki,{})},ia={chaingun:`chaingunned`,plasma:`plasma rifled`};function aa(e){if(e.type===`kill`&&e.killer&&e.victim)return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:ta.Killer,title:e.killer,children:`You`}),` `,(0,W.jsx)(`span`,{className:ta.DamageType,children:e.weapon?ia[e.weapon]??`${e.weapon}${e.weapon.endsWith(`e`)?`d`:`ed`}`:`killed`}),` `,(0,W.jsx)(`span`,{className:ta.Victim,children:e.victim})]});if(e.type===`death`)return e.killer?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:ta.Killer,children:e.killer}),` `,(0,W.jsx)(`span`,{className:ta.DamageType,children:e.weapon?ia[e.weapon]??`${e.weapon}${e.weapon.endsWith(`e`)?`d`:`ed`}`:`killed`}),` `,(0,W.jsx)(`span`,{className:ta.Victim,title:e.victim,children:`you`})]}):(0,W.jsx)(W.Fragment,{children:e.description});if(e.type===`flag-grab`)return(0,W.jsxs)(W.Fragment,{children:[`You grabbed `,e.flagTeamName?`the ${e.flagTeamName} flag`:`the enemy flag`]});if(e.type===`flag-return`)return(0,W.jsx)(W.Fragment,{children:`You returned your flag`});if(e.type===`flag-cap`&&e.capturer){let t=e.teamAffinity===`friendly`?`the enemy flag`:e.teamAffinity===`enemy`?`your flag`:e.flagTeamName?`the ${e.flagTeamName} flag`:`a flag`;return(0,W.jsxs)(W.Fragment,{children:[e.capturer,` captured `,t]})}return e.type===`match-start`||e.type,e.description}function oa(){let e=(0,U.c)(58),t=Xt(pa),n=Xt(fa),{seek:r}=tr(),[i,a]=(0,H.useState)(`all`),o,s;if(e[0]!==t||e[1]!==i||e[2]!==n||e[3]!==r){s=Symbol.for(`react.early_return_sentinel`);bb0:{let c=t?.filter(e=>i===`all`||e.type===i)??[],l;e[6]===r?l=e[7]:(l=e=>{r(Math.max(0,e-3)),document.activeElement instanceof HTMLElement&&document.activeElement.blur()},e[6]=r,e[7]=l);let u=l;if(n!=null&&t==null){let t;e[8]===n?t=e[9]:(t=Math.round(n*100),e[8]=n,e[9]=t);let r;e[10]===t?r=e[11]:(r=(0,W.jsxs)(`span`,{className:ta.ProgressLabel,children:[`Scanning… `,t,`%`]}),e[10]=t,e[11]=r);let i=`${n*100}%`,a;e[12]===i?a=e[13]:(a=(0,W.jsx)(`div`,{className:ta.ProgressBar,children:(0,W.jsx)(`div`,{className:ta.ProgressFill,style:{width:i}})}),e[12]=i,e[13]=a);let o;e[14]!==r||e[15]!==a?(o=(0,W.jsx)(`div`,{className:ta.Root,children:(0,W.jsxs)(`div`,{className:ta.ProgressWrap,children:[r,a]})}),e[14]=r,e[15]=a,e[16]=o):o=e[16],s=o;break bb0}if(!t){s=null;break bb0}let d;e[17]===t?d=e[18]:(d=t.filter(da),e[17]=t,e[18]=d);let f=d.length,p;e[19]===t?p=e[20]:(p=t.filter(ua),e[19]=t,e[20]=p);let m=p.length,h;e[21]===t?h=e[22]:(h=t.filter(la),e[21]=t,e[22]=h);let g=h.length,_;e[23]===t?_=e[24]:(_=t.filter(ca),e[23]=t,e[24]=_);let v=_.length,y;e[25]===t?y=e[26]:(y=t.filter(sa),e[25]=t,e[26]=y);let b=y.length,x=i===`all`,S;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>a(`all`),e[27]=S):S=e[27];let C;e[28]!==t.length||e[29]!==x?(C=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":x,onClick:S,children:[`All (`,t.length,`)`]}),e[28]=t.length,e[29]=x,e[30]=C):C=e[30];let w=i===`kill`,T;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>a(`kill`),e[31]=T):T=e[31];let E;e[32]!==f||e[33]!==w?(E=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":w,onClick:T,children:[`Kills (`,f,`)`]}),e[32]=f,e[33]=w,e[34]=E):E=e[34];let D=i===`death`,O;e[35]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>a(`death`),e[35]=O):O=e[35];let k;e[36]!==m||e[37]!==D?(k=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":D,onClick:O,children:[`Deaths (`,m,`)`]}),e[36]=m,e[37]=D,e[38]=k):k=e[38];let A=i===`flag-grab`,j;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>a(`flag-grab`),e[39]=j):j=e[39];let M;e[40]!==g||e[41]!==A?(M=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":A,onClick:j,children:[`Grabs (`,g,`)`]}),e[40]=g,e[41]=A,e[42]=M):M=e[42];let N=i===`flag-return`,P;e[43]===Symbol.for(`react.memo_cache_sentinel`)?(P=()=>a(`flag-return`),e[43]=P):P=e[43];let F;e[44]!==v||e[45]!==N?(F=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":N,onClick:P,children:[`Returns (`,v,`)`]}),e[44]=v,e[45]=N,e[46]=F):F=e[46];let I=i===`flag-cap`,ee;e[47]===Symbol.for(`react.memo_cache_sentinel`)?(ee=()=>a(`flag-cap`),e[47]=ee):ee=e[47];let L;e[48]!==b||e[49]!==I?(L=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":I,onClick:ee,children:[`Caps (`,b,`)`]}),e[48]=b,e[49]=I,e[50]=L):L=e[50];let R;e[51]!==C||e[52]!==E||e[53]!==k||e[54]!==M||e[55]!==F||e[56]!==L?(R=(0,W.jsxs)(`div`,{className:ta.Filters,children:[C,E,k,M,F,L]}),e[51]=C,e[52]=E,e[53]=k,e[54]=M,e[55]=F,e[56]=L,e[57]=R):R=e[57],o=(0,W.jsxs)(`div`,{className:ta.Root,children:[R,c.length===0?(0,W.jsx)(`div`,{className:ta.Empty,children:`No events found.`}):(0,W.jsx)(`div`,{className:ta.EventList,children:c.map((e,t)=>(0,W.jsxs)(`button`,{type:`button`,className:ta.EventRow,onClick:()=>u(e.timeSec),children:[(0,W.jsx)(`span`,{className:ta.EventTime,children:na(e.timeSec)}),(0,W.jsx)(`span`,{className:ta.EventIcon,"data-type":e.type,"data-affinity":e.teamAffinity,children:ra[e.type]}),(0,W.jsx)(`span`,{className:ta.EventDescription,children:aa(e)})]},`${e.timeSec}-${e.type}-${t}`))})]})}e[0]=t,e[1]=i,e[2]=n,e[3]=r,e[4]=o,e[5]=s}else o=e[4],s=e[5];return s===Symbol.for(`react.early_return_sentinel`)?o:s}function sa(e){return e.type===`flag-cap`}function ca(e){return e.type===`flag-return`}function la(e){return e.type===`flag-grab`}function ua(e){return e.type===`death`}function da(e){return e.type===`kill`}function fa(e){return e.scanProgress}function pa(e){return e.events}var ma=new Map([[`flag`,`Flags`],[`huntersflag1`,`Flags`],[`huntersflag2`,`Flags`],[`huntersflag4`,`Flags`],[`huntersflag8`,`Flags`],[`stationinventory`,`Inventory Stations`],[`stationammo`,`Inventory Stations`],[`mobileinvstation`,`Inventory Stations`],[`stationvehiclepad`,`Vehicle Pads`],[`stationvehicle`,`Vehicle Pads`],[`generatorlarge`,`Generators`],[`solarpanel`,`Generators`],[`sensorlargepulse`,`Sensors`],[`sensormediumpulse`,`Sensors`],[`turretbaselarge`,`Turrets`],[`sentryturret`,`Turrets`],[`repairpatch`,`Health`],[`repairkit`,`Health`],[`ammopack`,`Packs`],[`energypack`,`Packs`],[`shieldpack`,`Packs`],[`repairpack`,`Packs`],[`cloakingpack`,`Packs`],[`sensorjammerpack`,`Packs`],[`aabarrelpack`,`Packs`],[`elfbarrelpack`,`Packs`],[`missilebarrelpack`,`Packs`],[`mortarbarrelpack`,`Packs`],[`plasmabarrelpack`,`Packs`],[`inventorydeployable`,`Packs`],[`motionsensordeployable`,`Packs`],[`pulsesensordeployable`,`Packs`],[`turretoutdoordeployable`,`Packs`],[`turretindoordeployable`,`Packs`],[`satchelcharge`,`Weapons`],[`blaster`,`Weapons`],[`chaingun`,`Weapons`],[`disc`,`Weapons`],[`grenadelauncher`,`Weapons`],[`elfgun`,`Weapons`],[`missilelauncher`,`Weapons`],[`mortar`,`Weapons`],[`plasma`,`Weapons`],[`shocklance`,`Weapons`],[`sniperrifle`,`Weapons`],[`targetinglaser`,`Weapons`],[`chaingunammo`,`Ammo`],[`discammo`,`Ammo`],[`grenadelauncherammo`,`Ammo`],[`missilelauncherammo`,`Ammo`],[`mortarammo`,`Ammo`],[`plasmaammo`,`Ammo`],[`bombammo`,`Ammo`],[`assaultmortarammo`,`Ammo`],[`grenade`,`Ammo`],[`concussiongrenade`,`Ammo`],[`flashgrenade`,`Ammo`],[`flaregrenade`,`Ammo`],[`cameragrenade`,`Ammo`],[`mine`,`Ammo`],[`beacon`,`Ammo`],[`flipflop`,`Switches`],[`nexus`,`Nexus`],[`nexusbase`,`Nexus`],[`nexuscap`,`Nexus`]]),ha=[`Flags`,`Inventory Stations`,`Generators`,`Vehicle Pads`,`Turrets`,`Sensors`,`Nexus`,`Switches`,`Packs`,`Health`,`Weapons`,`Ammo`];function ga(e){return e.renderType===`Shape`&&typeof e.dataBlock==`string`&&e.dataBlock!==``&&Array.isArray(e.position)}function _a(e,t){let n=new Map;for(let r of e.values()){if(!ga(r))continue;let e=ma.get(r.dataBlock.toLowerCase());if(!e)continue;let i=r.dataBlock;if(t&&r.runtimeObject){let e=ve(r.runtimeObject,t);e&&(i=e)}let a=n.get(e);a||(a=[],n.set(e,a)),a.push({entityId:r.id,label:i,position:r.position,teamId:r.teamId})}let r=[];for(let e of ha){let t=n.get(e);t&&t.length>0&&(t.sort((e,t)=>{let n=(e.teamId??0)-(t.teamId??0);return n===0?e.label.localeCompare(t.label):n}),r.push({name:e,targets:t}))}return r}var va={Root:`_Root_pb9qa_1`,Empty:`_Empty_pb9qa_6`,TourAllButton:`_TourAllButton_pb9qa_13`,CategoryHeader:`_CategoryHeader_pb9qa_40`,CategoryCount:`_CategoryCount_pb9qa_58`,TourButton:`_TourButton_pb9qa_63`,PlayIcon:`_PlayIcon_pb9qa_83`,ExitIcon:`_ExitIcon_pb9qa_87`,ItemList:`_ItemList_pb9qa_100`,ItemRow:`_ItemRow_pb9qa_106`,ItemLabel:`_ItemLabel_pb9qa_151`,TeamBadge:`_TeamBadge_pb9qa_156`};function ya(e){return V({tag:`svg`,attr:{viewBox:`0 0 20 20`,fill:`currentColor`,"aria-hidden":`true`},child:[{tag:`path`,attr:{fillRule:`evenodd`,d:`M3 4.25A2.25 2.25 0 0 1 5.25 2h5.5A2.25 2.25 0 0 1 13 4.25v2a.75.75 0 0 1-1.5 0v-2a.75.75 0 0 0-.75-.75h-5.5a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 0 0 .75-.75v-2a.75.75 0 0 1 1.5 0v2A2.25 2.25 0 0 1 10.75 18h-5.5A2.25 2.25 0 0 1 3 15.75V4.25Z`,clipRule:`evenodd`},child:[]},{tag:`path`,attr:{fillRule:`evenodd`,d:`M19 10a.75.75 0 0 0-.75-.75H8.704l1.048-.943a.75.75 0 1 0-1.004-1.114l-2.5 2.25a.75.75 0 0 0 0 1.114l2.5 2.25a.75.75 0 1 0 1.004-1.114l-1.048-.943h9.546A.75.75 0 0 0 19 10Z`,clipRule:`evenodd`},child:[]}]})(e)}var ba=`__all__`;function xa(e){return e.animation?{targets:e.animation.targets,categoryName:e.animation.categoryName,currentIndex:e.animation.currentIndex}:null}function Sa(e,t){return e===t?!0:!e||!t?!1:e.categoryName===t.categoryName&&e.currentIndex===t.currentIndex&&e.targets===t.targets}function Ca(){let e=(0,U.c)(28),t=pn(),n=Se(Ta),r;e[0]!==n||e[1]!==t?(r=_a(t,n),e[0]=n,e[1]=t,e[2]=r):r=e[2];let i=r,a=Ee(xa,Sa),o;if(e[3]!==i){o=new Map;for(let e=0;e{let n=e.teamId!=null&&e.teamId>0?e.teamId:1/0,r=t.teamId!=null&&t.teamId>0?t.teamId:1/0;if(n!==r)return n-r;let i=o.get(e)??0,a=o.get(t)??0;return i===a?e.label.localeCompare(t.label):i-a},e[8]=o,e[9]=t),s=i.flatMap(wa).sort(t),e[5]=i,e[6]=o,e[7]=s}else s=e[7];let c=s;if(i.length===0){let t;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,W.jsx)(`div`,{className:va.Root,children:(0,W.jsx)(`p`,{className:va.Empty,children:`No map features found`})}),e[10]=t):t=e[10],t}let l=a!==null&&a.categoryName===ba,u;e[11]!==c||e[12]!==l?(u=()=>{l?De.getState().cancel():De.getState().startTour(c,ba)},e[11]=c,e[12]=l,e[13]=u):u=e[13];let d=u,f;e[14]===l?f=e[15]:(f=l?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ya,{className:va.ExitIcon}),` Exit tour`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(lr,{className:va.PlayIcon}),` `,(0,W.jsx)(`span`,{className:va.ButtonLabel,children:`Tour all features`})]}),e[14]=l,e[15]=f);let p;e[16]!==d||e[17]!==l||e[18]!==f?(p=(0,W.jsx)(`button`,{type:`button`,className:va.TourAllButton,"data-active":l,onClick:d,children:f}),e[16]=d,e[17]=l,e[18]=f,e[19]=p):p=e[19];let m;if(e[20]!==i||e[21]!==a){let t;e[23]===a?t=e[24]:(t=e=>(0,W.jsx)(Ea,{category:e,tourState:a},e.name),e[23]=a,e[24]=t),m=i.map(t),e[20]=i,e[21]=a,e[22]=m}else m=e[22];let h;return e[25]!==p||e[26]!==m?(h=(0,W.jsxs)(`div`,{className:va.Root,children:[p,m]}),e[25]=p,e[26]=m,e[27]=h):h=e[27],h}function wa(e){return e.targets}function Ta(e){return e.runtime.runtime?.state.datablocks}function Ea(e){let t=(0,U.c)(30),{category:n,tourState:r}=e,i=r!==null&&r.categoryName===n.name,a;t[0]!==n.name||t[1]!==n.targets||t[2]!==i?(a=()=>{i?De.getState().cancel():De.getState().startTour(n.targets,n.name)},t[0]=n.name,t[1]=n.targets,t[2]=i,t[3]=a):a=t[3];let o=a,s;t[4]===n.name?s=t[5]:(s=(0,W.jsx)(`span`,{children:n.name}),t[4]=n.name,t[5]=s);let c;t[6]===n.targets.length?c=t[7]:(c=(0,W.jsxs)(`span`,{className:va.CategoryCount,children:[`(`,n.targets.length,`)`]}),t[6]=n.targets.length,t[7]=c);let l;t[8]===i?l=t[9]:(l=i?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ya,{className:va.ExitIcon}),` Exit tour`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(lr,{className:va.PlayIcon}),` Tour all`]}),t[8]=i,t[9]=l);let u;t[10]!==o||t[11]!==i||t[12]!==l?(u=(0,W.jsx)(`button`,{type:`button`,className:va.TourButton,"data-active":i,onClick:o,children:l}),t[10]=o,t[11]=i,t[12]=l,t[13]=u):u=t[13];let d;t[14]!==s||t[15]!==c||t[16]!==u?(d=(0,W.jsxs)(`div`,{className:va.CategoryHeader,children:[s,c,u]}),t[14]=s,t[15]=c,t[16]=u,t[17]=d):d=t[17];let f;if(t[18]!==n.targets||t[19]!==i||t[20]!==r){let e;t[22]!==i||t[23]!==r?(e=(e,t)=>{let n=i&&r.currentIndex===t||r!==null&&r.targets[r.currentIndex]?.entityId===e.entityId;return(0,W.jsxs)(`button`,{type:`button`,className:va.ItemRow,"data-active":n,onClick:()=>De.getState().flyTo(e),children:[(0,W.jsx)(lr,{className:va.PlayIcon}),` `,(0,W.jsx)(`span`,{className:va.ItemLabel,children:e.label}),e.teamId!=null&&e.teamId>0&&(0,W.jsx)(`span`,{className:va.TeamBadge,"data-team":e.teamId,children:ye[e.teamId]??`Team ${e.teamId}`})]},e.entityId)},t[22]=i,t[23]=r,t[24]=e):e=t[24],f=n.targets.map(e),t[18]=n.targets,t[19]=i,t[20]=r,t[21]=f}else f=t[21];let p;t[25]===f?p=t[26]:(p=(0,W.jsx)(`div`,{className:va.ItemList,children:f}),t[25]=f,t[26]=p);let m;return t[27]!==d||t[28]!==p?(m=(0,W.jsxs)(W.Fragment,{children:[d,p]}),t[27]=d,t[28]=p,t[29]=m):m=t[29],m}function Da(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M16 21L11.2381 12.2698L15 6L23 21H16ZM8 10L14 21H2L8 10ZM5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5C8 6.88071 6.88071 8 5.5 8Z`},child:[]}]})(e)}function Oa(e){let t=(0,U.c)(6),{isActive:n,onClick:r}=e,i=n===void 0?!1:n,a,o,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,W.jsx)(Da,{}),o=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Explore`}),s=(0,W.jsx)(`span`,{className:Ut.ButtonHint,children:`Browse maps`}),t[0]=a,t[1]=o,t[2]=s):(a=t[0],o=t[1],s=t[2]);let c;return t[3]!==i||t[4]!==r?(c=(0,W.jsxs)(`button`,{type:`button`,className:Ut.Button,onClick:r,"data-active":i,children:[a,o,s]}),t[3]=i,t[4]=r,t[5]=c):c=t[5],c}function ka(e){let t=(0,U.c)(7),{missionName:n,onClick:r}=e,i=Sn(),a=wn(),o=i===`demo`||i===`live`?a:n,s;t[0]===o?s=t[1]:(s=o?me(o):!1,t[0]=o,t[1]=s);let c=!s,l,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,W.jsx)($i,{}),u=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Show map info`}),t[2]=l,t[3]=u):(l=t[2],u=t[3]);let d;return t[4]!==r||t[5]!==c?(d=(0,W.jsxs)(`button`,{type:`button`,className:Ut.Button,"aria-label":`Show map info`,onClick:r,disabled:c,children:[l,u]}),t[4]=r,t[5]=c,t[6]=d):d=t[6],d}function Aa(e){let t=(0,U.c)(4),{onClick:n}=e,r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,W.jsx)(qi,{}),i=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Show scores`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;return t[2]===n?a=t[3]:(a=(0,W.jsxs)(`button`,{type:`button`,className:Ut.Button,"aria-label":`Show scores`,onClick:n,children:[r,i]}),t[2]=n,t[3]=a),a}var ja=e(t(((e,t)=>{var n={À:`A`,Á:`A`,Â:`A`,Ã:`A`,Ä:`A`,Å:`A`,Ấ:`A`,Ắ:`A`,Ẳ:`A`,Ẵ:`A`,Ặ:`A`,Æ:`AE`,Ầ:`A`,Ằ:`A`,Ȃ:`A`,Ả:`A`,Ạ:`A`,Ẩ:`A`,Ẫ:`A`,Ậ:`A`,Ç:`C`,Ḉ:`C`,È:`E`,É:`E`,Ê:`E`,Ë:`E`,Ế:`E`,Ḗ:`E`,Ề:`E`,Ḕ:`E`,Ḝ:`E`,Ȇ:`E`,Ẻ:`E`,Ẽ:`E`,Ẹ:`E`,Ể:`E`,Ễ:`E`,Ệ:`E`,Ì:`I`,Í:`I`,Î:`I`,Ï:`I`,Ḯ:`I`,Ȋ:`I`,Ỉ:`I`,Ị:`I`,Ð:`D`,Ñ:`N`,Ò:`O`,Ó:`O`,Ô:`O`,Õ:`O`,Ö:`O`,Ø:`O`,Ố:`O`,Ṍ:`O`,Ṓ:`O`,Ȏ:`O`,Ỏ:`O`,Ọ:`O`,Ổ:`O`,Ỗ:`O`,Ộ:`O`,Ờ:`O`,Ở:`O`,Ỡ:`O`,Ớ:`O`,Ợ:`O`,Ù:`U`,Ú:`U`,Û:`U`,Ü:`U`,Ủ:`U`,Ụ:`U`,Ử:`U`,Ữ:`U`,Ự:`U`,Ý:`Y`,à:`a`,á:`a`,â:`a`,ã:`a`,ä:`a`,å:`a`,ấ:`a`,ắ:`a`,ẳ:`a`,ẵ:`a`,ặ:`a`,æ:`ae`,ầ:`a`,ằ:`a`,ȃ:`a`,ả:`a`,ạ:`a`,ẩ:`a`,ẫ:`a`,ậ:`a`,ç:`c`,ḉ:`c`,è:`e`,é:`e`,ê:`e`,ë:`e`,ế:`e`,ḗ:`e`,ề:`e`,ḕ:`e`,ḝ:`e`,ȇ:`e`,ẻ:`e`,ẽ:`e`,ẹ:`e`,ể:`e`,ễ:`e`,ệ:`e`,ì:`i`,í:`i`,î:`i`,ï:`i`,ḯ:`i`,ȋ:`i`,ỉ:`i`,ị:`i`,ð:`d`,ñ:`n`,ò:`o`,ó:`o`,ô:`o`,õ:`o`,ö:`o`,ø:`o`,ố:`o`,ṍ:`o`,ṓ:`o`,ȏ:`o`,ỏ:`o`,ọ:`o`,ổ:`o`,ỗ:`o`,ộ:`o`,ờ:`o`,ở:`o`,ỡ:`o`,ớ:`o`,ợ:`o`,ù:`u`,ú:`u`,û:`u`,ü:`u`,ủ:`u`,ụ:`u`,ử:`u`,ữ:`u`,ự:`u`,ý:`y`,ÿ:`y`,Ā:`A`,ā:`a`,Ă:`A`,ă:`a`,Ą:`A`,ą:`a`,Ć:`C`,ć:`c`,Ĉ:`C`,ĉ:`c`,Ċ:`C`,ċ:`c`,Č:`C`,č:`c`,C̆:`C`,c̆:`c`,Ď:`D`,ď:`d`,Đ:`D`,đ:`d`,Ē:`E`,ē:`e`,Ĕ:`E`,ĕ:`e`,Ė:`E`,ė:`e`,Ę:`E`,ę:`e`,Ě:`E`,ě:`e`,Ĝ:`G`,Ǵ:`G`,ĝ:`g`,ǵ:`g`,Ğ:`G`,ğ:`g`,Ġ:`G`,ġ:`g`,Ģ:`G`,ģ:`g`,Ĥ:`H`,ĥ:`h`,Ħ:`H`,ħ:`h`,Ḫ:`H`,ḫ:`h`,Ĩ:`I`,ĩ:`i`,Ī:`I`,ī:`i`,Ĭ:`I`,ĭ:`i`,Į:`I`,į:`i`,İ:`I`,ı:`i`,IJ:`IJ`,ij:`ij`,Ĵ:`J`,ĵ:`j`,Ķ:`K`,ķ:`k`,Ḱ:`K`,ḱ:`k`,K̆:`K`,k̆:`k`,Ĺ:`L`,ĺ:`l`,Ļ:`L`,ļ:`l`,Ľ:`L`,ľ:`l`,Ŀ:`L`,ŀ:`l`,Ł:`l`,ł:`l`,Ḿ:`M`,ḿ:`m`,M̆:`M`,m̆:`m`,Ń:`N`,ń:`n`,Ņ:`N`,ņ:`n`,Ň:`N`,ň:`n`,ʼn:`n`,N̆:`N`,n̆:`n`,Ō:`O`,ō:`o`,Ŏ:`O`,ŏ:`o`,Ő:`O`,ő:`o`,Œ:`OE`,œ:`oe`,P̆:`P`,p̆:`p`,Ŕ:`R`,ŕ:`r`,Ŗ:`R`,ŗ:`r`,Ř:`R`,ř:`r`,R̆:`R`,r̆:`r`,Ȓ:`R`,ȓ:`r`,Ś:`S`,ś:`s`,Ŝ:`S`,ŝ:`s`,Ş:`S`,Ș:`S`,ș:`s`,ş:`s`,Š:`S`,š:`s`,Ţ:`T`,ţ:`t`,ț:`t`,Ț:`T`,Ť:`T`,ť:`t`,Ŧ:`T`,ŧ:`t`,T̆:`T`,t̆:`t`,Ũ:`U`,ũ:`u`,Ū:`U`,ū:`u`,Ŭ:`U`,ŭ:`u`,Ů:`U`,ů:`u`,Ű:`U`,ű:`u`,Ų:`U`,ų:`u`,Ȗ:`U`,ȗ:`u`,V̆:`V`,v̆:`v`,Ŵ:`W`,ŵ:`w`,Ẃ:`W`,ẃ:`w`,X̆:`X`,x̆:`x`,Ŷ:`Y`,ŷ:`y`,Ÿ:`Y`,Y̆:`Y`,y̆:`y`,Ź:`Z`,ź:`z`,Ż:`Z`,ż:`z`,Ž:`Z`,ž:`z`,ſ:`s`,ƒ:`f`,Ơ:`O`,ơ:`o`,Ư:`U`,ư:`u`,Ǎ:`A`,ǎ:`a`,Ǐ:`I`,ǐ:`i`,Ǒ:`O`,ǒ:`o`,Ǔ:`U`,ǔ:`u`,Ǖ:`U`,ǖ:`u`,Ǘ:`U`,ǘ:`u`,Ǚ:`U`,ǚ:`u`,Ǜ:`U`,ǜ:`u`,Ứ:`U`,ứ:`u`,Ṹ:`U`,ṹ:`u`,Ǻ:`A`,ǻ:`a`,Ǽ:`AE`,ǽ:`ae`,Ǿ:`O`,ǿ:`o`,Þ:`TH`,þ:`th`,Ṕ:`P`,ṕ:`p`,Ṥ:`S`,ṥ:`s`,X́:`X`,x́:`x`,Ѓ:`Г`,ѓ:`г`,Ќ:`К`,ќ:`к`,A̋:`A`,a̋:`a`,E̋:`E`,e̋:`e`,I̋:`I`,i̋:`i`,Ǹ:`N`,ǹ:`n`,Ồ:`O`,ồ:`o`,Ṑ:`O`,ṑ:`o`,Ừ:`U`,ừ:`u`,Ẁ:`W`,ẁ:`w`,Ỳ:`Y`,ỳ:`y`,Ȁ:`A`,ȁ:`a`,Ȅ:`E`,ȅ:`e`,Ȉ:`I`,ȉ:`i`,Ȍ:`O`,ȍ:`o`,Ȑ:`R`,ȑ:`r`,Ȕ:`U`,ȕ:`u`,B̌:`B`,b̌:`b`,Č̣:`C`,č̣:`c`,Ê̌:`E`,ê̌:`e`,F̌:`F`,f̌:`f`,Ǧ:`G`,ǧ:`g`,Ȟ:`H`,ȟ:`h`,J̌:`J`,ǰ:`j`,Ǩ:`K`,ǩ:`k`,M̌:`M`,m̌:`m`,P̌:`P`,p̌:`p`,Q̌:`Q`,q̌:`q`,Ř̩:`R`,ř̩:`r`,Ṧ:`S`,ṧ:`s`,V̌:`V`,v̌:`v`,W̌:`W`,w̌:`w`,X̌:`X`,x̌:`x`,Y̌:`Y`,y̌:`y`,A̧:`A`,a̧:`a`,B̧:`B`,b̧:`b`,Ḑ:`D`,ḑ:`d`,Ȩ:`E`,ȩ:`e`,Ɛ̧:`E`,ɛ̧:`e`,Ḩ:`H`,ḩ:`h`,I̧:`I`,i̧:`i`,Ɨ̧:`I`,ɨ̧:`i`,M̧:`M`,m̧:`m`,O̧:`O`,o̧:`o`,Q̧:`Q`,q̧:`q`,U̧:`U`,u̧:`u`,X̧:`X`,x̧:`x`,Z̧:`Z`,z̧:`z`,й:`и`,Й:`И`,ё:`е`,Ё:`Е`},r=Object.keys(n).join(`|`),i=new RegExp(r,`g`),a=new RegExp(r,``);function o(e){return n[e]}var s=function(e){return e.replace(i,o)},c=function(e){return!!e.match(a)};t.exports=s,t.exports.has=c,t.exports.remove=s}))()),Ma={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0},Na=(e,t)=>String(e.rankedValue).localeCompare(String(t.rankedValue));function Pa(e,t,n={}){let{keys:r,threshold:i=Ma.MATCHES,baseSort:a=Na,sorter:o=e=>e.sort((e,t)=>Ba(e,t,a))}=n;return o(e.reduce(s,[])).map(({item:e})=>e);function s(e,a,o){let s=Fa(a,r,t,n),{rank:c,keyThreshold:l=i}=s;return c>=l&&e.push({...s,item:a,index:o}),e}}Pa.rankings=Ma;function Fa(e,t,n,r){if(!t){let t=e;return{rankedValue:t,rank:La(t,n,r),keyIndex:-1,keyThreshold:r.threshold}}return Wa(e,t).reduce(({rank:e,rankedValue:t,keyIndex:i,keyThreshold:a},{itemValue:o,attributes:s},c)=>{let l=La(o,n,r),u=t,{minRanking:d,maxRanking:f,threshold:p}=s;return l=Ma.MATCHES?l=d:l>f&&(l=f),l>e&&(e=l,i=c,a=p,u=o),{rankedValue:u,rank:e,keyIndex:i,keyThreshold:a}},{rankedValue:e,rank:Ma.NO_MATCH,keyIndex:-1,keyThreshold:r.threshold})}function*Ia(e,t){let n=-1;for(;(n=e.indexOf(t,n+1))>-1;)yield n;return-1}function La(e,t,n){if(e=Va(e,n),t=Va(t,n),t.length>e.length)return Ma.NO_MATCH;if(e===t)return Ma.CASE_SENSITIVE_EQUAL;e=e.toLowerCase(),t=t.toLowerCase();let r=Ia(e,t),i=r.next(),a=i.value;if(e.length===t.length&&a===0)return Ma.EQUAL;if(a===0)return Ma.STARTS_WITH;let o=i;for(;!o.done;){if(o.value>0&&e[o.value-1]===` `)return Ma.WORD_STARTS_WITH;o=r.next()}return a>0?Ma.CONTAINS:t.length===1?Ma.NO_MATCH:Ra(e).includes(t)?Ma.ACRONYM:za(e,t)}function Ra(e){let t=``,n=` `;for(let r=0;r-1))return Ma.NO_MATCH}return a(r-o)}function Ba(e,t,n){let{rank:r,keyIndex:i}=e,{rank:a,keyIndex:o}=t;return r===a?i===o?n(e,t):ia?-1:1}function Va(e,{keepDiacritics:t}){return e=`${e}`,t||(e=(0,ja.default)(e)),e}function Ha(e,t){typeof t==`object`&&(t=t.key);let n;if(typeof t==`function`)n=t(e);else if(e==null)n=null;else if(Object.hasOwnProperty.call(e,t))n=e[t];else if(t.includes(`.`))return Ua(t,e);else n=null;return n==null?[]:Array.isArray(n)?n:[String(n)]}function Ua(e,t){let n=e.split(`.`),r=[t];for(let e=0,t=n.length;e0?t:void 0}function Xa(e){if(`position`in e&&e.position)return e.position;if(e.renderType===`InteriorInstance`&&`interiorData`in e)return it(e.interiorData.transform.position);if(e.renderType===`WaterBlock`&&`waterData`in e){let t=it(e.waterData.transform.position),n=e.waterData.scale;return[t[0]+n.y/2,t[1]+n.z/2,t[2]+n.x/2]}if(e.renderType===`TerrainBlock`)return[0,0,0]}function Za(e){let t=(0,U.c)(39),{entity:n}=e,r;t[0]===n?r=t[1]:(r=Xa(n),t[0]=n,t[1]=r);let i=r,a;t[2]===n?a=t[3]:(a=Ya(n),t[2]=n,t[3]=a);let o=a,s;t[4]===n?s=t[5]:(s=Ja(n),t[4]=n,t[5]=s);let c=s,l=An(n.id),{audioEnabled:d}=u(),f=n.renderType===`AudioEmitter`&&!d,p=!!i&&!l&&!f,m;t[6]!==n.id||t[7]!==c||t[8]!==i?(m=()=>{i&&De.getState().flyTo({entityId:n.id,label:c,position:i},`debug`)},t[6]=n.id,t[7]=c,t[8]=i,t[9]=m):m=t[9];let h=m,g;t[10]===n.id?g=t[11]:(g=()=>{let e=K.getState(),t=e.isStreaming?e.streamEntities:e.missionEntities,r=t.get(n.id);r&&(t.set(n.id,{...r,debugHidden:!r.debugHidden}),K.setState({version:e.version+1}))},t[10]=n.id,t[11]=g);let _=g,v=f||void 0,y=!l,b=l?`Show entity`:`Hide entity`,x;t[12]!==f||t[13]!==_||t[14]!==y||t[15]!==b?(x=(0,W.jsx)(`input`,{type:`checkbox`,checked:y,onChange:_,disabled:f,title:b}),t[12]=f,t[13]=_,t[14]=y,t[15]=b,t[16]=x):x=t[16];let S;t[17]===c?S=t[18]:(S=(0,W.jsx)(`span`,{className:qa.Type,children:c}),t[17]=c,t[18]=S);let C;t[19]===n.id?C=t[20]:(C=(0,W.jsx)(`span`,{className:qa.ID,children:n.id}),t[19]=n.id,t[20]=C);let w;t[21]!==S||t[22]!==C?(w=(0,W.jsxs)(`div`,{children:[S,` `,C]}),t[21]=S,t[22]=C,t[23]=w):w=t[23];let T;t[24]===o?T=t[25]:(T=o&&(0,W.jsx)(`dl`,{className:qa.Detail,children:Object.entries(o).map(Qa)}),t[24]=o,t[25]=T);let E;t[26]!==w||t[27]!==T?(E=(0,W.jsxs)(`div`,{className:qa.EntityInfo,children:[w,T]}),t[26]=w,t[27]=T,t[28]=E):E=t[28];let D;t[29]!==p||t[30]!==h||t[31]!==c||t[32]!==i?(D=i&&(0,W.jsx)(`button`,{type:`button`,className:qa.LocateButton,onClick:h,disabled:!p,title:`Fly to ${c}`,children:(0,W.jsx)(At,{})}),t[29]=p,t[30]=h,t[31]=c,t[32]=i,t[33]=D):D=t[33];let O;return t[34]!==E||t[35]!==D||t[36]!==v||t[37]!==x?(O=(0,W.jsxs)(`div`,{className:qa.EntityRow,"data-disabled":v,children:[x,E,D]}),t[34]=E,t[35]=D,t[36]=v,t[37]=x,t[38]=O):O=t[38],O}function Qa(e){let[t,n]=e;return(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`dt`,{children:[t,`:`]}),(0,W.jsx)(`dd`,{children:n})]},t)}var $a=[`id`,`className`,`label`,`playerName`,`skinPrefName`,`shapeName`,`dataBlock`,`audioFileName`,`interiorData.interiorFile`,`terrainData.terrFileName`,`waterData.surfaceName`],eo=(0,H.memo)(function(){let[e,t]=(0,H.useState)(``),n=(0,H.useDeferredValue)(e.trim()),r=pn(),i=K.getState().version,a=(0,H.useMemo)(()=>{let e=Array.from(r.values());return n?Pa(e,n,{keys:$a}):e},[n,r,i]),o=(0,H.useMemo)(()=>{let e=new Map;for(let t of a){if(t.renderType===`Sky`||t.renderType===`Sun`||t.renderType===`MissionArea`||t.renderType===`None`)continue;let n=t.className,r=e.get(n);r||(r=[],e.set(n,r)),r.push(t)}let t=[...e.entries()].sort(([e],[t])=>e.localeCompare(t));for(let[,e]of t)e.sort((e,t)=>e.id.localeCompare(t.id));return t},[a]);return(0,W.jsxs)(`section`,{className:qa.Container,"data-filtered":n?!0:void 0,children:[(0,W.jsxs)(`header`,{className:qa.Header,children:[(0,W.jsx)(`h4`,{className:qa.Title,children:`Entity list`}),(0,W.jsx)(`input`,{type:`search`,value:e,onChange:e=>t(e.target.value),size:16,placeholder:`Filter`,className:qa.FilterInput})]}),o.map(([e,t])=>(0,W.jsxs)(`details`,{className:qa.Group,open:n?!0:void 0,children:[(0,W.jsxs)(`summary`,{className:qa.GroupHeader,children:[(0,W.jsx)(Vt,{className:qa.ClosedIcon}),(0,W.jsx)(Ht,{className:qa.OpenedIcon}),` `,e,` `,(0,W.jsxs)(`span`,{className:qa.GroupCount,children:[`(`,t.length,`)`]})]}),(0,W.jsx)(`ul`,{className:qa.List,children:t.map(e=>(0,W.jsx)(`li`,{className:qa.ListItem,children:(0,W.jsx)(Za,{entity:e})},e.id))})]},e))]})}),q={InspectorControls:`_InspectorControls_ukzik_1`,Dropdown:`_Dropdown_ukzik_8`,Group:`_Group_ukzik_16`,CheckboxField:`_CheckboxField_ukzik_24`,Label:`_Label_ukzik_39`,Description:`_Description_ukzik_47`,Control:`_Control_ukzik_60`,Field:`_Field_ukzik_67`,Tools:`_Tools_ukzik_91`,MapInfoButton:`_MapInfoButton_ukzik_114 _Button_p0g82_2`,ShowScoresButton:`_ShowScoresButton_ukzik_115 _Button_p0g82_2`,ForceRenderButton:`_ForceRenderButton_ukzik_119`,CloseSidebarButton:`_CloseSidebarButton_ukzik_131 _Button_p0g82_2`},to=[`controls`,`preferences`,`audio`,`timeline`],no=(0,H.memo)(function(e){let t=(0,U.c)(227),{missionName:n,missionType:r,onOpenMapInfo:i,onOpenScoreScreen:a,onOpenServerBrowser:o,onChooseMap:s,onCancelChoosingMap:c,choosingMap:l,cameraRef:d,invalidateRef:f,onClose:p}=e,m=g(),_=Sn(),v=Gn(),y=wn(),x=_===`demo`||_===`live`,S=x?y:n,C;t[0]===S?C=t[1]:(C=S?me(S):!1,t[0]=S,t[1]=C);let w=C,T=Hn(ro),{fogEnabled:E,setFogEnabled:D,fov:O,setFov:k,audioEnabled:A,setAudioEnabled:j,audioVolume:M,setAudioVolume:N,adjustAudioSpeed:P,setAdjustAudioSpeed:F,animationEnabled:I,setAnimationEnabled:ee,fpsLimit:L,setFpsLimit:R,showInputOverlay:te,setShowInputOverlay:ne,showChat:re,setShowChat:ie,showReticle:ae,setShowReticle:oe}=u(),{speedMultiplier:se,setSpeedMultiplier:z,mouseSensitivity:B,setMouseSensitivity:ce,touchMode:le,setTouchMode:ue,invertScroll:de,setInvertScroll:fe,invertDrag:pe,setInvertDrag:he,invertJoystick:ge,setInvertJoystick:_e}=b(),{debugMode:ve,setDebugMode:ye,renderOnDemand:be,setRenderOnDemand:xe}=h(),[Se,Ce]=(0,H.useState)(!1),we=(0,H.useRef)(null),Te=(0,H.useRef)(null),Ee=(0,H.useRef)(null),De,V;t[2]===Se?(De=t[3],V=t[4]):(De=()=>{Se&&we.current?.focus()},V=[Se],t[2]=Se,t[3]=De,t[4]=V),(0,H.useEffect)(De,V);let Oe;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=e=>{let t=e.relatedTarget;t&&Ee.current?.contains(t)||Ce(!1)},t[5]=Oe):Oe=t[5];let ke=Oe,Ae;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=e=>{e.key===`Escape`&&(Ce(!1),Te.current?.focus())},t[6]=Ae):Ae=t[6];let je=Ae,Me=_===`map`&&!v||(l??!1),Ne;t[7]!==s||t[8]!==Me?(Ne=(0,W.jsx)(Oa,{isActive:Me,onClick:s}),t[7]=s,t[8]=Me,t[9]=Ne):Ne=t[9];let Pe=!l&&v?.source===`demo`,Fe;t[10]!==l||t[11]!==c||t[12]!==Pe?(Fe=(0,W.jsx)(sr,{isActive:Pe,choosingMap:l,onCancelChoosingMap:c}),t[10]=l,t[11]=c,t[12]=Pe,t[13]=Fe):Fe=t[13];let Ie;t[14]!==l||t[15]!==T||t[16]!==o?(Ie=o&&(0,W.jsx)(dr,{isActive:!l&&T,onOpenServerBrowser:o}),t[14]=l,t[15]=T,t[16]=o,t[17]=Ie):Ie=t[17];let Le;t[18]!==Ie||t[19]!==Ne||t[20]!==Fe?(Le=(0,W.jsxs)(`div`,{className:Ut.ButtonGroup,children:[Ne,Fe,Ie]}),t[18]=Ie,t[19]=Ne,t[20]=Fe,t[21]=Le):Le=t[21];let Re=!w,ze;t[22]!==d||t[23]!==n||t[24]!==r||t[25]!==Re?(ze=(0,W.jsx)(Kt,{missionName:n,missionType:r,cameraRef:d,disabled:Re}),t[22]=d,t[23]=n,t[24]=r,t[25]=Re,t[26]=ze):ze=t[26];let Be;t[27]!==n||t[28]!==i?(Be=(0,W.jsx)(ka,{missionName:n,onClick:i}),t[27]=n,t[28]=i,t[29]=Be):Be=t[29];let Ve;t[30]===a?Ve=t[31]:(Ve=a&&(0,W.jsx)(Aa,{onClick:a}),t[30]=a,t[31]=Ve);let He;t[32]!==Le||t[33]!==ze||t[34]!==Be||t[35]!==Ve?(He=(0,W.jsxs)(`div`,{className:q.Tools,children:[Le,ze,Be,Ve]}),t[32]=Le,t[33]=ze,t[34]=Be,t[35]=Ve,t[36]=He):He=t[36];let Ue;t[37]===v?.source?Ue=t[38]:(Ue=v?.source===`demo`&&(0,W.jsx)(Hi,{value:`timeline`,label:`Timeline`,noPadding:!0,children:(0,W.jsx)(oa,{})}),t[37]=v?.source,t[38]=Ue);let We;t[39]!==_||t[40]!==v?(We=_===`map`&&!v&&(0,W.jsx)(Hi,{value:`mapFeatures`,label:`Map Features`,noPadding:!0,children:(0,W.jsx)(Ca,{})}),t[39]=_,t[40]=v,t[41]=We):We=t[41];let Ge;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=(0,W.jsx)(`label`,{htmlFor:`speedInput`,children:`Fly speed`}),t[42]=Ge):Ge=t[42];let Ke;t[43]===se?Ke=t[44]:(Ke=Math.round(se*100),t[43]=se,t[44]=Ke);let qe;t[45]===z?qe=t[46]:(qe=e=>z(parseFloat(e.target.value)/100),t[45]=z,t[46]=qe);let Je;t[47]!==Ke||t[48]!==qe?(Je=(0,W.jsx)(`div`,{className:q.Control,children:(0,W.jsx)(`input`,{id:`speedInput`,type:`range`,min:1,max:100,step:1,value:Ke,onChange:qe})}),t[47]=Ke,t[48]=qe,t[49]=Je):Je=t[49];let Ye=m===!1?` Use your scroll wheel or trackpad to adjust while flying.`:``,Xe;t[50]===Ye?Xe=t[51]:(Xe=(0,W.jsxs)(`p`,{className:q.Description,children:[`How fast you move in free-flying mode.`,Ye]}),t[50]=Ye,t[51]=Xe);let Ze;t[52]!==Je||t[53]!==Xe?(Ze=(0,W.jsxs)(`div`,{className:q.Field,children:[Ge,Je,Xe]}),t[52]=Je,t[53]=Xe,t[54]=Ze):Ze=t[54];let Qe;t[55]!==m||t[56]!==ue||t[57]!==le?(Qe=m?(0,W.jsxs)(`div`,{className:q.Field,children:[(0,W.jsx)(`label`,{htmlFor:`touchModeInput`,children:`Joystick`}),` `,(0,W.jsx)(`div`,{className:q.Control,children:(0,W.jsxs)(`select`,{id:`touchModeInput`,value:le,onChange:e=>ue(e.target.value),children:[(0,W.jsx)(`option`,{value:`dualStick`,children:`Dual stick`}),(0,W.jsx)(`option`,{value:`moveLookStick`,children:`Single stick`})]})}),(0,W.jsx)(`p`,{className:q.Description,children:`Single stick has a unified move + look control. Dual stick has independent move + look.`})]}):null,t[55]=m,t[56]=ue,t[57]=le,t[58]=Qe):Qe=t[58];let $e;t[59]!==de||t[60]!==m||t[61]!==fe?($e=m===!1?(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[(0,W.jsx)(`input`,{id:`invertScroll`,type:`checkbox`,checked:de,onChange:e=>{fe(e.target.checked)}}),(0,W.jsx)(`label`,{className:q.Label,htmlFor:`invertScroll`,children:`Invert scroll direction`}),(0,W.jsx)(`p`,{className:q.Description,children:`Reverse which scroll direction increases and decreases fly speed.`})]}):null,t[59]=de,t[60]=m,t[61]=fe,t[62]=$e):$e=t[62];let et;t[63]!==ge||t[64]!==m||t[65]!==_e?(et=m?(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[(0,W.jsx)(`input`,{id:`invertJoystick`,type:`checkbox`,checked:ge,onChange:e=>{_e(e.target.checked)}}),(0,W.jsx)(`label`,{className:q.Label,htmlFor:`invertJoystick`,children:`Invert joystick direction`}),(0,W.jsx)(`p`,{className:q.Description,children:`Reverse joystick look direction.`})]}):null,t[63]=ge,t[64]=m,t[65]=_e,t[66]=et):et=t[66];let tt;t[67]===he?tt=t[68]:(tt=e=>{he(e.target.checked)},t[67]=he,t[68]=tt);let nt;t[69]!==pe||t[70]!==tt?(nt=(0,W.jsx)(`input`,{id:`invertDrag`,type:`checkbox`,checked:pe,onChange:tt}),t[69]=pe,t[70]=tt,t[71]=nt):nt=t[71];let rt,it;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(rt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`invertDrag`,children:`Invert drag direction`}),it=(0,W.jsx)(`p`,{className:q.Description,children:`Reverse how dragging the viewport aims the camera.`}),t[72]=rt,t[73]=it):(rt=t[72],it=t[73]);let at;t[74]===nt?at=t[75]:(at=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[nt,rt,it]}),t[74]=nt,t[75]=at);let ot;t[76]!==m||t[77]!==B||t[78]!==ce?(ot=m===!1&&(0,W.jsxs)(`div`,{className:q.Field,children:[(0,W.jsx)(`label`,{htmlFor:`mouseSensitivityInput`,children:`Mouse sensitivity`}),(0,W.jsx)(`div`,{className:q.Control,children:(0,W.jsx)(`input`,{id:`mouseSensitivityInput`,type:`range`,min:1,max:256,step:2,value:Math.round(B*16e3),onChange:e=>{ce(parseInt(e.target.value)/16e3)}})})]}),t[76]=m,t[77]=B,t[78]=ce,t[79]=ot):ot=t[79];let st;t[80]!==Ze||t[81]!==Qe||t[82]!==$e||t[83]!==et||t[84]!==at||t[85]!==ot?(st=(0,W.jsxs)(Hi,{value:`controls`,label:`Controls`,children:[Ze,Qe,$e,et,at,ot]}),t[80]=Ze,t[81]=Qe,t[82]=$e,t[83]=et,t[84]=at,t[85]=ot,t[86]=st):st=t[86];let ct;t[87]===Symbol.for(`react.memo_cache_sentinel`)?(ct=(0,W.jsx)(`label`,{htmlFor:`fovInput`,children:`FOV`}),t[87]=ct):ct=t[87];let lt;t[88]===O?lt=t[89]:(lt=(0,W.jsxs)(`output`,{htmlFor:`fovInput`,children:[O,`°`]}),t[88]=O,t[89]=lt);let ut;t[90]===k?ut=t[91]:(ut=e=>k(parseInt(e.target.value)),t[90]=k,t[91]=ut);let dt;t[92]!==O||t[93]!==ut?(dt=(0,W.jsx)(`input`,{id:`fovInput`,type:`range`,min:75,max:120,step:5,value:O,onChange:ut}),t[92]=O,t[93]=ut,t[94]=dt):dt=t[94];let ft;t[95]!==lt||t[96]!==dt?(ft=(0,W.jsxs)(`div`,{className:q.Field,children:[ct,(0,W.jsxs)(`div`,{className:q.Control,children:[lt,dt]})]}),t[95]=lt,t[96]=dt,t[97]=ft):ft=t[97];let pt;t[98]===ne?pt=t[99]:(pt=e=>{ne(e.target.checked)},t[98]=ne,t[99]=pt);let mt;t[100]!==te||t[101]!==pt?(mt=(0,W.jsx)(`input`,{id:`showInputOverlayInput`,type:`checkbox`,checked:te,onChange:pt}),t[100]=te,t[101]=pt,t[102]=mt):mt=t[102];let ht;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(ht=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`showInputOverlayInput`,children:`Show input overlay`}),t[103]=ht):ht=t[103];let gt;t[104]===mt?gt=t[105]:(gt=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[mt,ht]}),t[104]=mt,t[105]=gt);let _t;t[106]!==x||t[107]!==ie||t[108]!==oe||t[109]!==re||t[110]!==ae?(_t=x&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[(0,W.jsx)(`input`,{id:`showChatInput`,type:`checkbox`,checked:re,onChange:e=>{ie(e.target.checked)}}),(0,W.jsx)(`label`,{className:q.Label,htmlFor:`showChatInput`,children:`Show chat HUD`})]}),(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[(0,W.jsx)(`input`,{id:`showReticleInput`,type:`checkbox`,checked:ae,onChange:e=>{oe(e.target.checked)}}),(0,W.jsx)(`label`,{className:q.Label,htmlFor:`showReticleInput`,children:`Show reticles`})]})]}),t[106]=x,t[107]=ie,t[108]=oe,t[109]=re,t[110]=ae,t[111]=_t):_t=t[111];let vt;t[112]!==ft||t[113]!==gt||t[114]!==_t?(vt=(0,W.jsxs)(Hi,{value:`preferences`,label:`Preferences`,children:[ft,gt,_t]}),t[112]=ft,t[113]=gt,t[114]=_t,t[115]=vt):vt=t[115];let yt;t[116]===j?yt=t[117]:(yt=e=>{j(e.target.checked)},t[116]=j,t[117]=yt);let bt;t[118]!==A||t[119]!==yt?(bt=(0,W.jsx)(`input`,{id:`audioInput`,type:`checkbox`,checked:A,onChange:yt}),t[118]=A,t[119]=yt,t[120]=bt):bt=t[120];let xt;t[121]===Symbol.for(`react.memo_cache_sentinel`)?(xt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`audioInput`,children:`Enable audio`}),t[121]=xt):xt=t[121];let St;t[122]===bt?St=t[123]:(St=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[bt,xt]}),t[122]=bt,t[123]=St);let Ct;t[124]===Symbol.for(`react.memo_cache_sentinel`)?(Ct=(0,W.jsx)(`label`,{htmlFor:`volumeInput`,children:`Master volume`}),t[124]=Ct):Ct=t[124];let wt;t[125]===M?wt=t[126]:(wt=Math.round(M*100),t[125]=M,t[126]=wt);let Tt;t[127]===wt?Tt=t[128]:(Tt=(0,W.jsxs)(`output`,{htmlFor:`volumeInput`,children:[wt,`%`]}),t[127]=wt,t[128]=Tt);let Et;t[129]===N?Et=t[130]:(Et=e=>N(parseFloat(e.target.value)),t[129]=N,t[130]=Et);let Dt;t[131]!==M||t[132]!==Et?(Dt=(0,W.jsx)(`input`,{id:`volumeInput`,type:`range`,min:0,max:1,step:.05,value:M,onChange:Et}),t[131]=M,t[132]=Et,t[133]=Dt):Dt=t[133];let Ot;t[134]!==Tt||t[135]!==Dt?(Ot=(0,W.jsxs)(`div`,{className:q.Field,children:[Ct,(0,W.jsxs)(`div`,{className:q.Control,children:[Tt,Dt]})]}),t[134]=Tt,t[135]=Dt,t[136]=Ot):Ot=t[136];let At;t[137]===F?At=t[138]:(At=e=>{F(e.target.checked)},t[137]=F,t[138]=At);let jt;t[139]!==P||t[140]!==At?(jt=(0,W.jsx)(`input`,{id:`adjustAudioSpeedInput`,type:`checkbox`,checked:P,onChange:At}),t[139]=P,t[140]=At,t[141]=jt):jt=t[141];let Mt;t[142]===Symbol.for(`react.memo_cache_sentinel`)?(Mt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`adjustAudioSpeedInput`,children:`Adjust audio speed to match demo playback`}),t[142]=Mt):Mt=t[142];let Nt;t[143]===jt?Nt=t[144]:(Nt=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[jt,Mt]}),t[143]=jt,t[144]=Nt);let Pt;t[145]!==St||t[146]!==Ot||t[147]!==Nt?(Pt=(0,W.jsxs)(Hi,{value:`audio`,label:`Audio`,children:[St,Ot,Nt]}),t[145]=St,t[146]=Ot,t[147]=Nt,t[148]=Pt):Pt=t[148];let Ft;t[149]===D?Ft=t[150]:(Ft=e=>{D(e.target.checked)},t[149]=D,t[150]=Ft);let It;t[151]!==E||t[152]!==Ft?(It=(0,W.jsx)(`input`,{id:`fogInput`,type:`checkbox`,checked:E,onChange:Ft}),t[151]=E,t[152]=Ft,t[153]=It):It=t[153];let Lt;t[154]===Symbol.for(`react.memo_cache_sentinel`)?(Lt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`fogInput`,children:`Enable fog`}),t[154]=Lt):Lt=t[154];let Rt;t[155]===It?Rt=t[156]:(Rt=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[It,Lt]}),t[155]=It,t[156]=Rt);let zt;t[157]===ee?zt=t[158]:(zt=e=>{ee(e.target.checked)},t[157]=ee,t[158]=zt);let Bt;t[159]!==I||t[160]!==zt?(Bt=(0,W.jsx)(`input`,{id:`animationInput`,type:`checkbox`,checked:I,onChange:zt}),t[159]=I,t[160]=zt,t[161]=Bt):Bt=t[161];let Vt;t[162]===Symbol.for(`react.memo_cache_sentinel`)?(Vt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`animationInput`,children:`Enable animations`}),t[162]=Vt):Vt=t[162];let Ht;t[163]===Bt?Ht=t[164]:(Ht=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[Bt,Vt]}),t[163]=Bt,t[164]=Ht);let Wt;t[165]===Symbol.for(`react.memo_cache_sentinel`)?(Wt=(0,W.jsx)(`label`,{htmlFor:`fpsLimitInput`,children:`FPS limit`}),t[165]=Wt):Wt=t[165];let Gt=L??``,qt;t[166]===R?qt=t[167]:(qt=e=>{let t=e.target.value;R(t===``?null:parseInt(t))},t[166]=R,t[167]=qt);let Jt,Yt,Xt,Zt,Qt,$t;t[168]===Symbol.for(`react.memo_cache_sentinel`)?(Jt=null,Yt=(0,W.jsx)(`option`,{value:`30`,children:`30`}),Xt=(0,W.jsx)(`option`,{value:`60`,children:`60`}),Zt=(0,W.jsx)(`option`,{value:`120`,children:`120`}),Qt=(0,W.jsx)(`option`,{value:`144`,children:`144`}),$t=(0,W.jsx)(`option`,{value:``,children:`No limit`}),t[168]=Jt,t[169]=Yt,t[170]=Xt,t[171]=Zt,t[172]=Qt,t[173]=$t):(Jt=t[168],Yt=t[169],Xt=t[170],Zt=t[171],Qt=t[172],$t=t[173]);let en;t[174]!==Gt||t[175]!==qt?(en=(0,W.jsx)(`div`,{className:q.Control,children:(0,W.jsxs)(`select`,{id:`fpsLimitInput`,value:Gt,onChange:qt,children:[Jt,Yt,Xt,Zt,Qt,$t]})}),t[174]=Gt,t[175]=qt,t[176]=en):en=t[176];let tn;t[177]===Symbol.for(`react.memo_cache_sentinel`)?(tn=(0,W.jsx)(`p`,{className:q.Description,children:`Give your device a break by capping the framerate.`}),t[177]=tn):tn=t[177];let nn;t[178]===en?nn=t[179]:(nn=(0,W.jsxs)(`div`,{className:q.Field,children:[Wt,en,tn]}),t[178]=en,t[179]=nn);let rn;t[180]!==Rt||t[181]!==Ht||t[182]!==nn?(rn=(0,W.jsxs)(Hi,{value:`graphics`,label:`Graphics`,children:[Rt,Ht,nn]}),t[180]=Rt,t[181]=Ht,t[182]=nn,t[183]=rn):rn=t[183];let an;t[184]===ye?an=t[185]:(an=e=>{ye(e.target.checked)},t[184]=ye,t[185]=an);let on;t[186]!==ve||t[187]!==an?(on=(0,W.jsx)(`input`,{id:`debugInput`,type:`checkbox`,checked:ve,onChange:an}),t[186]=ve,t[187]=an,t[188]=on):on=t[188];let sn;t[189]===Symbol.for(`react.memo_cache_sentinel`)?(sn=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`debugInput`,children:`Render debug visuals`}),t[189]=sn):sn=t[189];let cn;t[190]===on?cn=t[191]:(cn=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[on,sn]}),t[190]=on,t[191]=cn);let G;t[192]===xe?G=t[193]:(G=e=>{xe(e.target.checked)},t[192]=xe,t[193]=G);let ln;t[194]!==be||t[195]!==G?(ln=(0,W.jsx)(`input`,{id:`onDemandInput`,type:`checkbox`,checked:be,onChange:G}),t[194]=be,t[195]=G,t[196]=ln):ln=t[196];let K;t[197]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,W.jsx)(`label`,{htmlFor:`onDemandInput`,children:`Render on demand `}),t[197]=K):K=t[197];let un;t[198]===f?un=t[199]:(un=()=>f.current?.(),t[198]=f,t[199]=un);let dn;t[200]===Symbol.for(`react.memo_cache_sentinel`)?(dn=(0,W.jsx)(kt,{}),t[200]=dn):dn=t[200];let fn;t[201]===un?fn=t[202]:(fn=(0,W.jsxs)(`div`,{className:q.Label,children:[K,(0,W.jsx)(`button`,{type:`button`,className:q.ForceRenderButton,title:`Force render`,"aria-label":`Force render`,onClick:un,children:dn})]}),t[201]=un,t[202]=fn);let pn;t[203]===Symbol.for(`react.memo_cache_sentinel`)?(pn=(0,W.jsx)(`p`,{className:q.Description,children:`Significantly decreases CPU and GPU usage by only rendering frames when requested. Helpful when developing parts of the app unrelated to rendering.`}),t[203]=pn):pn=t[203];let mn;t[204]!==ln||t[205]!==fn?(mn=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[ln,fn,pn]}),t[204]=ln,t[205]=fn,t[206]=mn):mn=t[206];let hn;t[207]===Symbol.for(`react.memo_cache_sentinel`)?(hn=(0,W.jsx)(eo,{}),t[207]=hn):hn=t[207];let gn;t[208]!==cn||t[209]!==mn?(gn=(0,W.jsxs)(Hi,{value:`debug`,label:`Debug`,children:[cn,mn,hn]}),t[208]=cn,t[209]=mn,t[210]=gn):gn=t[210];let _n;t[211]!==Ue||t[212]!==We||t[213]!==st||t[214]!==vt||t[215]!==Pt||t[216]!==rn||t[217]!==gn?(_n=(0,W.jsx)(`div`,{className:q.Accordions,children:(0,W.jsxs)(Vi,{type:`multiple`,defaultValue:to,children:[Ue,We,st,vt,Pt,rn,gn]})}),t[211]=Ue,t[212]=We,t[213]=st,t[214]=vt,t[215]=Pt,t[216]=rn,t[217]=gn,t[218]=_n):_n=t[218];let vn;t[219]===Symbol.for(`react.memo_cache_sentinel`)?(vn=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Close`}),t[219]=vn):vn=t[219];let yn;t[220]===p?yn=t[221]:(yn=(0,W.jsx)(`button`,{className:q.CloseSidebarButton,onClick:p,children:vn}),t[220]=p,t[221]=yn);let bn;return t[222]!==Se||t[223]!==He||t[224]!==_n||t[225]!==yn?(bn=(0,W.jsx)(`div`,{className:q.InspectorControls,children:(0,W.jsx)(`div`,{ref:Ee,children:(0,W.jsxs)(`div`,{className:q.Dropdown,ref:we,id:`settingsPanel`,tabIndex:-1,onKeyDown:je,onBlur:ke,"data-open":Se,children:[He,_n,yn]})})}),t[222]=Se,t[223]=He,t[224]=_n,t[225]=yn,t[226]=bn):bn=t[226],bn});function ro(e){return e.gameStatus===`connected`||e.gameStatus===`authenticating`}function io(...e){}function ao(e,t){return oo(e)?e(so(t)?t():t):e}function oo(e){return typeof e==`function`}function so(e){return typeof e==`function`}function co(e,t){return typeof Object.hasOwn==`function`?Object.hasOwn(e,t):Object.prototype.hasOwnProperty.call(e,t)}function lo(...e){return(...t)=>{for(let n of e)typeof n==`function`&&n(...t)}}function uo(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``)}function fo(e,t){let n={...e};for(let e of t)co(n,e)&&delete n[e];return n}function po(e,t){let n={};for(let r of t)co(e,r)&&(n[r]=e[r]);return n}function mo(e){return e}function ho(e,t){if(!e)throw Error(typeof t==`string`?t:`Invariant failed`)}function go(e){return Object.keys(e)}function _o(e,...t){let n=typeof e==`function`?e(...t):e;return n==null?!1:!n}function vo(e){return e.disabled||e[`aria-disabled`]===!0||e[`aria-disabled`]===`true`}function yo(e){let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function J(...e){for(let t of e)if(t!==void 0)return t}function bo(e,t){typeof e==`function`?e(t):e&&(e.current=t)}function xo(e){return!e||!(0,H.isValidElement)(e)?!1:`ref`in e.props||`ref`in e}function So(e){return xo(e)?{...e.props}.ref||e.ref:null}function Co(e,t){let n={...e};for(let r in t){if(!co(t,r))continue;if(r===`className`){let r=`className`;n[r]=e[r]?`${e[r]} ${t[r]}`:t[r];continue}if(r===`style`){let r=`style`;n[r]=e[r]?{...e[r],...t[r]}:t[r];continue}let i=t[r];if(typeof i==`function`&&r.startsWith(`on`)){let t=e[r];if(typeof t==`function`){n[r]=(...e)=>{i(...e),t(...e)};continue}}n[r]=i}return n}var wo=To();function To(){return typeof window<`u`&&!!window.document?.createElement}function Eo(e){return e?`self`in e?e.document:e.ownerDocument||document:document}function Do(e){return e?`self`in e?e.self:Eo(e).defaultView||window:self}function Oo(e,t=!1){let{activeElement:n}=Eo(e);if(!n?.nodeName)return null;if(Ao(n)&&n.contentDocument?.body)return Oo(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=Eo(n).getElementById(e);if(t)return t}}return n}function ko(e,t){return e===t||e.contains(t)}function Ao(e){return e.tagName===`IFRAME`}function jo(e){let t=e.tagName.toLowerCase();return t===`button`?!0:t===`input`&&e.type?Mo.indexOf(e.type)!==-1:!1}var Mo=[`button`,`color`,`file`,`image`,`reset`,`submit`];function No(e){if(typeof e.checkVisibility==`function`)return e.checkVisibility();let t=e;return t.offsetWidth>0||t.offsetHeight>0||e.getClientRects().length>0}function Po(e){try{let t=e instanceof HTMLInputElement&&e.selectionStart!==null,n=e.tagName===`TEXTAREA`;return t||n||!1}catch{return!1}}function Fo(e){return e.isContentEditable||Po(e)}function Io(e){if(Po(e))return e.value;if(e.isContentEditable){let t=Eo(e).createRange();return t.selectNodeContents(e),t.toString()}return``}function Lo(e){let t=0,n=0;if(Po(e))t=e.selectionStart||0,n=e.selectionEnd||0;else if(e.isContentEditable){let r=Eo(e).getSelection();if(r?.rangeCount&&r.anchorNode&&ko(e,r.anchorNode)&&r.focusNode&&ko(e,r.focusNode)){let i=r.getRangeAt(0),a=i.cloneRange();a.selectNodeContents(e),a.setEnd(i.startContainer,i.startOffset),t=a.toString().length,a.setEnd(i.endContainer,i.endOffset),n=a.toString().length}}return{start:t,end:n}}function Ro(e,t){let n=[`dialog`,`menu`,`listbox`,`tree`,`grid`],r=e?.getAttribute(`role`);return r&&n.indexOf(r)!==-1?r:t}function zo(e){if(!e)return null;let t=e=>e===`auto`||e===`scroll`;if(e.clientHeight&&e.scrollHeight>e.clientHeight){let{overflowY:n}=getComputedStyle(e);if(t(n))return e}else if(e.clientWidth&&e.scrollWidth>e.clientWidth){let{overflowX:n}=getComputedStyle(e);if(t(n))return e}return zo(e.parentElement)||document.scrollingElement||document.body}function Bo(e,...t){/text|search|password|tel|url/i.test(e.type)&&e.setSelectionRange(...t)}function Vo(e,t){let n=e.map((e,t)=>[t,e]),r=!1;return n.sort(([e,n],[i,a])=>{let o=t(n),s=t(a);return o===s||!o||!s?0:Ho(o,s)?(e>i&&(r=!0),-1):(et):e}function Ho(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}function Uo(){return wo&&!!navigator.maxTouchPoints}function Wo(){return wo?/mac|iphone|ipad|ipod/i.test(navigator.platform):!1}function Go(){return wo&&Wo()&&/apple/i.test(navigator.vendor)}function Ko(){return wo&&/firefox\//i.test(navigator.userAgent)}function qo(){return wo&&navigator.platform.startsWith(`Mac`)&&!Uo()}function Jo(e){return!!(e.currentTarget&&!ko(e.currentTarget,e.target))}function Yo(e){return e.target===e.currentTarget}function Xo(e){let t=e.currentTarget;if(!t)return!1;let n=Wo();if(n&&!e.metaKey||!n&&!e.ctrlKey)return!1;let r=t.tagName.toLowerCase();return r===`a`||r===`button`&&t.type===`submit`||r===`input`&&t.type===`submit`}function Zo(e){let t=e.currentTarget;if(!t)return!1;let n=t.tagName.toLowerCase();return e.altKey?n===`a`||n===`button`&&t.type===`submit`||n===`input`&&t.type===`submit`:!1}function Qo(e,t){let n=new FocusEvent(`blur`,t),r=e.dispatchEvent(n),i={...t,bubbles:!0};return e.dispatchEvent(new FocusEvent(`focusout`,i)),r}function $o(e,t,n){let r=new KeyboardEvent(t,n);return e.dispatchEvent(r)}function es(e,t){let n=new MouseEvent(`click`,t);return e.dispatchEvent(n)}function ts(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!ko(n,r)}function ns(e,t,n,r){let i=(e=>{if(r){let t=setTimeout(e,r);return()=>clearTimeout(t)}let t=requestAnimationFrame(e);return()=>cancelAnimationFrame(t)})(()=>{e.removeEventListener(t,a,!0),n()}),a=()=>{i(),n()};return e.addEventListener(t,a,{once:!0,capture:!0}),i}function rs(e,t,n,r=window){let i=[];try{r.document.addEventListener(e,t,n);for(let a of Array.from(r.frames))i.push(rs(e,t,n,a))}catch{}return()=>{try{r.document.removeEventListener(e,t,n)}catch{}for(let e of i)e()}}var is={...H},as=is.useId;is.useDeferredValue;var os=is.useInsertionEffect,Y=wo?H.useLayoutEffect:H.useEffect;function ss(e){let[t]=(0,H.useState)(e);return t}function cs(e){let t=(0,H.useRef)(e);return Y(()=>{t.current=e}),t}function X(e){let t=(0,H.useRef)(()=>{throw Error(`Cannot call an event handler while rendering.`)});return os?os(()=>{t.current=e}):t.current=e,(0,H.useCallback)((...e)=>t.current?.call(t,...e),[])}function ls(e){let[t,n]=(0,H.useState)(null);return Y(()=>{if(t==null||!e)return;let n=null;return e(e=>(n=e,t)),()=>{e(n)}},[t,e]),[t,n]}function us(...e){return(0,H.useMemo)(()=>{if(e.some(Boolean))return t=>{for(let n of e)bo(n,t)}},e)}function ds(e){if(as){let t=as();return e||t}let[t,n]=(0,H.useState)(e);return Y(()=>{e||t||n(`id-${Math.random().toString(36).slice(2,8)}`)},[e,t]),e||t}function fs(e,t){let n=e=>{if(typeof e==`string`)return e},[r,i]=(0,H.useState)(()=>n(t));return Y(()=>{i((e&&`current`in e?e.current:e)?.tagName.toLowerCase()||n(t))},[e,t]),r}function ps(e,t,n){let r=ss(n),[i,a]=(0,H.useState)(r);return(0,H.useEffect)(()=>{let n=e&&`current`in e?e.current:e;if(!n)return;let i=()=>{a(n.getAttribute(t)??r)},o=new MutationObserver(i);return o.observe(n,{attributeFilter:[t]}),i(),()=>o.disconnect()},[e,t,r]),i}function ms(e,t){let n=(0,H.useRef)(!1);(0,H.useEffect)(()=>{if(n.current)return e();n.current=!0},t),(0,H.useEffect)(()=>()=>{n.current=!1},[])}function hs(e,t){let n=(0,H.useRef)(!1);Y(()=>{if(n.current)return e();n.current=!0},t),Y(()=>()=>{n.current=!1},[])}function gs(){return(0,H.useReducer)(()=>[],[])}function _s(e){return X(typeof e==`function`?e:()=>e)}function vs(e,t,n=[]){let r=(0,H.useCallback)(n=>(e.wrapElement&&(n=e.wrapElement(n)),t(n)),[...n,e.wrapElement]);return{...e,wrapElement:r}}function ys(e=!1,t){let[n,r]=(0,H.useState)(null);return{portalRef:us(r,t),portalNode:n,domReady:!e||n}}function bs(e,t,n){let r=e.onLoadedMetadataCapture,i=(0,H.useMemo)(()=>Object.assign(()=>{},r,{[t]:n}),[r,t,n]);return[r?.[t],{onLoadedMetadataCapture:i}]}var xs=!1;function Ss(){return(0,H.useEffect)(()=>{xs||=(rs(`mousemove`,Ds,!0),rs(`mousedown`,Os,!0),rs(`mouseup`,Os,!0),rs(`keydown`,Os,!0),rs(`scroll`,Os,!0),!0)},[]),X(()=>Cs)}var Cs=!1,ws=0,Ts=0;function Es(e){let t=e.movementX||e.screenX-ws,n=e.movementY||e.screenY-Ts;return ws=e.screenX,Ts=e.screenY,t||n||!1}function Ds(e){Es(e)&&(Cs=!0)}function Os(){Cs=!1}function Z(e){let t=H.forwardRef((t,n)=>e({...t,ref:n}));return t.displayName=e.displayName||e.name,t}function ks(e,t){return H.memo(e,t)}function Q(e,t){let{wrapElement:n,render:r,...i}=t,a=us(t.ref,So(r)),o;if(H.isValidElement(r)){let e={...r.props,ref:a};o=H.cloneElement(r,Co(i,e))}else o=r?r(i):(0,W.jsx)(e,{...i});return n?n(o):o}function As(e){let t=(t={})=>e(t);return t.displayName=e.name,t}function js(e=[],t=[]){let n=H.createContext(void 0),r=H.createContext(void 0),i=()=>H.useContext(n),a=(e=!1)=>{let t=H.useContext(r),n=i();return e?t:t||n},o=()=>{let e=H.useContext(r),t=i();if(!(e&&e===t))return t},s=t=>e.reduceRight((e,n)=>(0,W.jsx)(n,{...t,children:e}),(0,W.jsx)(n.Provider,{...t}));return{context:n,scopedContext:r,useContext:i,useScopedContext:a,useProviderContext:o,ContextProvider:s,ScopedContextProvider:e=>(0,W.jsx)(s,{...e,children:t.reduceRight((t,n)=>(0,W.jsx)(n,{...e,children:t}),(0,W.jsx)(r.Provider,{...e}))})}}var Ms=js(),Ns=Ms.useContext;Ms.useScopedContext,Ms.useProviderContext;var Ps=Ms.ContextProvider,Fs=Ms.ScopedContextProvider,Is=js([Ps],[Fs]),Ls=Is.useContext;Is.useScopedContext;var Rs=Is.useProviderContext,zs=Is.ContextProvider,Bs=Is.ScopedContextProvider,Vs=(0,H.createContext)(void 0),Hs=(0,H.createContext)(void 0);function Us(e,t){return e.find(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Ws(e,t){return t&&e.item(t)||null}function Gs(e){let t=[];for(let n of e){let e=t.find(e=>e[0]?.rowId===n.rowId);e?e.push(n):t.push([n])}return t}function Ks(e,t=!1){if(Po(e))e.setSelectionRange(t?e.value.length:0,e.value.length);else if(e.isContentEditable){let n=Eo(e).getSelection();n?.selectAllChildren(e),t&&n?.collapseToEnd()}}var qs=Symbol(`FOCUS_SILENTLY`);function Js(e){e[qs]=!0,e.focus({preventScroll:!0})}function Ys(e){let t=e[qs];return delete e[qs],t}function Xs(e,t,n){if(!t||t===n)return!1;let r=e.item(t.id);return!(!r||n&&r.element===n)}var Zs=`div`,Qs=As(function({store:e,shouldRegisterItem:t=!0,getItem:n=mo,element:r,...i}){let a=Ns();e||=a;let o=ds(i.id),s=(0,H.useRef)(r);return(0,H.useEffect)(()=>{let r=s.current;if(!o||!r||!t)return;let i=n({id:o,element:r});return e?.renderItem(i)},[o,t,n,e]),i={...i,ref:us(s,i.ref)},yo(i)});Z(function(e){return Q(Zs,Qs(e))});var $s=(0,H.createContext)(!0),ec=`input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])`;function tc(e){return Number.parseInt(e.getAttribute(`tabindex`)||`0`,10)<0}function nc(e){return!(!e.matches(ec)||!No(e)||e.closest(`[inert]`))}function rc(e){if(!nc(e)||tc(e))return!1;if(!(`form`in e)||!e.form||e.checked||e.type!==`radio`)return!0;let t=e.form.elements.namedItem(e.name);if(!t||!(`length`in t))return!0;let n=Oo(e);return!n||n===e||!(`form`in n)||n.form!==e.form||n.name!==e.name}function ic(e,t){let n=Array.from(e.querySelectorAll(ec));t&&n.unshift(e);let r=n.filter(nc);return r.forEach((e,t)=>{if(!Ao(e))return;let n=e.contentDocument?.body;n&&r.splice(t,1,...ic(n))}),r}function ac(e,t,n){let r=Array.from(e.querySelectorAll(ec)),i=r.filter(rc);return t&&rc(e)&&i.unshift(e),i.forEach((e,t)=>{if(!Ao(e))return;let r=e.contentDocument?.body;if(!r)return;let a=ac(r,!1,n);i.splice(t,1,...a)}),!i.length&&n?r:i}function oc(e,t,n){let[r]=ac(e,t,n);return r||null}function sc(e,t,n,r){let i=Oo(e),a=ic(e,t),o=a.indexOf(i),s=a.slice(o+1);return s.find(rc)||(n?a.find(rc):null)||(r?s[0]:null)||null}function cc(e,t){return sc(document.body,!1,e,t)}function lc(e,t,n,r){let i=Oo(e),a=ic(e,t).reverse(),o=a.indexOf(i),s=a.slice(o+1);return s.find(rc)||(n?a.find(rc):null)||(r?s[0]:null)||null}function uc(e,t){return lc(document.body,!1,e,t)}function dc(e){for(;e&&!nc(e);)e=e.closest(ec);return e||null}function fc(e){let t=Oo(e);if(!t)return!1;if(t===e)return!0;let n=t.getAttribute(`aria-activedescendant`);return n?n===e.id:!1}function pc(e){let t=Oo(e);if(!t)return!1;if(ko(e,t))return!0;let n=t.getAttribute(`aria-activedescendant`);return!n||!(`id`in e)?!1:n===e.id?!0:!!e.querySelector(`#${CSS.escape(n)}`)}function mc(e){!pc(e)&&nc(e)&&e.focus()}function hc(e){let t=e.getAttribute(`tabindex`)??``;e.setAttribute(`data-tabindex`,t),e.setAttribute(`tabindex`,`-1`)}function gc(e,t){let n=ac(e,t);for(let e of n)hc(e)}function _c(e){let t=e.querySelectorAll(`[data-tabindex]`),n=e=>{let t=e.getAttribute(`data-tabindex`);e.removeAttribute(`data-tabindex`),t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)};e.hasAttribute(`data-tabindex`)&&n(e);for(let e of t)n(e)}function vc(e,t){`scrollIntoView`in e?(e.focus({preventScroll:!0}),e.scrollIntoView({block:`nearest`,inline:`nearest`,...t})):e.focus()}var yc=`div`,bc=Go(),xc=[`text`,`search`,`url`,`tel`,`email`,`password`,`number`,`date`,`month`,`week`,`time`,`datetime`,`datetime-local`],Sc=Symbol(`safariFocusAncestor`);function Cc(e){return e?!!e[Sc]:!1}function wc(e,t){e&&(e[Sc]=t)}function Tc(e){let{tagName:t,readOnly:n,type:r}=e;return t===`TEXTAREA`&&!n||t===`SELECT`&&!n?!0:t===`INPUT`&&!n?xc.includes(r):!!(e.isContentEditable||e.getAttribute(`role`)===`combobox`&&e.dataset.name)}function Ec(e){return`labels`in e?e.labels:null}function Dc(e){return e.tagName.toLowerCase()===`input`&&e.type?e.type===`radio`||e.type===`checkbox`:!1}function Oc(e){return e?e===`button`||e===`summary`||e===`input`||e===`select`||e===`textarea`||e===`a`:!0}function kc(e){return e?e===`button`||e===`input`||e===`select`||e===`textarea`:!0}function Ac(e,t,n,r,i){return e?t?n&&!r?-1:void 0:n?i:i||0:i}function jc(e,t){return X(n=>{e?.(n),!n.defaultPrevented&&t&&(n.stopPropagation(),n.preventDefault())})}var Mc=!1,Nc=!0;function Pc(e){let t=e.target;t&&`hasAttribute`in t&&(t.hasAttribute(`data-focus-visible`)||(Nc=!1))}function Fc(e){e.metaKey||e.ctrlKey||e.altKey||(Nc=!0)}var Ic=As(function({focusable:e=!0,accessibleWhenDisabled:t,autoFocus:n,onFocusVisible:r,...i}){let a=(0,H.useRef)(null);(0,H.useEffect)(()=>{e&&(Mc||=(rs(`mousedown`,Pc,!0),rs(`keydown`,Fc,!0),!0))},[e]),bc&&(0,H.useEffect)(()=>{if(!e)return;let t=a.current;if(!t||!Dc(t))return;let n=Ec(t);if(!n)return;let r=()=>queueMicrotask(()=>t.focus());for(let e of n)e.addEventListener(`mouseup`,r);return()=>{for(let e of n)e.removeEventListener(`mouseup`,r)}},[e]);let o=e&&vo(i),s=!!o&&!t,[c,l]=(0,H.useState)(!1);(0,H.useEffect)(()=>{e&&s&&c&&l(!1)},[e,s,c]),(0,H.useEffect)(()=>{if(!e||!c)return;let t=a.current;if(!t||typeof IntersectionObserver>`u`)return;let n=new IntersectionObserver(()=>{nc(t)||l(!1)});return n.observe(t),()=>n.disconnect()},[e,c]);let u=jc(i.onKeyPressCapture,o),d=jc(i.onMouseDownCapture,o),f=jc(i.onClickCapture,o),p=i.onMouseDown,m=X(t=>{if(p?.(t),t.defaultPrevented||!e)return;let n=t.currentTarget;if(!bc||Jo(t)||!jo(n)&&!Dc(n))return;let r=!1,i=()=>{r=!0};n.addEventListener(`focusin`,i,{capture:!0,once:!0});let a=dc(n.parentElement);wc(a,!0),ns(n,`mouseup`,()=>{n.removeEventListener(`focusin`,i,!0),wc(a,!1),!r&&mc(n)})}),h=(t,n)=>{if(n&&(t.currentTarget=n),!e)return;let i=t.currentTarget;i&&fc(i)&&(r?.(t),!t.defaultPrevented&&(i.dataset.focusVisible=`true`,l(!0)))},g=i.onKeyDownCapture,_=X(t=>{if(g?.(t),t.defaultPrevented||!e||c||t.metaKey||t.altKey||t.ctrlKey||!Yo(t))return;let n=t.currentTarget;ns(n,`focusout`,()=>h(t,n))}),v=i.onFocusCapture,y=X(t=>{if(v?.(t),t.defaultPrevented||!e)return;if(!Yo(t)){l(!1);return}let n=t.currentTarget;Nc||Tc(t.target)?ns(t.target,`focusout`,()=>h(t,n)):l(!1)}),b=i.onBlur,x=X(t=>{b?.(t),e&&ts(t)&&(t.currentTarget.removeAttribute(`data-focus-visible`),l(!1))}),S=(0,H.useContext)($s),C=X(t=>{e&&n&&t&&S&&queueMicrotask(()=>{fc(t)||nc(t)&&t.focus()})}),w=fs(a),T=e&&Oc(w),E=e&&kc(w),D=i.style,O=(0,H.useMemo)(()=>s?{pointerEvents:`none`,...D}:D,[s,D]);return i={"data-focus-visible":e&&c||void 0,"data-autofocus":n||void 0,"aria-disabled":o||void 0,...i,ref:us(a,C,i.ref),style:O,tabIndex:Ac(e,s,T,E,i.tabIndex),disabled:E&&s?!0:void 0,contentEditable:o?void 0:i.contentEditable,onKeyPressCapture:u,onClickCapture:f,onMouseDownCapture:d,onMouseDown:m,onKeyDownCapture:_,onFocusCapture:y,onBlur:x},yo(i)});Z(function(e){return Q(yc,Ic(e))});var Lc=`button`;function Rc(e){if(!e.isTrusted)return!1;let t=e.currentTarget;return e.key===`Enter`?jo(t)||t.tagName===`SUMMARY`||t.tagName===`A`:e.key===` `?jo(t)||t.tagName===`SUMMARY`||t.tagName===`INPUT`||t.tagName===`SELECT`:!1}var zc=Symbol(`command`),Bc=As(function({clickOnEnter:e=!0,clickOnSpace:t=!0,...n}){let r=(0,H.useRef)(null),[i,a]=(0,H.useState)(!1);(0,H.useEffect)(()=>{r.current&&a(jo(r.current))},[]);let[o,s]=(0,H.useState)(!1),c=(0,H.useRef)(!1),l=vo(n),[u,d]=bs(n,zc,!0),f=n.onKeyDown,p=X(n=>{f?.(n);let r=n.currentTarget;if(n.defaultPrevented||u||l||!Yo(n)||Po(r)||r.isContentEditable)return;let i=e&&n.key===`Enter`,a=t&&n.key===` `,o=n.key===`Enter`&&!e,d=n.key===` `&&!t;if(o||d){n.preventDefault();return}if(i||a){let e=Rc(n);if(i){if(!e){n.preventDefault();let{view:e,...t}=n,i=()=>es(r,t);Ko()?ns(r,`keyup`,i):queueMicrotask(i)}}else a&&(c.current=!0,e||(n.preventDefault(),s(!0)))}}),m=n.onKeyUp,h=X(e=>{if(m?.(e),e.defaultPrevented||u||l||e.metaKey)return;let n=t&&e.key===` `;if(c.current&&n&&(c.current=!1,!Rc(e))){e.preventDefault(),s(!1);let t=e.currentTarget,{view:n,...r}=e;queueMicrotask(()=>es(t,r))}});return n={"data-active":o||void 0,type:i?`button`:void 0,...d,...n,ref:us(r,n.ref),onKeyDown:p,onKeyUp:h},n=Ic(n),n});Z(function(e){return Q(Lc,Bc(e))});function Vc(e,t){let n=e.__unstableInternals;return ho(n,`Invalid store`),n[t]}function Hc(e,...t){let n=e,r=n,i=Symbol(),a=io,o=new Set,s=new Set,c=new Set,l=new Set,u=new Set,d=new WeakMap,f=new WeakMap,p=e=>(c.add(e),()=>c.delete(e)),m=()=>{let e=o.size,r=Symbol();o.add(r);let i=()=>{o.delete(r),!o.size&&a()};if(e)return i;let s=go(n).map(e=>lo(...t.map(t=>{let n=(t?.getState)?.call(t);if(n&&co(n,e))return Kc(t,[e],t=>{S(e,t[e],!0)})}))),l=[];for(let e of c)l.push(e());let u=t.map(Wc);return a=lo(...s,...l,...u),i},h=(e,t,n=l)=>(n.add(t),f.set(t,e),()=>{var e;(e=d.get(t))==null||e(),d.delete(t),f.delete(t),n.delete(t)}),g=(e,t)=>h(e,t),_=(e,t)=>(d.set(t,t(n,n)),h(e,t)),v=(e,t)=>(d.set(t,t(n,r)),h(e,t,u)),y=e=>Hc(po(n,e),C),b=e=>Hc(fo(n,e),C),x=()=>n,S=(e,a,o=!1)=>{var c;if(!co(n,e))return;let p=ao(a,n[e]);if(p===n[e])return;if(!o)for(let n of t)(c=n?.setState)==null||c.call(n,e,p);let m=n;n={...n,[e]:p};let h=Symbol();i=h,s.add(e);let g=(t,r,i)=>{var a;let o=f.get(t);(!o||o.some(t=>i?i.has(t):t===e))&&((a=d.get(t))==null||a(),d.set(t,t(n,r)))};for(let e of l)g(e,m);queueMicrotask(()=>{if(i!==h)return;let e=n;for(let e of u)g(e,r,s);r=e,s.clear()})},C={getState:x,setState:S,__unstableInternals:{setup:p,init:m,subscribe:g,sync:_,batch:v,pick:y,omit:b}};return C}function Uc(e,...t){if(e)return Vc(e,`setup`)(...t)}function Wc(e,...t){if(e)return Vc(e,`init`)(...t)}function Gc(e,...t){if(e)return Vc(e,`subscribe`)(...t)}function Kc(e,...t){if(e)return Vc(e,`sync`)(...t)}function qc(e,...t){if(e)return Vc(e,`batch`)(...t)}function Jc(e,...t){if(e)return Vc(e,`omit`)(...t)}function Yc(e,...t){if(e)return Vc(e,`pick`)(...t)}function Xc(...e){let t={};for(let n of e){let e=(n?.getState)?.call(n);e&&Object.assign(t,e)}let n=Hc(t,...e);return Object.assign({},...e,n)}var{useSyncExternalStore:Zc}=e(se(),1).default,Qc=()=>()=>{};function $(e,t=mo){let n=H.useCallback(t=>e?Gc(e,null,t):Qc(),[e]),r=()=>{let n=typeof t==`string`?t:null,r=typeof t==`function`?t:null,i=e?.getState();if(r)return r(i);if(i&&n&&co(i,n))return i[n]};return Zc(n,r,r)}function $c(e,t){let n=H.useRef({}),r=H.useCallback(t=>e?Gc(e,null,t):Qc(),[e]),i=()=>{let r=e?.getState(),i=!1,a=n.current;for(let e in t){let n=t[e];if(typeof n==`function`){let t=n(r);t!==a[e]&&(a[e]=t,i=!0)}if(typeof n==`string`){if(!r||!co(r,n))continue;let t=r[n];t!==a[e]&&(a[e]=t,i=!0)}}return i&&(n.current={...a}),n.current};return Zc(r,i,i)}function el(e,t,n,r){let i=co(t,n)?t[n]:void 0,a=cs({value:i,setValue:r?t[r]:void 0});Y(()=>Kc(e,[n],(e,t)=>{let{value:r,setValue:i}=a.current;i&&e[n]!==t[n]&&e[n]!==r&&i(e[n])}),[e,n]),Y(()=>{if(i!==void 0)return e.setState(n,i),qc(e,[n],()=>{i!==void 0&&e.setState(n,i)})})}function tl(e,t){let[n,r]=H.useState(()=>e(t));Y(()=>Wc(n),[n]);let i=H.useCallback(e=>$(n,e),[n]);return[H.useMemo(()=>({...n,useState:i}),[n,i]),X(()=>{r(n=>e({...t,...n.getState()}))})]}var nl=`button`;function rl(e){return Fo(e)?!0:e.tagName===`INPUT`&&!jo(e)}function il(e,t=!1){let n=e.clientHeight,{top:r}=e.getBoundingClientRect(),i=Math.max(n*.875,n-40)*1.5,a=t?n-i+r:i+r;return e.tagName===`HTML`?a+e.scrollTop:a}function al(e,t=!1){let{top:n}=e.getBoundingClientRect();return t?n+e.clientHeight:n}function ol(e,t,n,r=!1){if(!t||!n)return;let{renderedItems:i}=t.getState(),a=zo(e);if(!a)return;let o=il(a,r),s,c;for(let e=0;e=0){c!==void 0&&ce.rowId===m);return f.ariaPosInSet+t.findIndex(e=>e.id===u)},isTabbable(t){if(!t?.renderedItems.length)return!0;if(t.virtualFocus)return!1;if(i)return!0;if(t.activeId===null)return!1;let n=e?.item(t.activeId);return n?.disabled||!n?.element?!0:t.activeId===u}}),b=(0,H.useCallback)(e=>{let t={...e,id:u||e.id,rowId:m,disabled:!!p,children:e.element?.textContent};return a?a(t):t},[u,m,p,a]),x=c.onFocus,S=(0,H.useRef)(!1),C=X(t=>{if(x?.(t),t.defaultPrevented||Jo(t)||!u||!e||sl(t,e))return;let{virtualFocus:n,baseElement:r}=e.getState();e.setActiveId(u),Fo(t.currentTarget)&&Ks(t.currentTarget),n&&Yo(t)&&(rl(t.currentTarget)||r?.isConnected&&(Go()&&t.currentTarget.hasAttribute(`data-autofocus`)&&t.currentTarget.scrollIntoView({block:`nearest`,inline:`nearest`}),S.current=!0,t.relatedTarget===r||Xs(e,t.relatedTarget)?Js(r):r.focus()))}),w=c.onBlurCapture,T=X(t=>{w?.(t),!t.defaultPrevented&&e?.getState()?.virtualFocus&&S.current&&(S.current=!1,t.preventDefault(),t.stopPropagation())}),E=c.onKeyDown,D=_s(n),O=_s(r),k=X(t=>{if(E?.(t),t.defaultPrevented||!Yo(t)||!e)return;let{currentTarget:n}=t,r=e.getState(),i=!!e.item(u)?.rowId,a=r.orientation!==`horizontal`,o=r.orientation!==`vertical`,s=()=>!!(i||o||!r.baseElement||!Po(r.baseElement)),c={ArrowUp:(i||a)&&e.up,ArrowRight:(i||o)&&e.next,ArrowDown:(i||a)&&e.down,ArrowLeft:(i||o)&&e.previous,Home:()=>{if(s())return!i||t.ctrlKey?e?.first():e?.previous(-1)},End:()=>{if(s())return!i||t.ctrlKey?e?.last():e?.next(-1)},PageUp:()=>ol(n,e,e?.up,!0),PageDown:()=>ol(n,e,e?.down)}[t.key];if(c){if(Fo(n)){let e=Lo(n),r=o&&t.key===`ArrowLeft`,i=o&&t.key===`ArrowRight`,s=a&&t.key===`ArrowUp`,c=a&&t.key===`ArrowDown`;if(i||c){let{length:t}=Io(n);if(e.end!==t)return}else if((r||s)&&e.start!==0)return}let r=c();if(D(t)||r!==void 0){if(!O(t))return;t.preventDefault(),e.move(r)}}}),A=(0,H.useMemo)(()=>({id:u,baseElement:h}),[u,h]);return c=vs(c,e=>(0,W.jsx)(Vs.Provider,{value:A,children:e}),[A]),c={"data-active-item":g||void 0,...c,id:u,ref:us(d,c.ref),tabIndex:y?c.tabIndex:-1,onFocus:C,onBlurCapture:T,onKeyDown:k},c=Bc(c),c=Qs({store:e,...c,getItem:b,shouldRegisterItem:u?c.shouldRegisterItem:!1}),yo({...c,"aria-setsize":_,"aria-posinset":v})});ks(Z(function(e){return Q(nl,cl(e))}));function ll(e){let t=[];for(let n of e)t.push(...n);return t}function ul(e){return e.slice().reverse()}var dl=`div`;function fl(e){return e.some(e=>!!e.rowId)}function pl(e){let t=e.target;return t&&!Po(t)?!1:e.key.length===1&&!e.ctrlKey&&!e.metaKey}function ml(e){return e.key===`Shift`||e.key===`Control`||e.key===`Alt`||e.key===`Meta`}function hl(e,t,n){return X(r=>{if(t?.(r),r.defaultPrevented||r.isPropagationStopped()||!Yo(r)||ml(r)||pl(r))return;let i=Ws(e,e.getState().activeId)?.element;if(!i)return;let{view:a,...o}=r;i!==n?.current&&i.focus(),$o(i,r.type,o)||r.preventDefault(),r.currentTarget.contains(i)&&r.stopPropagation()})}function gl(e){return Us(ll(ul(Gs(e))))}function _l(e,t){let{virtualFocus:n,baseElement:r}=e.getState();if(!n||!r||!Po(r)){t();return}let i=r.scrollLeft,a=r.scrollTop;t(),r.scrollLeft=i,r.scrollTop=a}function vl(e){let[t,n]=(0,H.useState)(!1),r=(0,H.useCallback)(()=>n(!0),[]),i=$(e,t=>Ws(e,t.activeId));return(0,H.useEffect)(()=>{let r=i?.element;t&&r&&(n(!1),_l(e,()=>{r.focus({preventScroll:!0})}))},[e,i,t]),r}var yl=As(function({store:e,composite:t=!0,focusOnMove:n=t,moveOnKeyPress:r=!0,...i}){let a=Rs();e||=a,ho(e,!1);let o=(0,H.useRef)(null),s=(0,H.useRef)(null),c=vl(e),l=$(e,`moves`),[,u]=ls(t?e.setBaseElement:null);(0,H.useEffect)(()=>{if(!e||!l||!t||!n)return;let{activeId:r}=e.getState(),i=Ws(e,r)?.element;i&&_l(e,()=>vc(i))},[e,l,t,n]),Y(()=>{if(!e||!l||!t)return;let{baseElement:n,activeId:r}=e.getState();if(r!==null||!n)return;let i=s.current;s.current=null,i&&Qo(i,{relatedTarget:n}),fc(n)||n.focus()},[e,l,t]);let d=$(e,`activeId`),f=$(e,`virtualFocus`);Y(()=>{if(!e||!t||!f)return;let n=s.current;if(s.current=null,!n)return;let r=Ws(e,d)?.element||Oo(n);r!==n&&Qo(n,{relatedTarget:r})},[e,d,f,t]);let p=hl(e,i.onKeyDownCapture,s),m=hl(e,i.onKeyUpCapture,s),h=i.onFocusCapture,g=X(t=>{if(h?.(t),t.defaultPrevented||!e)return;let{virtualFocus:n}=e.getState();if(!n)return;let r=t.relatedTarget,i=Ys(t.currentTarget);Yo(t)&&i&&(t.stopPropagation(),s.current=r)}),_=i.onFocus,v=X(n=>{if(_?.(n),n.defaultPrevented||!t||!e)return;let{relatedTarget:r}=n,{virtualFocus:i}=e.getState();i?Yo(n)&&!Xs(e,r)&&queueMicrotask(c):Yo(n)&&e.setActiveId(null)}),y=i.onBlurCapture,b=X(t=>{if(y?.(t),t.defaultPrevented||!e)return;let{virtualFocus:n,activeId:r}=e.getState();if(!n)return;let i=Ws(e,r)?.element,a=t.relatedTarget,o=Xs(e,a),c=s.current;s.current=null,Yo(t)&&o?(a===i?c&&c!==a&&Qo(c,t):i?Qo(i,t):c&&Qo(c,t),t.stopPropagation()):!Xs(e,t.target)&&i&&Qo(i,t)}),x=i.onKeyDown,S=_s(r),C=X(t=>{if(x?.(t),t.nativeEvent.isComposing||t.defaultPrevented||!e||!Yo(t))return;let{orientation:n,renderedItems:r,activeId:i}=e.getState();if(Ws(e,i)?.element?.isConnected)return;let a=n!==`horizontal`,o=n!==`vertical`,s=fl(r);if((t.key===`ArrowLeft`||t.key===`ArrowRight`||t.key===`Home`||t.key===`End`)&&Po(t.currentTarget))return;let c={ArrowUp:(s||a)&&(()=>s?gl(r)?.id:e?.last()),ArrowRight:(s||o)&&e.first,ArrowDown:(s||a)&&e.first,ArrowLeft:(s||o)&&e.last,Home:e.first,End:e.last,PageUp:e.first,PageDown:e.last}[t.key];if(c){let n=c();if(n!==void 0){if(!S(t))return;t.preventDefault(),e.move(n)}}});i=vs(i,t=>(0,W.jsx)(zs,{value:e,children:t}),[e]);let w=$(e,n=>{if(e&&t&&n.virtualFocus)return Ws(e,n.activeId)?.id});return i={"aria-activedescendant":w,...i,ref:us(o,u,i.ref),onKeyDownCapture:p,onKeyUpCapture:m,onFocusCapture:g,onFocus:v,onBlurCapture:b,onKeyDown:C},i=Ic({focusable:$(e,e=>t&&(e.virtualFocus||e.activeId===null)),...i}),i});Z(function(e){return Q(dl,yl(e))});var bl=js();bl.useContext,bl.useScopedContext;var xl=bl.useProviderContext,Sl=bl.ContextProvider,Cl=bl.ScopedContextProvider,wl=js([Sl],[Cl]);wl.useContext,wl.useScopedContext;var Tl=wl.useProviderContext,El=wl.ContextProvider,Dl=wl.ScopedContextProvider,Ol=(0,H.createContext)(void 0),kl=(0,H.createContext)(void 0),Al=`div`;function jl(e,t){let n=setTimeout(t,e);return()=>clearTimeout(n)}function Ml(e){let t=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>cancelAnimationFrame(t)}function Nl(...e){return e.join(`, `).split(`, `).reduce((e,t)=>{let n=t.endsWith(`ms`)?1:1e3,r=Number.parseFloat(t||`0s`)*n;return r>e?r:e},0)}function Pl(e,t,n){return!n&&t!==!1&&(!e||!!t)}var Fl=As(function({store:e,alwaysVisible:t,...n}){let r=xl();e||=r,ho(e,!1);let i=(0,H.useRef)(null),a=ds(n.id),[o,s]=(0,H.useState)(null),c=$(e,`open`),l=$(e,`mounted`),u=$(e,`animated`),d=$(e,`contentElement`),f=$(e.disclosure,`contentElement`);Y(()=>{i.current&&e?.setContentElement(i.current)},[e]),Y(()=>{let t;return e?.setState(`animated`,e=>(t=e,!0)),()=>{t!==void 0&&e?.setState(`animated`,t)}},[e]),Y(()=>{if(u){if(!d?.isConnected){s(null);return}return Ml(()=>{s(c?`enter`:l?`leave`:null)})}},[u,d,c,l]),Y(()=>{if(!e||!u||!o||!d)return;let t=()=>e?.setState(`animating`,!1),n=()=>(0,Mr.flushSync)(t);if(o===`leave`&&c||o===`enter`&&!c)return;if(typeof u==`number`)return jl(u,n);let{transitionDuration:r,animationDuration:i,transitionDelay:a,animationDelay:s}=getComputedStyle(d),{transitionDuration:l=`0`,animationDuration:p=`0`,transitionDelay:m=`0`,animationDelay:h=`0`}=f?getComputedStyle(f):{},g=Nl(a,s,m,h)+Nl(r,i,l,p);if(!g){o===`enter`&&e.setState(`animated`,!1),t();return}return jl(Math.max(g-1e3/60,0),n)},[e,u,d,f,c,o]),n=vs(n,t=>(0,W.jsx)(Dl,{value:e,children:t}),[e]);let p=Pl(l,n.hidden,t),m=n.style,h=(0,H.useMemo)(()=>p?{...m,display:`none`}:m,[p,m]);return n={"data-open":c||void 0,"data-enter":o===`enter`||void 0,"data-leave":o===`leave`||void 0,hidden:p,...n,id:a,ref:us(a?e.setContentElement:null,i,n.ref),style:h},yo(n)}),Il=Z(function(e){return Q(Al,Fl(e))});Z(function({unmountOnHide:e,...t}){let n=xl();return $(t.store||n,t=>!e||t?.mounted)===!1?null:(0,W.jsx)(Il,{...t})});function Ll(e={}){let t=Xc(e.store,Jc(e.disclosure,[`contentElement`,`disclosureElement`])),n=t?.getState(),r=J(e.open,n?.open,e.defaultOpen,!1),i=J(e.animated,n?.animated,!1),a=Hc({open:r,animated:i,animating:!!i&&r,mounted:r,contentElement:J(n?.contentElement,null),disclosureElement:J(n?.disclosureElement,null)},t);return Uc(a,()=>Kc(a,[`animated`,`animating`],e=>{e.animated||a.setState(`animating`,!1)})),Uc(a,()=>Gc(a,[`open`],()=>{a.getState().animated&&a.setState(`animating`,!0)})),Uc(a,()=>Kc(a,[`open`,`animating`],e=>{a.setState(`mounted`,e.open||e.animating)})),{...a,disclosure:e.disclosure,setOpen:e=>a.setState(`open`,e),show:()=>a.setState(`open`,!0),hide:()=>a.setState(`open`,!1),toggle:()=>a.setState(`open`,e=>!e),stopAnimation:()=>a.setState(`animating`,!1),setContentElement:e=>a.setState(`contentElement`,e),setDisclosureElement:e=>a.setState(`disclosureElement`,e)}}function Rl(e,t,n){return ms(t,[n.store,n.disclosure]),el(e,n,`open`,`setOpen`),el(e,n,`mounted`,`setMounted`),el(e,n,`animated`),Object.assign(e,{disclosure:n.disclosure})}function zl(e={}){let[t,n]=tl(Ll,e);return Rl(t,n,e)}var Bl=js([El],[Dl]);Bl.useContext,Bl.useScopedContext;var Vl=Bl.useProviderContext,Hl=Bl.ContextProvider,Ul=Bl.ScopedContextProvider;function Wl(e){let t=e.find(e=>!!e.element),n=[...e].reverse().find(e=>!!e.element),r=t?.element?.parentElement;for(;r&&n?.element;){if(n&&r.contains(n.element))return r;r=r.parentElement}return Eo(r).body}function Gl(e){return e?.__unstablePrivateStore}function Kl(e={}){e.store;let t=e.store?.getState(),n=J(e.items,t?.items,e.defaultItems,[]),r=new Map(n.map(e=>[e.id,e])),i={items:n,renderedItems:J(t?.renderedItems,[])},a=Gl(e.store),o=Hc({items:n,renderedItems:i.renderedItems},a),s=Hc(i,e.store),c=e=>{let t=Vo(e,e=>e.element);o.setState(`renderedItems`,t),s.setState(`renderedItems`,t)};Uc(s,()=>Wc(o)),Uc(o,()=>qc(o,[`items`],e=>{s.setState(`items`,e.items)})),Uc(o,()=>qc(o,[`renderedItems`],e=>{let t=!0,n=requestAnimationFrame(()=>{let{renderedItems:t}=s.getState();e.renderedItems!==t&&c(e.renderedItems)});if(typeof IntersectionObserver!=`function`)return()=>cancelAnimationFrame(n);let r=()=>{if(t){t=!1;return}cancelAnimationFrame(n),n=requestAnimationFrame(()=>c(e.renderedItems))},i=Wl(e.renderedItems),a=new IntersectionObserver(r,{root:i});for(let t of e.renderedItems)t.element&&a.observe(t.element);return()=>{cancelAnimationFrame(n),a.disconnect()}}));let l=(e,t,n=!1)=>{let i;return t(t=>{let n=t.findIndex(({id:t})=>t===e.id),a=t.slice();if(n!==-1){i=t[n];let o={...i,...e};a[n]=o,r.set(e.id,o)}else a.push(e),r.set(e.id,e);return a}),()=>{t(t=>{if(!i)return n&&r.delete(e.id),t.filter(({id:t})=>t!==e.id);let a=t.findIndex(({id:t})=>t===e.id);if(a===-1)return t;let o=t.slice();return o[a]=i,r.set(e.id,i),o})}},u=e=>l(e,e=>o.setState(`items`,e),!0);return{...s,registerItem:u,renderItem:e=>lo(u(e),l(e,e=>o.setState(`renderedItems`,e))),item:e=>{if(!e)return null;let t=r.get(e);if(!t){let{items:n}=o.getState();t=n.find(t=>t.id===e),t&&r.set(e,t)}return t||null},__unstablePrivateStore:o}}function ql(e,t,n){return ms(t,[n.store]),el(e,n,`items`,`setItems`),e}var Jl={id:null};function Yl(e,t){return e.find(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Xl(e,t){return e.filter(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Zl(e,t){return e.filter(e=>e.rowId===t)}function Ql(e,t,n=!1){let r=e.findIndex(e=>e.id===t);return[...e.slice(r+1),...n?[Jl]:[],...e.slice(0,r)]}function $l(e){let t=[];for(let n of e){let e=t.find(e=>e[0]?.rowId===n.rowId);e?e.push(n):t.push([n])}return t}function eu(e){let t=0;for(let{length:n}of e)n>t&&(t=n);return t}function tu(e){return{id:`__EMPTY_ITEM__`,disabled:!0,rowId:e}}function nu(e,t,n){let r=eu(e);for(let i of e)for(let e=0;eKc(i,[`renderedItems`,`activeId`],e=>{i.setState(`activeId`,t=>t===void 0?Yl(e.renderedItems)?.id:t)}));let a=(e=`next`,t={})=>{let n=i.getState(),{skip:r=0,activeId:a=n.activeId,focusShift:o=n.focusShift,focusLoop:s=n.focusLoop,focusWrap:c=n.focusWrap,includesBaseElement:l=n.includesBaseElement,renderedItems:u=n.renderedItems,rtl:d=n.rtl}=t,f=e===`up`||e===`down`,p=e===`next`||e===`down`,m=p?d&&!f:!d||f,h=o&&!r,g=f?ll(nu($l(u),a,h)):u;if(g=m?ul(g):g,g=f?ru(g):g,a==null)return Yl(g)?.id;let _=g.find(e=>e.id===a);if(!_)return Yl(g)?.id;let v=g.some(e=>e.rowId),y=g.indexOf(_),b=g.slice(y+1),x=Zl(b,_.rowId);if(r){let e=Xl(x,a);return(e.slice(r)[0]||e[e.length-1])?.id}let S=s&&(f?s!==`horizontal`:s!==`vertical`),C=v&&c&&(f?c!==`horizontal`:c!==`vertical`),w=p?(!v||f)&&S&&l:f?l:!1;if(S)return Yl(Ql(C&&!w?g:Zl(g,_.rowId),a,w),a)?.id;if(C){let e=Yl(w?x:b,a);return w?e?.id||null:e?.id}let T=Yl(x,a);return!T&&w?null:T?.id};return{...n,...i,setBaseElement:e=>i.setState(`baseElement`,e),setActiveId:e=>i.setState(`activeId`,e),move:e=>{e!==void 0&&(i.setState(`activeId`,e),i.setState(`moves`,e=>e+1))},first:()=>Yl(i.getState().renderedItems)?.id,last:()=>Yl(ul(i.getState().renderedItems))?.id,next:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`next`,e)),previous:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`previous`,e)),down:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`down`,e)),up:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`up`,e))}}function au(e){return{id:ds(e.id),...e}}function ou(e,t,n){return e=ql(e,t,n),el(e,n,`activeId`,`setActiveId`),el(e,n,`includesBaseElement`),el(e,n,`virtualFocus`),el(e,n,`orientation`),el(e,n,`rtl`),el(e,n,`focusLoop`),el(e,n,`focusWrap`),el(e,n,`focusShift`),e}var su=(0,H.createContext)(void 0),cu=js([Hl,zs],[Ul,Bs]),lu=cu.useContext,uu=cu.useScopedContext,du=cu.useProviderContext,fu=cu.ContextProvider,pu=cu.ScopedContextProvider,mu=(0,H.createContext)(void 0),hu=(0,H.createContext)(!1),gu=(0,H.createContext)(null),_u=`span`,vu=As(function(e){return e={...e,style:{border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,whiteSpace:`nowrap`,width:`1px`,...e.style}},e});Z(function(e){return Q(_u,vu(e))});var yu=`span`,bu=As(function(e){return e={"data-focus-trap":``,tabIndex:0,"aria-hidden":!0,...e,style:{position:`fixed`,top:0,left:0,...e.style}},e=vu(e),e}),xu=Z(function(e){return Q(yu,bu(e))}),Su=`div`;function Cu(e){return Eo(e).body}function wu(e,t){return t?typeof t==`function`?t(e):t:Eo(e).createElement(`div`)}function Tu(e=`id`){return`${e?`${e}-`:``}${Math.random().toString(36).slice(2,8)}`}function Eu(e){queueMicrotask(()=>{e?.focus()})}var Du=As(function({preserveTabOrder:e,preserveTabOrderAnchor:t,portalElement:n,portalRef:r,portal:i=!0,...a}){let o=(0,H.useRef)(null),s=us(o,a.ref),c=(0,H.useContext)(gu),[l,u]=(0,H.useState)(null),[d,f]=(0,H.useState)(null),p=(0,H.useRef)(null),m=(0,H.useRef)(null),h=(0,H.useRef)(null),g=(0,H.useRef)(null);return Y(()=>{let e=o.current;if(!e||!i){u(null);return}let t=wu(e,n);if(!t){u(null);return}let a=t.isConnected;if(a||(c||Cu(e)).appendChild(t),t.id||=e.id?`portal/${e.id}`:Tu(),u(t),bo(r,t),!a)return()=>{t.remove(),bo(r,null)}},[i,n,c,r]),Y(()=>{if(!i||!e||!t)return;let n=Eo(t).createElement(`span`);return n.style.position=`fixed`,t.insertAdjacentElement(`afterend`,n),f(n),()=>{n.remove(),f(null)}},[i,e,t]),(0,H.useEffect)(()=>{if(!l||!e)return;let t=0,n=e=>{if(!ts(e))return;let n=e.type===`focusin`;if(cancelAnimationFrame(t),n)return _c(l);t=requestAnimationFrame(()=>{gc(l,!0)})};return l.addEventListener(`focusin`,n,!0),l.addEventListener(`focusout`,n,!0),()=>{cancelAnimationFrame(t),l.removeEventListener(`focusin`,n,!0),l.removeEventListener(`focusout`,n,!0)}},[l,e]),a=vs(a,t=>{if(t=(0,W.jsx)(gu.Provider,{value:l||c,children:t}),!i)return t;if(!l)return(0,W.jsx)(`span`,{ref:s,id:a.id,style:{position:`fixed`},hidden:!0});t=(0,W.jsxs)(W.Fragment,{children:[e&&l&&(0,W.jsx)(xu,{ref:m,"data-focus-trap":a.id,className:`__focus-trap-inner-before`,onFocus:e=>{ts(e,l)?Eu(cc()):Eu(p.current)}}),t,e&&l&&(0,W.jsx)(xu,{ref:h,"data-focus-trap":a.id,className:`__focus-trap-inner-after`,onFocus:e=>{ts(e,l)?Eu(uc()):Eu(g.current)}})]}),l&&(t=(0,Mr.createPortal)(t,l));let n=(0,W.jsxs)(W.Fragment,{children:[e&&l&&(0,W.jsx)(xu,{ref:p,"data-focus-trap":a.id,className:`__focus-trap-outer-before`,onFocus:e=>{e.relatedTarget!==g.current&&ts(e,l)?Eu(m.current):Eu(uc())}}),e&&(0,W.jsx)(`span`,{"aria-owns":l?.id,style:{position:`fixed`}}),e&&l&&(0,W.jsx)(xu,{ref:g,"data-focus-trap":a.id,className:`__focus-trap-outer-after`,onFocus:e=>{if(ts(e,l))Eu(h.current);else{let e=cc();if(e===m.current){requestAnimationFrame(()=>cc()?.focus());return}Eu(e)}}})]});return d&&e&&(n=(0,Mr.createPortal)(n,d)),(0,W.jsxs)(W.Fragment,{children:[n,t]})},[l,c,i,a.id,e,d]),a={...a,ref:s},a});Z(function(e){return Q(Su,Du(e))});var Ou=(0,H.createContext)(0);function ku({level:e,children:t}){let n=(0,H.useContext)(Ou),r=Math.max(Math.min(e||n+1,6),1);return(0,W.jsx)(Ou.Provider,{value:r,children:t})}var Au=`div`,ju=As(function({autoFocusOnShow:e=!0,...t}){return t=vs(t,t=>(0,W.jsx)($s.Provider,{value:e,children:t}),[e]),t});Z(function(e){return Q(Au,ju(e))});function Mu(e,t){let n=Eo(e).createElement(`button`);return n.type=`button`,n.tabIndex=-1,n.textContent=`Dismiss popup`,Object.assign(n.style,{border:`0px`,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:`0px`,position:`absolute`,whiteSpace:`nowrap`,width:`1px`}),n.addEventListener(`click`,t),e.prepend(n),()=>{n.removeEventListener(`click`,t),n.remove()}}function Nu(e){let t=(0,H.useRef)(null);return(0,H.useEffect)(()=>{if(!e){t.current=null;return}return rs(`mousedown`,e=>{t.current=e.target},!0)},[e]),t}var Pu=new WeakMap;function Fu(e,t,n){Pu.has(e)||Pu.set(e,new Map);let r=Pu.get(e),i=r.get(t);if(!i)return r.set(t,n()),()=>{var e;(e=r.get(t))==null||e(),r.delete(t)};let a=n(),o=()=>{a(),i(),r.delete(t)};return r.set(t,o),()=>{r.get(t)===o&&(a(),r.set(t,i))}}function Iu(e,t,n){return Fu(e,t,()=>{let r=e.getAttribute(t);return e.setAttribute(t,n),()=>{r==null?e.removeAttribute(t):e.setAttribute(t,r)}})}function Lu(e,t,n){return Fu(e,t,()=>{let r=t in e,i=e[t];return e[t]=n,()=>{r?e[t]=i:delete e[t]}})}function Ru(e,t){return e?Fu(e,`style`,()=>{let n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}):()=>{}}function zu(e,t,n){return e?Fu(e,t,()=>{let r=e.style.getPropertyValue(t);return e.style.setProperty(t,n),()=>{r?e.style.setProperty(t,r):e.style.removeProperty(t)}}):()=>{}}var Bu=[`SCRIPT`,`STYLE`];function Vu(e){return`__ariakit-dialog-snapshot-${e}`}function Hu(e,t){let n=Eo(t),r=Vu(e);if(!n.body[r])return!0;do{if(t===n.body)return!1;if(t[r])return!0;if(!t.parentElement)return!1;t=t.parentElement}while(!0)}function Uu(e,t,n){return Bu.includes(t.tagName)||!Hu(e,t)?!1:!n.some(e=>e&&ko(t,e))}function Wu(e,t,n,r){for(let i of t){if(!i?.isConnected)continue;let a=t.some(e=>!e||e===i?!1:e.contains(i)),o=Eo(i),s=i;for(;i.parentElement&&i!==o.body;){if(r?.(i.parentElement,s),!a)for(let r of i.parentElement.children)Uu(e,r,t)&&n(r,s);i=i.parentElement}}}function Gu(e,t){let{body:n}=Eo(t[0]),r=[];return Wu(e,t,t=>{r.push(Lu(t,Vu(e),!0))}),lo(Lu(n,Vu(e),!0),()=>{for(let e of r)e()})}function Ku(e,...t){if(!e)return!1;let n=e.getAttribute(`data-backdrop`);return n==null?!1:n===``||n===`true`||!t.length?!0:t.some(e=>n===e)}function qu(e=``,t=!1){return`__ariakit-dialog-${t?`ancestor`:`outside`}${e?`-${e}`:``}`}function Ju(e,t=``){return lo(Lu(e,qu(),!0),Lu(e,qu(t),!0))}function Yu(e,t=``){return lo(Lu(e,qu(``,!0),!0),Lu(e,qu(t,!0),!0))}function Xu(e,t){let n=qu(t,!0);if(e[n])return!0;let r=qu(t);do{if(e[r])return!0;if(!e.parentElement)return!1;e=e.parentElement}while(!0)}function Zu(e,t){let n=[],r=t.map(e=>e?.id);return Wu(e,t,t=>{Ku(t,...r)||n.unshift(Ju(t,e))},(t,r)=>{r.hasAttribute(`data-dialog`)&&r.id!==e||n.unshift(Yu(t,e))}),()=>{for(let e of n)e()}}function Qu(e){return e.tagName===`HTML`?!0:ko(Eo(e).body,e)}function $u(e,t){if(!e)return!1;if(ko(e,t))return!0;let n=t.getAttribute(`aria-activedescendant`);if(n){let t=Eo(e).getElementById(n);if(t)return ko(e,t)}return!1}function ed(e,t){if(!(`clientY`in e))return!1;let n=t.getBoundingClientRect();return n.width===0||n.height===0?!1:n.top<=e.clientY&&e.clientY<=n.top+n.height&&n.left<=e.clientX&&e.clientX<=n.left+n.width}function td({store:e,type:t,listener:n,capture:r,domReady:i}){let a=X(n),o=$(e,`open`),s=(0,H.useRef)(!1);Y(()=>{if(!o||!i)return;let{contentElement:t}=e.getState();if(!t)return;let n=()=>{s.current=!0};return t.addEventListener(`focusin`,n,!0),()=>t.removeEventListener(`focusin`,n,!0)},[e,o,i]),(0,H.useEffect)(()=>o?rs(t,t=>{let{contentElement:n,disclosureElement:r}=e.getState(),i=t.target;n&&i&&Qu(i)&&(ko(n,i)||$u(r,i)||i.hasAttribute(`data-focus-trap`)||ed(t,n)||s.current&&!Xu(i,n.id)||Cc(i)||a(t))},r):void 0,[o,r,e,t,a])}function nd(e,t){return typeof e==`function`?e(t):!!e}function rd(e,t,n){let r=Nu($(e,`open`)),i={store:e,domReady:n,capture:!0};td({...i,type:`click`,listener:n=>{let{contentElement:i}=e.getState(),a=r.current;a&&No(a)&&Xu(a,i?.id)&&nd(t,n)&&e.hide()}}),td({...i,type:`focusin`,listener:n=>{let{contentElement:r}=e.getState();r&&n.target!==Eo(r)&&nd(t,n)&&e.hide()}}),td({...i,type:`contextmenu`,listener:n=>{nd(t,n)&&e.hide()}})}var id=(0,H.createContext)({});function ad(e){let t=(0,H.useContext)(id),[n,r]=(0,H.useState)([]),i=(0,H.useCallback)(e=>(r(t=>[...t,e]),lo(t.add?.call(t,e),()=>{r(t=>t.filter(t=>t!==e))})),[t]);Y(()=>Kc(e,[`open`,`contentElement`],n=>{if(n.open&&n.contentElement)return t.add?.call(t,e)}),[e,t]);let a=(0,H.useMemo)(()=>({store:e,add:i}),[e,i]);return{wrapElement:(0,H.useCallback)(e=>(0,W.jsx)(id.Provider,{value:a,children:e}),[a]),nestedDialogs:n}}function od({attribute:e,contentId:t,contentElement:n,enabled:r}){let[i,a]=gs(),o=(0,H.useCallback)(()=>{if(!r||!n)return!1;let{body:i}=Eo(n),a=i.getAttribute(e);return!a||a===t},[i,r,n,e,t]);return(0,H.useEffect)(()=>{if(!r||!t||!n)return;let{body:i}=Eo(n);if(o())return i.setAttribute(e,t),()=>i.removeAttribute(e);let s=new MutationObserver(()=>(0,Mr.flushSync)(a));return s.observe(i,{attributeFilter:[e]}),()=>s.disconnect()},[i,r,t,n,o,e]),o}function sd(e){let t=e.getBoundingClientRect().left;return Math.round(t)+e.scrollLeft?`paddingLeft`:`paddingRight`}function cd(e,t,n){let r=od({attribute:`data-dialog-prevent-body-scroll`,contentElement:e,contentId:t,enabled:n});(0,H.useEffect)(()=>{if(!r()||!e)return;let t=Eo(e),n=Do(e),{documentElement:i,body:a}=t,o=i.style.getPropertyValue(`--scrollbar-width`),s=o?Number.parseInt(o,10):n.innerWidth-i.clientWidth,c=()=>zu(i,`--scrollbar-width`,`${s}px`),l=sd(i),u=()=>Ru(a,{overflow:`hidden`,[l]:`${s}px`}),d=()=>{let{scrollX:e,scrollY:t,visualViewport:r}=n,i=r?.offsetLeft??0,o=r?.offsetTop??0,c=Ru(a,{position:`fixed`,overflow:`hidden`,top:`${-(t-Math.floor(o))}px`,left:`${-(e-Math.floor(i))}px`,right:`0`,[l]:`${s}px`});return()=>{c(),n.scrollTo({left:e,top:t,behavior:`instant`})}},f=Wo()&&!qo();return lo(c(),f?d():u())},[r,e])}function ld(e,...t){if(!e)return!1;let n=e.getAttribute(`data-focus-trap`);return n==null?!1:t.length?n===``?!1:t.some(e=>n===e):!0}function ud(){return`inert`in HTMLElement.prototype}function dd(e){return Iu(e,`aria-hidden`,`true`)}function fd(e,t){return`style`in e?ud()?Lu(e,`inert`,!0):lo(...ac(e,!0).map(e=>{if(t?.some(t=>t&&ko(t,e)))return io;let n=Fu(e,`focus`,()=>(e.focus=io,()=>{delete e.focus}));return lo(Iu(e,`tabindex`,`-1`),n)}),dd(e),Ru(e,{pointerEvents:`none`,userSelect:`none`,cursor:`default`})):io}function pd(e,t){let n=[],r=t.map(e=>e?.id);return Wu(e,t,e=>{Ku(e,...r)||ld(e,...r)||n.unshift(fd(e,t))},e=>{e.hasAttribute(`role`)&&(t.some(t=>t&&ko(t,e))||n.unshift(Iu(e,`role`,`none`)))}),()=>{for(let e of n)e()}}var md=`div`,hd=`a.button.details.dialog.div.form.h1.h2.h3.h4.h5.h6.header.img.input.label.li.nav.ol.p.section.select.span.summary.textarea.ul.svg`.split(`.`);As(function(e){return e});var gd=Z(function(e){return Q(md,e)});Object.assign(gd,hd.reduce((e,t)=>(e[t]=Z(function(e){return Q(t,e)}),e),{}));function _d({store:e,backdrop:t,alwaysVisible:n,hidden:r}){let i=(0,H.useRef)(null),a=zl({disclosure:e}),o=$(e,`contentElement`);(0,H.useEffect)(()=>{let e=i.current,t=o;e&&t&&(e.style.zIndex=getComputedStyle(t).zIndex)},[o]),Y(()=>{let e=o?.id;if(!e)return;let t=i.current;if(t)return Yu(t,e)},[o]);let s=Fl({ref:i,store:a,role:`presentation`,"data-backdrop":o?.id||``,alwaysVisible:n,hidden:r??void 0,style:{position:`fixed`,top:0,right:0,bottom:0,left:0}});if(!t)return null;if((0,H.isValidElement)(t))return(0,W.jsx)(gd,{...s,render:t});let c=typeof t==`boolean`?`div`:t;return(0,W.jsx)(gd,{...s,render:(0,W.jsx)(c,{})})}function vd(e={}){return Ll(e)}function yd(e,t,n){return Rl(e,t,n)}function bd(e={}){let[t,n]=tl(vd,e);return yd(t,n,e)}var xd=`div`,Sd=Go();function Cd(e){let t=Oo();return!t||e&&ko(e,t)?!1:!!nc(t)}function wd(e,t=!1){if(!e)return null;let n=`current`in e?e.current:e;return n?t?nc(n)?n:null:n:null}var Td=As(function({store:e,open:t,onClose:n,focusable:r=!0,modal:i=!0,portal:a=!!i,backdrop:o=!!i,hideOnEscape:s=!0,hideOnInteractOutside:c=!0,getPersistentElements:l,preventBodyScroll:u=!!i,autoFocusOnShow:d=!0,autoFocusOnHide:f=!0,initialFocus:p,finalFocus:m,unmountOnHide:h,unstable_treeSnapshotKey:g,..._}){let v=Tl(),y=(0,H.useRef)(null),b=bd({store:e||v,open:t,setOpen(e){if(e)return;let t=y.current;if(!t)return;let r=new Event(`close`,{bubbles:!1,cancelable:!0});n&&t.addEventListener(`close`,n,{once:!0}),t.dispatchEvent(r),r.defaultPrevented&&b.setOpen(!0)}}),{portalRef:x,domReady:S}=ys(a,_.portalRef),C=_.preserveTabOrder,w=$(b,e=>C&&!i&&e.mounted),T=ds(_.id),E=$(b,`open`),D=$(b,`mounted`),O=$(b,`contentElement`),k=Pl(D,_.hidden,_.alwaysVisible);cd(O,T,u&&!k),rd(b,c,S);let{wrapElement:A,nestedDialogs:j}=ad(b);_=vs(_,A,[A]),Y(()=>{if(!E)return;let e=y.current,t=Oo(e,!0);t&&t.tagName!==`BODY`&&(e&&ko(e,t)||b.setDisclosureElement(t))},[b,E]),Sd&&(0,H.useEffect)(()=>{if(!D)return;let{disclosureElement:e}=b.getState();if(!e||!jo(e))return;let t=()=>{let t=!1,n=()=>{t=!0};e.addEventListener(`focusin`,n,{capture:!0,once:!0}),ns(e,`mouseup`,()=>{e.removeEventListener(`focusin`,n,!0),!t&&mc(e)})};return e.addEventListener(`mousedown`,t),()=>{e.removeEventListener(`mousedown`,t)}},[b,D]),(0,H.useEffect)(()=>{if(!D||!S)return;let e=y.current;if(!e)return;let t=Do(e),n=t.visualViewport||t,r=()=>{let n=t.visualViewport?.height??t.innerHeight;e.style.setProperty(`--dialog-viewport-height`,`${n}px`)};return r(),n.addEventListener(`resize`,r),()=>{n.removeEventListener(`resize`,r)}},[D,S]),(0,H.useEffect)(()=>{if(!i||!D||!S)return;let e=y.current;if(e&&!e.querySelector(`[data-dialog-dismiss]`))return Mu(e,b.hide)},[b,i,D,S]),Y(()=>{if(!ud()||E||!D||!S)return;let e=y.current;if(e)return fd(e)},[E,D,S]);let M=E&&S;Y(()=>{if(!T||!M)return;let e=y.current;return Gu(T,[e])},[T,M,g]);let N=X(l);Y(()=>{if(!T||!M)return;let{disclosureElement:e}=b.getState(),t=[y.current,...N()||[],...j.map(e=>e.getState().contentElement)];return i?lo(Zu(T,t),pd(T,t)):Zu(T,[e,...t])},[T,b,M,N,j,i,g]);let P=!!d,F=_s(d),[I,ee]=(0,H.useState)(!1);(0,H.useEffect)(()=>{if(!E||!P||!S||!O?.isConnected)return;let e=wd(p,!0)||O.querySelector(`[data-autofocus=true],[autofocus]`)||oc(O,!0,a&&w)||O,t=nc(e);F(t?e:null)&&(ee(!0),queueMicrotask(()=>{e.focus(),Sd&&t&&e.scrollIntoView({block:`nearest`,inline:`nearest`})}))},[E,P,S,O,p,a,w,F]);let L=!!f,R=_s(f),[te,ne]=(0,H.useState)(!1);(0,H.useEffect)(()=>{if(E)return ne(!0),()=>ne(!1)},[E]);let re=(0,H.useCallback)((e,t=!0)=>{let{disclosureElement:n}=b.getState();if(Cd(e))return;let r=wd(m)||n;if(r?.id){let e=Eo(r),t=`[aria-activedescendant="${r.id}"]`,n=e.querySelector(t);n&&(r=n)}if(r&&!nc(r)){let e=r.closest(`[data-dialog]`);if(e?.id){let t=Eo(e),n=`[aria-controls~="${e.id}"]`,i=t.querySelector(n);i&&(r=i)}}let i=r&&nc(r);if(!i&&t){requestAnimationFrame(()=>re(e,!1));return}R(i?r:null)&&i&&r?.focus({preventScroll:!0})},[b,m,R]),ie=(0,H.useRef)(!1);Y(()=>{if(E||!te||!L)return;let e=y.current;ie.current=!0,re(e)},[E,te,S,L,re]),(0,H.useEffect)(()=>{if(!te||!L)return;let e=y.current;return()=>{if(ie.current){ie.current=!1;return}re(e)}},[te,L,re]);let ae=_s(s);(0,H.useEffect)(()=>!S||!D?void 0:rs(`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=y.current;if(!t||Xu(t))return;let n=e.target;if(!n)return;let{disclosureElement:r}=b.getState();(n.tagName===`BODY`||ko(t,n)||!r||ko(r,n))&&ae(e)&&b.hide()},!0),[b,S,D,ae]),_=vs(_,e=>(0,W.jsx)(ku,{level:i?1:void 0,children:e}),[i]);let oe=_.hidden,se=_.alwaysVisible;_=vs(_,e=>o?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(_d,{store:b,backdrop:o,hidden:oe,alwaysVisible:se}),e]}):e,[b,o,oe,se]);let[z,B]=(0,H.useState)(),[ce,le]=(0,H.useState)();return _=vs(_,e=>(0,W.jsx)(Dl,{value:b,children:(0,W.jsx)(Ol.Provider,{value:B,children:(0,W.jsx)(kl.Provider,{value:le,children:e})})}),[b]),_={"data-dialog":``,role:`dialog`,tabIndex:r?-1:void 0,"aria-labelledby":z,"aria-describedby":ce,..._,id:T,ref:us(y,_.ref)},_=ju({..._,autoFocusOnShow:I}),_=Fl({store:b,..._}),_=Ic({..._,focusable:r}),_=Du({portal:a,..._,portalRef:x,preserveTabOrder:w}),_});function Ed(e,t=Tl){return Z(function(n){let r=t();return $(n.store||r,e=>!n.unmountOnHide||e?.mounted||!!n.open)?(0,W.jsx)(e,{...n}):null})}Ed(Z(function(e){return Q(xd,Td(e))}),Tl);var Dd=Math.min,Od=Math.max,kd=Math.round,Ad=Math.floor,jd=e=>({x:e,y:e}),Md={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Nd(e,t,n){return Od(e,Dd(t,n))}function Pd(e,t){return typeof e==`function`?e(t):e}function Fd(e){return e.split(`-`)[0]}function Id(e){return e.split(`-`)[1]}function Ld(e){return e===`x`?`y`:`x`}function Rd(e){return e===`y`?`height`:`width`}function zd(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Bd(e){return Ld(zd(e))}function Vd(e,t,n){n===void 0&&(n=!1);let r=Id(e),i=Bd(e),a=Rd(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Xd(o)),[o,Xd(o)]}function Hd(e){let t=Xd(e);return[Ud(e),t,Ud(t)]}function Ud(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Wd=[`left`,`right`],Gd=[`right`,`left`],Kd=[`top`,`bottom`],qd=[`bottom`,`top`];function Jd(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Gd:Wd:t?Wd:Gd;case`left`:case`right`:return t?Kd:qd;default:return[]}}function Yd(e,t,n,r){let i=Id(e),a=Jd(Fd(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Ud)))),a}function Xd(e){let t=Fd(e);return Md[t]+e.slice(t.length)}function Zd(e){return{top:0,right:0,bottom:0,left:0,...e}}function Qd(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Zd(e)}function $d(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function ef(e,t,n){let{reference:r,floating:i}=e,a=zd(t),o=Bd(t),s=Rd(o),c=Fd(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Id(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function tf(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Pd(t,e),p=Qd(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=$d(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=$d(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var nf=50,rf=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:tf},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=ef(l,r,c),f=r,p=0,m={};for(let n=0;n({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Pd(e,t)||{};if(l==null)return{};let d=Qd(u),f={x:n,y:r},p=Bd(i),m=Rd(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Dd(d[_],T),D=Dd(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=Nd(O,A,k),M=!c.arrow&&Id(i)!=null&&A!==j&&a.reference[m]/2-(Ae<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==zd(t))||T.every(e=>zd(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=zd(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},sf=new Set([`left`,`top`]);async function cf(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Fd(n),s=Id(n),c=zd(n)===`y`,l=sf.has(o)?-1:1,u=a&&c?-1:1,d=Pd(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var lf=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await cf(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},uf=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Pd(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=zd(Fd(i)),p=Ld(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=Nd(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=Nd(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},df=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Pd(e,t),u={x:n,y:r},d=zd(i),f=Ld(d),p=u[f],m=u[d],h=Pd(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;pn&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=sf.has(Fd(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);mr&&(m=r)}return{[f]:p,[d]:m}}}},ff=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=Pd(e,t),u=await o.detectOverflow(t,l),d=Fd(i),f=Id(i),p=zd(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=Dd(h-u[g],v),x=Dd(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Od(u.left,0),t=Od(u.right,0),n=Od(u.top,0),r=Od(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Od(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Od(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function pf(){return typeof window<`u`}function mf(e){return _f(e)?(e.nodeName||``).toLowerCase():`#document`}function hf(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function gf(e){return((_f(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function _f(e){return pf()?e instanceof Node||e instanceof hf(e).Node:!1}function vf(e){return pf()?e instanceof Element||e instanceof hf(e).Element:!1}function yf(e){return pf()?e instanceof HTMLElement||e instanceof hf(e).HTMLElement:!1}function bf(e){return!pf()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof hf(e).ShadowRoot}function xf(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Mf(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Sf(e){return/^(table|td|th)$/.test(mf(e))}function Cf(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var wf=/transform|translate|scale|rotate|perspective|filter/,Tf=/paint|layout|strict|content/,Ef=e=>!!e&&e!==`none`,Df;function Of(e){let t=vf(e)?Mf(e):e;return Ef(t.transform)||Ef(t.translate)||Ef(t.scale)||Ef(t.rotate)||Ef(t.perspective)||!Af()&&(Ef(t.backdropFilter)||Ef(t.filter))||wf.test(t.willChange||``)||Tf.test(t.contain||``)}function kf(e){let t=Pf(e);for(;yf(t)&&!jf(t);){if(Of(t))return t;if(Cf(t))return null;t=Pf(t)}return null}function Af(){return Df??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Df}function jf(e){return/^(html|body|#document)$/.test(mf(e))}function Mf(e){return hf(e).getComputedStyle(e)}function Nf(e){return vf(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Pf(e){if(mf(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||bf(e)&&e.host||gf(e);return bf(t)?t.host:t}function Ff(e){let t=Pf(e);return jf(t)?e.ownerDocument?e.ownerDocument.body:e.body:yf(t)&&xf(t)?t:Ff(t)}function If(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Ff(e),i=r===e.ownerDocument?.body,a=hf(r);if(i){let e=Lf(a);return t.concat(a,a.visualViewport||[],xf(r)?r:[],e&&n?If(e):[])}else return t.concat(r,If(r,[],n))}function Lf(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Rf(e){let t=Mf(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=yf(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=kd(n)!==a||kd(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function zf(e){return vf(e)?e:e.contextElement}function Bf(e){let t=zf(e);if(!yf(t))return jd(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Rf(t),o=(a?kd(n.width):n.width)/r,s=(a?kd(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var Vf=jd(0);function Hf(e){let t=hf(e);return!Af()||!t.visualViewport?Vf:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Uf(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==hf(e)?!1:t}function Wf(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=zf(e),o=jd(1);t&&(r?vf(r)&&(o=Bf(r)):o=Bf(e));let s=Uf(a,n,r)?Hf(a):jd(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=hf(a),t=r&&vf(r)?hf(r):r,n=e,i=Lf(n);for(;i&&r&&t!==n;){let e=Bf(i),t=i.getBoundingClientRect(),r=Mf(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=hf(i),i=Lf(n)}}return $d({width:u,height:d,x:c,y:l})}function Gf(e,t){let n=Nf(e).scrollLeft;return t?t.left+n:Wf(gf(e)).left+n}function Kf(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Gf(e,n),y:n.top+t.scrollTop}}function qf(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=gf(r),s=t?Cf(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=jd(1),u=jd(0),d=yf(r);if((d||!d&&!a)&&((mf(r)!==`body`||xf(o))&&(c=Nf(r)),d)){let e=Wf(r);l=Bf(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Kf(o,c):jd(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Jf(e){return Array.from(e.getClientRects())}function Yf(e){let t=gf(e),n=Nf(e),r=e.ownerDocument.body,i=Od(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Od(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Gf(e),s=-n.scrollTop;return Mf(r).direction===`rtl`&&(o+=Od(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var Xf=25;function Zf(e,t){let n=hf(e),r=gf(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Af();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Gf(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=Xf&&(a-=o)}else l<=Xf&&(a+=l);return{width:a,height:o,x:s,y:c}}function Qf(e,t){let n=Wf(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=yf(e)?Bf(e):jd(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function $f(e,t,n){let r;if(t===`viewport`)r=Zf(e,n);else if(t===`document`)r=Yf(gf(e));else if(vf(t))r=Qf(t,n);else{let n=Hf(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return $d(r)}function ep(e,t){let n=Pf(e);return n===t||!vf(n)||jf(n)?!1:Mf(n).position===`fixed`||ep(n,t)}function tp(e,t){let n=t.get(e);if(n)return n;let r=If(e,[],!1).filter(e=>vf(e)&&mf(e)!==`body`),i=null,a=Mf(e).position===`fixed`,o=a?Pf(e):e;for(;vf(o)&&!jf(o);){let t=Mf(o),n=Of(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||xf(o)&&!n&&ep(e,o))?r=r.filter(e=>e!==o):i=t,o=Pf(o)}return t.set(e,r),r}function np(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Cf(t)?[]:tp(t,this._c):[].concat(n),r],o=$f(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e{o(!1,1e-7)},1e3)}n===1&&!dp(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function pp(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=zf(e),u=i||a?[...l?If(l):[],...t?If(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?fp(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Wf(e):null;c&&g();function g(){let t=Wf(e);h&&!dp(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var mp=lf,hp=uf,gp=of,_p=ff,vp=af,yp=df,bp=(e,t,n)=>{let r=new Map,i={platform:up,...n},a={...i.platform,_c:r};return rf(e,t,{...i,platform:a})},xp=`div`;function Sp(e=0,t=0,n=0,r=0){if(typeof DOMRect==`function`)return new DOMRect(e,t,n,r);let i={x:e,y:t,width:n,height:r,top:t,right:e+n,bottom:t+r,left:e};return{...i,toJSON:()=>i}}function Cp(e){if(!e)return Sp();let{x:t,y:n,width:r,height:i}=e;return Sp(t,n,r,i)}function wp(e,t){return{contextElement:e||void 0,getBoundingClientRect:()=>{let n=e,r=t?.(n);return r||!n?Cp(r):n.getBoundingClientRect()}}}function Tp(e){return/^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(e)}function Ep(e){let t=window.devicePixelRatio||1;return Math.round(e*t)/t}function Dp(e,t){return mp(({placement:n})=>{let r=(e?.clientHeight||0)/2,i=typeof t.gutter==`number`?t.gutter+r:t.gutter??r;return{crossAxis:n.split(`-`)[1]?void 0:t.shift,mainAxis:i,alignmentAxis:t.shift}})}function Op(e){if(e.flip===!1)return;let t=typeof e.flip==`string`?e.flip.split(` `):void 0;return ho(!t||t.every(Tp),!1),gp({padding:e.overflowPadding,fallbackPlacements:t})}function kp(e){if(!(!e.slide&&!e.overlap))return hp({mainAxis:e.slide,crossAxis:e.overlap,padding:e.overflowPadding,limiter:yp()})}function Ap(e){return _p({padding:e.overflowPadding,apply({elements:t,availableWidth:n,availableHeight:r,rects:i}){let a=t.floating,o=Math.round(i.reference.width);n=Math.floor(n),r=Math.floor(r),a.style.setProperty(`--popover-anchor-width`,`${o}px`),a.style.setProperty(`--popover-available-width`,`${n}px`),a.style.setProperty(`--popover-available-height`,`${r}px`),e.sameWidth&&(a.style.width=`${o}px`),e.fitViewport&&(a.style.maxWidth=`${n}px`,a.style.maxHeight=`${r}px`)}})}function jp(e,t){if(e)return vp({element:e,padding:t.arrowPadding})}var Mp=As(function({store:e,modal:t=!1,portal:n=!!t,preserveTabOrder:r=!0,autoFocusOnShow:i=!0,wrapperProps:a,fixed:o=!1,flip:s=!0,shift:c=0,slide:l=!0,overlap:u=!1,sameWidth:d=!1,fitViewport:f=!1,gutter:p,arrowPadding:m=4,overflowPadding:h=8,getAnchorRect:g,updatePosition:_,...v}){let y=Vl();e||=y,ho(e,!1);let b=$(e,`arrowElement`),x=$(e,`anchorElement`),S=$(e,`disclosureElement`),C=$(e,`popoverElement`),w=$(e,`contentElement`),T=$(e,`placement`),E=$(e,`mounted`),D=$(e,`rendered`),O=(0,H.useRef)(null),[k,A]=(0,H.useState)(!1),{portalRef:j,domReady:M}=ys(n,v.portalRef),N=X(g),P=X(_),F=!!_;Y(()=>{if(!C?.isConnected)return;C.style.setProperty(`--popover-overflow-padding`,`${h}px`);let t=wp(x,N),n=async()=>{if(!E)return;b||(O.current=O.current||document.createElement(`div`));let n=b||O.current,r=[Dp(n,{gutter:p,shift:c}),Op({flip:s,overflowPadding:h}),kp({slide:l,shift:c,overlap:u,overflowPadding:h}),jp(n,{arrowPadding:m}),Ap({sameWidth:d,fitViewport:f,overflowPadding:h})],i=await bp(t,C,{placement:T,strategy:o?`fixed`:`absolute`,middleware:r});e?.setState(`currentPlacement`,i.placement),A(!0);let a=Ep(i.x),g=Ep(i.y);if(Object.assign(C.style,{top:`0`,left:`0`,transform:`translate3d(${a}px,${g}px,0)`}),n&&i.middlewareData.arrow){let{x:e,y:t}=i.middlewareData.arrow,r=i.placement.split(`-`)[0],a=n.clientWidth/2,o=n.clientHeight/2,s=e==null?-a:e+a,c=t==null?-o:t+o;C.style.setProperty(`--popover-transform-origin`,{top:`${s}px calc(100% + ${o}px)`,bottom:`${s}px ${-o}px`,left:`calc(100% + ${a}px) ${c}px`,right:`${-a}px ${c}px`}[r]),Object.assign(n.style,{left:e==null?``:`${e}px`,top:t==null?``:`${t}px`,[r]:`100%`})}},r=pp(t,C,async()=>{F?(await P({updatePosition:n}),A(!0)):await n()},{elementResize:typeof ResizeObserver==`function`});return()=>{A(!1),r()}},[e,D,C,b,x,C,T,E,M,o,s,c,l,u,d,f,p,m,h,N,F,P]),Y(()=>{if(!E||!M||!C?.isConnected||!w?.isConnected)return;let e=()=>{C.style.zIndex=getComputedStyle(w).zIndex};e();let t=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>cancelAnimationFrame(t)},[E,M,C,w]);let I=o?`fixed`:`absolute`;return v=vs(v,t=>(0,W.jsx)(`div`,{...a,style:{position:I,top:0,left:0,width:`max-content`,...a?.style},ref:e?.setPopoverElement,children:t}),[e,I,a]),v=vs(v,t=>(0,W.jsx)(Ul,{value:e,children:t}),[e]),v={"data-placing":!k||void 0,...v,style:{position:`relative`,...v.style}},v=Td({store:e,modal:t,portal:n,preserveTabOrder:r,preserveTabOrderAnchor:S||x,autoFocusOnShow:k&&i,...v,portalRef:j}),v});Ed(Z(function(e){return Q(xp,Mp(e))}),Vl);function Np({popover:e,...t}={}){let n=Xc(t.store,Jc(e,[`arrowElement`,`anchorElement`,`contentElement`,`popoverElement`,`disclosureElement`])),r=n?.getState(),i=vd({...t,store:n}),a=J(t.placement,r?.placement,`bottom`),o=Hc({...i.getState(),placement:a,currentPlacement:a,anchorElement:J(r?.anchorElement,null),popoverElement:J(r?.popoverElement,null),arrowElement:J(r?.arrowElement,null),rendered:Symbol(`rendered`)},i,n);return{...i,...o,setAnchorElement:e=>o.setState(`anchorElement`,e),setPopoverElement:e=>o.setState(`popoverElement`,e),setArrowElement:e=>o.setState(`arrowElement`,e),render:()=>o.setState(`rendered`,Symbol(`rendered`))}}function Pp(e,t,n){return ms(t,[n.popover]),el(e,n,`placement`),yd(e,t,n)}var Fp=`div`,Ip=As(function({store:e,...t}){let n=Vl();return e||=n,t={...t,ref:us(e?.setAnchorElement,t.ref)},t});Z(function(e){return Q(Fp,Ip(e))});var Lp=(0,H.createContext)(void 0),Rp=`div`,zp=As(function(e){let[t,n]=(0,H.useState)();return e=vs(e,e=>(0,W.jsx)(Lp.Provider,{value:n,children:e}),[]),e={role:`group`,"aria-labelledby":t,...e},yo(e)});Z(function(e){return Q(Rp,zp(e))});var Bp=`div`,Vp=As(function({store:e,...t}){return t=zp(t),t});Z(function(e){return Q(Bp,Vp(e))});var Hp=`div`,Up=As(function(e){let t=(0,H.useContext)(Lp),n=ds(e.id);return Y(()=>(t?.(n),()=>t?.(void 0)),[t,n]),e={"aria-hidden":!0,...e,id:n},yo(e)});Z(function(e){return Q(Hp,Up(e))});var Wp=`div`,Gp=As(function({store:e,...t}){return t=Up(t),t});Z(function(e){return Q(Wp,Gp(e))});var Kp=`div`;function qp(e){let t=e.relatedTarget;return t?.nodeType===Node.ELEMENT_NODE?t:null}function Jp(e){let t=qp(e);return t?ko(e.currentTarget,t):!1}var Yp=Symbol(`composite-hover`);function Xp(e){let t=qp(e);if(!t)return!1;do{if(co(t,Yp)&&t[Yp])return!0;t=t.parentElement}while(t);return!1}var Zp=As(function({store:e,focusOnHover:t=!0,blurOnHoverEnd:n=!!t,...r}){let i=Ls();e||=i,ho(e,!1);let a=Ss(),o=r.onMouseMove,s=_s(t),c=X(t=>{if(o?.(t),!t.defaultPrevented&&a()&&s(t)){if(!pc(t.currentTarget)){let t=e?.getState().baseElement;t&&!fc(t)&&t.focus()}e?.setActiveId(t.currentTarget.id)}}),l=r.onMouseLeave,u=_s(n),d=X(t=>{var n;l?.(t),!t.defaultPrevented&&a()&&(Jp(t)||Xp(t)||s(t)&&u(t)&&(e?.setActiveId(null),(n=e?.getState().baseElement)==null||n.focus()))}),f=(0,H.useCallback)(e=>{e&&(e[Yp]=!0)},[]);return r={...r,ref:us(f,r.ref),onMouseMove:c,onMouseLeave:d},yo(r)});ks(Z(function(e){return Q(Kp,Zp(e))}));var Qp=`input`;function $p(e,t,n){return n?e.find(e=>!e.disabled&&e.value)?.value===t:!1}function em(e,t){return!t||e==null?!1:(e=uo(e),t.length>e.length&&t.toLowerCase().indexOf(e.toLowerCase())===0)}function tm(e){return e.type===`input`}function nm(e){return e===`inline`||e===`list`||e===`both`||e===`none`}function rm(e){return e.find(e=>e.disabled?!1:e.element?.getAttribute(`role`)!==`tab`)?.id}var im=As(function({store:e,focusable:t=!0,autoSelect:n=!1,getAutoSelectId:r,setValueOnChange:i,showMinLength:a=0,showOnChange:o,showOnMouseDown:s,showOnClick:c=s,showOnKeyDown:l,showOnKeyPress:u=l,blurActiveItemOnClick:d,setValueOnClick:f=!0,moveOnKeyPress:p=!0,autoComplete:m=`list`,...h}){let g=du();e||=g,ho(e,!1);let _=(0,H.useRef)(null),[v,y]=gs(),b=(0,H.useRef)(!1),x=(0,H.useRef)(!1),S=$(e,e=>e.virtualFocus&&n),C=m===`inline`||m===`both`,[w,T]=(0,H.useState)(C);hs(()=>{C&&T(!0)},[C]);let E=$(e,`value`),D=(0,H.useRef)(void 0);(0,H.useEffect)(()=>Kc(e,[`selectedValue`,`activeId`],(e,t)=>{D.current=t.selectedValue}),[e]);let O=$(e,e=>{if(C&&w&&!(e.activeValue&&Array.isArray(e.selectedValue)&&(e.selectedValue.includes(e.activeValue)||D.current?.includes(e.activeValue))))return e.activeValue}),k=$(e,`renderedItems`),A=$(e,`open`),j=$(e,`contentElement`),M=(0,H.useMemo)(()=>!C||!w?E:$p(k,O,S)?em(E,O)?E+(O?.slice(E.length)||``):E:O||E,[C,w,k,O,S,E]);(0,H.useEffect)(()=>{let e=_.current;if(!e)return;let t=()=>T(!0);return e.addEventListener(`combobox-item-move`,t),()=>{e.removeEventListener(`combobox-item-move`,t)}},[]),(0,H.useEffect)(()=>{if(!C||!w||!O||!$p(k,O,S)||!em(E,O))return;let e=io;return queueMicrotask(()=>{let t=_.current;if(!t)return;let{start:n,end:r}=Lo(t),i=E.length,a=O.length;Bo(t,i,a),e=()=>{if(!fc(t))return;let{start:e,end:o}=Lo(t);e===i&&o===a&&Bo(t,n,r)}}),()=>e()},[v,C,w,O,k,S,E]);let N=(0,H.useRef)(null),P=X(r),F=(0,H.useRef)(null),I=(0,H.useRef)(!1),ee=(0,H.useRef)(!1);(0,H.useEffect)(()=>{if(!A||!j)return;let t=zo(j);if(!t)return;N.current=t;let n=()=>{b.current=!1,I.current=!0},r=()=>{if(ee.current||(I.current=!0),!e||!b.current)return;let{activeId:t}=e.getState();t!==null&&t!==F.current&&(b.current=!1)},i={passive:!0,capture:!0};return t.addEventListener(`wheel`,n,i),t.addEventListener(`touchmove`,n,i),t.addEventListener(`scroll`,r,i),()=>{t.removeEventListener(`wheel`,n,!0),t.removeEventListener(`touchmove`,n,!0),t.removeEventListener(`scroll`,r,!0)}},[A,j,e]),Y(()=>{I.current=!1,E&&(x.current||(b.current=!0))},[E]),Y(()=>{S!==`always`&&A||(b.current=A)},[S,A]);let L=$(e,`resetValueOnSelect`);ms(()=>{let t=b.current;if(!e||!A||!t&&(!L||I.current))return;let{baseElement:n,contentElement:r,activeId:i}=e.getState();if(!(n&&!fc(n))){if(r?.hasAttribute(`data-placing`)){let e=new MutationObserver(y);return e.observe(r,{attributeFilter:[`data-placing`]}),()=>e.disconnect()}if(S&&t){let t=P(k),n=t===void 0?rm(k)??e.first():t;F.current=n,e.move(n??null)}else{let t=e.item(i||e.first())?.element;t&&`scrollIntoView`in t&&(ee.current=!0,t.scrollIntoView({block:`nearest`,inline:`nearest`}),requestAnimationFrame(()=>{ee.current=!1}))}}},[e,A,v,E,S,L,P,k]),(0,H.useEffect)(()=>{if(!C)return;let t=_.current;if(!t)return;let n=[t,j].filter(e=>!!e),r=t=>{n.every(e=>ts(t,e))&&e?.setValue(M)};for(let e of n)e.addEventListener(`focusout`,r);return()=>{for(let e of n)e.removeEventListener(`focusout`,r)}},[C,j,e,M]);let R=e=>e.currentTarget.value.length>=a,te=h.onChange,ne=_s(o??R),re=_s(i??!e.tag),ie=X(t=>{if(te?.(t),t.defaultPrevented||!e)return;let n=t.currentTarget,{value:r,selectionStart:i,selectionEnd:a}=n,o=t.nativeEvent;if(b.current=!0,tm(o)&&(o.isComposing&&(b.current=!1,x.current=!0),C)){let e=o.inputType===`insertText`||o.inputType===`insertCompositionText`,t=i===r.length;T(e&&t)}if(re(t)){let t=r===e.getState().value;e.setValue(r),queueMicrotask(()=>{Bo(n,i,a)}),C&&S&&t&&y()}ne(t)&&e.show(),(!S||!b.current)&&e.setActiveId(null)}),ae=h.onCompositionEnd,oe=X(e=>{b.current=!0,x.current=!1,ae?.(e),!e.defaultPrevented&&S&&y()}),se=h.onMouseDown,z=_s(d??(()=>!!e?.getState().includesBaseElement)),B=_s(f),ce=_s(c??R),le=X(t=>{se?.(t),!t.defaultPrevented&&(t.button||t.ctrlKey||e&&(z(t)&&e.setActiveId(null),B(t)&&e.setValue(M),ce(t)&&ns(t.currentTarget,`mouseup`,e.show)))}),ue=h.onKeyDown,de=_s(u??R),fe=X(t=>{if(ue?.(t),t.repeat||(b.current=!1),t.defaultPrevented||t.ctrlKey||t.altKey||t.shiftKey||t.metaKey||!e)return;let{open:n}=e.getState();n||(t.key===`ArrowUp`||t.key===`ArrowDown`)&&de(t)&&(t.preventDefault(),e.show())}),pe=h.onBlur,me=X(e=>{b.current=!1,pe?.(e),e.defaultPrevented}),he=ds(h.id),ge=nm(m)?m:void 0,_e=$(e,e=>e.activeId===null);return h={role:`combobox`,"aria-autocomplete":ge,"aria-haspopup":Ro(j,`listbox`),"aria-expanded":A,"aria-controls":j?.id,"data-active-item":_e||void 0,value:M,...h,id:he,ref:us(_,h.ref),onChange:ie,onCompositionEnd:oe,onMouseDown:le,onKeyDown:fe,onBlur:me},h=yl({store:e,focusable:t,...h,moveOnKeyPress:e=>_o(p,e)?!1:(C&&T(!0),!0)}),h=Ip({store:e,...h}),{autoComplete:`off`,...h}}),am=Z(function(e){return Q(Qp,im(e))}),om=`div`,sm=As(function({store:e,...t}){let n=uu();return e||=n,ho(e,!1),Ro($(e,`contentElement`))===`grid`&&(t={role:`rowgroup`,...t}),t=Vp({store:e,...t}),t}),cm=Z(function(e){return Q(om,sm(e))}),lm=`div`,um=As(function(e){return e=Gp(e),e}),dm=Z(function(e){return Q(lm,um(e))}),fm=`div`;function pm(e,t){if(t!=null)return e==null?!1:Array.isArray(e)?e.includes(t):e===t}function mm(e){return{menu:`menuitem`,listbox:`option`,tree:`treeitem`}[e]??`option`}var hm=As(function({store:e,value:t,hideOnClick:n,setValueOnClick:r,selectValueOnClick:i=!0,resetValueOnSelect:a,focusOnHover:o=!1,moveOnKeyPress:s=!0,getItem:c,...l}){let u=uu();e||=u,ho(e,!1);let{resetValueOnSelectState:d,multiSelectable:f,selected:p}=$c(e,{resetValueOnSelectState:`resetValueOnSelect`,multiSelectable(e){return Array.isArray(e.selectedValue)},selected(e){return pm(e.selectedValue,t)}}),m=(0,H.useCallback)(e=>{let n={...e,value:t};return c?c(n):n},[t,c]);r??=!f,n??=t!=null&&!f;let h=l.onClick,g=_s(r),_=_s(i),v=_s(a??d??f),y=_s(n),b=X(n=>{h?.(n),!n.defaultPrevented&&(Zo(n)||Xo(n)||(t!=null&&(_(n)&&(v(n)&&e?.resetValue(),e?.setSelectedValue(e=>Array.isArray(e)?e.includes(t)?e.filter(e=>e!==t):[...e,t]:t)),g(n)&&e?.setValue(t)),y(n)&&e?.hide()))}),x=l.onKeyDown,S=X(t=>{if(x?.(t),t.defaultPrevented)return;let n=e?.getState().baseElement;n&&(fc(n)||(t.key.length===1||t.key===`Backspace`||t.key===`Delete`)&&(queueMicrotask(()=>n.focus()),Po(n)&&e?.setValue(n.value)))});f&&p!=null&&(l={"aria-selected":p,...l}),l=vs(l,e=>(0,W.jsx)(mu.Provider,{value:t,children:(0,W.jsx)(hu.Provider,{value:p??!1,children:e})}),[t,p]),l={role:mm((0,H.useContext)(su)),children:t,...l,onClick:b,onKeyDown:S};let C=_s(s);return l=cl({store:e,...l,getItem:m,moveOnKeyPress:t=>{if(!C(t))return!1;let n=new Event(`combobox-item-move`);return(e?.getState().baseElement)?.dispatchEvent(n),!0}}),l=Zp({store:e,focusOnHover:o,...l}),l}),gm=ks(Z(function(e){return Q(fm,hm(e))})),_m=`div`,vm=As(function({store:e,alwaysVisible:t,...n}){let r=uu(!0),i=lu();e||=i;let a=!!e&&e===r;ho(e,!1);let o=(0,H.useRef)(null),s=ds(n.id),c=$(e,`mounted`),l=Pl(c,n.hidden,t),u=l?{...n.style,display:`none`}:n.style,d=$(e,e=>Array.isArray(e.selectedValue)),f=ps(o,`role`,n.role),p=(f===`listbox`||f===`tree`||f===`grid`)&&d||void 0,[m,h]=(0,H.useState)(!1),g=$(e,`contentElement`);Y(()=>{if(!c)return;let e=o.current;if(!e||g!==e)return;let t=()=>{h(!!e.querySelector(`[role='listbox']`))},n=new MutationObserver(t);return n.observe(e,{subtree:!0,childList:!0,attributeFilter:[`role`]}),t(),()=>n.disconnect()},[c,g]),m||(n={role:`listbox`,"aria-multiselectable":p,...n}),n=vs(n,t=>(0,W.jsx)(pu,{value:e,children:(0,W.jsx)(su.Provider,{value:f,children:t})}),[e,f]);let _=s&&(!r||!a)?e.setContentElement:null;return n={hidden:l,...n,id:s,ref:us(_,o,n.ref),style:u},yo(n)}),ym=Z(function(e){return Q(_m,vm(e))}),bm=`div`;function xm(e,...t){if(!e)return!1;if(`id`in e){let n=t.filter(Boolean).map(e=>`[aria-controls~="${e}"]`).join(`, `);return n?e.matches(n):!1}return!1}var Sm=As(function({store:e,modal:t,tabIndex:n,alwaysVisible:r,autoFocusOnHide:i=!0,hideOnInteractOutside:a=!0,...o}){let s=du();e||=s,ho(e,!1);let c=$(e,`baseElement`),l=(0,H.useRef)(!1),u=$(e.tag,e=>e?.renderedItems.length);return o=vm({store:e,alwaysVisible:r,...o}),o=Mp({store:e,modal:t,alwaysVisible:r,backdrop:!1,autoFocusOnShow:!1,finalFocus:c,preserveTabOrderAnchor:null,unstable_treeSnapshotKey:u,...o,getPersistentElements(){let n=o.getPersistentElements?.call(o)||[];if(!t||!e)return n;let{contentElement:r,baseElement:i}=e.getState();if(!i)return n;let a=Eo(i),s=[];if(r?.id&&s.push(`[aria-controls~="${r.id}"]`),i?.id&&s.push(`[aria-controls~="${i.id}"]`),!s.length)return[...n,i];let c=s.join(`,`),l=a.querySelectorAll(c);return[...n,...l]},autoFocusOnHide(e){return _o(i,e)?!1:l.current?(l.current=!1,!1):!0},hideOnInteractOutside(t){let n=e?.getState(),r=n?.contentElement?.id,i=n?.baseElement?.id;if(xm(t.target,r,i))return!1;let o=typeof a==`function`?a(t):a;return o&&(l.current=t.type===`click`),o}}),o}),Cm=Ed(Z(function(e){return Q(bm,Sm(e))}),du);(0,H.createContext)(null),(0,H.createContext)(null);var wm=js([zs],[Bs]),Tm=wm.useContext;wm.useScopedContext,wm.useProviderContext,wm.ContextProvider,wm.ScopedContextProvider;var Em=Go()&&Uo();function Dm({tag:e,...t}={}){let n=Xc(t.store,Yc(e,[`value`,`rtl`])),r=e?.getState(),i=n?.getState(),a=J(t.activeId,i?.activeId,t.defaultActiveId,null),o=iu({...t,activeId:a,includesBaseElement:J(t.includesBaseElement,i?.includesBaseElement,!0),orientation:J(t.orientation,i?.orientation,`vertical`),focusLoop:J(t.focusLoop,i?.focusLoop,!0),focusWrap:J(t.focusWrap,i?.focusWrap,!0),virtualFocus:J(t.virtualFocus,i?.virtualFocus,!0)}),s=Np({...t,placement:J(t.placement,i?.placement,`bottom-start`)}),c=J(t.value,i?.value,t.defaultValue,``),l=J(t.selectedValue,i?.selectedValue,r?.values,t.defaultSelectedValue,``),u=Array.isArray(l),d={...o.getState(),...s.getState(),value:c,selectedValue:l,resetValueOnSelect:J(t.resetValueOnSelect,i?.resetValueOnSelect,u),resetValueOnHide:J(t.resetValueOnHide,i?.resetValueOnHide,u&&!e),activeValue:i?.activeValue},f=Hc(d,o,s,n);return Em&&Uc(f,()=>Kc(f,[`virtualFocus`],()=>{f.setState(`virtualFocus`,!1)})),Uc(f,()=>{if(e)return lo(Kc(f,[`selectedValue`],t=>{Array.isArray(t.selectedValue)&&e.setValues(t.selectedValue)}),Kc(e,[`values`],e=>{f.setState(`selectedValue`,e.values)}))}),Uc(f,()=>Kc(f,[`resetValueOnHide`,`mounted`],e=>{e.resetValueOnHide&&(e.mounted||f.setState(`value`,c))})),Uc(f,()=>Kc(f,[`open`],e=>{e.open||(f.setState(`activeId`,a),f.setState(`moves`,0))})),Uc(f,()=>Kc(f,[`moves`,`activeId`],(e,t)=>{e.moves===t.moves&&f.setState(`activeValue`,void 0)})),Uc(f,()=>qc(f,[`moves`,`renderedItems`],(e,t)=>{if(e.moves===t.moves)return;let{activeId:n}=f.getState(),r=o.item(n);f.setState(`activeValue`,r?.value)})),{...s,...o,...f,tag:e,setValue:e=>f.setState(`value`,e),resetValue:()=>f.setState(`value`,d.value),setSelectedValue:e=>f.setState(`selectedValue`,e)}}function Om(e){let t=Tm();return e={...e,tag:e.tag===void 0?t:e.tag},au(e)}function km(e,t,n){return ms(t,[n.tag]),el(e,n,`value`,`setValue`),el(e,n,`selectedValue`,`setSelectedValue`),el(e,n,`resetValueOnHide`),el(e,n,`resetValueOnSelect`),Object.assign(ou(Pp(e,t,n),t,n),{tag:n.tag})}function Am(e={}){e=Om(e);let[t,n]=tl(Dm,e);return km(t,n,e)}function jm(e={}){return(0,W.jsx)(fu,{value:Am(e),children:e.children})}function Mm(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M232 306.667h48V176h-48v130.667z`},child:[]},{tag:`path`,attr:{d:`M407.67 170.271l30.786-30.786-33.942-33.941-30.785 30.786C341.217 111.057 300.369 96 256 96 149.961 96 64 181.961 64 288s85.961 192 192 192 192-85.961 192-192c0-44.369-15.057-85.217-40.33-117.729zm-45.604 223.795C333.734 422.398 296.066 438 256 438s-77.735-15.602-106.066-43.934C121.602 365.735 106 328.066 106 288s15.602-77.735 43.934-106.066C178.265 153.602 215.934 138 256 138s77.734 15.602 106.066 43.934C390.398 210.265 406 247.934 406 288s-15.602 77.735-43.934 106.066zM192 32h128v48H192z`},child:[]}]})(e)}function Nm(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 48C140.559 48 48 140.559 48 256c0 115.436 92.559 208 208 208 115.435 0 208-92.564 208-208 0-115.441-92.564-208-208-208zm104.002 282.881l-29.12 29.117L256 285.117l-74.881 74.881-29.121-29.117L226.881 256l-74.883-74.881 29.121-29.116L256 226.881l74.881-74.878 29.12 29.116L285.119 256l74.883 74.881z`},child:[]}]})(e)}var Pm=e(t(((e,t)=>{var n=200,r=`Expected a function`,i=`__lodash_hash_undefined__`,a=500,o=1,s=2,c=1/0,l=9007199254740991,u=`[object Arguments]`,d=`[object Array]`,f=`[object AsyncFunction]`,p=`[object Boolean]`,m=`[object Date]`,h=`[object Error]`,g=`[object Function]`,_=`[object GeneratorFunction]`,v=`[object Map]`,y=`[object Number]`,b=`[object Null]`,x=`[object Object]`,S=`[object Promise]`,C=`[object Proxy]`,w=`[object RegExp]`,T=`[object Set]`,E=`[object String]`,D=`[object Symbol]`,O=`[object Undefined]`,k=`[object WeakMap]`,A=`[object ArrayBuffer]`,j=`[object DataView]`,M=`[object Float32Array]`,N=`[object Float64Array]`,P=`[object Int8Array]`,F=`[object Int16Array]`,I=`[object Int32Array]`,ee=`[object Uint8Array]`,L=`[object Uint8ClampedArray]`,R=`[object Uint16Array]`,te=`[object Uint32Array]`,ne=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,re=/^\w*$/,ie=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ae=/[\\^$.*+?()[\]{}|]/g,oe=/\\(\\)?/g,se=/^\[object .+?Constructor\]$/,z=/^(?:0|[1-9]\d*)$/,B={};B[M]=B[N]=B[P]=B[F]=B[I]=B[ee]=B[L]=B[R]=B[te]=!0,B[u]=B[d]=B[A]=B[p]=B[j]=B[m]=B[h]=B[g]=B[v]=B[y]=B[x]=B[w]=B[T]=B[E]=B[k]=!1;var ce=typeof global==`object`&&global&&global.Object===Object&&global,le=typeof self==`object`&&self&&self.Object===Object&&self,ue=ce||le||Function(`return this`)(),de=typeof e==`object`&&e&&!e.nodeType&&e,fe=de&&typeof t==`object`&&t&&!t.nodeType&&t,pe=fe&&fe.exports===de,me=pe&&ce.process,he=function(){try{return fe&&fe.require&&fe.require(`util`).types||me&&me.binding&&me.binding(`util`)}catch{}}(),ge=he&&he.isTypedArray;function _e(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n-1}function gt(e,t){var n=this.__data__,r=Mt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}dt.prototype.clear=ft,dt.prototype.delete=pt,dt.prototype.get=mt,dt.prototype.has=ht,dt.prototype.set=gt;function _t(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tt||a&&o&&c&&!s&&!l||r&&o&&c||!n&&c||!i)return 1;if(!r&&!a&&!l&&e=s?c:c*(n[r]==`desc`?-1:1)}return e.index-t.index}function rn(e,t){return function(n,r){if(n==null)return n;if(!Mn(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++al))return!1;var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=-1,m=!0,h=n&s?new Ct:void 0;for(a.set(e,t),a.set(t,e);++p-1&&e%1==0&&e-1&&e%1==0&&e<=l}function In(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}function Ln(e){return typeof e==`object`&&!!e}function Rn(e){return typeof e==`symbol`||Ln(e)&&Rt(e)==D}var zn=ge?we(ge):Gt;function Bn(e){return e==null?``:$t(e)}function Vn(e,t,n){var r=e==null?void 0:It(e,t);return r===void 0?n:r}function Hn(e,t){return e!=null&&mn(e,t,zt)}function Un(e){return Mn(e)?jt(e):qt(e)}function Wn(e){return e}function Gn(e){return gn(e)?xe(Tn(e)):Qt(e)}function Kn(){return[]}function qn(){return!1}t.exports=Dn}))(),1),Fm={InputWrapper:`_InputWrapper_avklz_1`,Shortcut:`_Shortcut_avklz_9`,Input:`_Input_avklz_1`,SelectedValue:`_SelectedValue_avklz_52`,SelectedName:`_SelectedName_avklz_67`,ItemType:`_ItemType_avklz_79`,Popover:`_Popover_avklz_83`,PopoverWrapper:`_PopoverWrapper_avklz_97`,List:`_List_avklz_110`,Group:`_Group_avklz_114`,GroupLabel:`_GroupLabel_avklz_122`,Item:`_Item_avklz_79`,ItemHeader:`_ItemHeader_avklz_162`,ItemName:`_ItemName_avklz_168`,ItemTypes:`_ItemTypes_avklz_174`,ItemMissionName:`_ItemMissionName_avklz_193`,NoResults:`_NoResults_avklz_198`,Backdrop:`_Backdrop_avklz_205`,CloseButton:`_CloseButton_avklz_215`},Im=new Set([`SkiFree`,`SkiFree_Daily`,`SkiFree_Randomizer`]),Lm={"missions.vl2":`Official`,"TR2final105-client.vl2":`Team Rabbit 2`,"z_mappacks/CTF/Classic_maps_v1.vl2":`Classic`,"z_mappacks/CTF/DynamixFinalPack.vl2":`Official`,"z_mappacks/CTF/KryMapPack_b3EDIT.vl2":`KryMapPack`,"z_mappacks/CTF/S5maps.vl2":`S5`,"z_mappacks/CTF/S8maps.vl2":`S8`,"z_mappacks/CTF/TWL-MapPack.vl2":`TWL`,"z_mappacks/CTF/TWL-MapPackEDIT.vl2":`TWL`,"z_mappacks/CTF/TWL2-MapPack.vl2":`TWL2`,"z_mappacks/CTF/TWL2-MapPackEDIT.vl2":`TWL2`,"z_mappacks/TWL_T2arenaOfficialMaps.vl2":`Arena`,"z_mappacks/xPack2.vl2":`xPack2`,"z_mappacks/z_DMP2-V0.6.vl2":`DMP2 (Discord Map Pack)`,"z_mappacks/zDMP-4.7.3DX.vl2":`DMP (Discord Map Pack)`,"z_mappacks/zDMP-4.7.3DX-ServerOnly.vl2":`DMP (Discord Map Pack)`},Rm={"z_mappacks/DM":`DM`,"z_mappacks/LCTF":`LCTF`,"z_mappacks/Lak":`LakRabbit`},zm=e=>{let t=e.match(/^(.*)(\/[^/]+)$/);return t?t[1]:``},Bm=ge().filter(e=>!Im.has(e)).map(e=>{let t=he(e),[n]=_e(t.resourcePath),r=zm(n),i=Lm[n]??Rm[r]??null;return{resourcePath:t.resourcePath,missionName:e,displayName:t.displayName,sourcePath:n,groupName:i,missionTypes:t.missionTypes}}),Vm=new Map(Bm.map(e=>[e.missionName,e]));function Hm(e){let t=new Map;for(let n of e){let e=t.get(n.groupName)??[];e.push(n),t.set(n.groupName,e)}return t.forEach((e,n)=>{t.set(n,(0,Pm.default)(e,[e=>(e.displayName||e.missionName).toLowerCase()],[`asc`]))}),(0,Pm.default)(Array.from(t.entries()),[([e])=>e===`Official`?0:e==null?2:1,([e])=>e?e.toLowerCase():``],[`asc`,`asc`])}var Um=Hm(Bm),Wm=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/.test(navigator.platform);function Gm(e){let t=(0,U.c)(12),{mission:n}=e,r=n.displayName||n.missionName,i;t[0]===r?i=t[1]:(i=(0,W.jsx)(`span`,{className:Fm.ItemName,children:r}),t[0]=r,t[1]=i);let a;t[2]===n.missionTypes?a=t[3]:(a=n.missionTypes.length>0&&(0,W.jsx)(`span`,{className:Fm.ItemTypes,children:n.missionTypes.map(Km)}),t[2]=n.missionTypes,t[3]=a);let o;t[4]!==i||t[5]!==a?(o=(0,W.jsxs)(`span`,{className:Fm.ItemHeader,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6];let s;t[7]===n.missionName?s=t[8]:(s=(0,W.jsx)(`span`,{className:Fm.ItemMissionName,children:n.missionName}),t[7]=n.missionName,t[8]=s);let c;return t[9]!==o||t[10]!==s?(c=(0,W.jsxs)(W.Fragment,{children:[o,s]}),t[9]=o,t[10]=s,t[11]=c):c=t[11],c}function Km(e){return(0,W.jsx)(`span`,{className:Fm.ItemType,"data-mission-type":e,children:e},e)}function qm(e){let t=(0,U.c)(65),{value:n,missionType:r,onChange:i,disabled:a,autoFocus:o,onCancel:s}=e,[c,l]=(0,H.useState)(``),u=(0,H.useDeferredValue)(c),d=(0,H.useRef)(null),f=(0,H.useRef)(r),p;t[0]===s?p=t[1]:(p=e=>{e||s?.()},t[0]=s,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>{l(e)},t[2]=m):m=t[2];let h=Am({resetValueOnHide:!0,selectedValue:n,setOpen:p,setSelectedValue:e=>{if(e){let t=f.current,n=he(e).missionTypes;(!t||!n.includes(t))&&(t=n[0]),i({missionName:e,missionType:t}),d.current?.blur()}},setValue:m}),g=$(h,`open`),_,v;t[3]!==o||t[4]!==h?(_=()=>{o&&(d.current?.focus(),h.show())},v=[o,h],t[3]=o,t[4]=h,t[5]=_,t[6]=v):(_=t[5],v=t[6]),(0,H.useEffect)(_,v);let y,b;t[7]===h?(y=t[8],b=t[9]):(y=()=>{let e=e=>{e.code===`KeyK`&&(e.metaKey||e.ctrlKey)&&(e.stopPropagation(),e.preventDefault(),d.current?.focus(),h.show())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},b=[h],t[7]=h,t[8]=y,t[9]=b),(0,H.useEffect)(y,b);let x;t[10]===n?x=t[11]:(x=Vm.get(n),t[10]=n,t[11]=x);let S=x,C;bb0:{if(!u){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e={type:`grouped`,groups:Um},t[12]=e):e=t[12],C=e;break bb0}let e;t[13]===u?e=t[14]:(e=Pa(Bm,u,{keys:[`displayName`,`missionName`,`missionTypes`,`groupName`]}),t[13]=u,t[14]=e);let n=e,r;t[15]===n?r=t[16]:(r={type:`flat`,missions:n},t[15]=n,t[16]=r),C=r}let w=C,T=S?S.displayName||S.missionName:n,E=w.type===`flat`?w.missions.length===0:w.groups.length===0,D=e=>(0,W.jsx)(gm,{value:e.missionName,className:Fm.Item,focusOnHover:!0,onClick:t=>{if(t.target&&t.target instanceof HTMLElement){let r=t.target.dataset.missionType;r?(f.current=r,e.missionName===n&&i({missionName:e.missionName,missionType:r})):f.current=null}else f.current=null},children:(0,W.jsx)(Gm,{mission:e})},e.missionName),O=jm,k=g?`visible`:`hidden`,A;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,W.jsx)(`div`,{className:Fm.Backdrop}),t[17]=A):A=t[17];let j;t[18]===k?j=t[19]:(j=(0,W.jsx)(H.Activity,{mode:k,children:A}),t[18]=k,t[19]=j);let M=S?void 0:`Choose a map…`,N,P;t[20]===h?(N=t[21],P=t[22]):(N=()=>{try{document.exitPointerLock()}catch{}h.show()},P=e=>{e.key===`Escape`&&!h.getState().open&&d.current?.blur()},t[20]=h,t[21]=N,t[22]=P);let F;t[23]!==o||t[24]!==a||t[25]!==M||t[26]!==N||t[27]!==P?(F=(0,W.jsx)(am,{ref:d,autoSelect:!0,autoFocus:o,disabled:a,placeholder:M,className:Fm.Input,onFocus:N,onKeyDown:P}),t[23]=o,t[24]=a,t[25]=M,t[26]=N,t[27]=P,t[28]=F):F=t[28];let I;t[29]!==T||t[30]!==r||t[31]!==S?(I=S&&(0,W.jsxs)(`div`,{className:Fm.SelectedValue,children:[(0,W.jsx)(`span`,{className:Fm.SelectedName,children:T}),r&&(0,W.jsx)(`span`,{className:Fm.ItemType,"data-mission-type":r,children:r})]}),t[29]=T,t[30]=r,t[31]=S,t[32]=I):I=t[32];let ee;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,W.jsx)(`kbd`,{className:Fm.Shortcut,children:Wm?`⌘K`:`^K`}),t[33]=ee):ee=t[33];let L;t[34]!==F||t[35]!==I?(L=(0,W.jsxs)(`div`,{className:Fm.InputWrapper,onKeyDown:Ym,children:[F,I,ee]}),t[34]=F,t[35]=I,t[36]=L):L=t[36];let R;t[37]!==h||t[38]!==s?(R=()=>{h.hide(),s?.()},t[37]=h,t[38]=s,t[39]=R):R=t[39];let te;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,W.jsx)(Nm,{}),t[40]=te):te=t[40];let ne;t[41]!==g||t[42]!==R?(ne=(0,W.jsx)(`button`,{type:`button`,className:Fm.CloseButton,"data-open":g,onClick:R,children:te}),t[41]=g,t[42]=R,t[43]=ne):ne=t[43];let re=Cm,ie=Fm,ae;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(ae={className:Fm.PopoverWrapper},t[44]=ae):ae=t[44];let oe=Jm,se=ym,z=Fm,B=w.type===`flat`?w.missions.map(D):w.groups.map(e=>{let[t,n]=e;return t?(0,W.jsxs)(cm,{className:Fm.Group,children:[(0,W.jsx)(dm,{className:Fm.GroupLabel,children:t}),n.map(D)]},t):(0,W.jsx)(H.Fragment,{children:n.map(D)},`ungrouped`)}),ce;t[45]===E?ce=t[46]:(ce=E&&(0,W.jsx)(`div`,{className:Fm.NoResults,children:`No missions found`}),t[45]=E,t[46]=ce);let le;t[47]!==se||t[48]!==z.List||t[49]!==B||t[50]!==ce?(le=(0,W.jsxs)(se,{className:z.List,children:[B,ce]}),t[47]=se,t[48]=z.List,t[49]=B,t[50]=ce,t[51]=le):le=t[51];let ue;t[52]!==re||t[53]!==ie.Popover||t[54]!==ae||t[55]!==oe||t[56]!==le?(ue=(0,W.jsx)(re,{gutter:4,fitViewport:!0,sameWidth:!0,fixed:!0,autoFocusOnHide:!1,className:ie.Popover,wrapperProps:ae,onKeyDown:oe,children:le}),t[52]=re,t[53]=ie.Popover,t[54]=ae,t[55]=oe,t[56]=le,t[57]=ue):ue=t[57];let de;return t[58]!==O||t[59]!==h||t[60]!==j||t[61]!==L||t[62]!==ne||t[63]!==ue?(de=(0,W.jsxs)(O,{store:h,children:[j,L,ne,ue]}),t[58]=O,t[59]=h,t[60]=j,t[61]=L,t[62]=ne,t[63]=ue,t[64]=de):de=t[64],de}function Jm(e){e.metaKey||e.stopPropagation()}function Ym(e){e.metaKey||e.stopPropagation()}function Xm(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`m12 6-6 8h12zM6 16h12v2H6z`},child:[]}]})(e)}var Zm={Header:`_Header_klnnn_1`,MissionInfo:`_MissionInfo_klnnn_9`,MissionName:`_MissionName_klnnn_21 _SelectedName_avklz_67`,MissionType:`_MissionType_klnnn_25 _ItemType_avklz_79`,MissionTypeDisplayName:`_MissionTypeDisplayName_klnnn_30`,Metadata:`_Metadata_klnnn_35`,Attribution:`_Attribution_klnnn_46`,ServerInfo:`_ServerInfo_klnnn_47`,PlayerName:`_PlayerName_klnnn_51`,RecordingDate:`_RecordingDate_klnnn_52`,ServerName:`_ServerName_klnnn_53`,EjectButton:`_EjectButton_klnnn_57 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,DisconnectButton:`_DisconnectButton_klnnn_58 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,EjectIcon:`_EjectIcon_klnnn_62`,Error:`_Error_klnnn_67`,Pulsing:`_Pulsing_klnnn_81`,blink:`_blink_klnnn_1`,ConnectionPing:`_ConnectionPing_klnnn_85`,PingDot:`_PingDot_klnnn_95 _Pulsing_klnnn_81`};function Qm(){let e=(0,U.c)(28),t=Sn(),n=jn(),r=En(),i=On(),a=Nn(),o=Fn(),s=Ln(),[c,l]=s?s.split(` `):[null,null],u=t===`live`,d=Gn(),f=Hn(th),p=Hn(Un),m=eh,h=$m,g=Zm,_;e[0]!==n||e[1]!==r||e[2]!==i?(_=n&&r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:Zm.MissionName,children:n}),r&&(0,W.jsxs)(W.Fragment,{children:[` `,(0,W.jsx)(`span`,{className:Zm.MissionType,"data-mission-type":r,children:i===`LCTF`?`LCTF`:r})]})]}):null,e[0]=n,e[1]=r,e[2]=i,e[3]=_):_=e[3];let v;e[4]===_?v=e[5]:(v=(0,W.jsx)(`div`,{className:Zm.MissionInfo,children:_}),e[4]=_,e[5]=v);let y;e[6]!==f||e[7]!==p?(y=f&&p!=null?(0,W.jsxs)(`span`,{className:Zm.ConnectionPing,"data-quality":p<150?`good`:p<300?`fine`:`poor`,children:[(0,W.jsx)(`span`,{className:Zm.PingDot}),` `,be(p)]}):null,e[6]=f,e[7]=p,e[8]=y):y=e[8];let b=Zm,x=u?f?o?(0,W.jsxs)(`div`,{className:Zm.Attribution,children:[`Connected as`,` `,(0,W.jsx)(`span`,{className:Zm.PlayerName,children:o})]}):null:(0,W.jsx)(`div`,{className:Zm.Error,children:`Disconnected`}):o&&s?(0,W.jsxs)(`div`,{className:Zm.Attribution,children:[`Recorded by `,(0,W.jsx)(`span`,{className:Zm.PlayerName,children:o}),` `,`on`,` `,(0,W.jsx)(`span`,{className:Zm.RecordingDate,children:c.replace(/-/g,` `)}),` `,`at`,` `,(0,W.jsx)(`span`,{className:Zm.RecordingDate,children:(l??``).replace(/(AM|PM)$/,` $1`)})]}):null,S;e[9]===a?S=e[10]:(S=a?(0,W.jsxs)(`div`,{className:Zm.ServerInfo,children:[`Server: `,(0,W.jsx)(`span`,{className:Zm.ServerName,children:a})]}):null,e[9]=a,e[10]=S);let C;e[11]!==b.Metadata||e[12]!==x||e[13]!==S?(C=(0,W.jsxs)(`div`,{className:b.Metadata,children:[x,S]}),e[11]=b.Metadata,e[12]=x,e[13]=S,e[14]=C):C=e[14];let w;e[15]!==t||e[16]!==h||e[17]!==m||e[18]!==u||e[19]!==f||e[20]!==d?(w=t===`demo`?(0,W.jsx)(`button`,{type:`button`,className:Zm.EjectButton,title:`Unload demo`,"aria-label":`Unload demo`,onClick:m,disabled:!d,children:(0,W.jsx)(Xm,{className:Zm.EjectIcon})}):u?(0,W.jsx)(`button`,{type:`button`,className:Zm.DisconnectButton,title:`Disconnect`,"aria-label":`Disconnect`,onClick:h,disabled:!f,children:(0,W.jsx)(ea,{})}):null,e[15]=t,e[16]=h,e[17]=m,e[18]=u,e[19]=f,e[20]=d,e[21]=w):w=e[21];let T;return e[22]!==g.Header||e[23]!==v||e[24]!==y||e[25]!==C||e[26]!==w?(T=(0,W.jsxs)(`div`,{className:g.Header,children:[v,y,C,w]}),e[22]=g.Header,e[23]=v,e[24]=y,e[25]=C,e[26]=w,e[27]=T):T=e[27],T}function $m(){Vn.getState().disconnectServer(),we.getState().setRecording(null)}function eh(){we.getState().setRecording(null)}function th(e){return e.gameStatus===`connected`||e.gameStatus===`authenticating`}function nh(e){let t=(0,U.c)(5),{onChangeMission:n}=e,{setRecording:r}=tr(),i=(0,H.useEffectEvent)(n),a;t[0]!==i||t[1]!==r?(a=()=>(window.setMissionName=e=>{let t=he(e).missionTypes;i({missionName:e,missionType:t[0]})},window.getMissionList=ge,window.getMissionInfo=he,window.loadDemoRecording=r,rh),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;t[3]===r?o=t[4]:(o=[r],t[3]=r,t[4]=o),(0,H.useEffect)(a,o)}function rh(){delete window.setMissionName,delete window.getMissionList,delete window.getMissionInfo,delete window.loadDemoRecording}var ih=(0,H.createContext)(null);function ah(){let e=(0,H.useContext)(ih);if(!e)throw Error(`useCameras must be used within CamerasProvider`);return e}function oh({children:e}){let t=o(e=>e.camera),[n,r]=(0,H.useState)(-1),[i,a]=(0,H.useState)({}),[s,c]=(0,H.useState)(()=>({initialized:!1,position:null,quarternion:null})),l=(0,H.useCallback)(e=>{a(t=>({...t,[e.id]:e}))},[]),u=(0,H.useCallback)(e=>{a(t=>{let{[e.id]:n,...r}=t;return r})},[]),d=Object.keys(i).length,f=(0,H.useCallback)(e=>{if(e>=0&&e{f(d?(n+1)%d:-1)},[d,n,f]);(0,H.useEffect)(()=>{let e=()=>{let e=window.location.hash;if(e.startsWith(`#c`)){let[t,n]=e.slice(2).split(`~`),r=t.split(`,`).map(e=>parseFloat(e)),i=n.split(`,`).map(e=>parseFloat(e));c({initialized:!0,position:new oe(...r),quarternion:new ae(...i)})}else c({initialized:!0,position:null,quarternion:null})};return window.addEventListener(`hashchange`,e),e(),()=>{window.removeEventListener(`hashchange`,e)}},[]),(0,H.useEffect)(()=>{s.initialized&&s.position&&(t.position.copy(s.position),s.quarternion&&t.quaternion.copy(s.quarternion))},[t,s]),(0,H.useEffect)(()=>{!s.initialized||s.position||d>0&&n===-1&&f(0)},[d,f,n,s]);let m=(0,H.useMemo)(()=>({registerCamera:l,unregisterCamera:u,nextCamera:p,setCameraIndex:f,cameraCount:d}),[l,u,p,f,d]);return d===0&&n!==-1&&r(-1),(0,W.jsx)(ih.Provider,{value:m,children:e})}var sh=(0,H.createContext)(null);function ch(){let e=(0,H.useContext)(sh);if(!e)throw Error(`useInputContext must be used within an InputProvider`);return e}function lh(){return ch().onInput}function uh(){return ch().mode}var dh=new Set([`Ctrl`,`Shift`,`Alt`]),fh=new Set([`MetaLeft`,`MetaRight`,`ControlLeft`,`ControlRight`,`ShiftLeft`,`ShiftRight`,`AltLeft`,`AltRight`]);function ph(e){if(typeof e!=`string`)return e;let t=e.split(`-`),n=t.pop(),r=[];for(let e of t)dh.has(e)&&r.push(e);return{type:`key`,code:n,modifiers:r.length>0?r:void 0}}function mh(e,t){let n=e.has(`ControlLeft`)||e.has(`ControlRight`),r=e.has(`ShiftLeft`)||e.has(`ShiftRight`),i=e.has(`AltLeft`)||e.has(`AltRight`);return n===(t?.includes(`Ctrl`)??!1)&&r===(t?.includes(`Shift`)??!1)&&i===(t?.includes(`Alt`)??!1)}function hh(e,t){let n=t?.includes(`Ctrl`)??!1,r=t?.includes(`Shift`)??!1,i=t?.includes(`Alt`)??!1;return e.ctrlKey===n&&e.shiftKey===r&&e.altKey===i}function gh(){return{pressed:!1}}function _h(){return{dragging:!1,deltaX:0,deltaY:0,startX:0,startY:0}}function vh(){return{deltaX:0,deltaY:0}}function yh(){return{touching:!1,dragging:!1,deltaX:0,deltaY:0}}function bh(e){switch(e.type){case`key`:case`click`:return gh();case`drag`:case`pointerLockMove`:return _h();case`scroll`:return vh();case`touch`:return yh()}}var xh=B()(Ce(()=>({keys:new Set,actions:{}}))),Sh=new Map;function Ch(e,t){let n=Sh.get(e);return n||(n=new Set,Sh.set(e,n)),n.add(t),()=>{n.delete(t),n.size===0&&Sh.delete(e)}}function wh(e){let t=Sh.get(e);if(t)for(let e of t)e()}var Th=new Set([`text`,`search`,`url`,`tel`,`email`,`password`,`number`,`date`,`datetime-local`,`month`,`week`,`time`]),Eh=new Set([`Space`,`Enter`,`NumpadEnter`,`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`]);function Dh(e){if(e.code===`Tab`)return document.pointerLockElement?(e.preventDefault(),!1):!0;let t=document.activeElement;if(!t||t===document.body)return!1;let n=t.tagName;if(t.isContentEditable||n===`TEXTAREA`)return!0;if(n===`INPUT`){let n=t.type.toLowerCase();return Th.has(n)?!0:Eh.has(e.code)}return n===`BUTTON`||n===`SELECT`||n===`A`||n===`SUMMARY`?Eh.has(e.code):!1}function Oh(e){if(e.metaKey||Dh(e))return;let{keys:t}=xh.getState();if(t.has(e.code))return;let n=new Set(t);n.add(e.code),xh.setState(e=>({...e,keys:n}))}function kh(e){let{keys:t}=xh.getState();if(!t.has(e.code))return;let n=new Set(t);if(n.delete(e.code),e.code===`MetaLeft`||e.code===`MetaRight`)for(let e of n)fh.has(e)||n.delete(e);xh.setState(e=>({...e,keys:n}))}function Ah(){let{keys:e}=xh.getState();e.size!==0&&xh.setState(e=>({...e,keys:new Set}))}window.addEventListener(`keydown`,Oh),window.addEventListener(`keyup`,kh),window.addEventListener(`blur`,Ah);function jh(e){let t=(0,U.c)(2),n;return t[0]===e?n=t[1]:(n=t=>e(t.actions),t[0]=e,t[1]=n),z(xh,n)}function Mh(){let e=(0,U.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[xh.subscribe,Nh],e[0]=t):t=e[0],t}function Nh(){return xh.getState().actions}function Ph(){let{actions:e}=xh.getState(),t={};for(let[n,r]of Object.entries(e))`deltaX`in r&&(r.deltaX!==0||r.deltaY!==0)&&(t[n]={...r,deltaX:0,deltaY:0});Object.keys(t).length>0&&xh.setState(e=>({...e,actions:{...e.actions,...t}}))}function Fh(e,t){let n=(0,U.c)(5),r=(0,H.useEffectEvent)(t),i;n[0]!==e||n[1]!==r?(i=()=>Ch(e,r),n[0]=e,n[1]=r,n[2]=i):i=n[2];let a;n[3]===e?a=n[4]:(a=[e],n[3]=e,n[4]=a),(0,H.useEffect)(i,a)}var Ih=1,Lh=11,Rh=.002;function zh(e){let t=(e-x)/(1-x);return(Math.round(t*15)+1)/16}function Bh(e,t){let n=e[t];return n!=null&&`pressed`in n&&n.pressed}function Vh(){let e=(0,U.c)(41),t=g(),{speedMultiplier:n,setSpeedMultiplier:r,mouseSensitivity:i,invertScroll:s,invertDrag:c}=b(),{onInput:l,mode:u}=ch(),[,d]=Mh(),f=o(Wh),{setCameraIndex:p,cameraCount:m}=ah(),h=(0,H.useRef)(!1),_=(0,H.useRef)(!1),v,y;e[0]===t?(v=e[1],y=e[2]):(v=()=>{t&&document.pointerLockElement&&document.exitPointerLock()},y=[t],e[0]=t,e[1]=v,e[2]=y),(0,H.useEffect)(v,y);let S;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(S=[],e[3]=S):S=e[3],(0,H.useEffect)(Hh,S);let C;e[4]!==f||e[5]!==t?(C=()=>{!t&&!De.getState().animation&&f.domElement.requestPointerLock()},e[4]=f,e[5]=t,e[6]=C):C=e[6],Fh(`canvasClick`,C);let w;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{h.current=!0},e[7]=w):w=e[7],Fh(`nextPlayer`,w);let T;e[8]!==d||e[9]!==s||e[10]!==r?(T=()=>{let e=d().adjustSpeed;if(!e||e.deltaY===0)return;let t=s?-1:1,n=(e.deltaY>0?-1:1)*t,i=Math.ceil(Math.log2(Math.abs(e.deltaY)+1)),a=Math.max(Ih,Math.min(Lh,i))*n;r(e=>{let t=Math.round(e*100)+a;return Math.max(x,Math.min(1,t/100))})},e[8]=d,e[9]=s,e[10]=r,e[11]=T):T=e[11],Fh(`adjustSpeed`,T);let E;e[12]!==m||e[13]!==p?(E=e=>{eD(0),e[15]=D,e[16]=O),Fh(`camera1`,O);let k;e[17]===D?k=e[18]:(k=()=>D(1),e[17]=D,e[18]=k),Fh(`camera2`,k);let A;e[19]===D?A=e[20]:(A=()=>D(2),e[19]=D,e[20]=A),Fh(`camera3`,A);let j;e[21]===D?j=e[22]:(j=()=>D(3),e[21]=D,e[22]=j),Fh(`camera4`,j);let M;e[23]===D?M=e[24]:(M=()=>D(4),e[23]=D,e[24]=M),Fh(`camera5`,M);let N;e[25]===D?N=e[26]:(N=()=>D(5),e[25]=D,e[26]=N),Fh(`camera6`,N);let P;e[27]===D?P=e[28]:(P=()=>D(6),e[27]=D,e[28]=P),Fh(`camera7`,P);let F;e[29]===D?F=e[30]:(F=()=>D(7),e[29]=D,e[30]=F),Fh(`camera8`,F);let I;e[31]===D?I=e[32]:(I=()=>D(8),e[31]=D,e[32]=I),Fh(`camera9`,I);let ee;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(ee=()=>{_.current=!0},e[33]=ee):ee=e[33],Fh(`toggleObserverMode`,ee);let L;return e[34]!==d||e[35]!==c||e[36]!==u||e[37]!==i||e[38]!==l||e[39]!==n?(L=(e,t)=>{if(De.getState().animation)return;let r=d(),a=0,o=0,s=r.lockedLook;s&&(s.deltaX!==0||s.deltaY!==0)&&(a=s.deltaX*i,o=s.deltaY*i);let f=r.dragLook;if(f?.dragging&&(f.deltaX!==0||f.deltaY!==0)){let e=(c?1:-1)*(u===`follow`?-1:1);a+=e*f.deltaX*Rh,o+=e*f.deltaY*Rh}Bh(r,`lookLeft`)&&(a-=1*t),Bh(r,`lookRight`)&&(a+=1*t),Bh(r,`lookUp`)&&(o-=1*t),Bh(r,`lookDown`)&&(o+=1*t);let p=0,m=0,g=0;Bh(r,`moveLeft`)&&(p=-1),Bh(r,`moveRight`)&&(p+=1),Bh(r,`moveForward`)&&(m=1),Bh(r,`moveBackward`)&&--m,Bh(r,`moveUp`)&&(g=1),Bh(r,`moveDown`)&&--g;let v=zh(n);p=Math.max(-1,Math.min(1,p*v)),m=Math.max(-1,Math.min(1,m*v)),g=Math.max(-1,Math.min(1,g*v));let y=[!1,!1,!1,!1,!1,!1];h.current&&=(y[0]=!0,!1),_.current&&=(y[2]=!0,!1),Ph();let b=a!==0||o!==0,x=p!==0||m!==0||g!==0,S=y.some(Boolean);!b&&!x&&!S||l({deltaYaw:a,deltaPitch:o,x:p,y:m,z:g,triggers:y,delta:t})},e[34]=d,e[35]=c,e[36]=u,e[37]=i,e[38]=l,e[39]=n,e[40]=L):L=e[40],a(L),null}function Hh(){return De.subscribe(Uh)}function Uh(e){e.animation&&document.pointerLockElement&&document.exitPointerLock()}function Wh(e){return e.gl}var Gh=(0,H.lazy)(()=>Te(()=>import(`./TouchHandler-C-XYcmBd.js`).then(e=>({default:e.TouchHandler})),__vite__mapDeps([7,8,2,9,3,10,11,12,13,14,15])));function Kh(e){let t=(0,U.c)(9),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],t[0]=r):r=t[0];let i=(0,H.useRef)(r),[a,o]=(0,H.useState)(`local`),s;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=e=>{i.current.push(e)},t[1]=s):s=t[1];let c=s,l;t[2]===a?l=t[3]:(l={moveQueue:i,onInput:c,mode:a,setMode:o},t[2]=a,t[3]=l);let u;t[4]===n?u=t[5]:(u=(0,W.jsx)(at,{children:n}),t[4]=n,t[5]=u);let d;return t[6]!==l||t[7]!==u?(d=(0,W.jsx)(sh.Provider,{value:l,children:u}),t[6]=l,t[7]=u,t[8]=d):d=t[8],d}function qh(){let e=(0,U.c)(5),t=g(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,W.jsx)(Vh,{}),e[0]=n):n=e[0];let r;e[1]===t?r=e[2]:(r=t?(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(Gh,{})}):null,e[1]=t,e[2]=r);let i;return e[3]===r?i=e[4]:(i=(0,W.jsxs)(W.Fragment,{children:[n,r]}),e[3]=r,e[4]=i),i}var Jh=(0,H.lazy)(()=>Te(()=>import(`./TouchJoystick-Cnt0wcWJ.js`).then(e=>({default:e.TouchJoystick})),__vite__mapDeps([16,2,17,11,9,12,10,13,14,15,18]))),Yh=(0,H.lazy)(()=>Te(()=>import(`./KeyboardOverlay-8NIHVGaH.js`).then(e=>({default:e.KeyboardOverlay})),__vite__mapDeps([19,2,11,9,12,10,13,14,20,21,22,23])));function Xh(){let e=(0,U.c)(9),t=g(),n=Ee(Zh),{showInputOverlay:r}=u(),i;e[0]!==t||e[1]!==n?(i=t&&!n?(0,W.jsx)(Jh,{}):null,e[0]=t,e[1]=n,e[2]=i):i=e[2];let a;e[3]!==t||e[4]!==r?(a=t===!1&&r?(0,W.jsx)(Yh,{}):null,e[3]=t,e[4]=r,e[5]=a):a=e[5];let o;return e[6]!==i||e[7]!==a?(o=(0,W.jsxs)(H.Suspense,{children:[i,a]}),e[6]=i,e[7]=a,e[8]=o):o=e[8],o}function Zh(e){return e.animation!==null}var Qh={LoadingIndicator:`_LoadingIndicator_8ijel_1`,loadingComplete:`_loadingComplete_8ijel_1`,Spinner:`_Spinner_8ijel_19`,spin:`_spin_8ijel_1`,Progress:`_Progress_8ijel_28`,ProgressBar:`_ProgressBar_8ijel_36`,ProgressText:`_ProgressText_8ijel_43`};function $h(e){let t=(0,U.c)(12),{isLoading:n,progress:r}=e,i=r===void 0?null:r,a=(i??0)*100,o=!n,s=i==null,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,W.jsx)(`div`,{className:Qh.Spinner}),t[0]=c):c=t[0];let l=`${a}%`,u;t[1]===l?u=t[2]:(u=(0,W.jsx)(`div`,{className:Qh.Progress,children:(0,W.jsx)(`div`,{className:Qh.ProgressBar,style:{width:l}})}),t[1]=l,t[2]=u);let d;t[3]===a?d=t[4]:(d=Math.round(a),t[3]=a,t[4]=d);let f;t[5]===d?f=t[6]:(f=(0,W.jsxs)(`div`,{className:Qh.ProgressText,children:[d,`%`]}),t[5]=d,t[6]=f);let p;return t[7]!==o||t[8]!==s||t[9]!==u||t[10]!==f?(p=(0,W.jsxs)(`div`,{className:Qh.LoadingIndicator,"data-complete":o,"data-indeterminate":s,children:[c,u,f]}),t[7]=o,t[8]=s,t[9]=u,t[10]=f,t[11]=p):p=t[11],p}var eg={Dialog:`_Dialog_1t9wa_1`,Overlay:`_Overlay_1t9wa_22`,DialogButton:`_DialogButton_1t9wa_33`,Secondary:`_Secondary_1t9wa_72 _DialogButton_1t9wa_33`,Actions:`_Actions_1t9wa_86`};function tg(e){let t=(0,U.c)(5),{onClose:n}=e,r;t[0]===n?r=t[1]:(r=e=>{n?.()},t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,W.jsx)(`div`,{className:eg.Dialog,children:(0,W.jsx)($h,{isLoading:!0})}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,W.jsx)(`div`,{className:eg.Overlay,onClick:r,children:i}),t[3]=r,t[4]=a),a}var ng={Button:`_Button_n870r_1`};function rg(e){let t=(0,U.c)(9),{isOpen:n,orientation:r,onClick:i}=e,a=n?`Close sidebar`:`Open sidebar`,o=n?`Close sidebar`:`Open sidebar`,s;t[0]!==n||t[1]!==r?(s=r===`top`?n?(0,W.jsx)(Yi,{}):(0,W.jsx)(Ji,{}):n?(0,W.jsx)(Zi,{}):(0,W.jsx)(Xi,{}),t[0]=n,t[1]=r,t[2]=s):s=t[2];let c;return t[3]!==i||t[4]!==r||t[5]!==a||t[6]!==o||t[7]!==s?(c=(0,W.jsx)(`button`,{type:`button`,className:ng.Button,"data-orientation":r,"aria-label":a,title:o,onClick:i,children:s}),t[3]=i,t[4]=r,t[5]=a,t[6]=o,t[7]=s,t[8]=c):c=t[8],c}var ig={Button:`_Button_17xa1_1 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,ButtonLabel:`_ButtonLabel_17xa1_9 _ButtonLabel_p0g82_37`};function ag(){let e=(0,U.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,W.jsxs)(`button`,{type:`button`,className:ig.Button,onClick:og,children:[(0,W.jsx)(ya,{}),(0,W.jsx)(`span`,{className:ig.ButtonLabel,children:`Exit tour`})]}),e[0]=t):t=e[0],t}function og(){return De.getState().cancel()}var sg=fe(`shapePreloader`),cg=200,lg=2,ug=!1;function dg(e){let t=e.toLowerCase();return t.startsWith(`bioderm_`)||t.endsWith(`_male.dts`)||t.endsWith(`_female.dts`)?0:t.startsWith(`weapon_`)?1:t.startsWith(`pack_`)?2:3}function fg(){return pe().filter(e=>e.startsWith(`shapes/`)&&e.endsWith(`.dts`)).filter(e=>{let[t]=_e(e);return t===`shapes.vl2`}).sort((e,t)=>dg(e)-dg(t)).map(e=>{let[t,n]=_e(e);return`${de}@vl2/${t}/${n.replace(/\.dts$/i,`.glb`)}`})}function pg(){if(ug)return;ug=!0;let e=fg();sg.info(`Preloading %d shapes from shapes.vl2`,e.length);let t=0;function n(){let r=Math.min(t+lg,e.length);for(let n=t;nt().then(t=>({default:t[e]})))}var _g=gg(`GameView`,()=>Te(()=>import(`./GameView-DDyKEtZP.js`),__vite__mapDeps([24,2,17,25,5,26,27,28,8,9,3,10,29,11,12,13,14,30,31,32,22,33,34,35,36,37,38,39,40,1,4,41,42]))),vg=gg(`DemoPlaybackControls`,()=>Te(()=>import(`./DemoPlaybackControls-ByWxYIZa.js`),__vite__mapDeps([43,2,20,21,9,44]))),yg=gg(`PlayerHUD`,()=>Te(()=>import(`./PlayerHUD-oFKWuzte.js`),__vite__mapDeps([45,2,17,11,9,12,10,13,14,32,25,5,38,46]))),bg=gg(`MapInfoDialog`,()=>Te(()=>import(`./MapInfoDialog-DlTvQpC9.js`),__vite__mapDeps([47,2,29,9,32,25,5,13,14,48]))),xg=gg(`ServerBrowser`,()=>Te(()=>import(`./ServerBrowser-DlvPvTfO.js`),__vite__mapDeps([49,2,11,9,12,10,13,14,50]))),Sg=gg(`ScoreScreen`,()=>Te(()=>import(`./ScoreScreen-Di92fTHh.js`),__vite__mapDeps([51,2,9,12,10,14,52])));function Cg(){let[e,t]=S(),n=Et(),{clearFogEnabledOverride:r,sidebarOpen:i,setSidebarOpen:a}=u(),{missionName:o,missionType:s}=e,[c,l]=(0,H.useState)(!1),[d,f]=(0,H.useState)(!1),[p,m]=(0,H.useState)(!1),[h,_]=(0,H.useState)(!1),[v,y]=(0,H.useState)(0),[b,x]=(0,H.useState)(!0),C=g(),w=Ee(e=>e.animation!==null),T=(0,H.useCallback)(e=>{window.location.hash=``,r(),_(!1),De.getState().cancel(),Vn.getState().disconnectServer(),we.getState().setRecording(null),K.getState().endStreaming(),t(e),C&&a(!1)},[r,t,C,a]);nh({onChangeMission:T});let E=Gn(),D=Sn(),O=D===`demo`||D===`live`;(0,H.useEffect)(()=>{O&&pg()},[O]);let k=wn(),A=En();(0,H.useEffect)(()=>{if(!(!O||!k))try{let e=he(k);t({missionName:k,missionType:A&&e.missionTypes.includes(A)?A:void 0})}catch{t(null)}},[O,k,A,t]),(0,H.useEffect)(()=>{E&&_(!1)},[E]);let j=Hn(e=>e.gameStatus);(0,H.useEffect)(()=>{j===`connected`&&C&&a(!1)},[j,C,a]),(0,H.useEffect)(()=>{E&&C&&a(!1)},[C,E,a]),(0,H.useEffect)(()=>{w&&C&&a(!1)},[C,w,a]),(0,H.useEffect)(()=>{let e=e=>{e.code===`Backslash`&&(e.metaKey||e.ctrlKey)&&(e.stopPropagation(),e.preventDefault(),a(e=>!e))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]);let M=v,N=M<1;(0,H.useEffect)(()=>{if(N)x(!0);else{let e=setTimeout(()=>x(!1),500);return()=>clearTimeout(e)}},[N]);let P=(0,H.useCallback)((e,t=0)=>{y(t)},[]),F=(0,H.useRef)(null),I=(0,H.useRef)(null),ee=(0,H.useCallback)(()=>l(!0),[]),L=(0,H.useCallback)(()=>m(!0),[]),R=(0,H.useCallback)(()=>{f(!0)},[]),te=(0,H.useCallback)(()=>_(!0),[]),ne=(0,H.useCallback)(()=>{_(!1)},[]),re=(0,H.useCallback)(e=>{F.current=e.camera,I.current=e.invalidate},[]);return(0,W.jsx)(`main`,{className:mg.Frame,children:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`header`,{className:mg.Toolbar,children:[(0,W.jsx)(rg,{orientation:`top`,isOpen:i,onClick:()=>{a(e=>!e)}}),(0,W.jsx)(rg,{orientation:`left`,isOpen:i,onClick:()=>{a(e=>!e)}}),(0,W.jsx)(H.Activity,{mode:O&&!h?`visible`:`hidden`,children:(0,W.jsx)(Qm,{})}),(0,W.jsx)(H.Activity,{mode:!O||h?`visible`:`hidden`,children:(0,W.jsx)(qm,{value:h?``:o,missionType:h?``:s??``,onChange:T,autoFocus:h,onCancel:ne})}),w&&(0,W.jsx)(ag,{})]}),i?(0,W.jsx)(`div`,{className:mg.Backdrop}):null,(0,W.jsx)(H.Activity,{mode:i?`visible`:`hidden`,children:(0,W.jsx)(`div`,{className:mg.Sidebar,"data-open":i,children:(0,W.jsx)(no,{missionName:o,missionType:s,choosingMap:h,cameraRef:F,invalidateRef:I,onOpenMapInfo:ee,onOpenScoreScreen:O?L:void 0,onOpenServerBrowser:n.live?R:void 0,onChooseMap:te,onCancelChoosingMap:ne,onClose:()=>{a(!1)}})})}),(0,W.jsx)(Kh,{children:(0,W.jsxs)(`div`,{className:mg.Content,children:[(0,W.jsx)(`div`,{className:mg.ThreeView,children:(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(_g,{missionName:o,missionType:s,dpr:c||d||p?.25:void 0,onCreated:re,onLoadingChange:P})})}),O&&!p?(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(yg,{})}):null,(0,W.jsx)(Xh,{}),b&&(0,W.jsx)($h,{isLoading:N,progress:M})]})}),(0,W.jsx)(`footer`,{className:mg.PlayerBar,children:E?.source===`demo`?(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(vg,{})}):null}),c?(0,W.jsx)(hg,{children:(0,W.jsx)(H.Suspense,{fallback:(0,W.jsx)(tg,{onClose:()=>l(!1)}),children:(0,W.jsx)(bg,{onClose:()=>l(!1),missionName:o,missionType:s??``})})}):null,d?(0,W.jsx)(hg,{children:(0,W.jsx)(H.Suspense,{fallback:(0,W.jsx)(tg,{onClose:()=>f(!1)}),children:(0,W.jsx)(xg,{onClose:()=>f(!1)})})}):null,p?(0,W.jsx)(hg,{children:(0,W.jsx)(H.Suspense,{fallback:(0,W.jsx)(tg,{onClose:()=>m(!1)}),children:(0,W.jsx)(Sg,{onClose:()=>m(!1)})})}):null]})})}var wg=new wt({defaultOptions:{queries:{refetchOnWindowFocus:!1}}});wg.prefetchQuery({queryKey:ce,queryFn:le,staleTime:1/0});function Tg(){let e=(0,U.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(ht,{children:(0,W.jsx)(Dt,{children:(0,W.jsx)(F,{client:wg,children:(0,W.jsx)(v,{children:(0,W.jsx)(Cg,{})})})})})}),e[0]=t):t=e[0],t}(0,ot.createRoot)(document.getElementById(`root`)).render((0,W.jsx)(H.StrictMode,{children:(0,W.jsx)(Tg,{})}));export{Hn as A,Jt as B,Yn as C,Gn as D,tr as E,bn as F,Ft as G,zt as H,xn as I,Mt as J,Pt as K,cn as L,gn as M,Sn as N,$n as O,_n as P,on as R,Wn as S,qn as T,Lt as U,Bt as V,It as W,ah as _,hh as a,Wi as b,wh as c,jh as d,Mh as f,oh as g,lh as h,yh as i,K as j,Vn as k,ph as l,uh as m,_h as n,xh as o,ch as p,Nt as q,bh as r,mh as s,qh as t,Fh as u,Mm as v,Zn as w,Ui as x,qi as y,rn as z}; \ No newline at end of file + to %O`,t.join(`,`),r,i),i}}function ct(e,t,n){if(t.length===0)return e;let r=n?new URLSearchParams(e):e;for(let n of e.keys())t.includes(n)||r.delete(n);return r}var lt=`__nuqs__`,ut=_();function dt(e){return function(t,n){let r=new URL(location.href);r.search=l(t),p(`[nuqs react] Updating url: %s`,r),e&&n.shallow===!1?(n.history===`push`?location.assign:location.replace).call(location,r):(n.history===`push`?history.pushState:history.replaceState).call(history,history.state,lt,r),ut.emit(`update`,t),n.scroll===!0&&window.scrollTo({top:0})}}var ft=(0,H.createContext)({fullPageNavigationOnShallowFalseUpdates:!1});function pt(e){let{fullPageNavigationOnShallowFalseUpdates:t}=(0,H.useContext)(ft),[n,r]=(0,H.useState)(()=>typeof location>`u`?new URLSearchParams:ct(new URLSearchParams(location.search),e,!1));return(0,H.useEffect)(()=>{let t=()=>{r(st(new URLSearchParams(location.search),e,!1))},n=t=>{r(st(t,e,!0))};return ut.on(`update`,n),window.addEventListener(`popstate`,t),()=>{ut.off(`update`,n),window.removeEventListener(`popstate`,t)}},[e.join(`&`)]),{searchParams:n,updateUrl:(0,H.useMemo)(()=>dt(t),[t])}}var mt=m(pt);function ht({children:e,fullPageNavigationOnShallowFalseUpdates:t=!1,...n}){return(0,H.createElement)(ft.Provider,{value:{fullPageNavigationOnShallowFalseUpdates:t}},(0,H.createElement)(mt,{...n,children:e}))}function gt(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{D(e,()=>t.signal,()=>n=!0)},u=O(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?te:N;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?vt:_t,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:_t(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function _t(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function vt(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var yt=class extends M{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||bt(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=T({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),R.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function bt(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var xt=class extends C{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new yt({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=St(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=St(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=St(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=St(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){R.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>j(t,e))}findAll(e={}){return this.getAll().filter(t=>j(e,t))}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return R.batch(()=>Promise.all(e.map(e=>e.continue().catch(w))))}};function St(e){return e.options.scope?.id}var Ct=class extends C{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??P(r,t),a=this.get(i);return a||(a=new L({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){R.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>A(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>A(e,t)):t}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){R.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){R.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},wt=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Ct,this.#t=e.mutationCache||new xt,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=re.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=I.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(ie(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=k(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return R.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;R.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return R.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=R.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(w).catch(w)}invalidateQueries(e,t={}){return R.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=R.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(w)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(w)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(ie(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(w).catch(w)}fetchInfiniteQuery(e){return e.behavior=gt(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(w).catch(w)}ensureInfiniteQueryData(e){return e.behavior=gt(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return I.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(ee(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ne(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(ee(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ne(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=P(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===E&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},W=i(),Tt=(0,H.createContext)({live:!1});function Et(){return(0,H.useContext)(Tt)}function Dt(e){let t=(0,U.c)(5),{children:n}=e,[r]=f(`features`,d),i;t[0]===r?i=t[1]:(i=()=>({live:new Set((r??``).split(`,`).map(Ot).filter(Boolean)).has(`live`)}),t[0]=r,t[1]=i);let[a]=(0,H.useState)(i),o;return t[2]!==n||t[3]!==a?(o=(0,W.jsx)(Tt.Provider,{value:a,children:n}),t[2]=n,t[3]=a,t[4]=o):o=t[4],o}function Ot(e){return e.trim().toLowerCase()}function kt(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z`},child:[]}]})(e)}function At(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8l176 0 0 176c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z`},child:[]}]})(e)}function jt(e){return V({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z`},child:[]}]})(e)}function Mt(e){return V({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z`},child:[]}]})(e)}function Nt(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z`},child:[]}]})(e)}function Pt(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z`},child:[]}]})(e)}function Ft(e){return V({tag:`svg`,attr:{viewBox:`0 0 384 512`},child:[{tag:`path`,attr:{d:`M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z`},child:[]}]})(e)}function It(e){return V({tag:`svg`,attr:{viewBox:`0 0 576 512`},child:[{tag:`path`,attr:{d:`M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z`},child:[]}]})(e)}function Lt(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z`},child:[]}]})(e)}function Rt(e){return V({tag:`svg`,attr:{viewBox:`0 0 288 512`},child:[{tag:`path`,attr:{d:`M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z`},child:[]}]})(e)}function zt(e){return V({tag:`svg`,attr:{viewBox:`0 0 320 512`},child:[{tag:`path`,attr:{d:`M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z`},child:[]}]})(e)}function Bt(e){return V({tag:`svg`,attr:{viewBox:`0 0 320 512`},child:[{tag:`path`,attr:{d:`M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z`},child:[]}]})(e)}function Vt(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z`},child:[]}]})(e)}function Ht(e){return V({tag:`svg`,attr:{viewBox:`0 0 448 512`},child:[{tag:`path`,attr:{d:`M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z`},child:[]}]})(e)}var Ut={Button:`_Button_p0g82_2`,ButtonLabel:`_ButtonLabel_p0g82_37`,Icon:`_Icon_p0g82_85`,ButtonHint:`_ButtonHint_p0g82_92`,ButtonGroup:`_ButtonGroup_p0g82_97`,DestructiveActionButton:`_DestructiveActionButton_p0g82_141 _Button_p0g82_2`},Wt={Button:`_Button_1xmvi_1 _Button_p0g82_2`,ClipboardIcon:`_ClipboardIcon_1xmvi_10`,showClipboardCheck:`_showClipboardCheck_1xmvi_1`,PinIcon:`_PinIcon_1xmvi_20`};function Gt({position:e,quaternion:t}){let n=e=>parseFloat(e.toFixed(3));return`#c${`${n(e.x)},${n(e.y)},${n(e.z)}`}~${`${n(t.x)},${n(t.y)},${n(t.z)},${n(t.w)}`}`}function Kt(e){let t=(0,U.c)(12),{cameraRef:n,missionName:r,missionType:i,disabled:a}=e,{fogEnabled:o}=u(),[s,c]=(0,H.useState)(!1),l=(0,H.useRef)(null),d;t[0]!==n||t[1]!==o||t[2]!==r||t[3]!==i?(d=async()=>{l.current&&clearTimeout(l.current);let e=n.current;if(!e)return;let t=Gt(e),a=new URLSearchParams,s=i?`${r}~${i}`:r;a.set(`mission`,s),a.set(`fog`,o.toString());let u=`${window.location.pathname}?${a}${t}`,d=`${window.location.origin}${u}`;window.history.replaceState(null,``,u);try{await navigator.clipboard.writeText(d),c(!0),l.current=setTimeout(()=>{c(!1)},1100)}catch(e){console.error(e)}},t[0]=n,t[1]=o,t[2]=r,t[3]=i,t[4]=d):d=t[4];let f=d,p=s?`true`:`false`,m,h,g;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,W.jsx)(Rt,{className:Wt.PinIcon}),h=(0,W.jsx)(jt,{className:Wt.ClipboardIcon}),g=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:` Link to coordinates`}),t[5]=m,t[6]=h,t[7]=g):(m=t[5],h=t[6],g=t[7]);let _;return t[8]!==a||t[9]!==f||t[10]!==p?(_=(0,W.jsxs)(`button`,{type:`button`,className:Wt.Button,"aria-label":`Link to coordinates`,title:`Copy the current coordinates to URL`,onClick:f,disabled:a,"data-copied":p,id:`copyCoordinatesButton`,children:[m,h,g]}),t[8]=a,t[9]=f,t[10]=p,t[11]=_):_=t[11],_}function qt(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{fill:`none`,d:`M0 0h24v24H0V0z`},child:[]},{tag:`path`,attr:{d:`M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-6-7 4V7z`},child:[]}]})(e)}function Jt(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{fill:`none`,d:`M0 0h24v24H0z`},child:[]},{tag:`path`,attr:{d:`m18.89 14.75-4.09-2.04c-.28-.14-.58-.21-.89-.21H13v-6c0-.83-.67-1.5-1.5-1.5S10 5.67 10 6.5v10.74l-3.25-.74a.99.99 0 0 0-.92.28l-.83.84 4.54 4.79c.38.38 1.14.59 1.67.59h6.16c1 0 1.84-.73 1.98-1.72l.63-4.46c.12-.85-.32-1.68-1.09-2.07z`},child:[]},{tag:`path`,attr:{d:`M20.13 3.87C18.69 2.17 15.6 1 12 1S5.31 2.17 3.87 3.87L2 2v5h5L4.93 4.93c1-1.29 3.7-2.43 7.07-2.43s6.07 1.14 7.07 2.43L17 7h5V2l-1.87 1.87z`},child:[]}]})(e)}var Yt=B(e=>({events:null,scanProgress:null,setEvents(t){e({events:t})},setScanProgress(t){e({scanProgress:t})},reset(){e({events:null,scanProgress:null})}}));function Xt(e,t){return z(Yt,e,t)}var Zt=fe(`relayClient`),Qt=class{ws=null;handlers;url;_connected=!1;wsPingInterval=null;smoothedWsPing=0;constructor(e,t){this.url=e,this.handlers=t}get connected(){return this._connected}connect(){this.ws=new WebSocket(this.url),this.ws.binaryType=`arraybuffer`,this.ws.onopen=()=>{Zt.info(`WebSocket connected to %s`,this.url),this._connected=!0,this.startWsPing(),this.handlers.onOpen?.()},this.ws.onmessage=e=>{if(e.data instanceof ArrayBuffer)this.handlers.onGamePacket?.(new Uint8Array(e.data));else try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){Zt.error(`Failed to parse relay message: %o`,e)}},this.ws.onclose=()=>{Zt.info(`WebSocket disconnected`),this._connected=!1,this.stopWsPing(),this.handlers.onClose?.()},this.ws.onerror=()=>{Zt.error(`WebSocket error`),this.handlers.onError?.(`WebSocket connection error`)}}handleMessage(e){switch(e.type){case`serverList`:this.handlers.onServerList?.(e.servers);break;case`status`:this.handlers.onStatus?.(e.status,e.message,e.connectSequence,e.mapName);break;case`ping`:this.handlers.onPing?.(e.ms);break;case`wsPong`:{let t=Date.now()-e.ts;this.smoothedWsPing=this.smoothedWsPing===0?t:this.smoothedWsPing*.5+t*.5,this.handlers.onWsPing?.(Math.round(this.smoothedWsPing));break}case`error`:this.handlers.onError?.(e.message);break}}listServers(){this.send({type:`listServers`})}sendWsPing(){this.send({type:`wsPing`,ts:Date.now()})}joinServer(e,t){Zt.info(`Joining server: %s`,e),this.send({type:`joinServer`,address:e,warriorName:t})}sendAuthEvent(e,t){this.send({type:`sendCommand`,command:e,args:t})}sendCommand(e,t){this.send({type:`sendCommand`,command:e,args:t})}sendCRCResponse(e,t,n){this.send({type:`sendCRCResponse`,crcValue:e,field1:t,field2:n})}sendCRCCompute(e,t,n,r){this.send({type:`sendCRCCompute`,seed:e,field2:t,includeTextures:r,datablocks:n})}sendGhostAck(e,t){this.send({type:`sendGhostAck`,sequence:e,ghostCount:t})}sendMoves(e,t){this.send({type:`sendMoves`,moves:e,moveStartIndex:t})}close(){this.stopWsPing(),this.ws&&=(this.ws.close(),null),this._connected=!1}startWsPing(){this.smoothedWsPing=0,this.send({type:`wsPing`,ts:Date.now()}),this.wsPingInterval=setInterval(()=>{this.send({type:`wsPing`,ts:Date.now()})},7e3)}stopWsPing(){this.wsPingInterval!=null&&(clearInterval(this.wsPingInterval),this.wsPingInterval=null)}send(e){this.ws?.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify(e)):Zt.warn(`send dropped (ws not open): %s`,e.type)}},$t=256,en=$t/2,tn=2048,nn=null;function rn(e){nn=e}function an(e,t){return nn?nn(e,t):null}function on(e,t){return(n,r)=>{let i=n/t+en,a=r/t+en,o=Math.max(0,Math.min($t-1,i)),s=Math.max(0,Math.min($t-1,a)),c=Math.floor(o),l=Math.floor(s),u=Math.min(c+1,$t-1),d=Math.min(l+1,$t-1),f=o-c,p=s-l,m=e[l*$t+c],h=e[l*$t+u],g=e[d*$t+c],_=e[d*$t+u],v=m*(1-f)+h*f,y=g*(1-f)+_*f;return(v*(1-p)+y*p)/65535*tn}}var sn=fe(`StreamEngine`),cn=class{registry;ghostTracker;entities=new Map;entityIdByGhostIndex=new Map;entityGeneration=0;tickCount=0;camera=null;chatMessages=[];chatMessageIdCounter=0;_chatGen=0;_chatSnapshotGen=-1;_chatSnapshot=[];audioEvents=[];netStrings=new Map;targetNames=new Map;targetSkins=new Map;targetSkinPrefs=new Map;targetTeams=new Map;targetRenderFlags=new Map;pendingNameTags=new Map;sensorGroupColors=new Map;playerSensorGroup=0;lastStatus={health:1,energy:1};latestControl={ghostIndex:-1};controlPlayerGhostId;lastControlType=`camera`;isPiloting=!1;lastPilotGhostIndex;lastVehicleHeading=0;lastVehiclePitch=0;lastVehicleOrbitDir;lastVehicleVelocity;lastVehiclePosTime=0;lastVehiclePos;firstPerson=!0;lastCameraMode;lastOrbitGhostIndex;lastOrbitDistance;latestFov=90;weaponsHud={slots:new Map,activeIndex:-1};backpackHud={packIndex:-1,active:!1,text:``};inventoryHud={slots:new Map,activeSlot:-1};teamScores=[];playerRoster=new Map;clockAnchorStreamSec=null;clockDurationMs=0;missionDisplayName=null;missionTypeDisplayName=null;gameClassName=null;serverDisplayName=null;connectedPlayerName=null;connectedClientId=null;onMissionInfoChange;nextExplosionId=0;resolveGhostClassName(e,t){if(typeof t==`number`){let e=this.registry.getGhostParser(t)?.name;if(e)return e}let n=this.entityIdByGhostIndex.get(e);if(n){let e=this.entities.get(n);if(e?.className)return e.className}let r=this.ghostTracker.getGhost(e);if(r?.className)return r.className}resolveEntityIdForGhostIndex(e){let t=this.entityIdByGhostIndex.get(e);if(t)return t;if(this.ghostTracker.getGhost(e)){let t=je();return this.entityIdByGhostIndex.set(e,t),t}}clearAllEntities(){this.entities.clear(),this.entityIdByGhostIndex.clear(),this.entityGeneration++}resetSharedState(){this.clearAllEntities(),this.tickCount=0,this.camera=null,this.chatMessages=[],this.chatMessageIdCounter=0,this._chatGen=0,this._chatSnapshotGen=-1,this._chatSnapshot=[],this.audioEvents=[],this.netStrings.clear(),this.targetNames.clear(),this.targetSkins.clear(),this.targetSkinPrefs.clear(),this.targetTeams.clear(),this.targetRenderFlags.clear(),this.sensorGroupColors.clear(),this.playerSensorGroup=0,this.lastStatus={health:1,energy:1},this.latestControl={ghostIndex:-1},this.controlPlayerGhostId=void 0,this.lastControlType=`camera`,this.isPiloting=!1,this.lastPilotGhostIndex=void 0,this.lastVehicleHeading=0,this.lastVehiclePitch=0,this.lastVehicleOrbitDir=void 0,this.lastVehicleVelocity=void 0,this.lastVehiclePosTime=0,this.lastVehiclePos=void 0,this.firstPerson=!0,this.lastCameraMode=void 0,this.lastOrbitGhostIndex=void 0,this.lastOrbitDistance=void 0,this.latestFov=90,this.weaponsHud={slots:new Map,activeIndex:-1},this.backpackHud={packIndex:-1,active:!1,text:``},this.inventoryHud={slots:new Map,activeSlot:-1},this.teamScores=[],this.playerRoster.clear(),this.clockAnchorStreamSec=null,this.clockDurationMs=0,this.nextExplosionId=0,this.missionDisplayName=null,this.missionTypeDisplayName=null,this.gameClassName=null,this.serverDisplayName=null}resolveNetString(e){if(e.length>=2&&e.charCodeAt(0)===1){let t=parseInt(e.slice(1),10);if(Number.isFinite(t))return this.netStrings.get(t)??e}return e}formatRemoteArgs(e,t){let n=this.resolveNetString(e);for(let e=0;e0&&(this.playerSensorGroup=t.sensorGroup)}if(t){let e=Ie(t);if(e&&(this.lastControlType=e),this.lastControlType===`player`)this.isPiloting=!!(t.pilot||t.controlObjectGhost!=null),this.isPiloting&&typeof t.controlObjectGhost==`number`?this.lastPilotGhostIndex=t.controlObjectGhost:this.isPiloting||(this.lastPilotGhostIndex=void 0,this.lastVehicleHeading=0,this.lastVehiclePitch=0,this.lastVehicleOrbitDir=void 0,this.lastVehicleVelocity=void 0,this.lastVehiclePosTime=0,this.lastVehiclePos=void 0);else if(this.isPiloting=!1,typeof t.cameraMode==`number`)if(this.lastCameraMode=t.cameraMode,t.cameraMode===3){typeof t.orbitObjectGhostIndex==`number`&&(this.lastOrbitGhostIndex=t.orbitObjectGhostIndex);let e=t.minOrbitDist,n=t.maxOrbitDist,r=t.curOrbitDist;typeof e==`number`&&typeof n==`number`&&Number.isFinite(e)&&Number.isFinite(n)?this.lastOrbitDistance=Math.max(0,n-e):typeof r==`number`&&Number.isFinite(r)&&(this.lastOrbitDistance=Math.max(0,r))}else this.lastOrbitGhostIndex=void 0,this.lastOrbitDistance=void 0}e.cameraFov!==void 0&&(this.latestFov=e.cameraFov)}processEvent(e,t){let n=e.parsedData;if(!n)return;let r=n.type;if(r===`GhostAlwaysObjectEvent`){let e=n,t=e.ghostIndex,r=e.classId,i=e.objectData,a=e._hasObjectData,o=typeof r==`number`?this.registry.getGhostParser(r)?.name??`classId=${r}`:`?`;sn.debug(`GhostAlwaysObjectEvent: ghost=%d class=%s hasData=%s %s`,t,o,a,i?`keys=[${Object.keys(i).join(`,`)}]`:`(no data)`),t!=null&&r!=null&&this.processGhostUpdate({index:t,type:`create`,classId:r,parsedData:i});return}if(r===`NetStringEvent`||t===`NetStringEvent`){let e=n,t=e.id,r=e.value;if(t!=null&&typeof r==`string`){this.netStrings.set(t,r);let e=this.pendingNameTags.get(t);if(e!=null){this.pendingNameTags.delete(t);let n=$e(r).trim();this.targetNames.set(e,n);for(let t of this.entities.values())t.targetId===e&&(t.playerName=n)}}return}if(r===`TargetInfoEvent`||t===`TargetInfoEvent`){let e=n,t=e.targetId,r=e.nameTag;if(t!=null&&r!=null){let e=this.netStrings.get(r);e?this.targetNames.set(t,$e(e).trim()):this.pendingNameTags.set(r,t)}let i=e.sensorGroup;t!=null&&i!=null&&this.targetTeams.set(t,i);let a=e.renderFlags;t!=null&&a!=null&&this.targetRenderFlags.set(t,a);let o=e.skinTag;if(t!=null&&o!=null&&o!==1024){let e=this.netStrings.get(o);e&&this.targetSkins.set(t,e)}let s=e.skinPrefTag;if(t!=null&&s!=null&&s!==1024){let e=this.netStrings.get(s);e&&this.targetSkinPrefs.set(t,e)}if(t!=null){let e=this.targetNames.get(t),n=this.targetTeams.get(t),r=this.targetRenderFlags.get(t),i=this.targetSkins.get(t),a=this.targetSkinPrefs.get(t);for(let o of this.entities.values())o.targetId===t&&(e&&(o.playerName=e),n!=null&&(o.sensorGroup=n),r!=null&&(o.targetRenderFlags=r),i&&(o.skinName=i),a&&(o.skinPrefName=a))}return}if(r===`SetSensorGroupEvent`||t===`SetSensorGroupEvent`){let e=n.sensorGroup;e!=null&&(this.playerSensorGroup=e);return}if(r===`SensorGroupColorEvent`||t===`SensorGroupColorEvent`){let e=n,t=e.sensorGroup,r=e.colors;if(r){let e=this.sensorGroupColors.get(t);e||(e=new Map,this.sensorGroupColors.set(t,e));for(let t of r)t.default?e.delete(t.index):e.set(t.index,{r:t.r??0,g:t.g??0,b:t.b??0})}return}if(r===`GhostingMessageEvent`){n.message===ke.EndGhosting&&this.clearAllEntities();return}if(r===`RemoteCommandEvent`||t===`RemoteCommandEvent`){let e=n,t=this.resolveNetString(e.funcName),r=e.args,i=this.getTimeSec();if(t===`ChatMessage`&&r.length>=4){let e=He(this.resolveNetString(r[3])),t=r[4]?$e(this.resolveNetString(r[4])):``,n=this.formatRemoteArgs(r[3],r.slice(4));if(n){let a=n.indexOf(`: `),{text:o,wavPath:s}=qe(a>=0?n.slice(a+2):n),c,l;if(s){let e=this.resolveNetString(r[1]);c=e?`voice/${e}/${s}.wav`:s;let t=this.resolveNetString(r[2]);if(t){let e=parseFloat(t);Number.isFinite(e)&&(l=Math.max(.5,Math.min(2,e)))}}let u=e??0;this.pushChatMessage({timeSec:i,sender:t,text:o,kind:`chat`,colorCode:u,segments:[{text:t?`${t}: ${o}`:o,colorCode:u}],soundPath:c,soundPitch:l})}}else if(t===`CannedChatMessage`&&r.length>=6){let e=He(this.resolveNetString(r[1])),t=$e(this.resolveNetString(r[2])),n=$e(this.resolveNetString(r[4])),a=this.formatRemoteArgs(r[1],r.slice(2));if(a){let{wavPath:o}=qe(a),s=qe($e(this.resolveNetString(r[3]))).text,c,l;if(o){let e=this.resolveNetString(r[5]);if(c=e?`voice/${e}/${o}.wav`:o,r[6]){let e=parseFloat(this.resolveNetString(r[6]));Number.isFinite(e)&&(l=Math.max(.5,Math.min(2,e)))}}let u=e??0,d=[];n&&d.push({text:`[${n}] `,colorCode:0}),d.push({text:t?`${t}: ${s}`:s,colorCode:u}),this.pushChatMessage({timeSec:i,sender:t,text:s,kind:`chat`,colorCode:u,segments:d,soundPath:c,soundPitch:l})}}else if(t===`ServerMessage`&&r.length>=2){this.handleServerMessage(r);let e=He(this.resolveNetString(r[1])),t=this.formatRemoteArgs(r[1],r.slice(2));if(t){let{text:n,wavPath:r}=qe(t),a=e??0;this.pushChatMessage({timeSec:i,sender:``,text:n,kind:`server`,colorCode:a,segments:[{text:n,colorCode:a}],soundPath:r??void 0})}}else this.handleHudRemoteCommand(t,r);return}if(r===`Sim3DAudioEvent`||r===`Sim2DAudioEvent`||t===`Sim3DAudioEvent`||t===`Sim2DAudioEvent`){let e=r===`Sim3DAudioEvent`||t===`Sim3DAudioEvent`,i=n.profileId;if(typeof i==`number`){let t=this.getTimeSec(),r=e?n.position:void 0;this.audioEvents.push({profileId:i,position:r,timeSec:t}),this.audioEvents.length>100&&this.audioEvents.splice(0,this.audioEvents.length-100)}}}processGhostUpdate(e){let t=e.index,n=this.entityIdByGhostIndex.get(t);if(n){let t=this.entities.get(n);t&&t.type===`Projectile`&&!t.hasExploded&&t.explosionDataBlockId!=null&&t.position&&(e.type===`delete`||e.type===`create`)&&this.spawnExplosion(t,[...t.position])}if(e.type===`delete`){n&&(this.entities.delete(n),this.entityIdByGhostIndex.delete(t),this.entityGeneration++);return}let r=this.resolveGhostClassName(t,e.classId);if(!r){if(e.type===`create`)throw Error(`No ghost parser for classId ${e.classId} (ghost index ${t})`);return}let i=n??je();n&&n!==i&&this.entities.delete(n);let a,o=this.entities.get(i);if(o&&e.type===`create`?(o.spawnTick=this.tickCount,this.resetEntity(o),a=o):o?a=o:(a={id:i,ghostIndex:t,className:r,spawnTick:this.tickCount,type:Oe(r),rotation:[0,0,0,1]},this.entities.set(i,a),this.entityGeneration++),a.ghostIndex=t,a.className=r,a.type=Oe(r),this.entityIdByGhostIndex.set(t,i),this.applyGhostData(a,e.parsedData),e.type===`create`&&e.parsedData){let n=rt(r,t,e.parsedData);n&&(a.sceneData=n)}}resetEntity(e){e.rotation=[0,0,0,1],e.hasExploded=void 0,e.explosionShape=void 0,e.explosionLifetimeTicks=void 0,e.faceViewer=void 0,e.simulatedVelocity=void 0,e.projectilePhysics=void 0,e.gravityMod=void 0,e.direction=void 0,e.velocity=void 0,e.position=void 0,e.dataBlock=void 0,e.dataBlockId=void 0,e.shapeHint=void 0,e.visual=void 0,e.targetId=void 0,e.targetRenderFlags=void 0,e.sensorGroup=void 0,e.playerName=void 0,e.imageSlots=void 0,e.mountObjectGhostIndex=void 0,e.mountNode=void 0,e.skinName=void 0,e.skinPrefName=void 0,e.falling=void 0,e.jetting=void 0,e.weaponImageState=void 0,e.weaponImageStates=void 0,e.weaponImageStatesDbId=void 0,e.itemPhysics=void 0,e.threads=void 0,e.headPitch=void 0,e.headYaw=void 0,e.health=void 0,e.energy=void 0,e.maxEnergy=void 0,e.damageState=void 0,e.fadeVal=void 0,e.fadeState=void 0,e.cloaked=void 0,e.cloakLevel=void 0,e.actionAnim=void 0,e.actionAtEnd=void 0,e.armAction=void 0,e.explosionDataBlockId=void 0,e.maintainEmitterId=void 0,e.soundSlots=void 0,e.isStaticItem=void 0}applyGhostData(e,t){if(!t)return;let n=t,r=n.dataBlockId;if(r!=null){e.dataBlockId=r;let t=this.getDataBlockData(r),i=Ve(e.className,t);e.visual=Fe(e.className,t)??Be(e.className,t),typeof i==`string`&&(e.shapeHint=i,e.dataBlock=i),e.type===`Player`&&typeof t?.maxEnergy==`number`&&(e.maxEnergy=t.maxEnergy);let a=t?.lightType;if(a&&a>0&&t){e.lightType=a;let n=t.lightColor;e.lightColor=n?[n.r,n.g,n.b,n.a??1]:[1,1,1,1],e.lightTime=t.lightTime??1e3,e.lightRadius=t.lightRadius??10,e.lightOnlyStatic=!!t.lightOnlyStatic}if(e.type===`Projectile`&&(Me.has(e.className)?e.projectilePhysics=`linear`:Ae.has(e.className)?(e.projectilePhysics=`ballistic`,e.gravityMod=Xe(t,[`gravityMod`])??1):We.has(e.className)&&(e.projectilePhysics=`seeker`)),e.type===`Projectile`&&e.explosionDataBlockId==null){let t=this.resolveExplosionInfo(r);t&&(e.explosionShape=t.shape,e.faceViewer=t.faceViewer,e.explosionLifetimeTicks=t.lifetimeTicks,e.explosionDataBlockId=t.explosionDataBlockId)}if(e.type===`Projectile`&&e.maintainEmitterId==null){let n=t?.baseEmitter;typeof n==`number`&&n>0&&(e.maintainEmitterId=n)}if(e.className===`WheeledVehicle`&&typeof t?.maxSteeringAngle==`number`&&(e.maxSteeringAngle=t.maxSteeringAngle),e.className===`ForceFieldBare`&&t){let r=t.color1,i=[];for(let e=0;e<5;e++){let n=t[`texture${e}`];n&&i.push(n)}let a=n.scale;e.forceFieldData={textures:i,color:r?[r.r,r.g,r.b]:[1,1,1],baseTranslucency:t.baseTranslucency??1,dimensions:a?[a.y,a.z,a.x]:[1,1,1],framesPerSec:t.framesPerSec??1,scrollSpeed:t.scrollSpeed??0,umapping:t.umapping??1,vmapping:t.vmapping??1}}}if(Array.isArray(n.wheels)){let t=n.wheels;if(!e.wheels||e.wheels.length!==t.length)e.wheels=t.map(e=>({speed:e.avel,lateralSlip:e.Dx,longitudinalSlip:e.Dy}));else for(let n=0;n0){for(let n of t)if(!(n.index==null||n.index<0||n.index>=8)){if(n.dataBlockId&&n.dataBlockId>0){let t=this.getDataBlockData(n.dataBlockId),r=Ve(`ShapeBaseImageData`,t),i=typeof t?.mountPoint==`number`?t.mountPoint:0,a;if(n.skinTagIndex==null?n.skinName&&(a=n.skinName):a=this.netStrings.get(n.skinTagIndex),r&&(e.imageSlots||=[],e.imageSlots[n.index]={shapeName:r,mountPoint:i,dataBlockId:n.dataBlockId,skinName:a}),n.index===0){let r=e.weaponImageState;e.weaponImageState={dataBlockId:n.dataBlockId,triggerDown:n.triggerDown??r?.triggerDown??!1,ammo:n.ammo??r?.ammo??!0,loaded:n.loaded??r?.loaded??!0,target:n.target??r?.target??!1,wet:n.wet??r?.wet??!1,fireCount:n.fireCount??r?.fireCount??0},t&&e.weaponImageStatesDbId!==n.dataBlockId&&(e.weaponImageStates=Je(t),e.weaponImageStatesDbId=n.dataBlockId)}if(n.index===3&&e.type===`Player`&&e.targetId!=null&&e.targetId>=0){let t=this.targetRenderFlags.get(e.targetId)??0,n=t|2;n!==t&&(this.targetRenderFlags.set(e.targetId,n),e.targetRenderFlags=n)}}else if(!n.dataBlockId&&(e.imageSlots&&(e.imageSlots[n.index]=void 0),n.index===0&&(e.weaponImageState=void 0,e.weaponImageStates=void 0),n.index===3&&e.type===`Player`&&e.targetId!=null&&e.targetId>=0)){let t=this.targetRenderFlags.get(e.targetId)??0,n=t&-3;n!==t&&(this.targetRenderFlags.set(e.targetId,n),e.targetRenderFlags=n)}}}}let i=Ge(n.position)?n.position:Ge(n.initialPosition)?n.initialPosition:Ge(n.explodePosition)?n.explodePosition:Ge(n.endPoint)?n.endPoint:Ge(n.transform?.position)?n.transform.position:void 0;i&&(e.position=[i.x,i.y,i.z]);let a=Qe(n.direction)?n.direction:void 0;if(a&&(e.direction=[a.x,a.y,a.z]),e.type===`Player`&&typeof n.rotationZ==`number`&&(e.rotation=Ke(n.rotationZ)),e.type===`Player`&&(typeof n.headX==`number`&&(e.headPitch=n.headX),typeof n.headZ==`number`&&(e.headYaw=n.headZ)),Re(n.angPosition)){let t=tt(n.angPosition);t&&(e.rotation=t)}else if(Re(n.transform?.rotation)){let t=tt(n.transform.rotation);t&&(e.rotation=t)}else if(Array.isArray(n.transform?.elements)){let t=ze(n.transform.elements);t&&(e.rotation=t)}else if(e.type===`Item`&&typeof n.rotation?.angle==`number`){let t=n.rotation;e.rotation=Ke((t.zSign??1)*t.angle)}else if(e.type===`Projectile`){let t=n.velocity??n.direction??(Ge(n.initialPosition)&&Ge(n.endPos)?{x:n.endPos.x-n.initialPosition.x,y:n.endPos.y-n.initialPosition.y,z:n.endPos.z-n.initialPosition.z}:void 0);Qe(t)&&(t.x!==0||t.y!==0)&&(e.rotation=Ke(Math.atan2(t.x,t.y)))}if(Qe(n.velocity)&&(e.velocity=[n.velocity.x,n.velocity.y,n.velocity.z],e.direction||=[n.velocity.x,n.velocity.y,n.velocity.z]),typeof n.moveFlag0==`boolean`&&(e.falling=n.moveFlag0),typeof n.moveFlag1==`boolean`&&(e.jetting=n.moveFlag1),e.type===`Item`){typeof n.isStatic==`boolean`&&(e.isStaticItem=n.isStatic,n.isStatic&&(e.itemPhysics=void 0));let t=n.atRest;if(t===!1&&!e.isStaticItem&&Qe(n.velocity)){let t=n.velocity;e.itemPhysics={velocity:[t.x,t.y,t.z],atRest:!1},sn.debug(`Item %s (%s): atRest=false pos=%s vel=%s`,e.id,e.shapeHint??e.dataBlock??`db#${e.dataBlockId}`,n.position?`${n.position.x.toFixed(1)},${n.position.y.toFixed(1)},${n.position.z.toFixed(1)}`:`none`,`${t.x.toFixed(1)},${t.y.toFixed(1)},${t.z.toFixed(1)}`)}else t===!0&&(sn.debug(`Item %s (%s): atRest=true pos=%s`,e.id,e.shapeHint??e.dataBlock??`db#${e.dataBlockId}`,e.position?`${e.position[0].toFixed(1)},${e.position[1].toFixed(1)},${e.position[2].toFixed(1)}`:`none`),e.itemPhysics=void 0)}if(e.projectilePhysics){if(e.projectilePhysics===`linear`){let t=Xe(e.dataBlockId==null?void 0:this.getDataBlockData(e.dataBlockId),[`dryVelocity`,`muzzleVelocity`,`bulletVelocity`])??80,r=e.direction??[0,1,0],i=r[0]*t,a=r[1]*t,o=r[2]*t,s=n.excessVel,c=n.excessDir;typeof s==`number`&&s>0&&Qe(c)&&(i+=c.x*s,a+=c.y*s,o+=c.z*s),e.simulatedVelocity=[i,a,o]}else Qe(n.velocity)&&(e.simulatedVelocity=[n.velocity.x,n.velocity.y,n.velocity.z]);let t=n.currTick;if(typeof t==`number`&&t>0&&e.simulatedVelocity&&e.position){let n=32/1e3*t,r=e.simulatedVelocity;if(e.position[0]+=r[0]*n,e.position[1]+=r[1]*n,e.position[2]+=r[2]*n,e.projectilePhysics===`ballistic`){let t=-9.81*(e.gravityMod??1);e.position[2]+=.5*t*n*n,r[2]+=t*n}}}let o=Ge(n.explodePosition)?n.explodePosition:Ge(n.explodePoint)?n.explodePoint:void 0;if(e.type===`Projectile`&&!e.hasExploded&&o&&e.explosionDataBlockId!=null&&this.spawnExplosion(e,[o.x,o.y,o.z]),typeof n.damageLevel==`number`&&(e.health=Ye(1-n.damageLevel,0,1)),typeof n.damageState==`number`&&(e.damageState=n.damageState),typeof n.cloaked==`boolean`&&n.cloaked!==e.cloaked){let t=e.cloaked!=null;e.cloaked=n.cloaked,!t&&n.cloaked&&(e.cloakLevel=1)}if(n.fading===!0&&typeof n.fadeTime==`number`){let t=!!n.fadeOut;n.fadeTime<=0?(e.fadeVal=t?0:1,e.fadeState=void 0):(e.fadeVal=t?1:0,e.fadeState={fadeOut:t,fadeTime:n.fadeTime,elapsed:0})}else typeof n.fadeVal==`boolean`&&(e.fadeVal=n.fadeVal?1:0,e.fadeState=void 0);if(typeof n.action==`number`&&(e.actionAnim=n.action,e.actionAtEnd=!!n.actionAtEnd),typeof n.armAction==`number`&&(e.armAction=n.armAction),typeof n.mountObject==`number`&&(n.mountObject>=0?(e.mountObjectGhostIndex=n.mountObject,e.mountNode=typeof n.mountNode==`number`?n.mountNode:0):(e.mountObjectGhostIndex=void 0,e.mountNode=void 0,e.actionAnim=void 0,e.actionAtEnd=void 0)),Array.isArray(n.threads)){let t=n.threads;if(e.threads){let n=[...e.threads];for(let e of t){let t=n.findIndex(t=>t.index===e.index);t>=0?n[t]=e:n.push(e)}e.threads=n}else e.threads=t}if(typeof n.energy==`number`&&(e.energy=Ye(n.energy,0,1)),typeof n.targetId==`number`){e.targetId=n.targetId;let t=this.targetNames.get(n.targetId);t&&(e.playerName=t);let r=this.targetTeams.get(n.targetId);r!=null&&(e.sensorGroup=r,e.ghostIndex===this.latestControl.ghostIndex&&this.lastControlType===`player`&&(this.playerSensorGroup=r));let i=this.targetRenderFlags.get(n.targetId);i!=null&&(e.targetRenderFlags=i);let a=this.targetSkins.get(n.targetId);a&&(e.skinName=a);let o=this.targetSkinPrefs.get(n.targetId);o&&(e.skinPrefName=o)}let s=n.sounds;Array.isArray(s)&&(e.soundSlots=s),e.className===`WayPoint`&&typeof n.name==`string`&&(e.label=n.name),e.className===`AudioEmitter`&&(typeof n.filename==`string`&&(e.audioFileName=n.filename),typeof n.volume==`number`&&(e.audioVolume=n.volume),typeof n.is3D==`boolean`&&(e.audioIs3D=n.is3D),typeof n.isLooping==`boolean`&&(e.audioIsLooping=n.isLooping),typeof n.minDistance==`number`&&(e.audioMinDistance=n.minDistance),typeof n.maxDistance==`number`&&(e.audioMaxDistance=n.maxDistance),typeof n.minLoopGap==`number`&&(e.audioMinLoopGap=n.minLoopGap),typeof n.maxLoopGap==`number`&&(e.audioMaxLoopGap=n.maxLoopGap))}resolveExplosionInfo(e){let t=this.getDataBlockData(e);if(!t)return;let n=t.explosion;if(n==null)return;let r=this.getDataBlockData(n);if(!r)return;let i=r.dtsFileName||void 0,a=r.lifetimeMS??31;return{shape:i,faceViewer:r.faceViewer!==!1&&r.faceViewer!==0,lifetimeTicks:a,explosionDataBlockId:n}}spawnExplosion(e,t){e.hasExploded=!0;let n=e.explosionLifetimeTicks??31,r=`fx_${this.nextExplosionId++}`,i={id:r,ghostIndex:-1,className:`Explosion`,spawnTick:this.tickCount,type:`Explosion`,dataBlock:e.explosionShape,explosionDataBlockId:e.explosionDataBlockId,position:t,rotation:[0,0,0,1],isExplosion:!0,faceViewer:e.faceViewer!==!1,expiryTick:this.tickCount+n};if(this.entities.set(r,i),e.explosionDataBlockId!=null){let n=this.getDataBlockData(e.explosionDataBlockId)?.subExplosions;if(Array.isArray(n))for(let e of n){if(e==null)continue;let n=this.getDataBlockData(e);if(!n)continue;let r=n.dtsFileName||void 0,i=n.lifetimeMS??31,a=n.offset??0,o=Math.random()*Math.PI*2,s=[t[0]+Math.cos(o)*a,t[1]+Math.sin(o)*a,t[2]],c=`fx_${this.nextExplosionId++}`,l={id:c,ghostIndex:-1,className:`Explosion`,spawnTick:this.tickCount,type:`Explosion`,dataBlock:r,explosionDataBlockId:e,position:s,rotation:[0,0,0,1],isExplosion:!0,faceViewer:n.faceViewer!==!1&&n.faceViewer!==0,expiryTick:this.tickCount+i};this.entities.set(c,l)}}e.position=void 0,e.simulatedVelocity=void 0}advanceProjectiles(){let e=32/1e3;for(let t of this.entities.values()){if(!t.simulatedVelocity||!t.position)continue;let n=t.simulatedVelocity,r=t.position;t.projectilePhysics===`ballistic`&&(n[2]+=-9.81*(t.gravityMod??1)*e),r[0]+=n[0]*e,r[1]+=n[1]*e,r[2]+=n[2]*e,(n[0]!==0||n[1]!==0)&&(t.rotation=Ke(Math.atan2(n[0],n[1])))}}advanceFades(){let e=32/1e3;for(let t of this.entities.values()){let n=t.fadeState;if(n)if(n.elapsed+=e,n.elapsed>=n.fadeTime)t.fadeVal=n.fadeOut?0:1,t.fadeState=void 0;else{let e=n.elapsed/n.fadeTime;t.fadeVal=n.fadeOut?1-e:e}t.cloakLevel!=null&&t.cloaked!=null&&(t.cloaked?t.cloakLevel=Math.min(t.cloakLevel+e*2,1):t.cloakLevel=Math.max(t.cloakLevel-e*2,0))}}advanceControlVehicle(){if(!this.isPiloting||this.lastPilotGhostIndex==null)return;if(!this.lastVehiclePos||!this.lastVehicleVelocity){this.tickCount%100==0&&console.warn(`[advanceControlVehicle] piloting but missing data:`,`pos:`,!!this.lastVehiclePos,`vel:`,!!this.lastVehicleVelocity,`ghost:`,this.lastPilotGhostIndex);return}let e=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex),t=e?this.entities.get(e):void 0;if(!t)return;let n=32/1e3,[r,i,a]=this.lastVehicleVelocity;this.lastVehiclePos[0]+=r*n,this.lastVehiclePos[1]+=i*n,this.lastVehiclePos[2]+=a*n,t.position=[...this.lastVehiclePos]}advanceItems(){let e=32/1e3;for(let t of this.entities.values()){let n=t.itemPhysics;if(!n||n.atRest||t.isStaticItem||t.fadeVal===0||!t.position)continue;let r=n.velocity,i=t.position;r[2]+=-20*e,i[0]+=r[0]*e,i[1]+=r[1]*e,i[2]+=r[2]*e;let a=an(i[0],i[1]);if(a!=null&&i[2]0){let e=Math.max(0,1-t/o);r[0]*=e,r[1]*=e}r[2]=e*.2,Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2])<.15&&(r[0]=r[1]=r[2]=0,n.atRest=!0)}i[2]<-1e3&&(n.atRest=!0)}}removeExpiredExplosions(){for(let[e,t]of this.entities)t.isExplosion&&t.expiryTick!=null&&this.tickCount>=t.expiryTick&&this.entities.delete(e)}updateCameraAndHud(){let e=this.latestControl,t=this.getTimeSec(),n=e.data,r=this.lastControlType;if(this.removeExpiredExplosions(),e.position){let{yaw:i,pitch:a}=this.getCameraYawPitch(n);if(this.isPiloting){if(n){let e=n.controlObjectData?.angPosition;if(e&&typeof e.w==`number`){this.lastVehicleHeading=nt(e),this.lastVehiclePitch=Le(e);let t=tt(e);if(t){let[e,n,r,i]=t,a=1-2*(n*n+r*r),o=2*(e*n+r*i),s=2*(e*r-n*i);this.lastVehicleOrbitDir=[-a,-o,-s]}}}i=this.lastVehicleHeading,a=this.lastVehiclePitch}if(this.camera={time:t,position:[e.position.x,e.position.y,e.position.z],rotation:Ne(i,Ye(a,-Ze,Ze)),fov:this.latestFov,mode:`observer`,yaw:i,pitch:a},r===`camera`)if((typeof n?.cameraMode==`number`?n.cameraMode:this.lastCameraMode)===3){this.camera.mode=`third-person`,typeof this.lastOrbitDistance==`number`&&(this.camera.orbitDistance=this.lastOrbitDistance);let e=typeof n?.orbitObjectGhostIndex==`number`?n.orbitObjectGhostIndex:this.lastOrbitGhostIndex;typeof e==`number`&&e>=0&&(this.camera.orbitTargetId=this.resolveEntityIdForGhostIndex(e))}else this.camera.mode=`observer`;else{if(e.ghostIndex>=0&&(this.controlPlayerGhostId=this.resolveEntityIdForGhostIndex(e.ghostIndex)),this.firstPerson)this.camera.mode=`first-person`;else if(this.camera.mode=`third-person`,this.isPiloting&&this.lastPilotGhostIndex!=null){let e=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex);this.camera.orbitTargetId=e;let t=e?this.entities.get(e):void 0,n=t?.dataBlockId==null?void 0:this.getDataBlockData(t.dataBlockId);this.camera.orbitDistance=typeof n?.cameraMaxDist==`number`?n.cameraMaxDist:15,this.camera.orbitOffset=typeof n?.cameraOffset==`number`?n.cameraOffset:0,this.lastVehicleOrbitDir&&(this.camera.orbitDirection=this.lastVehicleOrbitDir)}else this.camera.orbitTargetId=this.controlPlayerGhostId,this.camera.orbitDistance=3;this.isPiloting&&this.lastPilotGhostIndex!=null?this.camera.controlEntityId=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex):this.controlPlayerGhostId&&(this.camera.controlEntityId=this.controlPlayerGhostId)}if(r===`player`&&e.position){if(this.isPiloting&&this.lastPilotGhostIndex!=null){let t=this.resolveEntityIdForGhostIndex(this.lastPilotGhostIndex),r=t?this.entities.get(t):void 0;if(r){r.position=[e.position.x,e.position.y,e.position.z],this.lastVehiclePos=r.position.slice();let t=n?.controlObjectData;if(t){let e=t.linMomentum;if(e&&Ge(e)){let t=r.dataBlockId,n=(t==null?void 0:this.getDataBlockData(t))?.mass??200,i=n>0?1/n:1/200;this.lastVehicleVelocity=[e.x*i,e.y*i,e.z*i],r.velocity=this.lastVehicleVelocity}let n=t.angPosition;if(n&&typeof n.w==`number`){let e=tt(n);e&&(r.rotation=e)}}}}else if(this.controlPlayerGhostId){let t=this.entities.get(this.controlPlayerGhostId);if(t){t.position=[e.position.x,e.position.y,e.position.z],t.rotation=Ke(i),t.headPitch=this.getControlPlayerHeadPitch(a);let r=n?.velocity;Qe(r)&&(t.velocity=[r.x,r.y,r.z])}}}}else this.camera&&={...this.camera,time:t,fov:this.latestFov};let i={health:1,energy:1};if(this.camera?.mode===`first-person`){let e=this.controlPlayerGhostId,t=e?this.entities.get(e):void 0;i.health=t?.health??1;let r=n?.energyLevel;if(typeof r==`number`){let e=t?.maxEnergy??60;e>0&&(i.energy=Ye(r/e,0,1))}else i.energy=t?.energy??1}else if(this.camera?.mode===`third-person`&&this.camera.orbitTargetId){let e=this.entities.get(this.camera.orbitTargetId);i.health=e?.health??1,i.energy=e?.energy??1}this.lastStatus=i}getControlPlayerHeadPitch(e){return Ye(e/Ze,-1,1)}getAbsoluteRotation(e){return e?typeof e.rotationZ==`number`&&typeof e.headX==`number`?{yaw:e.rotationZ,pitch:e.headX}:typeof e.rotZ==`number`&&typeof e.rotX==`number`?{yaw:e.rotZ,pitch:e.rotX}:null:null}resolveIffColor(e){if(this.playerSensorGroup===0)return;let t=this.sensorGroupColors.get(this.playerSensorGroup);if(t){let n=t.get(e);if(n)return n}if(e===this.playerSensorGroup)return et;if(e!==0)return Pe}pushChatMessage(e){this.chatMessages.push({...e,id:++this.chatMessageIdCounter}),this.chatMessages.length>200&&this.chatMessages.splice(0,this.chatMessages.length-200),this._chatGen++}handleServerMessage(e){if(e.length<2)return;let t=this.resolveNetString(e[0]);if((t===`MsgTeamScoreIs`||t===`MsgTeamScore`)&&e.length>=4){let t=parseInt(this.resolveNetString(e[2]),10),n=parseInt(this.resolveNetString(e[3]),10);if(!isNaN(t)&&!isNaN(n)){let e=this.teamScores.find(e=>e.teamId===t);e&&(e.score=n,this.onTeamScoresChanged())}}else if(t===`MsgCTFAddTeam`&&e.length>=6){let t=parseInt(this.resolveNetString(e[2]),10),n=$e(this.resolveNetString(e[3])),r=parseInt(this.resolveNetString(e[5]),10);if(!isNaN(t)&&t>0){let e=this.teamScores.find(e=>e.teamId===t);e?(e.name=n,e.score=isNaN(r)?e.score:r):this.teamScores.push({teamId:t,name:n,score:isNaN(r)?0:r,playerCount:0}),this.onTeamScoresChanged()}}else if(t===`MsgClientJoin`&&e.length>=4){let t=$e(this.resolveNetString(e[2])).trim(),n=parseInt(this.resolveNetString(e[3]),10);isNaN(n)||(this.playerRoster.set(n,{name:t,teamId:0,score:0,ping:0,packetLoss:0}),this.onRosterChanged()),!this.connectedPlayerName&&t&&$e(this.resolveNetString(e[1])).includes(`Welcome to Tribes`)&&(this.connectedPlayerName=t,this.connectedClientId=n,this.onMissionInfoChange?.())}else if(t===`MsgClientDrop`&&e.length>=4){let t=parseInt(this.resolveNetString(e[3]),10);isNaN(t)||(this.playerRoster.delete(t),this.onRosterChanged())}else if(t===`MsgClientJoinTeam`&&e.length>=6){let t=parseInt(this.resolveNetString(e[4]),10),n=parseInt(this.resolveNetString(e[5]),10);if(!isNaN(t)&&!isNaN(n)){let e=this.playerRoster.get(t);e?e.teamId=n:this.playerRoster.set(t,{name:``,teamId:n,score:0,ping:0,packetLoss:0}),this.onRosterChanged()}}else if(t===`MsgPlayerScore`&&e.length>=5){let t=parseInt(this.resolveNetString(e[2]),10);if(!isNaN(t)){let n=this.playerRoster.get(t);if(n){let t=parseInt(this.resolveNetString(e[3]),10),r=parseInt(this.resolveNetString(e[4]),10),i=parseInt(this.resolveNetString(e[5]??``),10);isNaN(t)||(n.score=t),isNaN(r)||(n.ping=r),isNaN(i)||(n.packetLoss=i),this.onRosterChanged()}}}else if(t===`MsgSystemClock`&&e.length>=4){let t=parseFloat(this.resolveNetString(e[3]));this.clockAnchorStreamSec=this.getTimeSec(),this.clockDurationMs=Number.isFinite(t)?t:0}else if(t===`MsgMissionDropInfo`&&e.length>=5){let t=$e(this.resolveNetString(e[2])),n=$e(this.resolveNetString(e[3])),r=$e(this.resolveNetString(e[4]));sn.info(`mission drop info: mission=%s gameType=%s server=%s`,t,n,r),this.missionDisplayName=t||this.missionDisplayName,this.missionTypeDisplayName=n||this.missionTypeDisplayName,this.serverDisplayName=r||this.serverDisplayName,this.onMissionInfoChange?.()}else if(t===`MsgLoadInfo`&&e.length>=5){let t=$e(this.resolveNetString(e[3])),n=$e(this.resolveNetString(e[4]));sn.info(`load info: mission=%s gameType=%s`,t,n),this.missionDisplayName=t||this.missionDisplayName,this.missionTypeDisplayName=n||this.missionTypeDisplayName,this.onMissionInfoChange?.()}else if(t===`MsgClientReady`&&e.length>=3){let t=this.resolveNetString(e[2]);sn.info(`client ready: gameClass=%s`,t),this.gameClassName=t||this.gameClassName,this.onMissionInfoChange?.()}}onTeamScoresChanged(){}onRosterChanged(){}handleHudRemoteCommand(e,t){if(e===`setWeaponsHudItem`&&t.length>=3){let e=parseInt(t[0],10),n=parseInt(t[1],10),r=t[2]===`1`||t[2]===`true`;isNaN(e)||(r?this.weaponsHud.slots.set(e,isNaN(n)?-1:n):this.weaponsHud.slots.delete(e),this.onWeaponsHudChanged())}else if(e===`setWeaponsHudAmmo`&&t.length>=2){let e=parseInt(t[0],10),n=parseInt(t[1],10);isNaN(e)||(this.weaponsHud.slots.set(e,isNaN(n)?-1:n),this.onWeaponsHudChanged())}else if(e===`setWeaponsHudActive`&&t.length>=1){let e=parseInt(t[0],10);this.weaponsHud.activeIndex=isNaN(e)?-1:e,!isNaN(e)&&e>=0&&!this.weaponsHud.slots.has(e)&&this.weaponsHud.slots.set(e,-1),this.onWeaponsHudChanged()}else if(e===`setWeaponsHudClearAll`)this.weaponsHud.slots.clear(),this.weaponsHud.activeIndex=-1,this.onWeaponsHudChanged();else if(e===`setBackpackHudItem`&&t.length>=2){let e=parseInt(t[0],10);(t[1]===`1`||t[1]===`true`)&&!isNaN(e)?(this.backpackHud.packIndex=e,this.backpackHud.active=!1,this.backpackHud.text=``):(this.backpackHud.packIndex=-1,this.backpackHud.active=!1,this.backpackHud.text=``)}else if(e===`setSatchelArmed`)this.backpackHud.active=!0;else if(e===`setCloakIconOn`||e===`setRepairPackIconOn`||e===`setShieldIconOn`||e===`setSenJamIconOn`)this.backpackHud.active=!0;else if(e===`setCloakIconOff`||e===`setRepairPackIconOff`||e===`setShieldIconOff`||e===`setSenJamIconOff`)this.backpackHud.active=!1;else if(e===`updatePackText`&&t.length>=1)this.backpackHud.text=t[0]??``;else if(e===`setInventoryHudItem`&&t.length>=3){let e=parseInt(t[0],10),n=parseInt(t[1],10),r=t[2]===`1`||t[2]===`true`;isNaN(e)||(r&&!isNaN(n)?this.inventoryHud.slots.set(e,n):this.inventoryHud.slots.delete(e),this.onInventoryHudChanged())}else if(e===`setInventoryHudAmount`&&t.length>=2){let e=parseInt(t[0],10),n=parseInt(t[1],10);!isNaN(e)&&!isNaN(n)&&(this.inventoryHud.slots.set(e,n),this.onInventoryHudChanged())}else e===`setInventoryHudClearAll`&&(this.inventoryHud.slots.clear(),this.inventoryHud.activeSlot=-1,this.onInventoryHudChanged())}onWeaponsHudChanged(){}onInventoryHudChanged(){}buildEntityList(e){let t=[];for(let n of this.entities.values()){if(e&&!e(n))continue;let r=n.targetId!=null&&n.targetId>=0?this.targetRenderFlags.get(n.targetId)??n.targetRenderFlags:n.targetRenderFlags;n.type===`Player`&&!n.imageSlots?.[3]&&(r=r==null?r:r&-3),t.push({id:n.id,type:n.type,visual:n.visual,direction:n.direction,ghostIndex:n.ghostIndex,className:n.className,dataBlockId:n.dataBlockId,shapeHint:n.shapeHint,dataBlock:n.dataBlock,imageSlots:n.imageSlots,lightType:n.lightType,lightColor:n.lightColor,lightTime:n.lightTime,lightRadius:n.lightRadius,lightOnlyStatic:n.lightOnlyStatic,isStaticItem:n.isStaticItem,mountObjectId:n.mountObjectGhostIndex==null?void 0:this.entityIdByGhostIndex.get(n.mountObjectGhostIndex),mountNode:n.mountNode,falling:n.falling,jetting:n.jetting,playerName:n.playerName,skinName:n.skinName,skinPrefName:n.skinPrefName,targetRenderFlags:r,iffColor:(n.type===`Player`||(r??0)&2)&&n.sensorGroup!=null?this.resolveIffColor(n.sensorGroup):void 0,position:n.position&&(n.simulatedVelocity||n.itemPhysics&&!n.itemPhysics.atRest)?[...n.position]:n.position,rotation:n.rotation,velocity:n.velocity,health:n.health,energy:n.energy,actionAnim:n.actionAnim,actionAtEnd:n.actionAtEnd,armAction:n.armAction,damageState:n.damageState,fadeVal:n.fadeVal??1,cloakLevel:n.cloakLevel??0,faceViewer:n.faceViewer,threads:n.threads,explosionDataBlockId:n.explosionDataBlockId,maintainEmitterId:n.maintainEmitterId,weaponImageState:n.weaponImageState,weaponImageStates:n.weaponImageStates,headPitch:n.headPitch,headYaw:n.headYaw,label:n.label,audioFileName:n.audioFileName,audioVolume:n.audioVolume,audioIs3D:n.audioIs3D,audioIsLooping:n.audioIsLooping,audioMinDistance:n.audioMinDistance,audioMaxDistance:n.audioMaxDistance,audioMinLoopGap:n.audioMinLoopGap,audioMaxLoopGap:n.audioMaxLoopGap,wheels:n.wheels,steeringYaw:n.steeringYaw,frozen:n.frozen,maxSteeringAngle:n.maxSteeringAngle,soundSlots:n.soundSlots,sceneData:n.sceneData,forceFieldData:n.forceFieldData})}return t}computeMatchClockMs(e){if(this.clockAnchorStreamSec==null)return null;let t=(e-this.clockAnchorStreamSec)*1e3;return-this.clockDurationMs+t}buildHudState(){let e={slots:Array.from(this.weaponsHud.slots.entries()).map(([e,t])=>({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},t={slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},n=this.backpackHud.packIndex>=0?{...this.backpackHud}:null,r=this.teamScores.map(e=>({...e})),i=new Map;for(let{teamId:e}of this.playerRoster.values())e>0&&i.set(e,(i.get(e)??0)+1);for(let e of r)e.playerCount=i.get(e.teamId)??0;let a=[];for(let[e,t]of this.playerRoster)a.push({clientId:e,...t});return{weaponsHud:e,inventoryHud:t,backpackHud:n,teamScores:r,playerRoster:a}}buildTimeFilteredEvents(e){return this._chatSnapshotGen!==this._chatGen&&(this._chatSnapshot=this.chatMessages.slice(),this._chatSnapshotGen=this._chatGen),{chatMessages:this._chatSnapshot,audioEvents:this.audioEvents.filter(t=>t.timeSec>e-.5&&t.timeSec<=e)}}},G=fe(`liveStreaming`),ln=class extends cn{packetParser;relay;currentTimeSec=0;connectSynced=!1;_snapshot=null;_snapshotTick=-1;_ready=!1;_teamScoresGen=0;_rosterGen=0;_weaponsHudGen=0;_inventoryHudGen=0;_cachedHud=null;dataBlockClassNames=new Map;onReady;onMissionChange;missionName=null;lastMoveAck=0;constructor(e){super(),this.relay=e;let{registry:t,ghostTracker:n,packetParser:r}=Ue();this.packetParser=r,this.ghostTracker=n,this.registry=t}getDataBlockData(e){return this.packetParser.getDataBlockDataMap()?.get(e)}_shapeConstructorCache=null;getShapeConstructorSequences(e){this._shapeConstructorCache=new Map;let t=this.packetParser.getDataBlockDataMap();if(t){for(let[,e]of t){let t=e.shape,n=e.sequences;t&&n&&this._shapeConstructorCache.set(t.toLowerCase(),n)}return this._shapeConstructorCache.get(e.toLowerCase())}}getTimeSec(){return this.currentTimeSec}getCameraYawPitch(e){return this.getAbsoluteRotation(e)??{yaw:0,pitch:0}}getEffectShapes(){let e=new Set,t=this.packetParser.getDataBlockDataMap();if(!t)return[];for(let[,n]of t){let r=n.explosion;if(r==null)continue;let i=t.get(r);i?.dtsFileName&&e.add(i.dtsFileName)}return[...e]}onTeamScoresChanged(){this._teamScoresGen++}onRosterChanged(){this._rosterGen++}onWeaponsHudChanged(){this._weaponsHudGen++}onInventoryHudChanged(){this._inventoryHudGen++}reset(){this.resetSharedState(),this.ghostTracker.clear?.(),this.currentTimeSec=0,this._snapshot=null,this._snapshotTick=-1,this._cachedHud=null,this.dataBlockClassNames.clear(),this.observerMode=`fly`,this.missionName=null}getSnapshot(){return this._snapshot&&this._snapshotTick===this.tickCount?this._snapshot:this.buildSnapshot()}stepToTime(e,t){return this.currentTimeSec=e,this.getSnapshot()}syncConnectSequence(e){if(this.connectSynced||e.length<1)return;this.connectSynced=!0;let t=e[0]>>1&1;this.packetParser.setConnectionProtocolState({lastSeqRecvdAtSend:Array(32).fill(0),lastSeqRecvd:0,highestAckedSeq:0,lastSendSeq:536870911,ackMask:0,connectSequence:t,lastRecvAckAck:0,connectionEstablished:!0})}feedPacket(e){this.syncConnectSequence(e),this.processPacket(e)}handleRelayCommands(e){let t=e.funcName;if(!t)return;let n=this.resolveNetString(t);if([`t2csri_pokeClient`,`t2csri_getChallengeChunk`,`t2csri_decryptChallenge`].includes(n)){let t=(e.args??[]).map(e=>this.resolveNetString(e)).filter(e=>e!==``);G.info(`auth event: %s %o`,n,t),this.relay.sendAuthEvent(n,t);return}let r=(e.args??[]).map(e=>this.resolveNetString(e));if(n===`MissionStartPhase1`){let e=r[0]??``,t=r[1]??null;G.info(`mission phase 1, seq=%s mission=%s resolvedArgs=%o`,e,t,r),t&&t!==this.missionName&&(this.missionName=t,this.entities.clear(),this.entityIdByGhostIndex.clear(),this._ready=!1,this._snapshot=null,this._snapshotTick=-1,this._cachedHud=null,this.observerMode=`fly`,this.lastMoveAck=0,this.missionDisplayName=null,this.missionTypeDisplayName=null,this.gameClassName=null,this.serverDisplayName=null,this.onMissionChange?.(t)),this.relay.sendCommand(`MissionStartPhase1Done`,[e])}else if(n===`MissionStartPhase2`){let e=r[0]??``;G.info(`mission phase 2 (datablocks), seq=%s`,e),this.relay.sendCommand(`MissionStartPhase2Done`,[e])}else if(n===`MissionStartPhase3`){let e=r[0]??``,t=r[1]??null;G.info(`mission phase 3 (ghosting), seq=%s mission=%s`,e,t),t&&(this.missionName=t),this.relay.sendCommand(`setClientFav`,[``]),this.relay.sendCommand(`MissionStartPhase3Done`,[e])}}handleCRCChallenge(e){let t=e.crcValue,n=e.field1,r=e.field2,i=(n&1)!=0;G.info(`CRC challenge: seed=0x%s f1=0x%s f2=0x%s includeTextures=%s`,(t>>>0).toString(16),(n>>>0).toString(16),(r>>>0).toString(16),i);let a=this.packetParser.getDataBlockDataMap(),o=[];if(a)for(let[e,t]of a){let n=this.dataBlockClassNames.get(e);if(!n)continue;let r=Ve(n,t);o.push({objectId:e,className:n,shapeName:r??``})}G.info(`CRC: sending %d datablocks for computation`,o.length),this.relay.sendCRCCompute(t,r,o,i)}handleGhostingMessage(e){let t=e.message,n=e.sequence,r=e.ghostCount;G.info(`GhostingMessageEvent: message=%d sequence=%d ghostCount=%d`,t,n,r),t===ke.GhostAlwaysDone&&(G.info(`Sending ghost ack for sequence %d`,n),this.relay.sendGhostAck(n,r))}observerMode=`fly`;requestScores(){this.relay.sendCommand(`getScores`,[])}getPlayerList(){let e=[];for(let[t,n]of this.targetNames){let r=this.targetTeams.get(t)??0;e.push({targetId:t,name:n,sensorGroup:r})}return e}processPacket(e){try{let t=this.packetParser.protocolRejected,n=this.packetParser.protocolNoDispatch,r=this.packetParser.parsePacket(e),i=this.packetParser.protocolRejected>t,a=this.packetParser.protocolNoDispatch>n;(i||a)&&G.warn(`packet #%d %s: %d bytes (total rejected=%d, noDispatch=%d)`,this.tickCount,i?`REJECTED`:`no-dispatch`,e.length,this.packetParser.protocolRejected,this.packetParser.protocolNoDispatch);let o=this.tickCount<20,s=this.tickCount%100==0,c=o||s;c&&G.debug(`packet #%d: %d events, %d ghosts, %d bytes%s%s`,this.tickCount,r.events.length,r.ghosts.length,e.length,r.gameState.controlObjectGhostIndex===void 0?``:`, control=${r.gameState.controlObjectGhostIndex}`,r.gameState.cameraFov===void 0?``:`, fov=${r.gameState.cameraFov}`),this.lastMoveAck=r.gameState.lastMoveAck,this.processControlObject(r.gameState);for(let e of r.events)if(e.parsedData){let t=e.parsedData.type;if(t===`RemoteCommandEvent`?this.handleRelayCommands(e.parsedData):t===`CRCChallengeEvent`?this.handleCRCChallenge(e.parsedData):t===`GhostingMessageEvent`&&this.handleGhostingMessage(e.parsedData),t===`RemoteCommandEvent`){let t=this.resolveNetString(e.parsedData.funcName??``);G.debug(`remote: %s`,t)}if(o&&t!==`NetStringEvent`&&t!==`RemoteCommandEvent`&&G.debug(`event: %s%s`,t,t===`SimDataBlockEvent`?` id=${e.parsedData.objectId} class=${e.parsedData.dataBlockClassName}`:``),t===`SimDataBlockEvent`){let t=e.parsedData.objectId,n=e.parsedData.dataBlockClassName;if(t!=null&&n&&this.dataBlockClassNames.set(t,n),c){let r=e.parsedData.dataBlockData,i=Ve(n??``,r);G.debug(`datablock: id=%d class=%s%s`,t,n??`?`,i?` shape=${i}`:``)}}let n=this.registry.getEventParser(e.classId)?.name;if(this.processEvent(e,n),o&&t===`NetStringEvent`){let t=e.parsedData.id,n=e.parsedData.value;t!=null&&typeof n==`string`&&G.trace(`netString #%d = "%s"`,t,n.length>60?n.slice(0,60)+`…`:n)}if(t===`TargetInfoEvent`){let t=e.parsedData.targetId,n=e.parsedData.nameTag;if(t!=null&&n!=null){let r=this.netStrings.get(n);if(r){let n=$e(r);G.info(`target #%d: "%s" team=%s`,t,n,e.parsedData.sensorGroup??`?`)}}}if(t===`SetSensorGroupEvent`){let t=e.parsedData.sensorGroup;t!=null&&G.info(`sensor group changed: → %d`,t)}if(t===`SensorGroupColorEvent`){let t=e.parsedData.sensorGroup,n=e.parsedData.colors;n&&G.debug(`sensor group colors: group=%d, %d entries`,t,n.length)}}for(let e of r.ghosts){if(e.type===`create`){let t=e.parsedData?.position,n=t&&typeof t.x==`number`&&typeof t.y==`number`&&typeof t.z==`number`,r=this.resolveGhostClassName(e.index,e.classId);G.debug(`ghost create: #%d %s%s (%d entities total)`,e.index,r??`?`,n?` at (${t.x.toFixed(1)}, ${t.y.toFixed(1)}, ${t.z.toFixed(1)})`:``,this.entities.size+1),this._ready||(this._ready=!0,this.onReady?.())}else if(e.type===`delete`){let t=this.entityIdByGhostIndex.get(e.index),n=t?this.entities.get(t):void 0;(this.tickCount<50||this.tickCount%200==0)&&G.debug(`ghost delete: #%d %s (%d entities remaining)`,e.index,n?.className??`?`,this.entities.size-1)}this.processGhostUpdate(e)}if(this.tickCount++,this.advanceProjectiles(),this.advanceItems(),this.advanceControlVehicle(),this.advanceFades(),s&&this.tickCount>1){let e=this.packetParser.getDataBlockDataMap();G.info(`status @ tick %d: %d entities, %d datablocks, rejected=%d, noDispatch=%d`,this.tickCount,this.entities.size,e?.size??0,this.packetParser.protocolRejected,this.packetParser.protocolNoDispatch)}let l=this.entities.size;if(this.tickCount===1||l>0&&l%25==0&&this.tickCount<100){let e=new Map;for(let t of this.entities.values())e.set(t.type,(e.get(t.type)??0)+1);let t=[...e.entries()].map(([e,t])=>`${e}=${t}`).join(` `);G.info(`entity count: %d (%s)`,l,t)}let u=this.camera?.mode;if(this.updateCameraAndHud(),this.camera&&this.camera.mode!==u&&G.info(`camera mode: %s → %s%s`,u??`none`,this.camera.mode,this.camera.mode===`third-person`?` orbit=${this.camera.orbitTargetId??`?`} dist=${this.camera.orbitDistance??`?`}`:``),this.tickCount<=5&&this.camera){let[e,t,n]=this.camera.position;G.debug(`camera: mode=%s pos=(%s, %s, %s) fov=%s`,this.camera.mode,e.toFixed(1),t.toFixed(1),n.toFixed(1),this.camera.fov)}}catch(t){let n={tickCount:this.tickCount,entityCount:this.entities.size,dataLength:e.length,controlGhost:this.latestControl.ghostIndex,connectSynced:this.connectSynced};G.error(`Failed to process live packet: %o %o`,t,n)}}buildSnapshot(){let e=this.buildEntityList(),t=this.currentTimeSec,{chatMessages:n,audioEvents:r}=this.buildTimeFilteredEvents(t),i=this._cachedHud,a,o,s,c,l;i&&i.weaponsHudGen===this._weaponsHudGen&&i.inventoryHudGen===this._inventoryHudGen&&i.teamScoresGen===this._teamScoresGen&&i.rosterGen===this._rosterGen&&i.backpackPackIndex===this.backpackHud.packIndex&&i.backpackActive===this.backpackHud.active?(a=i.weaponsHud,o=i.inventoryHud,s=i.backpackHud,c=i.teamScores,l=i.playerRoster):({weaponsHud:a,inventoryHud:o,backpackHud:s,teamScores:c,playerRoster:l}=this.buildHudState(),this._cachedHud={weaponsHudGen:this._weaponsHudGen,inventoryHudGen:this._inventoryHudGen,teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,weaponsHud:a,inventoryHud:o,backpackHud:s,teamScores:c,playerRoster:l}),this.camera||={time:t,position:[0,0,200],rotation:[0,0,0,1],fov:90,mode:`observer`};let u={timeSec:t,exhausted:!1,camera:this.camera,entities:e,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:n,audioEvents:r,weaponsHud:a,backpackHud:s,inventoryHud:o,teamScores:c,playerRoster:l,connectedClientId:this.connectedClientId,matchClockMs:this.computeMatchClockMs(t)};return this._snapshot=u,this._snapshotTick=this.tickCount,u}},K=B()((e,t)=>({missionEntities:new Map,streamEntities:new Map,isStreaming:!1,dataSource:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:0,setEntity(t){e(e=>{let n=new Map(e.missionEntities);return n.set(t.id,t),{missionEntities:n,version:e.version+1}})},deleteEntity(t){e(e=>{if(!e.missionEntities.has(t))return e;let n=new Map(e.missionEntities);return n.delete(t),{missionEntities:n,version:e.version+1}})},setEntities(t){e(e=>{let n=new Map(e.missionEntities);for(let e of t)n.set(e.id,e);return{missionEntities:n,version:e.version+1}})},setAllEntities(t){e(e=>{let n=new Map;for(let e of t)n.set(e.id,e);return{missionEntities:n,dataSource:e.isStreaming?e.dataSource:`map`}})},clearEntities(){e(e=>e.missionEntities.size===0?e:e.isStreaming?{missionEntities:new Map,version:e.version+1}:{missionEntities:new Map,dataSource:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:e.version+1})},setMissionInfo(t){let n={};if(t.missionName!==void 0&&(n.missionName=t.missionName),t.missionType!==void 0&&(n.missionType=t.missionType),t.missionTypeDisplayName!==void 0&&(n.missionTypeDisplayName=t.missionTypeDisplayName),t.missionDisplayName!==void 0&&(n.missionDisplayName=t.missionDisplayName),t.gameClassName!==void 0&&(n.gameClassName=t.gameClassName,t.missionType===void 0))if(t.gameClassName){let e=t.gameClassName.replace(/Game$/i,``);n.missionType=xe[e.toLowerCase()]??e}else n.missionType=null;t.serverDisplayName!==void 0&&(n.serverDisplayName=t.serverDisplayName),t.recorderName!==void 0&&(n.recorderName=t.recorderName),t.recordingDate!==void 0&&(n.recordingDate=t.recordingDate),e(e=>({...n,version:e.version+1}))},beginStreaming(t){e(e=>({isStreaming:!0,dataSource:t,streamEntities:new Map,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,version:e.version+1}))},endStreaming(){e(e=>e.isStreaming?{isStreaming:!1,dataSource:e.missionEntities.size>0?`map`:null,missionName:null,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null,serverDisplayName:null,recorderName:null,recordingDate:null,streamEntities:new Map,version:e.version+1}:e)},setStreamEntity(t){e(e=>{let n=new Map(e.streamEntities);return n.set(t.id,t),{streamEntities:n,version:e.version+1}})},deleteStreamEntity(t){e(e=>{if(!e.streamEntities.has(t))return e;let n=new Map(e.streamEntities);return n.delete(t),{streamEntities:n,version:e.version+1}})},setStreamEntities(t){e(e=>{let n=new Map(e.streamEntities);for(let e of t)n.set(e.id,e);return{streamEntities:n,version:e.version+1}})},setAllStreamEntities(t){e(e=>{let n=new Map;for(let e of t)n.set(e.id,e);let r=e.streamEntities;return n.size===r.size&&[...n.keys()].every(e=>r.has(e))?e:{streamEntities:n,version:e.version+1}})},clearStreamEntities(){e(e=>e.streamEntities.size===0?e:{streamEntities:new Map,version:e.version+1})},getStreamEntitiesMap(){return t().streamEntities},bumpStreamVersion(){e(e=>({version:e.version+1}))}}));function un(e){return e.isStreaming?e.streamEntities:e.missionEntities}function dn(e){return e.version}function fn(){return z(K,dn),z(K,un)}function pn(){return fn()}function mn(e){let t=e.isStreaming?e.streamEntities:e.missionEntities,n=[];for(let e of t.values())e.renderType!==`None`&&n.push(e);return n}function hn(e,t){if(e.length!==t.length)return!1;for(let n=0;n(t.isStreaming?t.streamEntities:t.missionEntities).get(e)?.debugHidden??!1,t[0]=e,t[1]=n),z(K,n)}function jn(){return z(K,Mn)}function Mn(e){return e.missionDisplayName}function Nn(){return z(K,Pn)}function Pn(e){return e.serverDisplayName}function Fn(){return z(K,In)}function In(e){return e.recorderName}function Ln(){return z(K,Rn)}function Rn(e){return e.recordingDate}var zn=fe(`liveConnectionStore`),Bn=`wss://t2-relay.fly.dev`,Vn=B((e,t)=>({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,servers:[],serversLoading:!1,adapter:null,liveReady:!1,_relay:null,_adapter:null,_pending:[],_listInFlight:!1,connectRelay(n=Bn){let r=t();r._relay&&r._relay.close();let i=new Qt(n,{onOpen(){e({relayConnected:!0});let n=t();for(let e of n._pending)e();n._pending=[]},onStatus(t,n,r,i){zn.info(`game status: %s%s%s`,t,n?` — ${n}`:``,i?` map=${i}`:``),e({gameStatus:t,gameStatusMessage:n,...i?{mapName:i}:{}})},onServerList(n){t()._listInFlight=!1,e({servers:n,serversLoading:!1})},onGamePacket(e){let n=t()._adapter;n||zn.warn(`received game packet but no adapter is active`),n?.feedPacket(e)},onPing(t){e({relayToGameServerPing:t})},onWsPing(t){e({browserToRelayPing:t})},onError(n){zn.error(`error: %s`,n),t()._listInFlight=!1,e({serversLoading:!1})},onClose(){let n=t();n._relay===i&&(n._relay=null,n._adapter=null,n._pending=[],n._listInFlight=!1,e({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,adapter:null,liveReady:!1}))}});i.connect(),t()._relay=i},disconnectRelay(){let n=t();n._relay?.close(),n._relay=null,n._adapter=null,n._pending=[],n._listInFlight=!1,e({relayConnected:!1,gameStatus:null,gameStatusMessage:void 0,mapName:void 0,serverName:void 0,relayToGameServerPing:null,browserToRelayPing:null,adapter:null,liveReady:!1})},listServers(){let n=t();if(n._listInFlight)return;n._listInFlight=!0;let r=()=>{let e=t();e._relay?.sendWsPing(),e._relay?.listServers()};e({serversLoading:!0}),n._relay?.connected?r():(n._pending.push(r),n._relay||t().connectRelay())},joinServer(n,r){let i=t();if(!i._relay)return;let a=i.servers.find(e=>e.address===n),o=new ln(i._relay);o.onReady=()=>e({liveReady:!0}),o.onMissionChange=t=>{zn.info(`mission changed: %s`,t),e({mapName:t,liveReady:!1}),K.getState().setMissionInfo({missionName:t,missionType:null,missionTypeDisplayName:null,missionDisplayName:null,gameClassName:null})},o.onMissionInfoChange=()=>{K.getState().setMissionInfo({missionDisplayName:o.missionDisplayName??void 0,missionTypeDisplayName:o.missionTypeDisplayName??void 0,gameClassName:o.gameClassName??void 0,serverDisplayName:o.serverDisplayName??void 0,recorderName:o.connectedPlayerName??void 0})},i._adapter=o,e({mapName:a?.mapName??i.mapName,serverName:a?.name,warriorName:r,liveReady:!1,gameStatus:null,adapter:o}),K.getState().setMissionInfo({missionName:a?.mapName??void 0,missionTypeDisplayName:a?.gameType??void 0,serverDisplayName:a?.name??void 0,recorderName:r??void 0}),i._relay.joinServer(n,r)},disconnectServer(){t().disconnectRelay()},sendMoves(e,n){t()._relay?.sendMoves(e,n)},sendCommand(e,...n){t()._relay?.sendCommand(e,n)}}));function Hn(e,t){return z(Vn,e,t)}function Un(e){return e.relayToGameServerPing!=null&&e.browserToRelayPing!=null?e.relayToGameServerPing+e.browserToRelayPing:e.relayToGameServerPing??null}var Wn=[.25,.5,1,1.5,2,3,4];function Gn(){return Se(Kn)}function Kn(e){return e.playback.recording}function qn(){return Se(Jn)}function Jn(e){return e.playback.status===`playing`}function Yn(){return Se(Xn)}function Xn(e){return Math.floor(e.playback.streamSnapshot?.timeSec??e.playback.seekTime)}function Zn(){return Se(Qn)}function Qn(e){return e.playback.durationMs/1e3}function $n(){return Se(er)}function er(e){return e.playback.rate}function tr(){let e=(0,U.c)(17),t=Gn(),n=Se(ar),r=Se(ir),i=Se(rr),a=Se(nr),o;e[0]===n?o=e[1]:(o=e=>{n(e)},e[0]=n,e[1]=o);let s=o,c;e[2]!==t||e[3]!==r?(c=()=>{t&&r(`playing`)},e[2]=t,e[3]=r,e[4]=c):c=e[4];let l=c,u;e[5]===r?u=e[6]:(u=()=>{r(`paused`)},e[5]=r,e[6]=u);let d=u,f;e[7]===i?f=e[8]:(f=e=>{i(e)},e[7]=i,e[8]=f);let p=f,m;e[9]===a?m=e[10]:(m=e=>{a(e)},e[9]=a,e[10]=m);let h=m,g;return e[11]!==d||e[12]!==l||e[13]!==p||e[14]!==s||e[15]!==h?(g={setRecording:s,play:l,pause:d,seek:p,setSpeed:h},e[11]=d,e[12]=l,e[13]=p,e[14]=s,e[15]=h,e[16]=g):g=e[16],g}function nr(e){return e.setPlaybackRate}function rr(e){return e.seekPlayback}function ir(e){return e.setPlaybackStatus}function ar(e){return e.setRecording}var or=fe(`LoadDemoButton`);function sr({isActive:e=!1,choosingMap:t=!1,onCancelChoosingMap:n}){let r=Gn()?.source===`demo`,{setRecording:i}=tr(),a=(0,H.useRef)(null),o=(0,H.useRef)(0),s=(0,H.useRef)(null),c=(0,H.useCallback)(()=>{if(De.getState().cancel(),t&&r){n?.();return}if(r){o.current+=1,s.current?.abort(),s.current=null,i(null),Yt.getState().reset();return}a.current?.click()},[r,t,n,i]);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`input`,{ref:a,type:`file`,accept:`.rec`,style:{display:`none`},onChange:(0,H.useCallback)(async e=>{let t=e.target.files?.[0];if(t){e.target.value=``;try{let e=await t.arrayBuffer(),n=o.current+1;o.current=n;let{createDemoStreamingRecording:r}=await Te(async()=>{let{createDemoStreamingRecording:e}=await import(`./demoStreaming-BFlLHKkt.js`);return{createDemoStreamingRecording:e}},__vite__mapDeps([0,1,2,3,4,5])),a=await r(e);if(o.current!==n)return;Vn.getState().disconnectServer(),i(a),s.current?.abort();let c=new AbortController;s.current=c;let l=Yt.getState();l.reset(),l.setScanProgress(0),Te(async()=>{let{scanDemoTimeline:e}=await import(`./demoTimelineScanner-BbHg_3A9.js`);return{scanDemoTimeline:e}},__vite__mapDeps([6,1,2,3,5])).then(({scanDemoTimeline:t})=>t(e,a.recorderName,e=>{o.current===n&&Yt.getState().setScanProgress(e)},c.signal)).then(e=>{if(o.current!==n)return;let t=Yt.getState();t.setEvents(e),t.setScanProgress(null)}).catch(e=>{o.current===n&&(e instanceof Error&&e.name===`AbortError`||(or.error(`Timeline scan failed: %o`,e),Yt.getState().setScanProgress(null)))})}catch(e){or.error(`Failed to load demo: %o`,e)}}},[i])}),(0,W.jsxs)(`button`,{type:`button`,className:Ut.Button,"aria-label":r?`Unload demo`:`Load demo (.rec)`,title:r?`Unload demo`:`Load demo (.rec)`,onClick:c,"data-active":e,children:[(0,W.jsx)(qt,{className:Ut.DemoIcon}),(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Demo`}),(0,W.jsx)(`span`,{className:Ut.ButtonHint,children:t&&r?`Return to demo`:r?`Click to unload`:`Load a .rec file`})]})]})}function cr(e){return V({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`M11.251.068a.5.5 0 0 1 .227.58L9.677 6.5H13a.5.5 0 0 1 .364.843l-8 8.5a.5.5 0 0 1-.842-.49L6.323 9.5H3a.5.5 0 0 1-.364-.843l8-8.5a.5.5 0 0 1 .615-.09z`},child:[]}]})(e)}function lr(e){return V({tag:`svg`,attr:{fill:`currentColor`,viewBox:`0 0 16 16`},child:[{tag:`path`,attr:{d:`m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393`},child:[]}]})(e)}var ur={JoinServerButton:`_JoinServerButton_cz8os_1 _Button_p0g82_2`,Icon:`_Icon_cz8os_5 _Icon_p0g82_85`,blink:`_blink_cz8os_1`};function dr(e){let t=(0,U.c)(15),{isActive:n,onOpenServerBrowser:r}=e,i=Hn(pr),a=Hn(fr),o=i===`connected`,s=i===`connecting`||i===`challenging`||i===`authenticating`,c=o?`Connected –\xA0click to disconnect`:`Join server`,l=o?`Connected –\xA0click to disconnect`:`Join server`,u;t[0]!==a||t[1]!==o||t[2]!==r?(u=()=>{De.getState().cancel(),o?a():r()},t[0]=a,t[1]=o,t[2]=r,t[3]=u):u=t[3];let d,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,W.jsx)(cr,{className:ur.Icon}),f=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Live`}),t[4]=d,t[5]=f):(d=t[4],f=t[5]);let p=s?`Connecting…`:o?`Connected`:`Join a game`,m;t[6]===p?m=t[7]:(m=(0,W.jsxs)(W.Fragment,{children:[f,(0,W.jsx)(`span`,{className:Ut.ButtonHint,children:p})]}),t[6]=p,t[7]=m);let h;return t[8]!==n||t[9]!==o||t[10]!==c||t[11]!==l||t[12]!==u||t[13]!==m?(h=(0,W.jsxs)(`button`,{type:`button`,className:ur.JoinServerButton,"aria-label":c,title:l,"data-connected":o,onClick:u,"data-active":n,children:[d,m]}),t[8]=n,t[9]=o,t[10]=c,t[11]=l,t[12]=u,t[13]=m,t[14]=h):h=t[14],h}function fr(e){return e.disconnectServer}function pr(e){return e.gameStatus}function mr(e,t=[]){let n=[];function r(t,r){let i=H.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=H.useMemo(()=>o,Object.values(o));return(0,W.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=H.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>H.createContext(e));return function(n){let r=n?.[e]||t;return H.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,hr(i,...t)]}function hr(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return H.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function gr(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function _r(...e){return t=>{let n=!1,r=e.map(e=>{let r=gr(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t{let{children:r,...i}=e,a=H.Children.toArray(r),o=a.find(Sr);if(o){let e=o.props.children,r=a.map(t=>t===o?H.Children.count(e)>1?H.Children.only(null):H.isValidElement(e)?e.props.children:null:t);return(0,W.jsx)(t,{...i,ref:n,children:H.isValidElement(e)?H.cloneElement(e,void 0,r):null})}return(0,W.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function br(e){let t=H.forwardRef((e,t)=>{let{children:n,...r}=e;if(H.isValidElement(n)){let e=wr(n),i=Cr(r,n.props);return n.type!==H.Fragment&&(i.ref=t?_r(t,e):e),H.cloneElement(n,i)}return H.Children.count(n)>1?H.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var xr=Symbol(`radix.slottable`);function Sr(e){return H.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===xr}function Cr(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function wr(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Tr(e){let t=e+`CollectionProvider`,[n,r]=mr(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=H.useRef(null),a=H.useRef(new Map).current;return(0,W.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=yr(s),l=H.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,W.jsx)(c,{ref:vr(t,a(s,n).collectionRef),children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=yr(u),p=H.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=H.useRef(null),s=vr(t,o),c=a(u,n);return H.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,W.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return H.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:l,ItemSlot:p},m,r]}typeof window<`u`&&window.document&&window.document.createElement;function Er(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var Dr=globalThis?.document?H.useLayoutEffect:()=>{},Or=H.useInsertionEffect||Dr;function kr({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=Ar({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=H.useRef(e!==void 0);H.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,H.useCallback(t=>{if(s){let n=jr(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function Ar({defaultProp:e,onChange:t}){let[n,r]=H.useState(e),i=H.useRef(n),a=H.useRef(t);return Or(()=>{a.current=t},[t]),H.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function jr(e){return typeof e==`function`}var Mr=e(c(),1),Nr=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=yr(`Primitive.${t}`),r=H.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,W.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Pr(e,t){return H.useReducer((e,n)=>t[e][n]??e,e)}var Fr=e=>{let{present:t,children:n}=e,r=Ir(t),i=typeof n==`function`?n({present:r.isPresent}):H.Children.only(n),a=vr(r.ref,Rr(i));return typeof n==`function`||r.isPresent?H.cloneElement(i,{ref:a}):null};Fr.displayName=`Presence`;function Ir(e){let[t,n]=H.useState(),r=H.useRef(null),i=H.useRef(e),a=H.useRef(`none`),[o,s]=Pr(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return H.useEffect(()=>{let e=Lr(r.current);a.current=o===`mounted`?e:`none`},[o]),Dr(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=Lr(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),Dr(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=Lr(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=Lr(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:H.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function Lr(e){return e?.animationName||`none`}function Rr(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var zr=H.useId||(()=>void 0),Br=0;function Vr(e){let[t,n]=H.useState(zr());return Dr(()=>{e||n(e=>e??String(Br++))},[e]),e||(t?`radix-${t}`:``)}var Hr=`Collapsible`,[Ur,Wr]=mr(Hr),[Gr,Kr]=Ur(Hr),qr=H.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=kr({prop:r,defaultProp:i??!1,onChange:o,caller:Hr});return(0,W.jsx)(Gr,{scope:n,disabled:a,contentId:Vr(),open:c,onOpenToggle:H.useCallback(()=>l(e=>!e),[l]),children:(0,W.jsx)(Nr.div,{"data-state":$r(c),"data-disabled":a?``:void 0,...s,ref:t})})});qr.displayName=Hr;var Jr=`CollapsibleTrigger`,Yr=H.forwardRef((e,t)=>{let{__scopeCollapsible:n,...r}=e,i=Kr(Jr,n);return(0,W.jsx)(Nr.button,{type:`button`,"aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":$r(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:Er(e.onClick,i.onOpenToggle)})});Yr.displayName=Jr;var Xr=`CollapsibleContent`,Zr=H.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Kr(Xr,e.__scopeCollapsible);return(0,W.jsx)(Fr,{present:n||i.open,children:({present:e})=>(0,W.jsx)(Qr,{...r,ref:t,present:e})})});Zr.displayName=Xr;var Qr=H.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:r,children:i,...a}=e,o=Kr(Xr,n),[s,c]=H.useState(r),l=H.useRef(null),u=vr(t,l),d=H.useRef(0),f=d.current,p=H.useRef(0),m=p.current,h=o.open||s,g=H.useRef(h),_=H.useRef(void 0);return H.useEffect(()=>{let e=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(e)},[]),Dr(()=>{let e=l.current;if(e){_.current=_.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();d.current=t.height,p.current=t.width,g.current||(e.style.transitionDuration=_.current.transitionDuration,e.style.animationName=_.current.animationName),c(r)}},[o.open,r]),(0,W.jsx)(Nr.div,{"data-state":$r(o.open),"data-disabled":o.disabled?``:void 0,id:o.contentId,hidden:!h,...a,ref:u,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":m?`${m}px`:void 0,...e.style},children:h&&i})});function $r(e){return e?`open`:`closed`}var ei=qr,ti=Yr,ni=Zr,ri=H.createContext(void 0);function ii(e){let t=H.useContext(ri);return e||t||`ltr`}var ai=`Accordion`,oi=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[si,ci,li]=Tr(ai),[ui,di]=mr(ai,[li,Wr]),fi=Wr(),pi=H.forwardRef((e,t)=>{let{type:n,...r}=e,i=r,a=r;return(0,W.jsx)(si.Provider,{scope:e.__scopeAccordion,children:n===`multiple`?(0,W.jsx)(yi,{...a,ref:t}):(0,W.jsx)(vi,{...i,ref:t})})});pi.displayName=ai;var[mi,hi]=ui(ai),[gi,_i]=ui(ai,{collapsible:!1}),vi=H.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:a=!1,...o}=e,[s,c]=kr({prop:n,defaultProp:r??``,onChange:i,caller:ai});return(0,W.jsx)(mi,{scope:e.__scopeAccordion,value:H.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:H.useCallback(()=>a&&c(``),[a,c]),children:(0,W.jsx)(gi,{scope:e.__scopeAccordion,collapsible:a,children:(0,W.jsx)(Si,{...o,ref:t})})})}),yi=H.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=kr({prop:n,defaultProp:r??[],onChange:i,caller:ai}),c=H.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=H.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,W.jsx)(mi,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,W.jsx)(gi,{scope:e.__scopeAccordion,collapsible:!0,children:(0,W.jsx)(Si,{...a,ref:t})})})}),[bi,xi]=ui(ai),Si=H.forwardRef((e,t)=>{let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=`vertical`,...o}=e,s=vr(H.useRef(null),t),c=ci(n),l=ii(i)===`ltr`,u=Er(e.onKeyDown,e=>{if(!oi.includes(e.key))return;let t=e.target,n=c().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,u=()=>{o=r+1,o>s&&(o=0)},d=()=>{o=r-1,o<0&&(o=s)};switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===`horizontal`&&(l?u():d());break;case`ArrowDown`:a===`vertical`&&u();break;case`ArrowLeft`:a===`horizontal`&&(l?d():u());break;case`ArrowUp`:a===`vertical`&&d();break}n[o%i].ref.current?.focus()});return(0,W.jsx)(bi,{scope:n,disabled:r,direction:i,orientation:a,children:(0,W.jsx)(si.Slot,{scope:n,children:(0,W.jsx)(Nr.div,{...o,"data-orientation":a,ref:s,onKeyDown:r?void 0:u})})})}),Ci=`AccordionItem`,[wi,Ti]=ui(Ci),Ei=H.forwardRef((e,t)=>{let{__scopeAccordion:n,value:r,...i}=e,a=xi(Ci,n),o=hi(Ci,n),s=fi(n),c=Vr(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,W.jsx)(wi,{scope:n,open:l,disabled:u,triggerId:c,children:(0,W.jsx)(ei,{"data-orientation":a.orientation,"data-state":Ni(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})});Ei.displayName=Ci;var Di=`AccordionHeader`,Oi=H.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=xi(ai,n),a=Ti(Di,n);return(0,W.jsx)(Nr.h3,{"data-orientation":i.orientation,"data-state":Ni(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})});Oi.displayName=Di;var ki=`AccordionTrigger`,Ai=H.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=xi(ai,n),a=Ti(ki,n),o=_i(ki,n),s=fi(n);return(0,W.jsx)(si.ItemSlot,{scope:n,children:(0,W.jsx)(ti,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})});Ai.displayName=ki;var ji=`AccordionContent`,Mi=H.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=xi(ai,n),a=Ti(ji,n),o=fi(n);return(0,W.jsx)(ni,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})});Mi.displayName=ji;function Ni(e){return e?`open`:`closed`}var Pi=pi,Fi=Ei,Ii=Ai,Li=Mi;function Ri(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 16C141.31 16 48 109.31 48 224v154.83l82 32.81L146.88 496H192v-64h32v64h16v-64h32v64h16v-64h32v64h45.12L382 411.64l82-32.81V224c0-114.69-93.31-208-208-208zm-88 320a56 56 0 1 1 56-56 56.06 56.06 0 0 1-56 56zm51.51 64L244 320h24l24.49 80zM344 336a56 56 0 1 1 56-56 56.06 56.06 0 0 1-56 56zm104 32z`},child:[]}]})(e)}function zi(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`m190.06 414 163.12-139.78a24 24 0 0 0 0-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z`},child:[]}]})(e)}var Bi={AccordionGroup:`_AccordionGroup_b0qoe_1`,Trigger:`_Trigger_b0qoe_7`,TriggerIcon:`_TriggerIcon_b0qoe_24`,Content:`_Content_b0qoe_35`,slideDown:`_slideDown_b0qoe_1`,slideUp:`_slideUp_b0qoe_1`,Body:`_Body_b0qoe_47`,BodyNoPadding:`_BodyNoPadding_b0qoe_51`};function Vi(e){let t=(0,U.c)(2),n;return t[0]===e?n=t[1]:(n=(0,W.jsx)(Pi,{className:Bi.AccordionGroup,...e}),t[0]=e,t[1]=n),n}function Hi(e){let t=(0,U.c)(10),{value:n,label:r,children:i,noPadding:a}=e,o=a===void 0?!1:a,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,W.jsx)(zi,{className:Bi.TriggerIcon}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=(0,W.jsxs)(Ii,{className:Bi.Trigger,children:[s,` `,r]}),t[1]=r,t[2]=c);let l=o?Bi.BodyNoPadding:Bi.Body,u;t[3]!==i||t[4]!==l?(u=(0,W.jsx)(Li,{className:Bi.Content,children:(0,W.jsx)(`div`,{className:l,children:i})}),t[3]=i,t[4]=l,t[5]=u):u=t[5];let d;return t[6]!==c||t[7]!==u||t[8]!==n?(d=(0,W.jsxs)(Fi,{value:n,children:[c,u]}),t[6]=c,t[7]=u,t[8]=n,t[9]=d):d=t[9],d}function Ui(e){return V({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M144,16H112A64.07,64.07,0,0,0,48,80v96a64.07,64.07,0,0,0,64,64h32a64.07,64.07,0,0,0,64-64V80A64.07,64.07,0,0,0,144,16Zm48,160a48.05,48.05,0,0,1-48,48H112a48.05,48.05,0,0,1-48-48V80a48.05,48.05,0,0,1,48-48h32a48.05,48.05,0,0,1,48,48ZM136,83.31v89.38l10.34-10.35a8,8,0,0,1,11.32,11.32l-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L120,172.69V83.31L109.66,93.66A8,8,0,0,1,98.34,82.34l24-24a8,8,0,0,1,11.32,0l24,24a8,8,0,0,1-11.32,11.32Z`},child:[]}]})(e)}function Wi(e){return V({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M144,16H112A64.07,64.07,0,0,0,48,80v96a64.07,64.07,0,0,0,64,64h32a64.07,64.07,0,0,0,64-64V80A64.07,64.07,0,0,0,144,16Zm48,64v24H128V32h16A48.05,48.05,0,0,1,192,80ZM144,224H112a48.05,48.05,0,0,1-48-48V120H192v56A48.05,48.05,0,0,1,144,224Z`},child:[]}]})(e)}function Gi(e){return V({tag:`svg`,attr:{viewBox:`0 0 256 256`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M239.22,59.44l-45.63,95.82a3.54,3.54,0,0,1-.16.34l-34.21,71.84a8,8,0,1,1-14.44-6.88L173.62,160H40a8,8,0,0,1-5.66-13.66L76.69,104,34.34,61.66A8,8,0,0,1,40,48H232a8,8,0,0,1,7.22,11.44Z`},child:[]}]})(e)}function Ki(e){return V({tag:`svg`,attr:{viewBox:`0 0 1024 1024`},child:[{tag:`path`,attr:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z`},child:[]}]})(e)}function qi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`},child:[]},{tag:`circle`,attr:{cx:`9`,cy:`7`,r:`4`},child:[]},{tag:`path`,attr:{d:`M22 21v-2a4 4 0 0 0-3-3.87`},child:[]},{tag:`path`,attr:{d:`M16 3.13a4 4 0 0 1 0 7.75`},child:[]}]})(e)}function Ji(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M3 9h18`},child:[]},{tag:`path`,attr:{d:`m15 14-3 3-3-3`},child:[]}]})(e)}function Yi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M3 9h18`},child:[]},{tag:`path`,attr:{d:`m9 16 3-3 3 3`},child:[]}]})(e)}function Xi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M9 3v18`},child:[]},{tag:`path`,attr:{d:`m14 9 3 3-3 3`},child:[]}]})(e)}function Zi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`},child:[]},{tag:`path`,attr:{d:`M9 3v18`},child:[]},{tag:`path`,attr:{d:`m16 15-3-3 3-3`},child:[]}]})(e)}function Qi(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`circle`,attr:{cx:`12`,cy:`12`,r:`10`},child:[]},{tag:`line`,attr:{x1:`22`,x2:`18`,y1:`12`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`6`,x2:`2`,y1:`12`,y2:`12`},child:[]},{tag:`line`,attr:{x1:`12`,x2:`12`,y1:`6`,y2:`2`},child:[]},{tag:`line`,attr:{x1:`12`,x2:`12`,y1:`22`,y2:`18`},child:[]}]})(e)}function $i(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`rect`,attr:{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`},child:[]},{tag:`path`,attr:{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`},child:[]},{tag:`path`,attr:{d:`M12 11h4`},child:[]},{tag:`path`,attr:{d:`M12 16h4`},child:[]},{tag:`path`,attr:{d:`M8 11h.01`},child:[]},{tag:`path`,attr:{d:`M8 16h.01`},child:[]}]})(e)}function ea(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},child:[{tag:`path`,attr:{d:`M2 8V2h6`},child:[]},{tag:`path`,attr:{d:`m2 2 10 10`},child:[]},{tag:`path`,attr:{d:`M12 2A10 10 0 1 1 2 12`},child:[]}]})(e)}var ta={Root:`_Root_cfjcw_1`,ProgressWrap:`_ProgressWrap_cfjcw_6`,ProgressLabel:`_ProgressLabel_cfjcw_13`,ProgressBar:`_ProgressBar_cfjcw_19`,ProgressFill:`_ProgressFill_cfjcw_27`,Filters:`_Filters_cfjcw_33`,FilterButton:`_FilterButton_cfjcw_40`,EventList:`_EventList_cfjcw_57`,EventRow:`_EventRow_cfjcw_63`,EventTime:`_EventTime_cfjcw_120`,EventIcon:`_EventIcon_cfjcw_129`,EventDescription:`_EventDescription_cfjcw_172`,Killer:`_Killer_cfjcw_177`,Victim:`_Victim_cfjcw_180`,DamageType:`_DamageType_cfjcw_183`,Empty:`_Empty_cfjcw_186`};function na(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,`0`)}`}var ra={kill:(0,W.jsx)(Qi,{}),death:(0,W.jsx)(Ri,{}),"flag-grab":(0,W.jsx)(Gi,{}),"flag-return":(0,W.jsx)(Gi,{}),"flag-cap":(0,W.jsx)(Gi,{}),"match-start":(0,W.jsx)(lr,{}),"match-end":(0,W.jsx)(Ki,{})},ia={chaingun:`chaingunned`,plasma:`plasma rifled`};function aa(e){if(e.type===`kill`&&e.killer&&e.victim)return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:ta.Killer,title:e.killer,children:`You`}),` `,(0,W.jsx)(`span`,{className:ta.DamageType,children:e.weapon?ia[e.weapon]??`${e.weapon}${e.weapon.endsWith(`e`)?`d`:`ed`}`:`killed`}),` `,(0,W.jsx)(`span`,{className:ta.Victim,children:e.victim})]});if(e.type===`death`)return e.killer?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:ta.Killer,children:e.killer}),` `,(0,W.jsx)(`span`,{className:ta.DamageType,children:e.weapon?ia[e.weapon]??`${e.weapon}${e.weapon.endsWith(`e`)?`d`:`ed`}`:`killed`}),` `,(0,W.jsx)(`span`,{className:ta.Victim,title:e.victim,children:`you`})]}):(0,W.jsx)(W.Fragment,{children:e.description});if(e.type===`flag-grab`)return(0,W.jsxs)(W.Fragment,{children:[`You grabbed `,e.flagTeamName?`the ${e.flagTeamName} flag`:`the enemy flag`]});if(e.type===`flag-return`)return(0,W.jsx)(W.Fragment,{children:`You returned your flag`});if(e.type===`flag-cap`&&e.capturer){let t=e.teamAffinity===`friendly`?`the enemy flag`:e.teamAffinity===`enemy`?`your flag`:e.flagTeamName?`the ${e.flagTeamName} flag`:`a flag`;return(0,W.jsxs)(W.Fragment,{children:[e.capturer,` captured `,t]})}return e.type===`match-start`||e.type,e.description}function oa(){let e=(0,U.c)(58),t=Xt(pa),n=Xt(fa),{seek:r}=tr(),[i,a]=(0,H.useState)(`all`),o,s;if(e[0]!==t||e[1]!==i||e[2]!==n||e[3]!==r){s=Symbol.for(`react.early_return_sentinel`);bb0:{let c=t?.filter(e=>i===`all`||e.type===i)??[],l;e[6]===r?l=e[7]:(l=e=>{r(Math.max(0,e-3)),document.activeElement instanceof HTMLElement&&document.activeElement.blur()},e[6]=r,e[7]=l);let u=l;if(n!=null&&t==null){let t;e[8]===n?t=e[9]:(t=Math.round(n*100),e[8]=n,e[9]=t);let r;e[10]===t?r=e[11]:(r=(0,W.jsxs)(`span`,{className:ta.ProgressLabel,children:[`Scanning… `,t,`%`]}),e[10]=t,e[11]=r);let i=`${n*100}%`,a;e[12]===i?a=e[13]:(a=(0,W.jsx)(`div`,{className:ta.ProgressBar,children:(0,W.jsx)(`div`,{className:ta.ProgressFill,style:{width:i}})}),e[12]=i,e[13]=a);let o;e[14]!==r||e[15]!==a?(o=(0,W.jsx)(`div`,{className:ta.Root,children:(0,W.jsxs)(`div`,{className:ta.ProgressWrap,children:[r,a]})}),e[14]=r,e[15]=a,e[16]=o):o=e[16],s=o;break bb0}if(!t){s=null;break bb0}let d;e[17]===t?d=e[18]:(d=t.filter(da),e[17]=t,e[18]=d);let f=d.length,p;e[19]===t?p=e[20]:(p=t.filter(ua),e[19]=t,e[20]=p);let m=p.length,h;e[21]===t?h=e[22]:(h=t.filter(la),e[21]=t,e[22]=h);let g=h.length,_;e[23]===t?_=e[24]:(_=t.filter(ca),e[23]=t,e[24]=_);let v=_.length,y;e[25]===t?y=e[26]:(y=t.filter(sa),e[25]=t,e[26]=y);let b=y.length,x=i===`all`,S;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>a(`all`),e[27]=S):S=e[27];let C;e[28]!==t.length||e[29]!==x?(C=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":x,onClick:S,children:[`All (`,t.length,`)`]}),e[28]=t.length,e[29]=x,e[30]=C):C=e[30];let w=i===`kill`,T;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>a(`kill`),e[31]=T):T=e[31];let E;e[32]!==f||e[33]!==w?(E=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":w,onClick:T,children:[`Kills (`,f,`)`]}),e[32]=f,e[33]=w,e[34]=E):E=e[34];let D=i===`death`,O;e[35]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>a(`death`),e[35]=O):O=e[35];let k;e[36]!==m||e[37]!==D?(k=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":D,onClick:O,children:[`Deaths (`,m,`)`]}),e[36]=m,e[37]=D,e[38]=k):k=e[38];let A=i===`flag-grab`,j;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>a(`flag-grab`),e[39]=j):j=e[39];let M;e[40]!==g||e[41]!==A?(M=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":A,onClick:j,children:[`Grabs (`,g,`)`]}),e[40]=g,e[41]=A,e[42]=M):M=e[42];let N=i===`flag-return`,P;e[43]===Symbol.for(`react.memo_cache_sentinel`)?(P=()=>a(`flag-return`),e[43]=P):P=e[43];let F;e[44]!==v||e[45]!==N?(F=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":N,onClick:P,children:[`Returns (`,v,`)`]}),e[44]=v,e[45]=N,e[46]=F):F=e[46];let I=i===`flag-cap`,ee;e[47]===Symbol.for(`react.memo_cache_sentinel`)?(ee=()=>a(`flag-cap`),e[47]=ee):ee=e[47];let L;e[48]!==b||e[49]!==I?(L=(0,W.jsxs)(`button`,{type:`button`,className:ta.FilterButton,"data-active":I,onClick:ee,children:[`Caps (`,b,`)`]}),e[48]=b,e[49]=I,e[50]=L):L=e[50];let R;e[51]!==C||e[52]!==E||e[53]!==k||e[54]!==M||e[55]!==F||e[56]!==L?(R=(0,W.jsxs)(`div`,{className:ta.Filters,children:[C,E,k,M,F,L]}),e[51]=C,e[52]=E,e[53]=k,e[54]=M,e[55]=F,e[56]=L,e[57]=R):R=e[57],o=(0,W.jsxs)(`div`,{className:ta.Root,children:[R,c.length===0?(0,W.jsx)(`div`,{className:ta.Empty,children:`No events found.`}):(0,W.jsx)(`div`,{className:ta.EventList,children:c.map((e,t)=>(0,W.jsxs)(`button`,{type:`button`,className:ta.EventRow,onClick:()=>u(e.timeSec),children:[(0,W.jsx)(`span`,{className:ta.EventTime,children:na(e.timeSec)}),(0,W.jsx)(`span`,{className:ta.EventIcon,"data-type":e.type,"data-affinity":e.teamAffinity,children:ra[e.type]}),(0,W.jsx)(`span`,{className:ta.EventDescription,children:aa(e)})]},`${e.timeSec}-${e.type}-${t}`))})]})}e[0]=t,e[1]=i,e[2]=n,e[3]=r,e[4]=o,e[5]=s}else o=e[4],s=e[5];return s===Symbol.for(`react.early_return_sentinel`)?o:s}function sa(e){return e.type===`flag-cap`}function ca(e){return e.type===`flag-return`}function la(e){return e.type===`flag-grab`}function ua(e){return e.type===`death`}function da(e){return e.type===`kill`}function fa(e){return e.scanProgress}function pa(e){return e.events}var ma=new Map([[`flag`,`Flags`],[`huntersflag1`,`Flags`],[`huntersflag2`,`Flags`],[`huntersflag4`,`Flags`],[`huntersflag8`,`Flags`],[`stationinventory`,`Inventory Stations`],[`stationammo`,`Inventory Stations`],[`mobileinvstation`,`Inventory Stations`],[`stationvehiclepad`,`Vehicle Pads`],[`stationvehicle`,`Vehicle Pads`],[`generatorlarge`,`Generators`],[`solarpanel`,`Generators`],[`sensorlargepulse`,`Sensors`],[`sensormediumpulse`,`Sensors`],[`turretbaselarge`,`Turrets`],[`sentryturret`,`Turrets`],[`repairpatch`,`Health`],[`repairkit`,`Health`],[`ammopack`,`Packs`],[`energypack`,`Packs`],[`shieldpack`,`Packs`],[`repairpack`,`Packs`],[`cloakingpack`,`Packs`],[`sensorjammerpack`,`Packs`],[`aabarrelpack`,`Packs`],[`elfbarrelpack`,`Packs`],[`missilebarrelpack`,`Packs`],[`mortarbarrelpack`,`Packs`],[`plasmabarrelpack`,`Packs`],[`inventorydeployable`,`Packs`],[`motionsensordeployable`,`Packs`],[`pulsesensordeployable`,`Packs`],[`turretoutdoordeployable`,`Packs`],[`turretindoordeployable`,`Packs`],[`satchelcharge`,`Weapons`],[`blaster`,`Weapons`],[`chaingun`,`Weapons`],[`disc`,`Weapons`],[`grenadelauncher`,`Weapons`],[`elfgun`,`Weapons`],[`missilelauncher`,`Weapons`],[`mortar`,`Weapons`],[`plasma`,`Weapons`],[`shocklance`,`Weapons`],[`sniperrifle`,`Weapons`],[`targetinglaser`,`Weapons`],[`chaingunammo`,`Ammo`],[`discammo`,`Ammo`],[`grenadelauncherammo`,`Ammo`],[`missilelauncherammo`,`Ammo`],[`mortarammo`,`Ammo`],[`plasmaammo`,`Ammo`],[`bombammo`,`Ammo`],[`assaultmortarammo`,`Ammo`],[`grenade`,`Ammo`],[`concussiongrenade`,`Ammo`],[`flashgrenade`,`Ammo`],[`flaregrenade`,`Ammo`],[`cameragrenade`,`Ammo`],[`mine`,`Ammo`],[`beacon`,`Ammo`],[`flipflop`,`Switches`],[`nexus`,`Nexus`],[`nexusbase`,`Nexus`],[`nexuscap`,`Nexus`]]),ha=[`Flags`,`Inventory Stations`,`Generators`,`Vehicle Pads`,`Turrets`,`Sensors`,`Nexus`,`Switches`,`Packs`,`Health`,`Weapons`,`Ammo`];function ga(e){return e.renderType===`Shape`&&typeof e.dataBlock==`string`&&e.dataBlock!==``&&Array.isArray(e.position)}function _a(e,t){let n=new Map;for(let r of e.values()){if(!ga(r))continue;let e=ma.get(r.dataBlock.toLowerCase());if(!e)continue;let i=r.dataBlock;if(t&&r.runtimeObject){let e=ve(r.runtimeObject,t);e&&(i=e)}let a=n.get(e);a||(a=[],n.set(e,a)),a.push({entityId:r.id,label:i,position:r.position,teamId:r.teamId})}let r=[];for(let e of ha){let t=n.get(e);t&&t.length>0&&(t.sort((e,t)=>{let n=(e.teamId??0)-(t.teamId??0);return n===0?e.label.localeCompare(t.label):n}),r.push({name:e,targets:t}))}return r}var va={Root:`_Root_pb9qa_1`,Empty:`_Empty_pb9qa_6`,TourAllButton:`_TourAllButton_pb9qa_13`,CategoryHeader:`_CategoryHeader_pb9qa_40`,CategoryCount:`_CategoryCount_pb9qa_58`,TourButton:`_TourButton_pb9qa_63`,PlayIcon:`_PlayIcon_pb9qa_83`,ExitIcon:`_ExitIcon_pb9qa_87`,ItemList:`_ItemList_pb9qa_100`,ItemRow:`_ItemRow_pb9qa_106`,ItemLabel:`_ItemLabel_pb9qa_151`,TeamBadge:`_TeamBadge_pb9qa_156`};function ya(e){return V({tag:`svg`,attr:{viewBox:`0 0 20 20`,fill:`currentColor`,"aria-hidden":`true`},child:[{tag:`path`,attr:{fillRule:`evenodd`,d:`M3 4.25A2.25 2.25 0 0 1 5.25 2h5.5A2.25 2.25 0 0 1 13 4.25v2a.75.75 0 0 1-1.5 0v-2a.75.75 0 0 0-.75-.75h-5.5a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 0 0 .75-.75v-2a.75.75 0 0 1 1.5 0v2A2.25 2.25 0 0 1 10.75 18h-5.5A2.25 2.25 0 0 1 3 15.75V4.25Z`,clipRule:`evenodd`},child:[]},{tag:`path`,attr:{fillRule:`evenodd`,d:`M19 10a.75.75 0 0 0-.75-.75H8.704l1.048-.943a.75.75 0 1 0-1.004-1.114l-2.5 2.25a.75.75 0 0 0 0 1.114l2.5 2.25a.75.75 0 1 0 1.004-1.114l-1.048-.943h9.546A.75.75 0 0 0 19 10Z`,clipRule:`evenodd`},child:[]}]})(e)}var ba=`__all__`;function xa(e){return e.animation?{targets:e.animation.targets,categoryName:e.animation.categoryName,currentIndex:e.animation.currentIndex}:null}function Sa(e,t){return e===t?!0:!e||!t?!1:e.categoryName===t.categoryName&&e.currentIndex===t.currentIndex&&e.targets===t.targets}function Ca(){let e=(0,U.c)(28),t=pn(),n=Se(Ta),r;e[0]!==n||e[1]!==t?(r=_a(t,n),e[0]=n,e[1]=t,e[2]=r):r=e[2];let i=r,a=Ee(xa,Sa),o;if(e[3]!==i){o=new Map;for(let e=0;e{let n=e.teamId!=null&&e.teamId>0?e.teamId:1/0,r=t.teamId!=null&&t.teamId>0?t.teamId:1/0;if(n!==r)return n-r;let i=o.get(e)??0,a=o.get(t)??0;return i===a?e.label.localeCompare(t.label):i-a},e[8]=o,e[9]=t),s=i.flatMap(wa).sort(t),e[5]=i,e[6]=o,e[7]=s}else s=e[7];let c=s;if(i.length===0){let t;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,W.jsx)(`div`,{className:va.Root,children:(0,W.jsx)(`p`,{className:va.Empty,children:`No map features found`})}),e[10]=t):t=e[10],t}let l=a!==null&&a.categoryName===ba,u;e[11]!==c||e[12]!==l?(u=()=>{l?De.getState().cancel():De.getState().startTour(c,ba)},e[11]=c,e[12]=l,e[13]=u):u=e[13];let d=u,f;e[14]===l?f=e[15]:(f=l?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ya,{className:va.ExitIcon}),` Exit tour`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(lr,{className:va.PlayIcon}),` `,(0,W.jsx)(`span`,{className:va.ButtonLabel,children:`Tour all features`})]}),e[14]=l,e[15]=f);let p;e[16]!==d||e[17]!==l||e[18]!==f?(p=(0,W.jsx)(`button`,{type:`button`,className:va.TourAllButton,"data-active":l,onClick:d,children:f}),e[16]=d,e[17]=l,e[18]=f,e[19]=p):p=e[19];let m;if(e[20]!==i||e[21]!==a){let t;e[23]===a?t=e[24]:(t=e=>(0,W.jsx)(Ea,{category:e,tourState:a},e.name),e[23]=a,e[24]=t),m=i.map(t),e[20]=i,e[21]=a,e[22]=m}else m=e[22];let h;return e[25]!==p||e[26]!==m?(h=(0,W.jsxs)(`div`,{className:va.Root,children:[p,m]}),e[25]=p,e[26]=m,e[27]=h):h=e[27],h}function wa(e){return e.targets}function Ta(e){return e.runtime.runtime?.state.datablocks}function Ea(e){let t=(0,U.c)(30),{category:n,tourState:r}=e,i=r!==null&&r.categoryName===n.name,a;t[0]!==n.name||t[1]!==n.targets||t[2]!==i?(a=()=>{i?De.getState().cancel():De.getState().startTour(n.targets,n.name)},t[0]=n.name,t[1]=n.targets,t[2]=i,t[3]=a):a=t[3];let o=a,s;t[4]===n.name?s=t[5]:(s=(0,W.jsx)(`span`,{children:n.name}),t[4]=n.name,t[5]=s);let c;t[6]===n.targets.length?c=t[7]:(c=(0,W.jsxs)(`span`,{className:va.CategoryCount,children:[`(`,n.targets.length,`)`]}),t[6]=n.targets.length,t[7]=c);let l;t[8]===i?l=t[9]:(l=i?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ya,{className:va.ExitIcon}),` Exit tour`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(lr,{className:va.PlayIcon}),` Tour all`]}),t[8]=i,t[9]=l);let u;t[10]!==o||t[11]!==i||t[12]!==l?(u=(0,W.jsx)(`button`,{type:`button`,className:va.TourButton,"data-active":i,onClick:o,children:l}),t[10]=o,t[11]=i,t[12]=l,t[13]=u):u=t[13];let d;t[14]!==s||t[15]!==c||t[16]!==u?(d=(0,W.jsxs)(`div`,{className:va.CategoryHeader,children:[s,c,u]}),t[14]=s,t[15]=c,t[16]=u,t[17]=d):d=t[17];let f;if(t[18]!==n.targets||t[19]!==i||t[20]!==r){let e;t[22]!==i||t[23]!==r?(e=(e,t)=>{let n=i&&r.currentIndex===t||r!==null&&r.targets[r.currentIndex]?.entityId===e.entityId;return(0,W.jsxs)(`button`,{type:`button`,className:va.ItemRow,"data-active":n,onClick:()=>De.getState().flyTo(e),children:[(0,W.jsx)(lr,{className:va.PlayIcon}),` `,(0,W.jsx)(`span`,{className:va.ItemLabel,children:e.label}),e.teamId!=null&&e.teamId>0&&(0,W.jsx)(`span`,{className:va.TeamBadge,"data-team":e.teamId,children:ye[e.teamId]??`Team ${e.teamId}`})]},e.entityId)},t[22]=i,t[23]=r,t[24]=e):e=t[24],f=n.targets.map(e),t[18]=n.targets,t[19]=i,t[20]=r,t[21]=f}else f=t[21];let p;t[25]===f?p=t[26]:(p=(0,W.jsx)(`div`,{className:va.ItemList,children:f}),t[25]=f,t[26]=p);let m;return t[27]!==d||t[28]!==p?(m=(0,W.jsxs)(W.Fragment,{children:[d,p]}),t[27]=d,t[28]=p,t[29]=m):m=t[29],m}function Da(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`,fill:`currentColor`},child:[{tag:`path`,attr:{d:`M16 21L11.2381 12.2698L15 6L23 21H16ZM8 10L14 21H2L8 10ZM5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5C8 6.88071 6.88071 8 5.5 8Z`},child:[]}]})(e)}function Oa(e){let t=(0,U.c)(6),{isActive:n,onClick:r}=e,i=n===void 0?!1:n,a,o,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,W.jsx)(Da,{}),o=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Explore`}),s=(0,W.jsx)(`span`,{className:Ut.ButtonHint,children:`Browse maps`}),t[0]=a,t[1]=o,t[2]=s):(a=t[0],o=t[1],s=t[2]);let c;return t[3]!==i||t[4]!==r?(c=(0,W.jsxs)(`button`,{type:`button`,className:Ut.Button,onClick:r,"data-active":i,children:[a,o,s]}),t[3]=i,t[4]=r,t[5]=c):c=t[5],c}function ka(e){let t=(0,U.c)(7),{missionName:n,onClick:r}=e,i=Sn(),a=wn(),o=i===`demo`||i===`live`?a:n,s;t[0]===o?s=t[1]:(s=o?me(o):!1,t[0]=o,t[1]=s);let c=!s,l,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,W.jsx)($i,{}),u=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Show map info`}),t[2]=l,t[3]=u):(l=t[2],u=t[3]);let d;return t[4]!==r||t[5]!==c?(d=(0,W.jsxs)(`button`,{type:`button`,className:Ut.Button,"aria-label":`Show map info`,onClick:r,disabled:c,children:[l,u]}),t[4]=r,t[5]=c,t[6]=d):d=t[6],d}function Aa(e){let t=(0,U.c)(4),{onClick:n}=e,r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,W.jsx)(qi,{}),i=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Show scores`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;return t[2]===n?a=t[3]:(a=(0,W.jsxs)(`button`,{type:`button`,className:Ut.Button,"aria-label":`Show scores`,onClick:n,children:[r,i]}),t[2]=n,t[3]=a),a}var ja=e(t(((e,t)=>{var n={À:`A`,Á:`A`,Â:`A`,Ã:`A`,Ä:`A`,Å:`A`,Ấ:`A`,Ắ:`A`,Ẳ:`A`,Ẵ:`A`,Ặ:`A`,Æ:`AE`,Ầ:`A`,Ằ:`A`,Ȃ:`A`,Ả:`A`,Ạ:`A`,Ẩ:`A`,Ẫ:`A`,Ậ:`A`,Ç:`C`,Ḉ:`C`,È:`E`,É:`E`,Ê:`E`,Ë:`E`,Ế:`E`,Ḗ:`E`,Ề:`E`,Ḕ:`E`,Ḝ:`E`,Ȇ:`E`,Ẻ:`E`,Ẽ:`E`,Ẹ:`E`,Ể:`E`,Ễ:`E`,Ệ:`E`,Ì:`I`,Í:`I`,Î:`I`,Ï:`I`,Ḯ:`I`,Ȋ:`I`,Ỉ:`I`,Ị:`I`,Ð:`D`,Ñ:`N`,Ò:`O`,Ó:`O`,Ô:`O`,Õ:`O`,Ö:`O`,Ø:`O`,Ố:`O`,Ṍ:`O`,Ṓ:`O`,Ȏ:`O`,Ỏ:`O`,Ọ:`O`,Ổ:`O`,Ỗ:`O`,Ộ:`O`,Ờ:`O`,Ở:`O`,Ỡ:`O`,Ớ:`O`,Ợ:`O`,Ù:`U`,Ú:`U`,Û:`U`,Ü:`U`,Ủ:`U`,Ụ:`U`,Ử:`U`,Ữ:`U`,Ự:`U`,Ý:`Y`,à:`a`,á:`a`,â:`a`,ã:`a`,ä:`a`,å:`a`,ấ:`a`,ắ:`a`,ẳ:`a`,ẵ:`a`,ặ:`a`,æ:`ae`,ầ:`a`,ằ:`a`,ȃ:`a`,ả:`a`,ạ:`a`,ẩ:`a`,ẫ:`a`,ậ:`a`,ç:`c`,ḉ:`c`,è:`e`,é:`e`,ê:`e`,ë:`e`,ế:`e`,ḗ:`e`,ề:`e`,ḕ:`e`,ḝ:`e`,ȇ:`e`,ẻ:`e`,ẽ:`e`,ẹ:`e`,ể:`e`,ễ:`e`,ệ:`e`,ì:`i`,í:`i`,î:`i`,ï:`i`,ḯ:`i`,ȋ:`i`,ỉ:`i`,ị:`i`,ð:`d`,ñ:`n`,ò:`o`,ó:`o`,ô:`o`,õ:`o`,ö:`o`,ø:`o`,ố:`o`,ṍ:`o`,ṓ:`o`,ȏ:`o`,ỏ:`o`,ọ:`o`,ổ:`o`,ỗ:`o`,ộ:`o`,ờ:`o`,ở:`o`,ỡ:`o`,ớ:`o`,ợ:`o`,ù:`u`,ú:`u`,û:`u`,ü:`u`,ủ:`u`,ụ:`u`,ử:`u`,ữ:`u`,ự:`u`,ý:`y`,ÿ:`y`,Ā:`A`,ā:`a`,Ă:`A`,ă:`a`,Ą:`A`,ą:`a`,Ć:`C`,ć:`c`,Ĉ:`C`,ĉ:`c`,Ċ:`C`,ċ:`c`,Č:`C`,č:`c`,C̆:`C`,c̆:`c`,Ď:`D`,ď:`d`,Đ:`D`,đ:`d`,Ē:`E`,ē:`e`,Ĕ:`E`,ĕ:`e`,Ė:`E`,ė:`e`,Ę:`E`,ę:`e`,Ě:`E`,ě:`e`,Ĝ:`G`,Ǵ:`G`,ĝ:`g`,ǵ:`g`,Ğ:`G`,ğ:`g`,Ġ:`G`,ġ:`g`,Ģ:`G`,ģ:`g`,Ĥ:`H`,ĥ:`h`,Ħ:`H`,ħ:`h`,Ḫ:`H`,ḫ:`h`,Ĩ:`I`,ĩ:`i`,Ī:`I`,ī:`i`,Ĭ:`I`,ĭ:`i`,Į:`I`,į:`i`,İ:`I`,ı:`i`,IJ:`IJ`,ij:`ij`,Ĵ:`J`,ĵ:`j`,Ķ:`K`,ķ:`k`,Ḱ:`K`,ḱ:`k`,K̆:`K`,k̆:`k`,Ĺ:`L`,ĺ:`l`,Ļ:`L`,ļ:`l`,Ľ:`L`,ľ:`l`,Ŀ:`L`,ŀ:`l`,Ł:`l`,ł:`l`,Ḿ:`M`,ḿ:`m`,M̆:`M`,m̆:`m`,Ń:`N`,ń:`n`,Ņ:`N`,ņ:`n`,Ň:`N`,ň:`n`,ʼn:`n`,N̆:`N`,n̆:`n`,Ō:`O`,ō:`o`,Ŏ:`O`,ŏ:`o`,Ő:`O`,ő:`o`,Œ:`OE`,œ:`oe`,P̆:`P`,p̆:`p`,Ŕ:`R`,ŕ:`r`,Ŗ:`R`,ŗ:`r`,Ř:`R`,ř:`r`,R̆:`R`,r̆:`r`,Ȓ:`R`,ȓ:`r`,Ś:`S`,ś:`s`,Ŝ:`S`,ŝ:`s`,Ş:`S`,Ș:`S`,ș:`s`,ş:`s`,Š:`S`,š:`s`,Ţ:`T`,ţ:`t`,ț:`t`,Ț:`T`,Ť:`T`,ť:`t`,Ŧ:`T`,ŧ:`t`,T̆:`T`,t̆:`t`,Ũ:`U`,ũ:`u`,Ū:`U`,ū:`u`,Ŭ:`U`,ŭ:`u`,Ů:`U`,ů:`u`,Ű:`U`,ű:`u`,Ų:`U`,ų:`u`,Ȗ:`U`,ȗ:`u`,V̆:`V`,v̆:`v`,Ŵ:`W`,ŵ:`w`,Ẃ:`W`,ẃ:`w`,X̆:`X`,x̆:`x`,Ŷ:`Y`,ŷ:`y`,Ÿ:`Y`,Y̆:`Y`,y̆:`y`,Ź:`Z`,ź:`z`,Ż:`Z`,ż:`z`,Ž:`Z`,ž:`z`,ſ:`s`,ƒ:`f`,Ơ:`O`,ơ:`o`,Ư:`U`,ư:`u`,Ǎ:`A`,ǎ:`a`,Ǐ:`I`,ǐ:`i`,Ǒ:`O`,ǒ:`o`,Ǔ:`U`,ǔ:`u`,Ǖ:`U`,ǖ:`u`,Ǘ:`U`,ǘ:`u`,Ǚ:`U`,ǚ:`u`,Ǜ:`U`,ǜ:`u`,Ứ:`U`,ứ:`u`,Ṹ:`U`,ṹ:`u`,Ǻ:`A`,ǻ:`a`,Ǽ:`AE`,ǽ:`ae`,Ǿ:`O`,ǿ:`o`,Þ:`TH`,þ:`th`,Ṕ:`P`,ṕ:`p`,Ṥ:`S`,ṥ:`s`,X́:`X`,x́:`x`,Ѓ:`Г`,ѓ:`г`,Ќ:`К`,ќ:`к`,A̋:`A`,a̋:`a`,E̋:`E`,e̋:`e`,I̋:`I`,i̋:`i`,Ǹ:`N`,ǹ:`n`,Ồ:`O`,ồ:`o`,Ṑ:`O`,ṑ:`o`,Ừ:`U`,ừ:`u`,Ẁ:`W`,ẁ:`w`,Ỳ:`Y`,ỳ:`y`,Ȁ:`A`,ȁ:`a`,Ȅ:`E`,ȅ:`e`,Ȉ:`I`,ȉ:`i`,Ȍ:`O`,ȍ:`o`,Ȑ:`R`,ȑ:`r`,Ȕ:`U`,ȕ:`u`,B̌:`B`,b̌:`b`,Č̣:`C`,č̣:`c`,Ê̌:`E`,ê̌:`e`,F̌:`F`,f̌:`f`,Ǧ:`G`,ǧ:`g`,Ȟ:`H`,ȟ:`h`,J̌:`J`,ǰ:`j`,Ǩ:`K`,ǩ:`k`,M̌:`M`,m̌:`m`,P̌:`P`,p̌:`p`,Q̌:`Q`,q̌:`q`,Ř̩:`R`,ř̩:`r`,Ṧ:`S`,ṧ:`s`,V̌:`V`,v̌:`v`,W̌:`W`,w̌:`w`,X̌:`X`,x̌:`x`,Y̌:`Y`,y̌:`y`,A̧:`A`,a̧:`a`,B̧:`B`,b̧:`b`,Ḑ:`D`,ḑ:`d`,Ȩ:`E`,ȩ:`e`,Ɛ̧:`E`,ɛ̧:`e`,Ḩ:`H`,ḩ:`h`,I̧:`I`,i̧:`i`,Ɨ̧:`I`,ɨ̧:`i`,M̧:`M`,m̧:`m`,O̧:`O`,o̧:`o`,Q̧:`Q`,q̧:`q`,U̧:`U`,u̧:`u`,X̧:`X`,x̧:`x`,Z̧:`Z`,z̧:`z`,й:`и`,Й:`И`,ё:`е`,Ё:`Е`},r=Object.keys(n).join(`|`),i=new RegExp(r,`g`),a=new RegExp(r,``);function o(e){return n[e]}var s=function(e){return e.replace(i,o)},c=function(e){return!!e.match(a)};t.exports=s,t.exports.has=c,t.exports.remove=s}))()),Ma={CASE_SENSITIVE_EQUAL:7,EQUAL:6,STARTS_WITH:5,WORD_STARTS_WITH:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0},Na=(e,t)=>String(e.rankedValue).localeCompare(String(t.rankedValue));function Pa(e,t,n={}){let{keys:r,threshold:i=Ma.MATCHES,baseSort:a=Na,sorter:o=e=>e.sort((e,t)=>Ba(e,t,a))}=n;return o(e.reduce(s,[])).map(({item:e})=>e);function s(e,a,o){let s=Fa(a,r,t,n),{rank:c,keyThreshold:l=i}=s;return c>=l&&e.push({...s,item:a,index:o}),e}}Pa.rankings=Ma;function Fa(e,t,n,r){if(!t){let t=e;return{rankedValue:t,rank:La(t,n,r),keyIndex:-1,keyThreshold:r.threshold}}return Wa(e,t).reduce(({rank:e,rankedValue:t,keyIndex:i,keyThreshold:a},{itemValue:o,attributes:s},c)=>{let l=La(o,n,r),u=t,{minRanking:d,maxRanking:f,threshold:p}=s;return l=Ma.MATCHES?l=d:l>f&&(l=f),l>e&&(e=l,i=c,a=p,u=o),{rankedValue:u,rank:e,keyIndex:i,keyThreshold:a}},{rankedValue:e,rank:Ma.NO_MATCH,keyIndex:-1,keyThreshold:r.threshold})}function*Ia(e,t){let n=-1;for(;(n=e.indexOf(t,n+1))>-1;)yield n;return-1}function La(e,t,n){if(e=Va(e,n),t=Va(t,n),t.length>e.length)return Ma.NO_MATCH;if(e===t)return Ma.CASE_SENSITIVE_EQUAL;e=e.toLowerCase(),t=t.toLowerCase();let r=Ia(e,t),i=r.next(),a=i.value;if(e.length===t.length&&a===0)return Ma.EQUAL;if(a===0)return Ma.STARTS_WITH;let o=i;for(;!o.done;){if(o.value>0&&e[o.value-1]===` `)return Ma.WORD_STARTS_WITH;o=r.next()}return a>0?Ma.CONTAINS:t.length===1?Ma.NO_MATCH:Ra(e).includes(t)?Ma.ACRONYM:za(e,t)}function Ra(e){let t=``,n=` `;for(let r=0;r-1))return Ma.NO_MATCH}return a(r-o)}function Ba(e,t,n){let{rank:r,keyIndex:i}=e,{rank:a,keyIndex:o}=t;return r===a?i===o?n(e,t):ia?-1:1}function Va(e,{keepDiacritics:t}){return e=`${e}`,t||(e=(0,ja.default)(e)),e}function Ha(e,t){typeof t==`object`&&(t=t.key);let n;if(typeof t==`function`)n=t(e);else if(e==null)n=null;else if(Object.hasOwnProperty.call(e,t))n=e[t];else if(t.includes(`.`))return Ua(t,e);else n=null;return n==null?[]:Array.isArray(n)?n:[String(n)]}function Ua(e,t){let n=e.split(`.`),r=[t];for(let e=0,t=n.length;e0?t:void 0}function Xa(e){if(`position`in e&&e.position)return e.position;if(e.renderType===`InteriorInstance`&&`interiorData`in e)return it(e.interiorData.transform.position);if(e.renderType===`WaterBlock`&&`waterData`in e){let t=it(e.waterData.transform.position),n=e.waterData.scale;return[t[0]+n.y/2,t[1]+n.z/2,t[2]+n.x/2]}if(e.renderType===`TerrainBlock`)return[0,0,0]}function Za(e){let t=(0,U.c)(39),{entity:n}=e,r;t[0]===n?r=t[1]:(r=Xa(n),t[0]=n,t[1]=r);let i=r,a;t[2]===n?a=t[3]:(a=Ya(n),t[2]=n,t[3]=a);let o=a,s;t[4]===n?s=t[5]:(s=Ja(n),t[4]=n,t[5]=s);let c=s,l=An(n.id),{audioEnabled:d}=u(),f=n.renderType===`AudioEmitter`&&!d,p=!!i&&!l&&!f,m;t[6]!==n.id||t[7]!==c||t[8]!==i?(m=()=>{i&&De.getState().flyTo({entityId:n.id,label:c,position:i},`debug`)},t[6]=n.id,t[7]=c,t[8]=i,t[9]=m):m=t[9];let h=m,g;t[10]===n.id?g=t[11]:(g=()=>{let e=K.getState(),t=e.isStreaming?e.streamEntities:e.missionEntities,r=t.get(n.id);r&&(t.set(n.id,{...r,debugHidden:!r.debugHidden}),K.setState({version:e.version+1}))},t[10]=n.id,t[11]=g);let _=g,v=f||void 0,y=!l,b=l?`Show entity`:`Hide entity`,x;t[12]!==f||t[13]!==_||t[14]!==y||t[15]!==b?(x=(0,W.jsx)(`input`,{type:`checkbox`,checked:y,onChange:_,disabled:f,title:b}),t[12]=f,t[13]=_,t[14]=y,t[15]=b,t[16]=x):x=t[16];let S;t[17]===c?S=t[18]:(S=(0,W.jsx)(`span`,{className:qa.Type,children:c}),t[17]=c,t[18]=S);let C;t[19]===n.id?C=t[20]:(C=(0,W.jsx)(`span`,{className:qa.ID,children:n.id}),t[19]=n.id,t[20]=C);let w;t[21]!==S||t[22]!==C?(w=(0,W.jsxs)(`div`,{children:[S,` `,C]}),t[21]=S,t[22]=C,t[23]=w):w=t[23];let T;t[24]===o?T=t[25]:(T=o&&(0,W.jsx)(`dl`,{className:qa.Detail,children:Object.entries(o).map(Qa)}),t[24]=o,t[25]=T);let E;t[26]!==w||t[27]!==T?(E=(0,W.jsxs)(`div`,{className:qa.EntityInfo,children:[w,T]}),t[26]=w,t[27]=T,t[28]=E):E=t[28];let D;t[29]!==p||t[30]!==h||t[31]!==c||t[32]!==i?(D=i&&(0,W.jsx)(`button`,{type:`button`,className:qa.LocateButton,onClick:h,disabled:!p,title:`Fly to ${c}`,children:(0,W.jsx)(At,{})}),t[29]=p,t[30]=h,t[31]=c,t[32]=i,t[33]=D):D=t[33];let O;return t[34]!==E||t[35]!==D||t[36]!==v||t[37]!==x?(O=(0,W.jsxs)(`div`,{className:qa.EntityRow,"data-disabled":v,children:[x,E,D]}),t[34]=E,t[35]=D,t[36]=v,t[37]=x,t[38]=O):O=t[38],O}function Qa(e){let[t,n]=e;return(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`dt`,{children:[t,`:`]}),(0,W.jsx)(`dd`,{children:n})]},t)}var $a=[`id`,`className`,`label`,`playerName`,`skinPrefName`,`shapeName`,`dataBlock`,`audioFileName`,`interiorData.interiorFile`,`terrainData.terrFileName`,`waterData.surfaceName`],eo=(0,H.memo)(function(){let[e,t]=(0,H.useState)(``),n=(0,H.useDeferredValue)(e.trim()),r=pn(),i=K.getState().version,a=(0,H.useMemo)(()=>{let e=Array.from(r.values());return n?Pa(e,n,{keys:$a}):e},[n,r,i]),o=(0,H.useMemo)(()=>{let e=new Map;for(let t of a){if(t.renderType===`Sky`||t.renderType===`Sun`||t.renderType===`MissionArea`||t.renderType===`None`)continue;let n=t.className,r=e.get(n);r||(r=[],e.set(n,r)),r.push(t)}let t=[...e.entries()].sort(([e],[t])=>e.localeCompare(t));for(let[,e]of t)e.sort((e,t)=>e.id.localeCompare(t.id));return t},[a]);return(0,W.jsxs)(`section`,{className:qa.Container,"data-filtered":n?!0:void 0,children:[(0,W.jsxs)(`header`,{className:qa.Header,children:[(0,W.jsx)(`h4`,{className:qa.Title,children:`Entity list`}),(0,W.jsx)(`input`,{type:`search`,value:e,onChange:e=>t(e.target.value),size:16,placeholder:`Filter`,className:qa.FilterInput})]}),o.map(([e,t])=>(0,W.jsxs)(`details`,{className:qa.Group,open:n?!0:void 0,children:[(0,W.jsxs)(`summary`,{className:qa.GroupHeader,children:[(0,W.jsx)(Vt,{className:qa.ClosedIcon}),(0,W.jsx)(Ht,{className:qa.OpenedIcon}),` `,e,` `,(0,W.jsxs)(`span`,{className:qa.GroupCount,children:[`(`,t.length,`)`]})]}),(0,W.jsx)(`ul`,{className:qa.List,children:t.map(e=>(0,W.jsx)(`li`,{className:qa.ListItem,children:(0,W.jsx)(Za,{entity:e})},e.id))})]},e))]})}),q={InspectorControls:`_InspectorControls_ukzik_1`,Dropdown:`_Dropdown_ukzik_8`,Group:`_Group_ukzik_16`,CheckboxField:`_CheckboxField_ukzik_24`,Label:`_Label_ukzik_39`,Description:`_Description_ukzik_47`,Control:`_Control_ukzik_60`,Field:`_Field_ukzik_67`,Tools:`_Tools_ukzik_91`,MapInfoButton:`_MapInfoButton_ukzik_114 _Button_p0g82_2`,ShowScoresButton:`_ShowScoresButton_ukzik_115 _Button_p0g82_2`,ForceRenderButton:`_ForceRenderButton_ukzik_119`,CloseSidebarButton:`_CloseSidebarButton_ukzik_131 _Button_p0g82_2`},to=[`controls`,`preferences`,`audio`,`timeline`],no=(0,H.memo)(function(e){let t=(0,U.c)(227),{missionName:n,missionType:r,onOpenMapInfo:i,onOpenScoreScreen:a,onOpenServerBrowser:o,onChooseMap:s,onCancelChoosingMap:c,choosingMap:l,cameraRef:d,invalidateRef:f,onClose:p}=e,m=g(),_=Sn(),v=Gn(),y=wn(),x=_===`demo`||_===`live`,S=x?y:n,C;t[0]===S?C=t[1]:(C=S?me(S):!1,t[0]=S,t[1]=C);let w=C,T=Hn(ro),{fogEnabled:E,setFogEnabled:D,fov:O,setFov:k,audioEnabled:A,setAudioEnabled:j,audioVolume:M,setAudioVolume:N,adjustAudioSpeed:P,setAdjustAudioSpeed:F,animationEnabled:I,setAnimationEnabled:ee,fpsLimit:L,setFpsLimit:R,showInputOverlay:te,setShowInputOverlay:ne,showChat:re,setShowChat:ie,showReticle:ae,setShowReticle:oe}=u(),{speedMultiplier:se,setSpeedMultiplier:z,mouseSensitivity:B,setMouseSensitivity:ce,touchMode:le,setTouchMode:ue,invertScroll:de,setInvertScroll:fe,invertDrag:pe,setInvertDrag:he,invertJoystick:ge,setInvertJoystick:_e}=b(),{debugMode:ve,setDebugMode:ye,renderOnDemand:be,setRenderOnDemand:xe}=h(),[Se,Ce]=(0,H.useState)(!1),we=(0,H.useRef)(null),Te=(0,H.useRef)(null),Ee=(0,H.useRef)(null),De,V;t[2]===Se?(De=t[3],V=t[4]):(De=()=>{Se&&we.current?.focus()},V=[Se],t[2]=Se,t[3]=De,t[4]=V),(0,H.useEffect)(De,V);let Oe;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=e=>{let t=e.relatedTarget;t&&Ee.current?.contains(t)||Ce(!1)},t[5]=Oe):Oe=t[5];let ke=Oe,Ae;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=e=>{e.key===`Escape`&&(Ce(!1),Te.current?.focus())},t[6]=Ae):Ae=t[6];let je=Ae,Me=_===`map`&&!v||(l??!1),Ne;t[7]!==s||t[8]!==Me?(Ne=(0,W.jsx)(Oa,{isActive:Me,onClick:s}),t[7]=s,t[8]=Me,t[9]=Ne):Ne=t[9];let Pe=!l&&v?.source===`demo`,Fe;t[10]!==l||t[11]!==c||t[12]!==Pe?(Fe=(0,W.jsx)(sr,{isActive:Pe,choosingMap:l,onCancelChoosingMap:c}),t[10]=l,t[11]=c,t[12]=Pe,t[13]=Fe):Fe=t[13];let Ie;t[14]!==l||t[15]!==T||t[16]!==o?(Ie=o&&(0,W.jsx)(dr,{isActive:!l&&T,onOpenServerBrowser:o}),t[14]=l,t[15]=T,t[16]=o,t[17]=Ie):Ie=t[17];let Le;t[18]!==Ie||t[19]!==Ne||t[20]!==Fe?(Le=(0,W.jsxs)(`div`,{className:Ut.ButtonGroup,children:[Ne,Fe,Ie]}),t[18]=Ie,t[19]=Ne,t[20]=Fe,t[21]=Le):Le=t[21];let Re=!w,ze;t[22]!==d||t[23]!==n||t[24]!==r||t[25]!==Re?(ze=(0,W.jsx)(Kt,{missionName:n,missionType:r,cameraRef:d,disabled:Re}),t[22]=d,t[23]=n,t[24]=r,t[25]=Re,t[26]=ze):ze=t[26];let Be;t[27]!==n||t[28]!==i?(Be=(0,W.jsx)(ka,{missionName:n,onClick:i}),t[27]=n,t[28]=i,t[29]=Be):Be=t[29];let Ve;t[30]===a?Ve=t[31]:(Ve=a&&(0,W.jsx)(Aa,{onClick:a}),t[30]=a,t[31]=Ve);let He;t[32]!==Le||t[33]!==ze||t[34]!==Be||t[35]!==Ve?(He=(0,W.jsxs)(`div`,{className:q.Tools,children:[Le,ze,Be,Ve]}),t[32]=Le,t[33]=ze,t[34]=Be,t[35]=Ve,t[36]=He):He=t[36];let Ue;t[37]===v?.source?Ue=t[38]:(Ue=v?.source===`demo`&&(0,W.jsx)(Hi,{value:`timeline`,label:`Timeline`,noPadding:!0,children:(0,W.jsx)(oa,{})}),t[37]=v?.source,t[38]=Ue);let We;t[39]!==_||t[40]!==v?(We=_===`map`&&!v&&(0,W.jsx)(Hi,{value:`mapFeatures`,label:`Map Features`,noPadding:!0,children:(0,W.jsx)(Ca,{})}),t[39]=_,t[40]=v,t[41]=We):We=t[41];let Ge;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=(0,W.jsx)(`label`,{htmlFor:`speedInput`,children:`Fly speed`}),t[42]=Ge):Ge=t[42];let Ke;t[43]===se?Ke=t[44]:(Ke=Math.round(se*100),t[43]=se,t[44]=Ke);let qe;t[45]===z?qe=t[46]:(qe=e=>z(parseFloat(e.target.value)/100),t[45]=z,t[46]=qe);let Je;t[47]!==Ke||t[48]!==qe?(Je=(0,W.jsx)(`div`,{className:q.Control,children:(0,W.jsx)(`input`,{id:`speedInput`,type:`range`,min:1,max:100,step:1,value:Ke,onChange:qe})}),t[47]=Ke,t[48]=qe,t[49]=Je):Je=t[49];let Ye=m===!1?` Use your scroll wheel or trackpad to adjust while flying.`:``,Xe;t[50]===Ye?Xe=t[51]:(Xe=(0,W.jsxs)(`p`,{className:q.Description,children:[`How fast you move in free-flying mode.`,Ye]}),t[50]=Ye,t[51]=Xe);let Ze;t[52]!==Je||t[53]!==Xe?(Ze=(0,W.jsxs)(`div`,{className:q.Field,children:[Ge,Je,Xe]}),t[52]=Je,t[53]=Xe,t[54]=Ze):Ze=t[54];let Qe;t[55]!==m||t[56]!==ue||t[57]!==le?(Qe=m?(0,W.jsxs)(`div`,{className:q.Field,children:[(0,W.jsx)(`label`,{htmlFor:`touchModeInput`,children:`Joystick`}),` `,(0,W.jsx)(`div`,{className:q.Control,children:(0,W.jsxs)(`select`,{id:`touchModeInput`,value:le,onChange:e=>ue(e.target.value),children:[(0,W.jsx)(`option`,{value:`dualStick`,children:`Dual stick`}),(0,W.jsx)(`option`,{value:`moveLookStick`,children:`Single stick`})]})}),(0,W.jsx)(`p`,{className:q.Description,children:`Single stick has a unified move + look control. Dual stick has independent move + look.`})]}):null,t[55]=m,t[56]=ue,t[57]=le,t[58]=Qe):Qe=t[58];let $e;t[59]!==de||t[60]!==m||t[61]!==fe?($e=m===!1?(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[(0,W.jsx)(`input`,{id:`invertScroll`,type:`checkbox`,checked:de,onChange:e=>{fe(e.target.checked)}}),(0,W.jsx)(`label`,{className:q.Label,htmlFor:`invertScroll`,children:`Invert scroll direction`}),(0,W.jsx)(`p`,{className:q.Description,children:`Reverse which scroll direction increases and decreases fly speed.`})]}):null,t[59]=de,t[60]=m,t[61]=fe,t[62]=$e):$e=t[62];let et;t[63]!==ge||t[64]!==m||t[65]!==_e?(et=m?(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[(0,W.jsx)(`input`,{id:`invertJoystick`,type:`checkbox`,checked:ge,onChange:e=>{_e(e.target.checked)}}),(0,W.jsx)(`label`,{className:q.Label,htmlFor:`invertJoystick`,children:`Invert joystick direction`}),(0,W.jsx)(`p`,{className:q.Description,children:`Reverse joystick look direction.`})]}):null,t[63]=ge,t[64]=m,t[65]=_e,t[66]=et):et=t[66];let tt;t[67]===he?tt=t[68]:(tt=e=>{he(e.target.checked)},t[67]=he,t[68]=tt);let nt;t[69]!==pe||t[70]!==tt?(nt=(0,W.jsx)(`input`,{id:`invertDrag`,type:`checkbox`,checked:pe,onChange:tt}),t[69]=pe,t[70]=tt,t[71]=nt):nt=t[71];let rt,it;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(rt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`invertDrag`,children:`Invert drag direction`}),it=(0,W.jsx)(`p`,{className:q.Description,children:`Reverse how dragging the viewport aims the camera.`}),t[72]=rt,t[73]=it):(rt=t[72],it=t[73]);let at;t[74]===nt?at=t[75]:(at=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[nt,rt,it]}),t[74]=nt,t[75]=at);let ot;t[76]!==m||t[77]!==B||t[78]!==ce?(ot=m===!1&&(0,W.jsxs)(`div`,{className:q.Field,children:[(0,W.jsx)(`label`,{htmlFor:`mouseSensitivityInput`,children:`Mouse sensitivity`}),(0,W.jsx)(`div`,{className:q.Control,children:(0,W.jsx)(`input`,{id:`mouseSensitivityInput`,type:`range`,min:1,max:256,step:2,value:Math.round(B*16e3),onChange:e=>{ce(parseInt(e.target.value)/16e3)}})})]}),t[76]=m,t[77]=B,t[78]=ce,t[79]=ot):ot=t[79];let st;t[80]!==Ze||t[81]!==Qe||t[82]!==$e||t[83]!==et||t[84]!==at||t[85]!==ot?(st=(0,W.jsxs)(Hi,{value:`controls`,label:`Controls`,children:[Ze,Qe,$e,et,at,ot]}),t[80]=Ze,t[81]=Qe,t[82]=$e,t[83]=et,t[84]=at,t[85]=ot,t[86]=st):st=t[86];let ct;t[87]===Symbol.for(`react.memo_cache_sentinel`)?(ct=(0,W.jsx)(`label`,{htmlFor:`fovInput`,children:`FOV`}),t[87]=ct):ct=t[87];let lt;t[88]===O?lt=t[89]:(lt=(0,W.jsxs)(`output`,{htmlFor:`fovInput`,children:[O,`°`]}),t[88]=O,t[89]=lt);let ut;t[90]===k?ut=t[91]:(ut=e=>k(parseInt(e.target.value)),t[90]=k,t[91]=ut);let dt;t[92]!==O||t[93]!==ut?(dt=(0,W.jsx)(`input`,{id:`fovInput`,type:`range`,min:75,max:120,step:5,value:O,onChange:ut}),t[92]=O,t[93]=ut,t[94]=dt):dt=t[94];let ft;t[95]!==lt||t[96]!==dt?(ft=(0,W.jsxs)(`div`,{className:q.Field,children:[ct,(0,W.jsxs)(`div`,{className:q.Control,children:[lt,dt]})]}),t[95]=lt,t[96]=dt,t[97]=ft):ft=t[97];let pt;t[98]===ne?pt=t[99]:(pt=e=>{ne(e.target.checked)},t[98]=ne,t[99]=pt);let mt;t[100]!==te||t[101]!==pt?(mt=(0,W.jsx)(`input`,{id:`showInputOverlayInput`,type:`checkbox`,checked:te,onChange:pt}),t[100]=te,t[101]=pt,t[102]=mt):mt=t[102];let ht;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(ht=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`showInputOverlayInput`,children:`Show input overlay`}),t[103]=ht):ht=t[103];let gt;t[104]===mt?gt=t[105]:(gt=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[mt,ht]}),t[104]=mt,t[105]=gt);let _t;t[106]!==x||t[107]!==ie||t[108]!==oe||t[109]!==re||t[110]!==ae?(_t=x&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[(0,W.jsx)(`input`,{id:`showChatInput`,type:`checkbox`,checked:re,onChange:e=>{ie(e.target.checked)}}),(0,W.jsx)(`label`,{className:q.Label,htmlFor:`showChatInput`,children:`Show chat HUD`})]}),(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[(0,W.jsx)(`input`,{id:`showReticleInput`,type:`checkbox`,checked:ae,onChange:e=>{oe(e.target.checked)}}),(0,W.jsx)(`label`,{className:q.Label,htmlFor:`showReticleInput`,children:`Show reticles`})]})]}),t[106]=x,t[107]=ie,t[108]=oe,t[109]=re,t[110]=ae,t[111]=_t):_t=t[111];let vt;t[112]!==ft||t[113]!==gt||t[114]!==_t?(vt=(0,W.jsxs)(Hi,{value:`preferences`,label:`Preferences`,children:[ft,gt,_t]}),t[112]=ft,t[113]=gt,t[114]=_t,t[115]=vt):vt=t[115];let yt;t[116]===j?yt=t[117]:(yt=e=>{j(e.target.checked)},t[116]=j,t[117]=yt);let bt;t[118]!==A||t[119]!==yt?(bt=(0,W.jsx)(`input`,{id:`audioInput`,type:`checkbox`,checked:A,onChange:yt}),t[118]=A,t[119]=yt,t[120]=bt):bt=t[120];let xt;t[121]===Symbol.for(`react.memo_cache_sentinel`)?(xt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`audioInput`,children:`Enable audio`}),t[121]=xt):xt=t[121];let St;t[122]===bt?St=t[123]:(St=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[bt,xt]}),t[122]=bt,t[123]=St);let Ct;t[124]===Symbol.for(`react.memo_cache_sentinel`)?(Ct=(0,W.jsx)(`label`,{htmlFor:`volumeInput`,children:`Master volume`}),t[124]=Ct):Ct=t[124];let wt;t[125]===M?wt=t[126]:(wt=Math.round(M*100),t[125]=M,t[126]=wt);let Tt;t[127]===wt?Tt=t[128]:(Tt=(0,W.jsxs)(`output`,{htmlFor:`volumeInput`,children:[wt,`%`]}),t[127]=wt,t[128]=Tt);let Et;t[129]===N?Et=t[130]:(Et=e=>N(parseFloat(e.target.value)),t[129]=N,t[130]=Et);let Dt;t[131]!==M||t[132]!==Et?(Dt=(0,W.jsx)(`input`,{id:`volumeInput`,type:`range`,min:0,max:1,step:.05,value:M,onChange:Et}),t[131]=M,t[132]=Et,t[133]=Dt):Dt=t[133];let Ot;t[134]!==Tt||t[135]!==Dt?(Ot=(0,W.jsxs)(`div`,{className:q.Field,children:[Ct,(0,W.jsxs)(`div`,{className:q.Control,children:[Tt,Dt]})]}),t[134]=Tt,t[135]=Dt,t[136]=Ot):Ot=t[136];let At;t[137]===F?At=t[138]:(At=e=>{F(e.target.checked)},t[137]=F,t[138]=At);let jt;t[139]!==P||t[140]!==At?(jt=(0,W.jsx)(`input`,{id:`adjustAudioSpeedInput`,type:`checkbox`,checked:P,onChange:At}),t[139]=P,t[140]=At,t[141]=jt):jt=t[141];let Mt;t[142]===Symbol.for(`react.memo_cache_sentinel`)?(Mt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`adjustAudioSpeedInput`,children:`Adjust audio speed to match demo playback`}),t[142]=Mt):Mt=t[142];let Nt;t[143]===jt?Nt=t[144]:(Nt=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[jt,Mt]}),t[143]=jt,t[144]=Nt);let Pt;t[145]!==St||t[146]!==Ot||t[147]!==Nt?(Pt=(0,W.jsxs)(Hi,{value:`audio`,label:`Audio`,children:[St,Ot,Nt]}),t[145]=St,t[146]=Ot,t[147]=Nt,t[148]=Pt):Pt=t[148];let Ft;t[149]===D?Ft=t[150]:(Ft=e=>{D(e.target.checked)},t[149]=D,t[150]=Ft);let It;t[151]!==E||t[152]!==Ft?(It=(0,W.jsx)(`input`,{id:`fogInput`,type:`checkbox`,checked:E,onChange:Ft}),t[151]=E,t[152]=Ft,t[153]=It):It=t[153];let Lt;t[154]===Symbol.for(`react.memo_cache_sentinel`)?(Lt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`fogInput`,children:`Enable fog`}),t[154]=Lt):Lt=t[154];let Rt;t[155]===It?Rt=t[156]:(Rt=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[It,Lt]}),t[155]=It,t[156]=Rt);let zt;t[157]===ee?zt=t[158]:(zt=e=>{ee(e.target.checked)},t[157]=ee,t[158]=zt);let Bt;t[159]!==I||t[160]!==zt?(Bt=(0,W.jsx)(`input`,{id:`animationInput`,type:`checkbox`,checked:I,onChange:zt}),t[159]=I,t[160]=zt,t[161]=Bt):Bt=t[161];let Vt;t[162]===Symbol.for(`react.memo_cache_sentinel`)?(Vt=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`animationInput`,children:`Enable animations`}),t[162]=Vt):Vt=t[162];let Ht;t[163]===Bt?Ht=t[164]:(Ht=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[Bt,Vt]}),t[163]=Bt,t[164]=Ht);let Wt;t[165]===Symbol.for(`react.memo_cache_sentinel`)?(Wt=(0,W.jsx)(`label`,{htmlFor:`fpsLimitInput`,children:`FPS limit`}),t[165]=Wt):Wt=t[165];let Gt=L??``,qt;t[166]===R?qt=t[167]:(qt=e=>{let t=e.target.value;R(t===``?null:parseInt(t))},t[166]=R,t[167]=qt);let Jt,Yt,Xt,Zt,Qt,$t;t[168]===Symbol.for(`react.memo_cache_sentinel`)?(Jt=null,Yt=(0,W.jsx)(`option`,{value:`30`,children:`30`}),Xt=(0,W.jsx)(`option`,{value:`60`,children:`60`}),Zt=(0,W.jsx)(`option`,{value:`120`,children:`120`}),Qt=(0,W.jsx)(`option`,{value:`144`,children:`144`}),$t=(0,W.jsx)(`option`,{value:``,children:`No limit`}),t[168]=Jt,t[169]=Yt,t[170]=Xt,t[171]=Zt,t[172]=Qt,t[173]=$t):(Jt=t[168],Yt=t[169],Xt=t[170],Zt=t[171],Qt=t[172],$t=t[173]);let en;t[174]!==Gt||t[175]!==qt?(en=(0,W.jsx)(`div`,{className:q.Control,children:(0,W.jsxs)(`select`,{id:`fpsLimitInput`,value:Gt,onChange:qt,children:[Jt,Yt,Xt,Zt,Qt,$t]})}),t[174]=Gt,t[175]=qt,t[176]=en):en=t[176];let tn;t[177]===Symbol.for(`react.memo_cache_sentinel`)?(tn=(0,W.jsx)(`p`,{className:q.Description,children:`Give your device a break by capping the framerate.`}),t[177]=tn):tn=t[177];let nn;t[178]===en?nn=t[179]:(nn=(0,W.jsxs)(`div`,{className:q.Field,children:[Wt,en,tn]}),t[178]=en,t[179]=nn);let rn;t[180]!==Rt||t[181]!==Ht||t[182]!==nn?(rn=(0,W.jsxs)(Hi,{value:`graphics`,label:`Graphics`,children:[Rt,Ht,nn]}),t[180]=Rt,t[181]=Ht,t[182]=nn,t[183]=rn):rn=t[183];let an;t[184]===ye?an=t[185]:(an=e=>{ye(e.target.checked)},t[184]=ye,t[185]=an);let on;t[186]!==ve||t[187]!==an?(on=(0,W.jsx)(`input`,{id:`debugInput`,type:`checkbox`,checked:ve,onChange:an}),t[186]=ve,t[187]=an,t[188]=on):on=t[188];let sn;t[189]===Symbol.for(`react.memo_cache_sentinel`)?(sn=(0,W.jsx)(`label`,{className:q.Label,htmlFor:`debugInput`,children:`Render debug visuals`}),t[189]=sn):sn=t[189];let cn;t[190]===on?cn=t[191]:(cn=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[on,sn]}),t[190]=on,t[191]=cn);let G;t[192]===xe?G=t[193]:(G=e=>{xe(e.target.checked)},t[192]=xe,t[193]=G);let ln;t[194]!==be||t[195]!==G?(ln=(0,W.jsx)(`input`,{id:`onDemandInput`,type:`checkbox`,checked:be,onChange:G}),t[194]=be,t[195]=G,t[196]=ln):ln=t[196];let K;t[197]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,W.jsx)(`label`,{htmlFor:`onDemandInput`,children:`Render on demand `}),t[197]=K):K=t[197];let un;t[198]===f?un=t[199]:(un=()=>f.current?.(),t[198]=f,t[199]=un);let dn;t[200]===Symbol.for(`react.memo_cache_sentinel`)?(dn=(0,W.jsx)(kt,{}),t[200]=dn):dn=t[200];let fn;t[201]===un?fn=t[202]:(fn=(0,W.jsxs)(`div`,{className:q.Label,children:[K,(0,W.jsx)(`button`,{type:`button`,className:q.ForceRenderButton,title:`Force render`,"aria-label":`Force render`,onClick:un,children:dn})]}),t[201]=un,t[202]=fn);let pn;t[203]===Symbol.for(`react.memo_cache_sentinel`)?(pn=(0,W.jsx)(`p`,{className:q.Description,children:`Significantly decreases CPU and GPU usage by only rendering frames when requested. Helpful when developing parts of the app unrelated to rendering.`}),t[203]=pn):pn=t[203];let mn;t[204]!==ln||t[205]!==fn?(mn=(0,W.jsxs)(`div`,{className:q.CheckboxField,children:[ln,fn,pn]}),t[204]=ln,t[205]=fn,t[206]=mn):mn=t[206];let hn;t[207]===Symbol.for(`react.memo_cache_sentinel`)?(hn=(0,W.jsx)(eo,{}),t[207]=hn):hn=t[207];let gn;t[208]!==cn||t[209]!==mn?(gn=(0,W.jsxs)(Hi,{value:`debug`,label:`Debug`,children:[cn,mn,hn]}),t[208]=cn,t[209]=mn,t[210]=gn):gn=t[210];let _n;t[211]!==Ue||t[212]!==We||t[213]!==st||t[214]!==vt||t[215]!==Pt||t[216]!==rn||t[217]!==gn?(_n=(0,W.jsx)(`div`,{className:q.Accordions,children:(0,W.jsxs)(Vi,{type:`multiple`,defaultValue:to,children:[Ue,We,st,vt,Pt,rn,gn]})}),t[211]=Ue,t[212]=We,t[213]=st,t[214]=vt,t[215]=Pt,t[216]=rn,t[217]=gn,t[218]=_n):_n=t[218];let vn;t[219]===Symbol.for(`react.memo_cache_sentinel`)?(vn=(0,W.jsx)(`span`,{className:Ut.ButtonLabel,children:`Close`}),t[219]=vn):vn=t[219];let yn;t[220]===p?yn=t[221]:(yn=(0,W.jsx)(`button`,{className:q.CloseSidebarButton,onClick:p,children:vn}),t[220]=p,t[221]=yn);let bn;return t[222]!==Se||t[223]!==He||t[224]!==_n||t[225]!==yn?(bn=(0,W.jsx)(`div`,{className:q.InspectorControls,children:(0,W.jsx)(`div`,{ref:Ee,children:(0,W.jsxs)(`div`,{className:q.Dropdown,ref:we,id:`settingsPanel`,tabIndex:-1,onKeyDown:je,onBlur:ke,"data-open":Se,children:[He,_n,yn]})})}),t[222]=Se,t[223]=He,t[224]=_n,t[225]=yn,t[226]=bn):bn=t[226],bn});function ro(e){return e.gameStatus===`connected`||e.gameStatus===`authenticating`}function io(...e){}function ao(e,t){return oo(e)?e(so(t)?t():t):e}function oo(e){return typeof e==`function`}function so(e){return typeof e==`function`}function co(e,t){return typeof Object.hasOwn==`function`?Object.hasOwn(e,t):Object.prototype.hasOwnProperty.call(e,t)}function lo(...e){return(...t)=>{for(let n of e)typeof n==`function`&&n(...t)}}function uo(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``)}function fo(e,t){let n={...e};for(let e of t)co(n,e)&&delete n[e];return n}function po(e,t){let n={};for(let r of t)co(e,r)&&(n[r]=e[r]);return n}function mo(e){return e}function ho(e,t){if(!e)throw Error(typeof t==`string`?t:`Invariant failed`)}function go(e){return Object.keys(e)}function _o(e,...t){let n=typeof e==`function`?e(...t):e;return n==null?!1:!n}function vo(e){return e.disabled||e[`aria-disabled`]===!0||e[`aria-disabled`]===`true`}function yo(e){let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function J(...e){for(let t of e)if(t!==void 0)return t}function bo(e,t){typeof e==`function`?e(t):e&&(e.current=t)}function xo(e){return!e||!(0,H.isValidElement)(e)?!1:`ref`in e.props||`ref`in e}function So(e){return xo(e)?{...e.props}.ref||e.ref:null}function Co(e,t){let n={...e};for(let r in t){if(!co(t,r))continue;if(r===`className`){let r=`className`;n[r]=e[r]?`${e[r]} ${t[r]}`:t[r];continue}if(r===`style`){let r=`style`;n[r]=e[r]?{...e[r],...t[r]}:t[r];continue}let i=t[r];if(typeof i==`function`&&r.startsWith(`on`)){let t=e[r];if(typeof t==`function`){n[r]=(...e)=>{i(...e),t(...e)};continue}}n[r]=i}return n}var wo=To();function To(){return typeof window<`u`&&!!window.document?.createElement}function Eo(e){return e?`self`in e?e.document:e.ownerDocument||document:document}function Do(e){return e?`self`in e?e.self:Eo(e).defaultView||window:self}function Oo(e,t=!1){let{activeElement:n}=Eo(e);if(!n?.nodeName)return null;if(Ao(n)&&n.contentDocument?.body)return Oo(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=Eo(n).getElementById(e);if(t)return t}}return n}function ko(e,t){return e===t||e.contains(t)}function Ao(e){return e.tagName===`IFRAME`}function jo(e){let t=e.tagName.toLowerCase();return t===`button`?!0:t===`input`&&e.type?Mo.indexOf(e.type)!==-1:!1}var Mo=[`button`,`color`,`file`,`image`,`reset`,`submit`];function No(e){if(typeof e.checkVisibility==`function`)return e.checkVisibility();let t=e;return t.offsetWidth>0||t.offsetHeight>0||e.getClientRects().length>0}function Po(e){try{let t=e instanceof HTMLInputElement&&e.selectionStart!==null,n=e.tagName===`TEXTAREA`;return t||n||!1}catch{return!1}}function Fo(e){return e.isContentEditable||Po(e)}function Io(e){if(Po(e))return e.value;if(e.isContentEditable){let t=Eo(e).createRange();return t.selectNodeContents(e),t.toString()}return``}function Lo(e){let t=0,n=0;if(Po(e))t=e.selectionStart||0,n=e.selectionEnd||0;else if(e.isContentEditable){let r=Eo(e).getSelection();if(r?.rangeCount&&r.anchorNode&&ko(e,r.anchorNode)&&r.focusNode&&ko(e,r.focusNode)){let i=r.getRangeAt(0),a=i.cloneRange();a.selectNodeContents(e),a.setEnd(i.startContainer,i.startOffset),t=a.toString().length,a.setEnd(i.endContainer,i.endOffset),n=a.toString().length}}return{start:t,end:n}}function Ro(e,t){let n=[`dialog`,`menu`,`listbox`,`tree`,`grid`],r=e?.getAttribute(`role`);return r&&n.indexOf(r)!==-1?r:t}function zo(e){if(!e)return null;let t=e=>e===`auto`||e===`scroll`;if(e.clientHeight&&e.scrollHeight>e.clientHeight){let{overflowY:n}=getComputedStyle(e);if(t(n))return e}else if(e.clientWidth&&e.scrollWidth>e.clientWidth){let{overflowX:n}=getComputedStyle(e);if(t(n))return e}return zo(e.parentElement)||document.scrollingElement||document.body}function Bo(e,...t){/text|search|password|tel|url/i.test(e.type)&&e.setSelectionRange(...t)}function Vo(e,t){let n=e.map((e,t)=>[t,e]),r=!1;return n.sort(([e,n],[i,a])=>{let o=t(n),s=t(a);return o===s||!o||!s?0:Ho(o,s)?(e>i&&(r=!0),-1):(et):e}function Ho(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}function Uo(){return wo&&!!navigator.maxTouchPoints}function Wo(){return wo?/mac|iphone|ipad|ipod/i.test(navigator.platform):!1}function Go(){return wo&&Wo()&&/apple/i.test(navigator.vendor)}function Ko(){return wo&&/firefox\//i.test(navigator.userAgent)}function qo(){return wo&&navigator.platform.startsWith(`Mac`)&&!Uo()}function Jo(e){return!!(e.currentTarget&&!ko(e.currentTarget,e.target))}function Yo(e){return e.target===e.currentTarget}function Xo(e){let t=e.currentTarget;if(!t)return!1;let n=Wo();if(n&&!e.metaKey||!n&&!e.ctrlKey)return!1;let r=t.tagName.toLowerCase();return r===`a`||r===`button`&&t.type===`submit`||r===`input`&&t.type===`submit`}function Zo(e){let t=e.currentTarget;if(!t)return!1;let n=t.tagName.toLowerCase();return e.altKey?n===`a`||n===`button`&&t.type===`submit`||n===`input`&&t.type===`submit`:!1}function Qo(e,t){let n=new FocusEvent(`blur`,t),r=e.dispatchEvent(n),i={...t,bubbles:!0};return e.dispatchEvent(new FocusEvent(`focusout`,i)),r}function $o(e,t,n){let r=new KeyboardEvent(t,n);return e.dispatchEvent(r)}function es(e,t){let n=new MouseEvent(`click`,t);return e.dispatchEvent(n)}function ts(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!ko(n,r)}function ns(e,t,n,r){let i=(e=>{if(r){let t=setTimeout(e,r);return()=>clearTimeout(t)}let t=requestAnimationFrame(e);return()=>cancelAnimationFrame(t)})(()=>{e.removeEventListener(t,a,!0),n()}),a=()=>{i(),n()};return e.addEventListener(t,a,{once:!0,capture:!0}),i}function rs(e,t,n,r=window){let i=[];try{r.document.addEventListener(e,t,n);for(let a of Array.from(r.frames))i.push(rs(e,t,n,a))}catch{}return()=>{try{r.document.removeEventListener(e,t,n)}catch{}for(let e of i)e()}}var is={...H},as=is.useId;is.useDeferredValue;var os=is.useInsertionEffect,Y=wo?H.useLayoutEffect:H.useEffect;function ss(e){let[t]=(0,H.useState)(e);return t}function cs(e){let t=(0,H.useRef)(e);return Y(()=>{t.current=e}),t}function X(e){let t=(0,H.useRef)(()=>{throw Error(`Cannot call an event handler while rendering.`)});return os?os(()=>{t.current=e}):t.current=e,(0,H.useCallback)((...e)=>t.current?.call(t,...e),[])}function ls(e){let[t,n]=(0,H.useState)(null);return Y(()=>{if(t==null||!e)return;let n=null;return e(e=>(n=e,t)),()=>{e(n)}},[t,e]),[t,n]}function us(...e){return(0,H.useMemo)(()=>{if(e.some(Boolean))return t=>{for(let n of e)bo(n,t)}},e)}function ds(e){if(as){let t=as();return e||t}let[t,n]=(0,H.useState)(e);return Y(()=>{e||t||n(`id-${Math.random().toString(36).slice(2,8)}`)},[e,t]),e||t}function fs(e,t){let n=e=>{if(typeof e==`string`)return e},[r,i]=(0,H.useState)(()=>n(t));return Y(()=>{i((e&&`current`in e?e.current:e)?.tagName.toLowerCase()||n(t))},[e,t]),r}function ps(e,t,n){let r=ss(n),[i,a]=(0,H.useState)(r);return(0,H.useEffect)(()=>{let n=e&&`current`in e?e.current:e;if(!n)return;let i=()=>{a(n.getAttribute(t)??r)},o=new MutationObserver(i);return o.observe(n,{attributeFilter:[t]}),i(),()=>o.disconnect()},[e,t,r]),i}function ms(e,t){let n=(0,H.useRef)(!1);(0,H.useEffect)(()=>{if(n.current)return e();n.current=!0},t),(0,H.useEffect)(()=>()=>{n.current=!1},[])}function hs(e,t){let n=(0,H.useRef)(!1);Y(()=>{if(n.current)return e();n.current=!0},t),Y(()=>()=>{n.current=!1},[])}function gs(){return(0,H.useReducer)(()=>[],[])}function _s(e){return X(typeof e==`function`?e:()=>e)}function vs(e,t,n=[]){let r=(0,H.useCallback)(n=>(e.wrapElement&&(n=e.wrapElement(n)),t(n)),[...n,e.wrapElement]);return{...e,wrapElement:r}}function ys(e=!1,t){let[n,r]=(0,H.useState)(null);return{portalRef:us(r,t),portalNode:n,domReady:!e||n}}function bs(e,t,n){let r=e.onLoadedMetadataCapture,i=(0,H.useMemo)(()=>Object.assign(()=>{},r,{[t]:n}),[r,t,n]);return[r?.[t],{onLoadedMetadataCapture:i}]}var xs=!1;function Ss(){return(0,H.useEffect)(()=>{xs||=(rs(`mousemove`,Ds,!0),rs(`mousedown`,Os,!0),rs(`mouseup`,Os,!0),rs(`keydown`,Os,!0),rs(`scroll`,Os,!0),!0)},[]),X(()=>Cs)}var Cs=!1,ws=0,Ts=0;function Es(e){let t=e.movementX||e.screenX-ws,n=e.movementY||e.screenY-Ts;return ws=e.screenX,Ts=e.screenY,t||n||!1}function Ds(e){Es(e)&&(Cs=!0)}function Os(){Cs=!1}function Z(e){let t=H.forwardRef((t,n)=>e({...t,ref:n}));return t.displayName=e.displayName||e.name,t}function ks(e,t){return H.memo(e,t)}function Q(e,t){let{wrapElement:n,render:r,...i}=t,a=us(t.ref,So(r)),o;if(H.isValidElement(r)){let e={...r.props,ref:a};o=H.cloneElement(r,Co(i,e))}else o=r?r(i):(0,W.jsx)(e,{...i});return n?n(o):o}function As(e){let t=(t={})=>e(t);return t.displayName=e.name,t}function js(e=[],t=[]){let n=H.createContext(void 0),r=H.createContext(void 0),i=()=>H.useContext(n),a=(e=!1)=>{let t=H.useContext(r),n=i();return e?t:t||n},o=()=>{let e=H.useContext(r),t=i();if(!(e&&e===t))return t},s=t=>e.reduceRight((e,n)=>(0,W.jsx)(n,{...t,children:e}),(0,W.jsx)(n.Provider,{...t}));return{context:n,scopedContext:r,useContext:i,useScopedContext:a,useProviderContext:o,ContextProvider:s,ScopedContextProvider:e=>(0,W.jsx)(s,{...e,children:t.reduceRight((t,n)=>(0,W.jsx)(n,{...e,children:t}),(0,W.jsx)(r.Provider,{...e}))})}}var Ms=js(),Ns=Ms.useContext;Ms.useScopedContext,Ms.useProviderContext;var Ps=Ms.ContextProvider,Fs=Ms.ScopedContextProvider,Is=js([Ps],[Fs]),Ls=Is.useContext;Is.useScopedContext;var Rs=Is.useProviderContext,zs=Is.ContextProvider,Bs=Is.ScopedContextProvider,Vs=(0,H.createContext)(void 0),Hs=(0,H.createContext)(void 0);function Us(e,t){return e.find(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Ws(e,t){return t&&e.item(t)||null}function Gs(e){let t=[];for(let n of e){let e=t.find(e=>e[0]?.rowId===n.rowId);e?e.push(n):t.push([n])}return t}function Ks(e,t=!1){if(Po(e))e.setSelectionRange(t?e.value.length:0,e.value.length);else if(e.isContentEditable){let n=Eo(e).getSelection();n?.selectAllChildren(e),t&&n?.collapseToEnd()}}var qs=Symbol(`FOCUS_SILENTLY`);function Js(e){e[qs]=!0,e.focus({preventScroll:!0})}function Ys(e){let t=e[qs];return delete e[qs],t}function Xs(e,t,n){if(!t||t===n)return!1;let r=e.item(t.id);return!(!r||n&&r.element===n)}var Zs=`div`,Qs=As(function({store:e,shouldRegisterItem:t=!0,getItem:n=mo,element:r,...i}){let a=Ns();e||=a;let o=ds(i.id),s=(0,H.useRef)(r);return(0,H.useEffect)(()=>{let r=s.current;if(!o||!r||!t)return;let i=n({id:o,element:r});return e?.renderItem(i)},[o,t,n,e]),i={...i,ref:us(s,i.ref)},yo(i)});Z(function(e){return Q(Zs,Qs(e))});var $s=(0,H.createContext)(!0),ec=`input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])`;function tc(e){return Number.parseInt(e.getAttribute(`tabindex`)||`0`,10)<0}function nc(e){return!(!e.matches(ec)||!No(e)||e.closest(`[inert]`))}function rc(e){if(!nc(e)||tc(e))return!1;if(!(`form`in e)||!e.form||e.checked||e.type!==`radio`)return!0;let t=e.form.elements.namedItem(e.name);if(!t||!(`length`in t))return!0;let n=Oo(e);return!n||n===e||!(`form`in n)||n.form!==e.form||n.name!==e.name}function ic(e,t){let n=Array.from(e.querySelectorAll(ec));t&&n.unshift(e);let r=n.filter(nc);return r.forEach((e,t)=>{if(!Ao(e))return;let n=e.contentDocument?.body;n&&r.splice(t,1,...ic(n))}),r}function ac(e,t,n){let r=Array.from(e.querySelectorAll(ec)),i=r.filter(rc);return t&&rc(e)&&i.unshift(e),i.forEach((e,t)=>{if(!Ao(e))return;let r=e.contentDocument?.body;if(!r)return;let a=ac(r,!1,n);i.splice(t,1,...a)}),!i.length&&n?r:i}function oc(e,t,n){let[r]=ac(e,t,n);return r||null}function sc(e,t,n,r){let i=Oo(e),a=ic(e,t),o=a.indexOf(i),s=a.slice(o+1);return s.find(rc)||(n?a.find(rc):null)||(r?s[0]:null)||null}function cc(e,t){return sc(document.body,!1,e,t)}function lc(e,t,n,r){let i=Oo(e),a=ic(e,t).reverse(),o=a.indexOf(i),s=a.slice(o+1);return s.find(rc)||(n?a.find(rc):null)||(r?s[0]:null)||null}function uc(e,t){return lc(document.body,!1,e,t)}function dc(e){for(;e&&!nc(e);)e=e.closest(ec);return e||null}function fc(e){let t=Oo(e);if(!t)return!1;if(t===e)return!0;let n=t.getAttribute(`aria-activedescendant`);return n?n===e.id:!1}function pc(e){let t=Oo(e);if(!t)return!1;if(ko(e,t))return!0;let n=t.getAttribute(`aria-activedescendant`);return!n||!(`id`in e)?!1:n===e.id?!0:!!e.querySelector(`#${CSS.escape(n)}`)}function mc(e){!pc(e)&&nc(e)&&e.focus()}function hc(e){let t=e.getAttribute(`tabindex`)??``;e.setAttribute(`data-tabindex`,t),e.setAttribute(`tabindex`,`-1`)}function gc(e,t){let n=ac(e,t);for(let e of n)hc(e)}function _c(e){let t=e.querySelectorAll(`[data-tabindex]`),n=e=>{let t=e.getAttribute(`data-tabindex`);e.removeAttribute(`data-tabindex`),t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)};e.hasAttribute(`data-tabindex`)&&n(e);for(let e of t)n(e)}function vc(e,t){`scrollIntoView`in e?(e.focus({preventScroll:!0}),e.scrollIntoView({block:`nearest`,inline:`nearest`,...t})):e.focus()}var yc=`div`,bc=Go(),xc=[`text`,`search`,`url`,`tel`,`email`,`password`,`number`,`date`,`month`,`week`,`time`,`datetime`,`datetime-local`],Sc=Symbol(`safariFocusAncestor`);function Cc(e){return e?!!e[Sc]:!1}function wc(e,t){e&&(e[Sc]=t)}function Tc(e){let{tagName:t,readOnly:n,type:r}=e;return t===`TEXTAREA`&&!n||t===`SELECT`&&!n?!0:t===`INPUT`&&!n?xc.includes(r):!!(e.isContentEditable||e.getAttribute(`role`)===`combobox`&&e.dataset.name)}function Ec(e){return`labels`in e?e.labels:null}function Dc(e){return e.tagName.toLowerCase()===`input`&&e.type?e.type===`radio`||e.type===`checkbox`:!1}function Oc(e){return e?e===`button`||e===`summary`||e===`input`||e===`select`||e===`textarea`||e===`a`:!0}function kc(e){return e?e===`button`||e===`input`||e===`select`||e===`textarea`:!0}function Ac(e,t,n,r,i){return e?t?n&&!r?-1:void 0:n?i:i||0:i}function jc(e,t){return X(n=>{e?.(n),!n.defaultPrevented&&t&&(n.stopPropagation(),n.preventDefault())})}var Mc=!1,Nc=!0;function Pc(e){let t=e.target;t&&`hasAttribute`in t&&(t.hasAttribute(`data-focus-visible`)||(Nc=!1))}function Fc(e){e.metaKey||e.ctrlKey||e.altKey||(Nc=!0)}var Ic=As(function({focusable:e=!0,accessibleWhenDisabled:t,autoFocus:n,onFocusVisible:r,...i}){let a=(0,H.useRef)(null);(0,H.useEffect)(()=>{e&&(Mc||=(rs(`mousedown`,Pc,!0),rs(`keydown`,Fc,!0),!0))},[e]),bc&&(0,H.useEffect)(()=>{if(!e)return;let t=a.current;if(!t||!Dc(t))return;let n=Ec(t);if(!n)return;let r=()=>queueMicrotask(()=>t.focus());for(let e of n)e.addEventListener(`mouseup`,r);return()=>{for(let e of n)e.removeEventListener(`mouseup`,r)}},[e]);let o=e&&vo(i),s=!!o&&!t,[c,l]=(0,H.useState)(!1);(0,H.useEffect)(()=>{e&&s&&c&&l(!1)},[e,s,c]),(0,H.useEffect)(()=>{if(!e||!c)return;let t=a.current;if(!t||typeof IntersectionObserver>`u`)return;let n=new IntersectionObserver(()=>{nc(t)||l(!1)});return n.observe(t),()=>n.disconnect()},[e,c]);let u=jc(i.onKeyPressCapture,o),d=jc(i.onMouseDownCapture,o),f=jc(i.onClickCapture,o),p=i.onMouseDown,m=X(t=>{if(p?.(t),t.defaultPrevented||!e)return;let n=t.currentTarget;if(!bc||Jo(t)||!jo(n)&&!Dc(n))return;let r=!1,i=()=>{r=!0};n.addEventListener(`focusin`,i,{capture:!0,once:!0});let a=dc(n.parentElement);wc(a,!0),ns(n,`mouseup`,()=>{n.removeEventListener(`focusin`,i,!0),wc(a,!1),!r&&mc(n)})}),h=(t,n)=>{if(n&&(t.currentTarget=n),!e)return;let i=t.currentTarget;i&&fc(i)&&(r?.(t),!t.defaultPrevented&&(i.dataset.focusVisible=`true`,l(!0)))},g=i.onKeyDownCapture,_=X(t=>{if(g?.(t),t.defaultPrevented||!e||c||t.metaKey||t.altKey||t.ctrlKey||!Yo(t))return;let n=t.currentTarget;ns(n,`focusout`,()=>h(t,n))}),v=i.onFocusCapture,y=X(t=>{if(v?.(t),t.defaultPrevented||!e)return;if(!Yo(t)){l(!1);return}let n=t.currentTarget;Nc||Tc(t.target)?ns(t.target,`focusout`,()=>h(t,n)):l(!1)}),b=i.onBlur,x=X(t=>{b?.(t),e&&ts(t)&&(t.currentTarget.removeAttribute(`data-focus-visible`),l(!1))}),S=(0,H.useContext)($s),C=X(t=>{e&&n&&t&&S&&queueMicrotask(()=>{fc(t)||nc(t)&&t.focus()})}),w=fs(a),T=e&&Oc(w),E=e&&kc(w),D=i.style,O=(0,H.useMemo)(()=>s?{pointerEvents:`none`,...D}:D,[s,D]);return i={"data-focus-visible":e&&c||void 0,"data-autofocus":n||void 0,"aria-disabled":o||void 0,...i,ref:us(a,C,i.ref),style:O,tabIndex:Ac(e,s,T,E,i.tabIndex),disabled:E&&s?!0:void 0,contentEditable:o?void 0:i.contentEditable,onKeyPressCapture:u,onClickCapture:f,onMouseDownCapture:d,onMouseDown:m,onKeyDownCapture:_,onFocusCapture:y,onBlur:x},yo(i)});Z(function(e){return Q(yc,Ic(e))});var Lc=`button`;function Rc(e){if(!e.isTrusted)return!1;let t=e.currentTarget;return e.key===`Enter`?jo(t)||t.tagName===`SUMMARY`||t.tagName===`A`:e.key===` `?jo(t)||t.tagName===`SUMMARY`||t.tagName===`INPUT`||t.tagName===`SELECT`:!1}var zc=Symbol(`command`),Bc=As(function({clickOnEnter:e=!0,clickOnSpace:t=!0,...n}){let r=(0,H.useRef)(null),[i,a]=(0,H.useState)(!1);(0,H.useEffect)(()=>{r.current&&a(jo(r.current))},[]);let[o,s]=(0,H.useState)(!1),c=(0,H.useRef)(!1),l=vo(n),[u,d]=bs(n,zc,!0),f=n.onKeyDown,p=X(n=>{f?.(n);let r=n.currentTarget;if(n.defaultPrevented||u||l||!Yo(n)||Po(r)||r.isContentEditable)return;let i=e&&n.key===`Enter`,a=t&&n.key===` `,o=n.key===`Enter`&&!e,d=n.key===` `&&!t;if(o||d){n.preventDefault();return}if(i||a){let e=Rc(n);if(i){if(!e){n.preventDefault();let{view:e,...t}=n,i=()=>es(r,t);Ko()?ns(r,`keyup`,i):queueMicrotask(i)}}else a&&(c.current=!0,e||(n.preventDefault(),s(!0)))}}),m=n.onKeyUp,h=X(e=>{if(m?.(e),e.defaultPrevented||u||l||e.metaKey)return;let n=t&&e.key===` `;if(c.current&&n&&(c.current=!1,!Rc(e))){e.preventDefault(),s(!1);let t=e.currentTarget,{view:n,...r}=e;queueMicrotask(()=>es(t,r))}});return n={"data-active":o||void 0,type:i?`button`:void 0,...d,...n,ref:us(r,n.ref),onKeyDown:p,onKeyUp:h},n=Ic(n),n});Z(function(e){return Q(Lc,Bc(e))});function Vc(e,t){let n=e.__unstableInternals;return ho(n,`Invalid store`),n[t]}function Hc(e,...t){let n=e,r=n,i=Symbol(),a=io,o=new Set,s=new Set,c=new Set,l=new Set,u=new Set,d=new WeakMap,f=new WeakMap,p=e=>(c.add(e),()=>c.delete(e)),m=()=>{let e=o.size,r=Symbol();o.add(r);let i=()=>{o.delete(r),!o.size&&a()};if(e)return i;let s=go(n).map(e=>lo(...t.map(t=>{let n=(t?.getState)?.call(t);if(n&&co(n,e))return Kc(t,[e],t=>{S(e,t[e],!0)})}))),l=[];for(let e of c)l.push(e());let u=t.map(Wc);return a=lo(...s,...l,...u),i},h=(e,t,n=l)=>(n.add(t),f.set(t,e),()=>{var e;(e=d.get(t))==null||e(),d.delete(t),f.delete(t),n.delete(t)}),g=(e,t)=>h(e,t),_=(e,t)=>(d.set(t,t(n,n)),h(e,t)),v=(e,t)=>(d.set(t,t(n,r)),h(e,t,u)),y=e=>Hc(po(n,e),C),b=e=>Hc(fo(n,e),C),x=()=>n,S=(e,a,o=!1)=>{var c;if(!co(n,e))return;let p=ao(a,n[e]);if(p===n[e])return;if(!o)for(let n of t)(c=n?.setState)==null||c.call(n,e,p);let m=n;n={...n,[e]:p};let h=Symbol();i=h,s.add(e);let g=(t,r,i)=>{var a;let o=f.get(t);(!o||o.some(t=>i?i.has(t):t===e))&&((a=d.get(t))==null||a(),d.set(t,t(n,r)))};for(let e of l)g(e,m);queueMicrotask(()=>{if(i!==h)return;let e=n;for(let e of u)g(e,r,s);r=e,s.clear()})},C={getState:x,setState:S,__unstableInternals:{setup:p,init:m,subscribe:g,sync:_,batch:v,pick:y,omit:b}};return C}function Uc(e,...t){if(e)return Vc(e,`setup`)(...t)}function Wc(e,...t){if(e)return Vc(e,`init`)(...t)}function Gc(e,...t){if(e)return Vc(e,`subscribe`)(...t)}function Kc(e,...t){if(e)return Vc(e,`sync`)(...t)}function qc(e,...t){if(e)return Vc(e,`batch`)(...t)}function Jc(e,...t){if(e)return Vc(e,`omit`)(...t)}function Yc(e,...t){if(e)return Vc(e,`pick`)(...t)}function Xc(...e){let t={};for(let n of e){let e=(n?.getState)?.call(n);e&&Object.assign(t,e)}let n=Hc(t,...e);return Object.assign({},...e,n)}var{useSyncExternalStore:Zc}=e(se(),1).default,Qc=()=>()=>{};function $(e,t=mo){let n=H.useCallback(t=>e?Gc(e,null,t):Qc(),[e]),r=()=>{let n=typeof t==`string`?t:null,r=typeof t==`function`?t:null,i=e?.getState();if(r)return r(i);if(i&&n&&co(i,n))return i[n]};return Zc(n,r,r)}function $c(e,t){let n=H.useRef({}),r=H.useCallback(t=>e?Gc(e,null,t):Qc(),[e]),i=()=>{let r=e?.getState(),i=!1,a=n.current;for(let e in t){let n=t[e];if(typeof n==`function`){let t=n(r);t!==a[e]&&(a[e]=t,i=!0)}if(typeof n==`string`){if(!r||!co(r,n))continue;let t=r[n];t!==a[e]&&(a[e]=t,i=!0)}}return i&&(n.current={...a}),n.current};return Zc(r,i,i)}function el(e,t,n,r){let i=co(t,n)?t[n]:void 0,a=cs({value:i,setValue:r?t[r]:void 0});Y(()=>Kc(e,[n],(e,t)=>{let{value:r,setValue:i}=a.current;i&&e[n]!==t[n]&&e[n]!==r&&i(e[n])}),[e,n]),Y(()=>{if(i!==void 0)return e.setState(n,i),qc(e,[n],()=>{i!==void 0&&e.setState(n,i)})})}function tl(e,t){let[n,r]=H.useState(()=>e(t));Y(()=>Wc(n),[n]);let i=H.useCallback(e=>$(n,e),[n]);return[H.useMemo(()=>({...n,useState:i}),[n,i]),X(()=>{r(n=>e({...t,...n.getState()}))})]}var nl=`button`;function rl(e){return Fo(e)?!0:e.tagName===`INPUT`&&!jo(e)}function il(e,t=!1){let n=e.clientHeight,{top:r}=e.getBoundingClientRect(),i=Math.max(n*.875,n-40)*1.5,a=t?n-i+r:i+r;return e.tagName===`HTML`?a+e.scrollTop:a}function al(e,t=!1){let{top:n}=e.getBoundingClientRect();return t?n+e.clientHeight:n}function ol(e,t,n,r=!1){if(!t||!n)return;let{renderedItems:i}=t.getState(),a=zo(e);if(!a)return;let o=il(a,r),s,c;for(let e=0;e=0){c!==void 0&&ce.rowId===m);return f.ariaPosInSet+t.findIndex(e=>e.id===u)},isTabbable(t){if(!t?.renderedItems.length)return!0;if(t.virtualFocus)return!1;if(i)return!0;if(t.activeId===null)return!1;let n=e?.item(t.activeId);return n?.disabled||!n?.element?!0:t.activeId===u}}),b=(0,H.useCallback)(e=>{let t={...e,id:u||e.id,rowId:m,disabled:!!p,children:e.element?.textContent};return a?a(t):t},[u,m,p,a]),x=c.onFocus,S=(0,H.useRef)(!1),C=X(t=>{if(x?.(t),t.defaultPrevented||Jo(t)||!u||!e||sl(t,e))return;let{virtualFocus:n,baseElement:r}=e.getState();e.setActiveId(u),Fo(t.currentTarget)&&Ks(t.currentTarget),n&&Yo(t)&&(rl(t.currentTarget)||r?.isConnected&&(Go()&&t.currentTarget.hasAttribute(`data-autofocus`)&&t.currentTarget.scrollIntoView({block:`nearest`,inline:`nearest`}),S.current=!0,t.relatedTarget===r||Xs(e,t.relatedTarget)?Js(r):r.focus()))}),w=c.onBlurCapture,T=X(t=>{w?.(t),!t.defaultPrevented&&e?.getState()?.virtualFocus&&S.current&&(S.current=!1,t.preventDefault(),t.stopPropagation())}),E=c.onKeyDown,D=_s(n),O=_s(r),k=X(t=>{if(E?.(t),t.defaultPrevented||!Yo(t)||!e)return;let{currentTarget:n}=t,r=e.getState(),i=!!e.item(u)?.rowId,a=r.orientation!==`horizontal`,o=r.orientation!==`vertical`,s=()=>!!(i||o||!r.baseElement||!Po(r.baseElement)),c={ArrowUp:(i||a)&&e.up,ArrowRight:(i||o)&&e.next,ArrowDown:(i||a)&&e.down,ArrowLeft:(i||o)&&e.previous,Home:()=>{if(s())return!i||t.ctrlKey?e?.first():e?.previous(-1)},End:()=>{if(s())return!i||t.ctrlKey?e?.last():e?.next(-1)},PageUp:()=>ol(n,e,e?.up,!0),PageDown:()=>ol(n,e,e?.down)}[t.key];if(c){if(Fo(n)){let e=Lo(n),r=o&&t.key===`ArrowLeft`,i=o&&t.key===`ArrowRight`,s=a&&t.key===`ArrowUp`,c=a&&t.key===`ArrowDown`;if(i||c){let{length:t}=Io(n);if(e.end!==t)return}else if((r||s)&&e.start!==0)return}let r=c();if(D(t)||r!==void 0){if(!O(t))return;t.preventDefault(),e.move(r)}}}),A=(0,H.useMemo)(()=>({id:u,baseElement:h}),[u,h]);return c=vs(c,e=>(0,W.jsx)(Vs.Provider,{value:A,children:e}),[A]),c={"data-active-item":g||void 0,...c,id:u,ref:us(d,c.ref),tabIndex:y?c.tabIndex:-1,onFocus:C,onBlurCapture:T,onKeyDown:k},c=Bc(c),c=Qs({store:e,...c,getItem:b,shouldRegisterItem:u?c.shouldRegisterItem:!1}),yo({...c,"aria-setsize":_,"aria-posinset":v})});ks(Z(function(e){return Q(nl,cl(e))}));function ll(e){let t=[];for(let n of e)t.push(...n);return t}function ul(e){return e.slice().reverse()}var dl=`div`;function fl(e){return e.some(e=>!!e.rowId)}function pl(e){let t=e.target;return t&&!Po(t)?!1:e.key.length===1&&!e.ctrlKey&&!e.metaKey}function ml(e){return e.key===`Shift`||e.key===`Control`||e.key===`Alt`||e.key===`Meta`}function hl(e,t,n){return X(r=>{if(t?.(r),r.defaultPrevented||r.isPropagationStopped()||!Yo(r)||ml(r)||pl(r))return;let i=Ws(e,e.getState().activeId)?.element;if(!i)return;let{view:a,...o}=r;i!==n?.current&&i.focus(),$o(i,r.type,o)||r.preventDefault(),r.currentTarget.contains(i)&&r.stopPropagation()})}function gl(e){return Us(ll(ul(Gs(e))))}function _l(e,t){let{virtualFocus:n,baseElement:r}=e.getState();if(!n||!r||!Po(r)){t();return}let i=r.scrollLeft,a=r.scrollTop;t(),r.scrollLeft=i,r.scrollTop=a}function vl(e){let[t,n]=(0,H.useState)(!1),r=(0,H.useCallback)(()=>n(!0),[]),i=$(e,t=>Ws(e,t.activeId));return(0,H.useEffect)(()=>{let r=i?.element;t&&r&&(n(!1),_l(e,()=>{r.focus({preventScroll:!0})}))},[e,i,t]),r}var yl=As(function({store:e,composite:t=!0,focusOnMove:n=t,moveOnKeyPress:r=!0,...i}){let a=Rs();e||=a,ho(e,!1);let o=(0,H.useRef)(null),s=(0,H.useRef)(null),c=vl(e),l=$(e,`moves`),[,u]=ls(t?e.setBaseElement:null);(0,H.useEffect)(()=>{if(!e||!l||!t||!n)return;let{activeId:r}=e.getState(),i=Ws(e,r)?.element;i&&_l(e,()=>vc(i))},[e,l,t,n]),Y(()=>{if(!e||!l||!t)return;let{baseElement:n,activeId:r}=e.getState();if(r!==null||!n)return;let i=s.current;s.current=null,i&&Qo(i,{relatedTarget:n}),fc(n)||n.focus()},[e,l,t]);let d=$(e,`activeId`),f=$(e,`virtualFocus`);Y(()=>{if(!e||!t||!f)return;let n=s.current;if(s.current=null,!n)return;let r=Ws(e,d)?.element||Oo(n);r!==n&&Qo(n,{relatedTarget:r})},[e,d,f,t]);let p=hl(e,i.onKeyDownCapture,s),m=hl(e,i.onKeyUpCapture,s),h=i.onFocusCapture,g=X(t=>{if(h?.(t),t.defaultPrevented||!e)return;let{virtualFocus:n}=e.getState();if(!n)return;let r=t.relatedTarget,i=Ys(t.currentTarget);Yo(t)&&i&&(t.stopPropagation(),s.current=r)}),_=i.onFocus,v=X(n=>{if(_?.(n),n.defaultPrevented||!t||!e)return;let{relatedTarget:r}=n,{virtualFocus:i}=e.getState();i?Yo(n)&&!Xs(e,r)&&queueMicrotask(c):Yo(n)&&e.setActiveId(null)}),y=i.onBlurCapture,b=X(t=>{if(y?.(t),t.defaultPrevented||!e)return;let{virtualFocus:n,activeId:r}=e.getState();if(!n)return;let i=Ws(e,r)?.element,a=t.relatedTarget,o=Xs(e,a),c=s.current;s.current=null,Yo(t)&&o?(a===i?c&&c!==a&&Qo(c,t):i?Qo(i,t):c&&Qo(c,t),t.stopPropagation()):!Xs(e,t.target)&&i&&Qo(i,t)}),x=i.onKeyDown,S=_s(r),C=X(t=>{if(x?.(t),t.nativeEvent.isComposing||t.defaultPrevented||!e||!Yo(t))return;let{orientation:n,renderedItems:r,activeId:i}=e.getState();if(Ws(e,i)?.element?.isConnected)return;let a=n!==`horizontal`,o=n!==`vertical`,s=fl(r);if((t.key===`ArrowLeft`||t.key===`ArrowRight`||t.key===`Home`||t.key===`End`)&&Po(t.currentTarget))return;let c={ArrowUp:(s||a)&&(()=>s?gl(r)?.id:e?.last()),ArrowRight:(s||o)&&e.first,ArrowDown:(s||a)&&e.first,ArrowLeft:(s||o)&&e.last,Home:e.first,End:e.last,PageUp:e.first,PageDown:e.last}[t.key];if(c){let n=c();if(n!==void 0){if(!S(t))return;t.preventDefault(),e.move(n)}}});i=vs(i,t=>(0,W.jsx)(zs,{value:e,children:t}),[e]);let w=$(e,n=>{if(e&&t&&n.virtualFocus)return Ws(e,n.activeId)?.id});return i={"aria-activedescendant":w,...i,ref:us(o,u,i.ref),onKeyDownCapture:p,onKeyUpCapture:m,onFocusCapture:g,onFocus:v,onBlurCapture:b,onKeyDown:C},i=Ic({focusable:$(e,e=>t&&(e.virtualFocus||e.activeId===null)),...i}),i});Z(function(e){return Q(dl,yl(e))});var bl=js();bl.useContext,bl.useScopedContext;var xl=bl.useProviderContext,Sl=bl.ContextProvider,Cl=bl.ScopedContextProvider,wl=js([Sl],[Cl]);wl.useContext,wl.useScopedContext;var Tl=wl.useProviderContext,El=wl.ContextProvider,Dl=wl.ScopedContextProvider,Ol=(0,H.createContext)(void 0),kl=(0,H.createContext)(void 0),Al=`div`;function jl(e,t){let n=setTimeout(t,e);return()=>clearTimeout(n)}function Ml(e){let t=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>cancelAnimationFrame(t)}function Nl(...e){return e.join(`, `).split(`, `).reduce((e,t)=>{let n=t.endsWith(`ms`)?1:1e3,r=Number.parseFloat(t||`0s`)*n;return r>e?r:e},0)}function Pl(e,t,n){return!n&&t!==!1&&(!e||!!t)}var Fl=As(function({store:e,alwaysVisible:t,...n}){let r=xl();e||=r,ho(e,!1);let i=(0,H.useRef)(null),a=ds(n.id),[o,s]=(0,H.useState)(null),c=$(e,`open`),l=$(e,`mounted`),u=$(e,`animated`),d=$(e,`contentElement`),f=$(e.disclosure,`contentElement`);Y(()=>{i.current&&e?.setContentElement(i.current)},[e]),Y(()=>{let t;return e?.setState(`animated`,e=>(t=e,!0)),()=>{t!==void 0&&e?.setState(`animated`,t)}},[e]),Y(()=>{if(u){if(!d?.isConnected){s(null);return}return Ml(()=>{s(c?`enter`:l?`leave`:null)})}},[u,d,c,l]),Y(()=>{if(!e||!u||!o||!d)return;let t=()=>e?.setState(`animating`,!1),n=()=>(0,Mr.flushSync)(t);if(o===`leave`&&c||o===`enter`&&!c)return;if(typeof u==`number`)return jl(u,n);let{transitionDuration:r,animationDuration:i,transitionDelay:a,animationDelay:s}=getComputedStyle(d),{transitionDuration:l=`0`,animationDuration:p=`0`,transitionDelay:m=`0`,animationDelay:h=`0`}=f?getComputedStyle(f):{},g=Nl(a,s,m,h)+Nl(r,i,l,p);if(!g){o===`enter`&&e.setState(`animated`,!1),t();return}return jl(Math.max(g-1e3/60,0),n)},[e,u,d,f,c,o]),n=vs(n,t=>(0,W.jsx)(Dl,{value:e,children:t}),[e]);let p=Pl(l,n.hidden,t),m=n.style,h=(0,H.useMemo)(()=>p?{...m,display:`none`}:m,[p,m]);return n={"data-open":c||void 0,"data-enter":o===`enter`||void 0,"data-leave":o===`leave`||void 0,hidden:p,...n,id:a,ref:us(a?e.setContentElement:null,i,n.ref),style:h},yo(n)}),Il=Z(function(e){return Q(Al,Fl(e))});Z(function({unmountOnHide:e,...t}){let n=xl();return $(t.store||n,t=>!e||t?.mounted)===!1?null:(0,W.jsx)(Il,{...t})});function Ll(e={}){let t=Xc(e.store,Jc(e.disclosure,[`contentElement`,`disclosureElement`])),n=t?.getState(),r=J(e.open,n?.open,e.defaultOpen,!1),i=J(e.animated,n?.animated,!1),a=Hc({open:r,animated:i,animating:!!i&&r,mounted:r,contentElement:J(n?.contentElement,null),disclosureElement:J(n?.disclosureElement,null)},t);return Uc(a,()=>Kc(a,[`animated`,`animating`],e=>{e.animated||a.setState(`animating`,!1)})),Uc(a,()=>Gc(a,[`open`],()=>{a.getState().animated&&a.setState(`animating`,!0)})),Uc(a,()=>Kc(a,[`open`,`animating`],e=>{a.setState(`mounted`,e.open||e.animating)})),{...a,disclosure:e.disclosure,setOpen:e=>a.setState(`open`,e),show:()=>a.setState(`open`,!0),hide:()=>a.setState(`open`,!1),toggle:()=>a.setState(`open`,e=>!e),stopAnimation:()=>a.setState(`animating`,!1),setContentElement:e=>a.setState(`contentElement`,e),setDisclosureElement:e=>a.setState(`disclosureElement`,e)}}function Rl(e,t,n){return ms(t,[n.store,n.disclosure]),el(e,n,`open`,`setOpen`),el(e,n,`mounted`,`setMounted`),el(e,n,`animated`),Object.assign(e,{disclosure:n.disclosure})}function zl(e={}){let[t,n]=tl(Ll,e);return Rl(t,n,e)}var Bl=js([El],[Dl]);Bl.useContext,Bl.useScopedContext;var Vl=Bl.useProviderContext,Hl=Bl.ContextProvider,Ul=Bl.ScopedContextProvider;function Wl(e){let t=e.find(e=>!!e.element),n=[...e].reverse().find(e=>!!e.element),r=t?.element?.parentElement;for(;r&&n?.element;){if(n&&r.contains(n.element))return r;r=r.parentElement}return Eo(r).body}function Gl(e){return e?.__unstablePrivateStore}function Kl(e={}){e.store;let t=e.store?.getState(),n=J(e.items,t?.items,e.defaultItems,[]),r=new Map(n.map(e=>[e.id,e])),i={items:n,renderedItems:J(t?.renderedItems,[])},a=Gl(e.store),o=Hc({items:n,renderedItems:i.renderedItems},a),s=Hc(i,e.store),c=e=>{let t=Vo(e,e=>e.element);o.setState(`renderedItems`,t),s.setState(`renderedItems`,t)};Uc(s,()=>Wc(o)),Uc(o,()=>qc(o,[`items`],e=>{s.setState(`items`,e.items)})),Uc(o,()=>qc(o,[`renderedItems`],e=>{let t=!0,n=requestAnimationFrame(()=>{let{renderedItems:t}=s.getState();e.renderedItems!==t&&c(e.renderedItems)});if(typeof IntersectionObserver!=`function`)return()=>cancelAnimationFrame(n);let r=()=>{if(t){t=!1;return}cancelAnimationFrame(n),n=requestAnimationFrame(()=>c(e.renderedItems))},i=Wl(e.renderedItems),a=new IntersectionObserver(r,{root:i});for(let t of e.renderedItems)t.element&&a.observe(t.element);return()=>{cancelAnimationFrame(n),a.disconnect()}}));let l=(e,t,n=!1)=>{let i;return t(t=>{let n=t.findIndex(({id:t})=>t===e.id),a=t.slice();if(n!==-1){i=t[n];let o={...i,...e};a[n]=o,r.set(e.id,o)}else a.push(e),r.set(e.id,e);return a}),()=>{t(t=>{if(!i)return n&&r.delete(e.id),t.filter(({id:t})=>t!==e.id);let a=t.findIndex(({id:t})=>t===e.id);if(a===-1)return t;let o=t.slice();return o[a]=i,r.set(e.id,i),o})}},u=e=>l(e,e=>o.setState(`items`,e),!0);return{...s,registerItem:u,renderItem:e=>lo(u(e),l(e,e=>o.setState(`renderedItems`,e))),item:e=>{if(!e)return null;let t=r.get(e);if(!t){let{items:n}=o.getState();t=n.find(t=>t.id===e),t&&r.set(e,t)}return t||null},__unstablePrivateStore:o}}function ql(e,t,n){return ms(t,[n.store]),el(e,n,`items`,`setItems`),e}var Jl={id:null};function Yl(e,t){return e.find(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Xl(e,t){return e.filter(e=>t?!e.disabled&&e.id!==t:!e.disabled)}function Zl(e,t){return e.filter(e=>e.rowId===t)}function Ql(e,t,n=!1){let r=e.findIndex(e=>e.id===t);return[...e.slice(r+1),...n?[Jl]:[],...e.slice(0,r)]}function $l(e){let t=[];for(let n of e){let e=t.find(e=>e[0]?.rowId===n.rowId);e?e.push(n):t.push([n])}return t}function eu(e){let t=0;for(let{length:n}of e)n>t&&(t=n);return t}function tu(e){return{id:`__EMPTY_ITEM__`,disabled:!0,rowId:e}}function nu(e,t,n){let r=eu(e);for(let i of e)for(let e=0;eKc(i,[`renderedItems`,`activeId`],e=>{i.setState(`activeId`,t=>t===void 0?Yl(e.renderedItems)?.id:t)}));let a=(e=`next`,t={})=>{let n=i.getState(),{skip:r=0,activeId:a=n.activeId,focusShift:o=n.focusShift,focusLoop:s=n.focusLoop,focusWrap:c=n.focusWrap,includesBaseElement:l=n.includesBaseElement,renderedItems:u=n.renderedItems,rtl:d=n.rtl}=t,f=e===`up`||e===`down`,p=e===`next`||e===`down`,m=p?d&&!f:!d||f,h=o&&!r,g=f?ll(nu($l(u),a,h)):u;if(g=m?ul(g):g,g=f?ru(g):g,a==null)return Yl(g)?.id;let _=g.find(e=>e.id===a);if(!_)return Yl(g)?.id;let v=g.some(e=>e.rowId),y=g.indexOf(_),b=g.slice(y+1),x=Zl(b,_.rowId);if(r){let e=Xl(x,a);return(e.slice(r)[0]||e[e.length-1])?.id}let S=s&&(f?s!==`horizontal`:s!==`vertical`),C=v&&c&&(f?c!==`horizontal`:c!==`vertical`),w=p?(!v||f)&&S&&l:f?l:!1;if(S)return Yl(Ql(C&&!w?g:Zl(g,_.rowId),a,w),a)?.id;if(C){let e=Yl(w?x:b,a);return w?e?.id||null:e?.id}let T=Yl(x,a);return!T&&w?null:T?.id};return{...n,...i,setBaseElement:e=>i.setState(`baseElement`,e),setActiveId:e=>i.setState(`activeId`,e),move:e=>{e!==void 0&&(i.setState(`activeId`,e),i.setState(`moves`,e=>e+1))},first:()=>Yl(i.getState().renderedItems)?.id,last:()=>Yl(ul(i.getState().renderedItems))?.id,next:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`next`,e)),previous:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`previous`,e)),down:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`down`,e)),up:e=>(e!==void 0&&typeof e==`number`&&(e={skip:e}),a(`up`,e))}}function au(e){return{id:ds(e.id),...e}}function ou(e,t,n){return e=ql(e,t,n),el(e,n,`activeId`,`setActiveId`),el(e,n,`includesBaseElement`),el(e,n,`virtualFocus`),el(e,n,`orientation`),el(e,n,`rtl`),el(e,n,`focusLoop`),el(e,n,`focusWrap`),el(e,n,`focusShift`),e}var su=(0,H.createContext)(void 0),cu=js([Hl,zs],[Ul,Bs]),lu=cu.useContext,uu=cu.useScopedContext,du=cu.useProviderContext,fu=cu.ContextProvider,pu=cu.ScopedContextProvider,mu=(0,H.createContext)(void 0),hu=(0,H.createContext)(!1),gu=(0,H.createContext)(null),_u=`span`,vu=As(function(e){return e={...e,style:{border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,whiteSpace:`nowrap`,width:`1px`,...e.style}},e});Z(function(e){return Q(_u,vu(e))});var yu=`span`,bu=As(function(e){return e={"data-focus-trap":``,tabIndex:0,"aria-hidden":!0,...e,style:{position:`fixed`,top:0,left:0,...e.style}},e=vu(e),e}),xu=Z(function(e){return Q(yu,bu(e))}),Su=`div`;function Cu(e){return Eo(e).body}function wu(e,t){return t?typeof t==`function`?t(e):t:Eo(e).createElement(`div`)}function Tu(e=`id`){return`${e?`${e}-`:``}${Math.random().toString(36).slice(2,8)}`}function Eu(e){queueMicrotask(()=>{e?.focus()})}var Du=As(function({preserveTabOrder:e,preserveTabOrderAnchor:t,portalElement:n,portalRef:r,portal:i=!0,...a}){let o=(0,H.useRef)(null),s=us(o,a.ref),c=(0,H.useContext)(gu),[l,u]=(0,H.useState)(null),[d,f]=(0,H.useState)(null),p=(0,H.useRef)(null),m=(0,H.useRef)(null),h=(0,H.useRef)(null),g=(0,H.useRef)(null);return Y(()=>{let e=o.current;if(!e||!i){u(null);return}let t=wu(e,n);if(!t){u(null);return}let a=t.isConnected;if(a||(c||Cu(e)).appendChild(t),t.id||=e.id?`portal/${e.id}`:Tu(),u(t),bo(r,t),!a)return()=>{t.remove(),bo(r,null)}},[i,n,c,r]),Y(()=>{if(!i||!e||!t)return;let n=Eo(t).createElement(`span`);return n.style.position=`fixed`,t.insertAdjacentElement(`afterend`,n),f(n),()=>{n.remove(),f(null)}},[i,e,t]),(0,H.useEffect)(()=>{if(!l||!e)return;let t=0,n=e=>{if(!ts(e))return;let n=e.type===`focusin`;if(cancelAnimationFrame(t),n)return _c(l);t=requestAnimationFrame(()=>{gc(l,!0)})};return l.addEventListener(`focusin`,n,!0),l.addEventListener(`focusout`,n,!0),()=>{cancelAnimationFrame(t),l.removeEventListener(`focusin`,n,!0),l.removeEventListener(`focusout`,n,!0)}},[l,e]),a=vs(a,t=>{if(t=(0,W.jsx)(gu.Provider,{value:l||c,children:t}),!i)return t;if(!l)return(0,W.jsx)(`span`,{ref:s,id:a.id,style:{position:`fixed`},hidden:!0});t=(0,W.jsxs)(W.Fragment,{children:[e&&l&&(0,W.jsx)(xu,{ref:m,"data-focus-trap":a.id,className:`__focus-trap-inner-before`,onFocus:e=>{ts(e,l)?Eu(cc()):Eu(p.current)}}),t,e&&l&&(0,W.jsx)(xu,{ref:h,"data-focus-trap":a.id,className:`__focus-trap-inner-after`,onFocus:e=>{ts(e,l)?Eu(uc()):Eu(g.current)}})]}),l&&(t=(0,Mr.createPortal)(t,l));let n=(0,W.jsxs)(W.Fragment,{children:[e&&l&&(0,W.jsx)(xu,{ref:p,"data-focus-trap":a.id,className:`__focus-trap-outer-before`,onFocus:e=>{e.relatedTarget!==g.current&&ts(e,l)?Eu(m.current):Eu(uc())}}),e&&(0,W.jsx)(`span`,{"aria-owns":l?.id,style:{position:`fixed`}}),e&&l&&(0,W.jsx)(xu,{ref:g,"data-focus-trap":a.id,className:`__focus-trap-outer-after`,onFocus:e=>{if(ts(e,l))Eu(h.current);else{let e=cc();if(e===m.current){requestAnimationFrame(()=>cc()?.focus());return}Eu(e)}}})]});return d&&e&&(n=(0,Mr.createPortal)(n,d)),(0,W.jsxs)(W.Fragment,{children:[n,t]})},[l,c,i,a.id,e,d]),a={...a,ref:s},a});Z(function(e){return Q(Su,Du(e))});var Ou=(0,H.createContext)(0);function ku({level:e,children:t}){let n=(0,H.useContext)(Ou),r=Math.max(Math.min(e||n+1,6),1);return(0,W.jsx)(Ou.Provider,{value:r,children:t})}var Au=`div`,ju=As(function({autoFocusOnShow:e=!0,...t}){return t=vs(t,t=>(0,W.jsx)($s.Provider,{value:e,children:t}),[e]),t});Z(function(e){return Q(Au,ju(e))});function Mu(e,t){let n=Eo(e).createElement(`button`);return n.type=`button`,n.tabIndex=-1,n.textContent=`Dismiss popup`,Object.assign(n.style,{border:`0px`,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:`0px`,position:`absolute`,whiteSpace:`nowrap`,width:`1px`}),n.addEventListener(`click`,t),e.prepend(n),()=>{n.removeEventListener(`click`,t),n.remove()}}function Nu(e){let t=(0,H.useRef)(null);return(0,H.useEffect)(()=>{if(!e){t.current=null;return}return rs(`mousedown`,e=>{t.current=e.target},!0)},[e]),t}var Pu=new WeakMap;function Fu(e,t,n){Pu.has(e)||Pu.set(e,new Map);let r=Pu.get(e),i=r.get(t);if(!i)return r.set(t,n()),()=>{var e;(e=r.get(t))==null||e(),r.delete(t)};let a=n(),o=()=>{a(),i(),r.delete(t)};return r.set(t,o),()=>{r.get(t)===o&&(a(),r.set(t,i))}}function Iu(e,t,n){return Fu(e,t,()=>{let r=e.getAttribute(t);return e.setAttribute(t,n),()=>{r==null?e.removeAttribute(t):e.setAttribute(t,r)}})}function Lu(e,t,n){return Fu(e,t,()=>{let r=t in e,i=e[t];return e[t]=n,()=>{r?e[t]=i:delete e[t]}})}function Ru(e,t){return e?Fu(e,`style`,()=>{let n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}):()=>{}}function zu(e,t,n){return e?Fu(e,t,()=>{let r=e.style.getPropertyValue(t);return e.style.setProperty(t,n),()=>{r?e.style.setProperty(t,r):e.style.removeProperty(t)}}):()=>{}}var Bu=[`SCRIPT`,`STYLE`];function Vu(e){return`__ariakit-dialog-snapshot-${e}`}function Hu(e,t){let n=Eo(t),r=Vu(e);if(!n.body[r])return!0;do{if(t===n.body)return!1;if(t[r])return!0;if(!t.parentElement)return!1;t=t.parentElement}while(!0)}function Uu(e,t,n){return Bu.includes(t.tagName)||!Hu(e,t)?!1:!n.some(e=>e&&ko(t,e))}function Wu(e,t,n,r){for(let i of t){if(!i?.isConnected)continue;let a=t.some(e=>!e||e===i?!1:e.contains(i)),o=Eo(i),s=i;for(;i.parentElement&&i!==o.body;){if(r?.(i.parentElement,s),!a)for(let r of i.parentElement.children)Uu(e,r,t)&&n(r,s);i=i.parentElement}}}function Gu(e,t){let{body:n}=Eo(t[0]),r=[];return Wu(e,t,t=>{r.push(Lu(t,Vu(e),!0))}),lo(Lu(n,Vu(e),!0),()=>{for(let e of r)e()})}function Ku(e,...t){if(!e)return!1;let n=e.getAttribute(`data-backdrop`);return n==null?!1:n===``||n===`true`||!t.length?!0:t.some(e=>n===e)}function qu(e=``,t=!1){return`__ariakit-dialog-${t?`ancestor`:`outside`}${e?`-${e}`:``}`}function Ju(e,t=``){return lo(Lu(e,qu(),!0),Lu(e,qu(t),!0))}function Yu(e,t=``){return lo(Lu(e,qu(``,!0),!0),Lu(e,qu(t,!0),!0))}function Xu(e,t){let n=qu(t,!0);if(e[n])return!0;let r=qu(t);do{if(e[r])return!0;if(!e.parentElement)return!1;e=e.parentElement}while(!0)}function Zu(e,t){let n=[],r=t.map(e=>e?.id);return Wu(e,t,t=>{Ku(t,...r)||n.unshift(Ju(t,e))},(t,r)=>{r.hasAttribute(`data-dialog`)&&r.id!==e||n.unshift(Yu(t,e))}),()=>{for(let e of n)e()}}function Qu(e){return e.tagName===`HTML`?!0:ko(Eo(e).body,e)}function $u(e,t){if(!e)return!1;if(ko(e,t))return!0;let n=t.getAttribute(`aria-activedescendant`);if(n){let t=Eo(e).getElementById(n);if(t)return ko(e,t)}return!1}function ed(e,t){if(!(`clientY`in e))return!1;let n=t.getBoundingClientRect();return n.width===0||n.height===0?!1:n.top<=e.clientY&&e.clientY<=n.top+n.height&&n.left<=e.clientX&&e.clientX<=n.left+n.width}function td({store:e,type:t,listener:n,capture:r,domReady:i}){let a=X(n),o=$(e,`open`),s=(0,H.useRef)(!1);Y(()=>{if(!o||!i)return;let{contentElement:t}=e.getState();if(!t)return;let n=()=>{s.current=!0};return t.addEventListener(`focusin`,n,!0),()=>t.removeEventListener(`focusin`,n,!0)},[e,o,i]),(0,H.useEffect)(()=>o?rs(t,t=>{let{contentElement:n,disclosureElement:r}=e.getState(),i=t.target;n&&i&&Qu(i)&&(ko(n,i)||$u(r,i)||i.hasAttribute(`data-focus-trap`)||ed(t,n)||s.current&&!Xu(i,n.id)||Cc(i)||a(t))},r):void 0,[o,r,e,t,a])}function nd(e,t){return typeof e==`function`?e(t):!!e}function rd(e,t,n){let r=Nu($(e,`open`)),i={store:e,domReady:n,capture:!0};td({...i,type:`click`,listener:n=>{let{contentElement:i}=e.getState(),a=r.current;a&&No(a)&&Xu(a,i?.id)&&nd(t,n)&&e.hide()}}),td({...i,type:`focusin`,listener:n=>{let{contentElement:r}=e.getState();r&&n.target!==Eo(r)&&nd(t,n)&&e.hide()}}),td({...i,type:`contextmenu`,listener:n=>{nd(t,n)&&e.hide()}})}var id=(0,H.createContext)({});function ad(e){let t=(0,H.useContext)(id),[n,r]=(0,H.useState)([]),i=(0,H.useCallback)(e=>(r(t=>[...t,e]),lo(t.add?.call(t,e),()=>{r(t=>t.filter(t=>t!==e))})),[t]);Y(()=>Kc(e,[`open`,`contentElement`],n=>{if(n.open&&n.contentElement)return t.add?.call(t,e)}),[e,t]);let a=(0,H.useMemo)(()=>({store:e,add:i}),[e,i]);return{wrapElement:(0,H.useCallback)(e=>(0,W.jsx)(id.Provider,{value:a,children:e}),[a]),nestedDialogs:n}}function od({attribute:e,contentId:t,contentElement:n,enabled:r}){let[i,a]=gs(),o=(0,H.useCallback)(()=>{if(!r||!n)return!1;let{body:i}=Eo(n),a=i.getAttribute(e);return!a||a===t},[i,r,n,e,t]);return(0,H.useEffect)(()=>{if(!r||!t||!n)return;let{body:i}=Eo(n);if(o())return i.setAttribute(e,t),()=>i.removeAttribute(e);let s=new MutationObserver(()=>(0,Mr.flushSync)(a));return s.observe(i,{attributeFilter:[e]}),()=>s.disconnect()},[i,r,t,n,o,e]),o}function sd(e){let t=e.getBoundingClientRect().left;return Math.round(t)+e.scrollLeft?`paddingLeft`:`paddingRight`}function cd(e,t,n){let r=od({attribute:`data-dialog-prevent-body-scroll`,contentElement:e,contentId:t,enabled:n});(0,H.useEffect)(()=>{if(!r()||!e)return;let t=Eo(e),n=Do(e),{documentElement:i,body:a}=t,o=i.style.getPropertyValue(`--scrollbar-width`),s=o?Number.parseInt(o,10):n.innerWidth-i.clientWidth,c=()=>zu(i,`--scrollbar-width`,`${s}px`),l=sd(i),u=()=>Ru(a,{overflow:`hidden`,[l]:`${s}px`}),d=()=>{let{scrollX:e,scrollY:t,visualViewport:r}=n,i=r?.offsetLeft??0,o=r?.offsetTop??0,c=Ru(a,{position:`fixed`,overflow:`hidden`,top:`${-(t-Math.floor(o))}px`,left:`${-(e-Math.floor(i))}px`,right:`0`,[l]:`${s}px`});return()=>{c(),n.scrollTo({left:e,top:t,behavior:`instant`})}},f=Wo()&&!qo();return lo(c(),f?d():u())},[r,e])}function ld(e,...t){if(!e)return!1;let n=e.getAttribute(`data-focus-trap`);return n==null?!1:t.length?n===``?!1:t.some(e=>n===e):!0}function ud(){return`inert`in HTMLElement.prototype}function dd(e){return Iu(e,`aria-hidden`,`true`)}function fd(e,t){return`style`in e?ud()?Lu(e,`inert`,!0):lo(...ac(e,!0).map(e=>{if(t?.some(t=>t&&ko(t,e)))return io;let n=Fu(e,`focus`,()=>(e.focus=io,()=>{delete e.focus}));return lo(Iu(e,`tabindex`,`-1`),n)}),dd(e),Ru(e,{pointerEvents:`none`,userSelect:`none`,cursor:`default`})):io}function pd(e,t){let n=[],r=t.map(e=>e?.id);return Wu(e,t,e=>{Ku(e,...r)||ld(e,...r)||n.unshift(fd(e,t))},e=>{e.hasAttribute(`role`)&&(t.some(t=>t&&ko(t,e))||n.unshift(Iu(e,`role`,`none`)))}),()=>{for(let e of n)e()}}var md=`div`,hd=`a.button.details.dialog.div.form.h1.h2.h3.h4.h5.h6.header.img.input.label.li.nav.ol.p.section.select.span.summary.textarea.ul.svg`.split(`.`);As(function(e){return e});var gd=Z(function(e){return Q(md,e)});Object.assign(gd,hd.reduce((e,t)=>(e[t]=Z(function(e){return Q(t,e)}),e),{}));function _d({store:e,backdrop:t,alwaysVisible:n,hidden:r}){let i=(0,H.useRef)(null),a=zl({disclosure:e}),o=$(e,`contentElement`);(0,H.useEffect)(()=>{let e=i.current,t=o;e&&t&&(e.style.zIndex=getComputedStyle(t).zIndex)},[o]),Y(()=>{let e=o?.id;if(!e)return;let t=i.current;if(t)return Yu(t,e)},[o]);let s=Fl({ref:i,store:a,role:`presentation`,"data-backdrop":o?.id||``,alwaysVisible:n,hidden:r??void 0,style:{position:`fixed`,top:0,right:0,bottom:0,left:0}});if(!t)return null;if((0,H.isValidElement)(t))return(0,W.jsx)(gd,{...s,render:t});let c=typeof t==`boolean`?`div`:t;return(0,W.jsx)(gd,{...s,render:(0,W.jsx)(c,{})})}function vd(e={}){return Ll(e)}function yd(e,t,n){return Rl(e,t,n)}function bd(e={}){let[t,n]=tl(vd,e);return yd(t,n,e)}var xd=`div`,Sd=Go();function Cd(e){let t=Oo();return!t||e&&ko(e,t)?!1:!!nc(t)}function wd(e,t=!1){if(!e)return null;let n=`current`in e?e.current:e;return n?t?nc(n)?n:null:n:null}var Td=As(function({store:e,open:t,onClose:n,focusable:r=!0,modal:i=!0,portal:a=!!i,backdrop:o=!!i,hideOnEscape:s=!0,hideOnInteractOutside:c=!0,getPersistentElements:l,preventBodyScroll:u=!!i,autoFocusOnShow:d=!0,autoFocusOnHide:f=!0,initialFocus:p,finalFocus:m,unmountOnHide:h,unstable_treeSnapshotKey:g,..._}){let v=Tl(),y=(0,H.useRef)(null),b=bd({store:e||v,open:t,setOpen(e){if(e)return;let t=y.current;if(!t)return;let r=new Event(`close`,{bubbles:!1,cancelable:!0});n&&t.addEventListener(`close`,n,{once:!0}),t.dispatchEvent(r),r.defaultPrevented&&b.setOpen(!0)}}),{portalRef:x,domReady:S}=ys(a,_.portalRef),C=_.preserveTabOrder,w=$(b,e=>C&&!i&&e.mounted),T=ds(_.id),E=$(b,`open`),D=$(b,`mounted`),O=$(b,`contentElement`),k=Pl(D,_.hidden,_.alwaysVisible);cd(O,T,u&&!k),rd(b,c,S);let{wrapElement:A,nestedDialogs:j}=ad(b);_=vs(_,A,[A]),Y(()=>{if(!E)return;let e=y.current,t=Oo(e,!0);t&&t.tagName!==`BODY`&&(e&&ko(e,t)||b.setDisclosureElement(t))},[b,E]),Sd&&(0,H.useEffect)(()=>{if(!D)return;let{disclosureElement:e}=b.getState();if(!e||!jo(e))return;let t=()=>{let t=!1,n=()=>{t=!0};e.addEventListener(`focusin`,n,{capture:!0,once:!0}),ns(e,`mouseup`,()=>{e.removeEventListener(`focusin`,n,!0),!t&&mc(e)})};return e.addEventListener(`mousedown`,t),()=>{e.removeEventListener(`mousedown`,t)}},[b,D]),(0,H.useEffect)(()=>{if(!D||!S)return;let e=y.current;if(!e)return;let t=Do(e),n=t.visualViewport||t,r=()=>{let n=t.visualViewport?.height??t.innerHeight;e.style.setProperty(`--dialog-viewport-height`,`${n}px`)};return r(),n.addEventListener(`resize`,r),()=>{n.removeEventListener(`resize`,r)}},[D,S]),(0,H.useEffect)(()=>{if(!i||!D||!S)return;let e=y.current;if(e&&!e.querySelector(`[data-dialog-dismiss]`))return Mu(e,b.hide)},[b,i,D,S]),Y(()=>{if(!ud()||E||!D||!S)return;let e=y.current;if(e)return fd(e)},[E,D,S]);let M=E&&S;Y(()=>{if(!T||!M)return;let e=y.current;return Gu(T,[e])},[T,M,g]);let N=X(l);Y(()=>{if(!T||!M)return;let{disclosureElement:e}=b.getState(),t=[y.current,...N()||[],...j.map(e=>e.getState().contentElement)];return i?lo(Zu(T,t),pd(T,t)):Zu(T,[e,...t])},[T,b,M,N,j,i,g]);let P=!!d,F=_s(d),[I,ee]=(0,H.useState)(!1);(0,H.useEffect)(()=>{if(!E||!P||!S||!O?.isConnected)return;let e=wd(p,!0)||O.querySelector(`[data-autofocus=true],[autofocus]`)||oc(O,!0,a&&w)||O,t=nc(e);F(t?e:null)&&(ee(!0),queueMicrotask(()=>{e.focus(),Sd&&t&&e.scrollIntoView({block:`nearest`,inline:`nearest`})}))},[E,P,S,O,p,a,w,F]);let L=!!f,R=_s(f),[te,ne]=(0,H.useState)(!1);(0,H.useEffect)(()=>{if(E)return ne(!0),()=>ne(!1)},[E]);let re=(0,H.useCallback)((e,t=!0)=>{let{disclosureElement:n}=b.getState();if(Cd(e))return;let r=wd(m)||n;if(r?.id){let e=Eo(r),t=`[aria-activedescendant="${r.id}"]`,n=e.querySelector(t);n&&(r=n)}if(r&&!nc(r)){let e=r.closest(`[data-dialog]`);if(e?.id){let t=Eo(e),n=`[aria-controls~="${e.id}"]`,i=t.querySelector(n);i&&(r=i)}}let i=r&&nc(r);if(!i&&t){requestAnimationFrame(()=>re(e,!1));return}R(i?r:null)&&i&&r?.focus({preventScroll:!0})},[b,m,R]),ie=(0,H.useRef)(!1);Y(()=>{if(E||!te||!L)return;let e=y.current;ie.current=!0,re(e)},[E,te,S,L,re]),(0,H.useEffect)(()=>{if(!te||!L)return;let e=y.current;return()=>{if(ie.current){ie.current=!1;return}re(e)}},[te,L,re]);let ae=_s(s);(0,H.useEffect)(()=>!S||!D?void 0:rs(`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=y.current;if(!t||Xu(t))return;let n=e.target;if(!n)return;let{disclosureElement:r}=b.getState();(n.tagName===`BODY`||ko(t,n)||!r||ko(r,n))&&ae(e)&&b.hide()},!0),[b,S,D,ae]),_=vs(_,e=>(0,W.jsx)(ku,{level:i?1:void 0,children:e}),[i]);let oe=_.hidden,se=_.alwaysVisible;_=vs(_,e=>o?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(_d,{store:b,backdrop:o,hidden:oe,alwaysVisible:se}),e]}):e,[b,o,oe,se]);let[z,B]=(0,H.useState)(),[ce,le]=(0,H.useState)();return _=vs(_,e=>(0,W.jsx)(Dl,{value:b,children:(0,W.jsx)(Ol.Provider,{value:B,children:(0,W.jsx)(kl.Provider,{value:le,children:e})})}),[b]),_={"data-dialog":``,role:`dialog`,tabIndex:r?-1:void 0,"aria-labelledby":z,"aria-describedby":ce,..._,id:T,ref:us(y,_.ref)},_=ju({..._,autoFocusOnShow:I}),_=Fl({store:b,..._}),_=Ic({..._,focusable:r}),_=Du({portal:a,..._,portalRef:x,preserveTabOrder:w}),_});function Ed(e,t=Tl){return Z(function(n){let r=t();return $(n.store||r,e=>!n.unmountOnHide||e?.mounted||!!n.open)?(0,W.jsx)(e,{...n}):null})}Ed(Z(function(e){return Q(xd,Td(e))}),Tl);var Dd=Math.min,Od=Math.max,kd=Math.round,Ad=Math.floor,jd=e=>({x:e,y:e}),Md={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Nd(e,t,n){return Od(e,Dd(t,n))}function Pd(e,t){return typeof e==`function`?e(t):e}function Fd(e){return e.split(`-`)[0]}function Id(e){return e.split(`-`)[1]}function Ld(e){return e===`x`?`y`:`x`}function Rd(e){return e===`y`?`height`:`width`}function zd(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Bd(e){return Ld(zd(e))}function Vd(e,t,n){n===void 0&&(n=!1);let r=Id(e),i=Bd(e),a=Rd(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Xd(o)),[o,Xd(o)]}function Hd(e){let t=Xd(e);return[Ud(e),t,Ud(t)]}function Ud(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Wd=[`left`,`right`],Gd=[`right`,`left`],Kd=[`top`,`bottom`],qd=[`bottom`,`top`];function Jd(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Gd:Wd:t?Wd:Gd;case`left`:case`right`:return t?Kd:qd;default:return[]}}function Yd(e,t,n,r){let i=Id(e),a=Jd(Fd(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Ud)))),a}function Xd(e){let t=Fd(e);return Md[t]+e.slice(t.length)}function Zd(e){return{top:0,right:0,bottom:0,left:0,...e}}function Qd(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Zd(e)}function $d(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function ef(e,t,n){let{reference:r,floating:i}=e,a=zd(t),o=Bd(t),s=Rd(o),c=Fd(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Id(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function tf(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Pd(t,e),p=Qd(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=$d(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=$d(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var nf=50,rf=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:tf},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=ef(l,r,c),f=r,p=0,m={};for(let n=0;n({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Pd(e,t)||{};if(l==null)return{};let d=Qd(u),f={x:n,y:r},p=Bd(i),m=Rd(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Dd(d[_],T),D=Dd(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=Nd(O,A,k),M=!c.arrow&&Id(i)!=null&&A!==j&&a.reference[m]/2-(Ae<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==zd(t))||T.every(e=>zd(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=zd(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},sf=new Set([`left`,`top`]);async function cf(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Fd(n),s=Id(n),c=zd(n)===`y`,l=sf.has(o)?-1:1,u=a&&c?-1:1,d=Pd(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var lf=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await cf(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},uf=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Pd(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=zd(Fd(i)),p=Ld(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=Nd(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=Nd(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},df=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Pd(e,t),u={x:n,y:r},d=zd(i),f=Ld(d),p=u[f],m=u[d],h=Pd(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;pn&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=sf.has(Fd(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);mr&&(m=r)}return{[f]:p,[d]:m}}}},ff=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=Pd(e,t),u=await o.detectOverflow(t,l),d=Fd(i),f=Id(i),p=zd(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=Dd(h-u[g],v),x=Dd(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Od(u.left,0),t=Od(u.right,0),n=Od(u.top,0),r=Od(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Od(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Od(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function pf(){return typeof window<`u`}function mf(e){return _f(e)?(e.nodeName||``).toLowerCase():`#document`}function hf(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function gf(e){return((_f(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function _f(e){return pf()?e instanceof Node||e instanceof hf(e).Node:!1}function vf(e){return pf()?e instanceof Element||e instanceof hf(e).Element:!1}function yf(e){return pf()?e instanceof HTMLElement||e instanceof hf(e).HTMLElement:!1}function bf(e){return!pf()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof hf(e).ShadowRoot}function xf(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Mf(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Sf(e){return/^(table|td|th)$/.test(mf(e))}function Cf(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var wf=/transform|translate|scale|rotate|perspective|filter/,Tf=/paint|layout|strict|content/,Ef=e=>!!e&&e!==`none`,Df;function Of(e){let t=vf(e)?Mf(e):e;return Ef(t.transform)||Ef(t.translate)||Ef(t.scale)||Ef(t.rotate)||Ef(t.perspective)||!Af()&&(Ef(t.backdropFilter)||Ef(t.filter))||wf.test(t.willChange||``)||Tf.test(t.contain||``)}function kf(e){let t=Pf(e);for(;yf(t)&&!jf(t);){if(Of(t))return t;if(Cf(t))return null;t=Pf(t)}return null}function Af(){return Df??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Df}function jf(e){return/^(html|body|#document)$/.test(mf(e))}function Mf(e){return hf(e).getComputedStyle(e)}function Nf(e){return vf(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Pf(e){if(mf(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||bf(e)&&e.host||gf(e);return bf(t)?t.host:t}function Ff(e){let t=Pf(e);return jf(t)?e.ownerDocument?e.ownerDocument.body:e.body:yf(t)&&xf(t)?t:Ff(t)}function If(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Ff(e),i=r===e.ownerDocument?.body,a=hf(r);if(i){let e=Lf(a);return t.concat(a,a.visualViewport||[],xf(r)?r:[],e&&n?If(e):[])}else return t.concat(r,If(r,[],n))}function Lf(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Rf(e){let t=Mf(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=yf(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=kd(n)!==a||kd(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function zf(e){return vf(e)?e:e.contextElement}function Bf(e){let t=zf(e);if(!yf(t))return jd(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Rf(t),o=(a?kd(n.width):n.width)/r,s=(a?kd(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var Vf=jd(0);function Hf(e){let t=hf(e);return!Af()||!t.visualViewport?Vf:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Uf(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==hf(e)?!1:t}function Wf(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=zf(e),o=jd(1);t&&(r?vf(r)&&(o=Bf(r)):o=Bf(e));let s=Uf(a,n,r)?Hf(a):jd(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=hf(a),t=r&&vf(r)?hf(r):r,n=e,i=Lf(n);for(;i&&r&&t!==n;){let e=Bf(i),t=i.getBoundingClientRect(),r=Mf(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=hf(i),i=Lf(n)}}return $d({width:u,height:d,x:c,y:l})}function Gf(e,t){let n=Nf(e).scrollLeft;return t?t.left+n:Wf(gf(e)).left+n}function Kf(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Gf(e,n),y:n.top+t.scrollTop}}function qf(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=gf(r),s=t?Cf(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=jd(1),u=jd(0),d=yf(r);if((d||!d&&!a)&&((mf(r)!==`body`||xf(o))&&(c=Nf(r)),d)){let e=Wf(r);l=Bf(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Kf(o,c):jd(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Jf(e){return Array.from(e.getClientRects())}function Yf(e){let t=gf(e),n=Nf(e),r=e.ownerDocument.body,i=Od(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Od(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Gf(e),s=-n.scrollTop;return Mf(r).direction===`rtl`&&(o+=Od(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var Xf=25;function Zf(e,t){let n=hf(e),r=gf(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Af();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Gf(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=Xf&&(a-=o)}else l<=Xf&&(a+=l);return{width:a,height:o,x:s,y:c}}function Qf(e,t){let n=Wf(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=yf(e)?Bf(e):jd(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function $f(e,t,n){let r;if(t===`viewport`)r=Zf(e,n);else if(t===`document`)r=Yf(gf(e));else if(vf(t))r=Qf(t,n);else{let n=Hf(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return $d(r)}function ep(e,t){let n=Pf(e);return n===t||!vf(n)||jf(n)?!1:Mf(n).position===`fixed`||ep(n,t)}function tp(e,t){let n=t.get(e);if(n)return n;let r=If(e,[],!1).filter(e=>vf(e)&&mf(e)!==`body`),i=null,a=Mf(e).position===`fixed`,o=a?Pf(e):e;for(;vf(o)&&!jf(o);){let t=Mf(o),n=Of(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||xf(o)&&!n&&ep(e,o))?r=r.filter(e=>e!==o):i=t,o=Pf(o)}return t.set(e,r),r}function np(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Cf(t)?[]:tp(t,this._c):[].concat(n),r],o=$f(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e{o(!1,1e-7)},1e3)}n===1&&!dp(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function pp(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=zf(e),u=i||a?[...l?If(l):[],...t?If(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?fp(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Wf(e):null;c&&g();function g(){let t=Wf(e);h&&!dp(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var mp=lf,hp=uf,gp=of,_p=ff,vp=af,yp=df,bp=(e,t,n)=>{let r=new Map,i={platform:up,...n},a={...i.platform,_c:r};return rf(e,t,{...i,platform:a})},xp=`div`;function Sp(e=0,t=0,n=0,r=0){if(typeof DOMRect==`function`)return new DOMRect(e,t,n,r);let i={x:e,y:t,width:n,height:r,top:t,right:e+n,bottom:t+r,left:e};return{...i,toJSON:()=>i}}function Cp(e){if(!e)return Sp();let{x:t,y:n,width:r,height:i}=e;return Sp(t,n,r,i)}function wp(e,t){return{contextElement:e||void 0,getBoundingClientRect:()=>{let n=e,r=t?.(n);return r||!n?Cp(r):n.getBoundingClientRect()}}}function Tp(e){return/^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(e)}function Ep(e){let t=window.devicePixelRatio||1;return Math.round(e*t)/t}function Dp(e,t){return mp(({placement:n})=>{let r=(e?.clientHeight||0)/2,i=typeof t.gutter==`number`?t.gutter+r:t.gutter??r;return{crossAxis:n.split(`-`)[1]?void 0:t.shift,mainAxis:i,alignmentAxis:t.shift}})}function Op(e){if(e.flip===!1)return;let t=typeof e.flip==`string`?e.flip.split(` `):void 0;return ho(!t||t.every(Tp),!1),gp({padding:e.overflowPadding,fallbackPlacements:t})}function kp(e){if(!(!e.slide&&!e.overlap))return hp({mainAxis:e.slide,crossAxis:e.overlap,padding:e.overflowPadding,limiter:yp()})}function Ap(e){return _p({padding:e.overflowPadding,apply({elements:t,availableWidth:n,availableHeight:r,rects:i}){let a=t.floating,o=Math.round(i.reference.width);n=Math.floor(n),r=Math.floor(r),a.style.setProperty(`--popover-anchor-width`,`${o}px`),a.style.setProperty(`--popover-available-width`,`${n}px`),a.style.setProperty(`--popover-available-height`,`${r}px`),e.sameWidth&&(a.style.width=`${o}px`),e.fitViewport&&(a.style.maxWidth=`${n}px`,a.style.maxHeight=`${r}px`)}})}function jp(e,t){if(e)return vp({element:e,padding:t.arrowPadding})}var Mp=As(function({store:e,modal:t=!1,portal:n=!!t,preserveTabOrder:r=!0,autoFocusOnShow:i=!0,wrapperProps:a,fixed:o=!1,flip:s=!0,shift:c=0,slide:l=!0,overlap:u=!1,sameWidth:d=!1,fitViewport:f=!1,gutter:p,arrowPadding:m=4,overflowPadding:h=8,getAnchorRect:g,updatePosition:_,...v}){let y=Vl();e||=y,ho(e,!1);let b=$(e,`arrowElement`),x=$(e,`anchorElement`),S=$(e,`disclosureElement`),C=$(e,`popoverElement`),w=$(e,`contentElement`),T=$(e,`placement`),E=$(e,`mounted`),D=$(e,`rendered`),O=(0,H.useRef)(null),[k,A]=(0,H.useState)(!1),{portalRef:j,domReady:M}=ys(n,v.portalRef),N=X(g),P=X(_),F=!!_;Y(()=>{if(!C?.isConnected)return;C.style.setProperty(`--popover-overflow-padding`,`${h}px`);let t=wp(x,N),n=async()=>{if(!E)return;b||(O.current=O.current||document.createElement(`div`));let n=b||O.current,r=[Dp(n,{gutter:p,shift:c}),Op({flip:s,overflowPadding:h}),kp({slide:l,shift:c,overlap:u,overflowPadding:h}),jp(n,{arrowPadding:m}),Ap({sameWidth:d,fitViewport:f,overflowPadding:h})],i=await bp(t,C,{placement:T,strategy:o?`fixed`:`absolute`,middleware:r});e?.setState(`currentPlacement`,i.placement),A(!0);let a=Ep(i.x),g=Ep(i.y);if(Object.assign(C.style,{top:`0`,left:`0`,transform:`translate3d(${a}px,${g}px,0)`}),n&&i.middlewareData.arrow){let{x:e,y:t}=i.middlewareData.arrow,r=i.placement.split(`-`)[0],a=n.clientWidth/2,o=n.clientHeight/2,s=e==null?-a:e+a,c=t==null?-o:t+o;C.style.setProperty(`--popover-transform-origin`,{top:`${s}px calc(100% + ${o}px)`,bottom:`${s}px ${-o}px`,left:`calc(100% + ${a}px) ${c}px`,right:`${-a}px ${c}px`}[r]),Object.assign(n.style,{left:e==null?``:`${e}px`,top:t==null?``:`${t}px`,[r]:`100%`})}},r=pp(t,C,async()=>{F?(await P({updatePosition:n}),A(!0)):await n()},{elementResize:typeof ResizeObserver==`function`});return()=>{A(!1),r()}},[e,D,C,b,x,C,T,E,M,o,s,c,l,u,d,f,p,m,h,N,F,P]),Y(()=>{if(!E||!M||!C?.isConnected||!w?.isConnected)return;let e=()=>{C.style.zIndex=getComputedStyle(w).zIndex};e();let t=requestAnimationFrame(()=>{t=requestAnimationFrame(e)});return()=>cancelAnimationFrame(t)},[E,M,C,w]);let I=o?`fixed`:`absolute`;return v=vs(v,t=>(0,W.jsx)(`div`,{...a,style:{position:I,top:0,left:0,width:`max-content`,...a?.style},ref:e?.setPopoverElement,children:t}),[e,I,a]),v=vs(v,t=>(0,W.jsx)(Ul,{value:e,children:t}),[e]),v={"data-placing":!k||void 0,...v,style:{position:`relative`,...v.style}},v=Td({store:e,modal:t,portal:n,preserveTabOrder:r,preserveTabOrderAnchor:S||x,autoFocusOnShow:k&&i,...v,portalRef:j}),v});Ed(Z(function(e){return Q(xp,Mp(e))}),Vl);function Np({popover:e,...t}={}){let n=Xc(t.store,Jc(e,[`arrowElement`,`anchorElement`,`contentElement`,`popoverElement`,`disclosureElement`])),r=n?.getState(),i=vd({...t,store:n}),a=J(t.placement,r?.placement,`bottom`),o=Hc({...i.getState(),placement:a,currentPlacement:a,anchorElement:J(r?.anchorElement,null),popoverElement:J(r?.popoverElement,null),arrowElement:J(r?.arrowElement,null),rendered:Symbol(`rendered`)},i,n);return{...i,...o,setAnchorElement:e=>o.setState(`anchorElement`,e),setPopoverElement:e=>o.setState(`popoverElement`,e),setArrowElement:e=>o.setState(`arrowElement`,e),render:()=>o.setState(`rendered`,Symbol(`rendered`))}}function Pp(e,t,n){return ms(t,[n.popover]),el(e,n,`placement`),yd(e,t,n)}var Fp=`div`,Ip=As(function({store:e,...t}){let n=Vl();return e||=n,t={...t,ref:us(e?.setAnchorElement,t.ref)},t});Z(function(e){return Q(Fp,Ip(e))});var Lp=(0,H.createContext)(void 0),Rp=`div`,zp=As(function(e){let[t,n]=(0,H.useState)();return e=vs(e,e=>(0,W.jsx)(Lp.Provider,{value:n,children:e}),[]),e={role:`group`,"aria-labelledby":t,...e},yo(e)});Z(function(e){return Q(Rp,zp(e))});var Bp=`div`,Vp=As(function({store:e,...t}){return t=zp(t),t});Z(function(e){return Q(Bp,Vp(e))});var Hp=`div`,Up=As(function(e){let t=(0,H.useContext)(Lp),n=ds(e.id);return Y(()=>(t?.(n),()=>t?.(void 0)),[t,n]),e={"aria-hidden":!0,...e,id:n},yo(e)});Z(function(e){return Q(Hp,Up(e))});var Wp=`div`,Gp=As(function({store:e,...t}){return t=Up(t),t});Z(function(e){return Q(Wp,Gp(e))});var Kp=`div`;function qp(e){let t=e.relatedTarget;return t?.nodeType===Node.ELEMENT_NODE?t:null}function Jp(e){let t=qp(e);return t?ko(e.currentTarget,t):!1}var Yp=Symbol(`composite-hover`);function Xp(e){let t=qp(e);if(!t)return!1;do{if(co(t,Yp)&&t[Yp])return!0;t=t.parentElement}while(t);return!1}var Zp=As(function({store:e,focusOnHover:t=!0,blurOnHoverEnd:n=!!t,...r}){let i=Ls();e||=i,ho(e,!1);let a=Ss(),o=r.onMouseMove,s=_s(t),c=X(t=>{if(o?.(t),!t.defaultPrevented&&a()&&s(t)){if(!pc(t.currentTarget)){let t=e?.getState().baseElement;t&&!fc(t)&&t.focus()}e?.setActiveId(t.currentTarget.id)}}),l=r.onMouseLeave,u=_s(n),d=X(t=>{var n;l?.(t),!t.defaultPrevented&&a()&&(Jp(t)||Xp(t)||s(t)&&u(t)&&(e?.setActiveId(null),(n=e?.getState().baseElement)==null||n.focus()))}),f=(0,H.useCallback)(e=>{e&&(e[Yp]=!0)},[]);return r={...r,ref:us(f,r.ref),onMouseMove:c,onMouseLeave:d},yo(r)});ks(Z(function(e){return Q(Kp,Zp(e))}));var Qp=`input`;function $p(e,t,n){return n?e.find(e=>!e.disabled&&e.value)?.value===t:!1}function em(e,t){return!t||e==null?!1:(e=uo(e),t.length>e.length&&t.toLowerCase().indexOf(e.toLowerCase())===0)}function tm(e){return e.type===`input`}function nm(e){return e===`inline`||e===`list`||e===`both`||e===`none`}function rm(e){return e.find(e=>e.disabled?!1:e.element?.getAttribute(`role`)!==`tab`)?.id}var im=As(function({store:e,focusable:t=!0,autoSelect:n=!1,getAutoSelectId:r,setValueOnChange:i,showMinLength:a=0,showOnChange:o,showOnMouseDown:s,showOnClick:c=s,showOnKeyDown:l,showOnKeyPress:u=l,blurActiveItemOnClick:d,setValueOnClick:f=!0,moveOnKeyPress:p=!0,autoComplete:m=`list`,...h}){let g=du();e||=g,ho(e,!1);let _=(0,H.useRef)(null),[v,y]=gs(),b=(0,H.useRef)(!1),x=(0,H.useRef)(!1),S=$(e,e=>e.virtualFocus&&n),C=m===`inline`||m===`both`,[w,T]=(0,H.useState)(C);hs(()=>{C&&T(!0)},[C]);let E=$(e,`value`),D=(0,H.useRef)(void 0);(0,H.useEffect)(()=>Kc(e,[`selectedValue`,`activeId`],(e,t)=>{D.current=t.selectedValue}),[e]);let O=$(e,e=>{if(C&&w&&!(e.activeValue&&Array.isArray(e.selectedValue)&&(e.selectedValue.includes(e.activeValue)||D.current?.includes(e.activeValue))))return e.activeValue}),k=$(e,`renderedItems`),A=$(e,`open`),j=$(e,`contentElement`),M=(0,H.useMemo)(()=>!C||!w?E:$p(k,O,S)?em(E,O)?E+(O?.slice(E.length)||``):E:O||E,[C,w,k,O,S,E]);(0,H.useEffect)(()=>{let e=_.current;if(!e)return;let t=()=>T(!0);return e.addEventListener(`combobox-item-move`,t),()=>{e.removeEventListener(`combobox-item-move`,t)}},[]),(0,H.useEffect)(()=>{if(!C||!w||!O||!$p(k,O,S)||!em(E,O))return;let e=io;return queueMicrotask(()=>{let t=_.current;if(!t)return;let{start:n,end:r}=Lo(t),i=E.length,a=O.length;Bo(t,i,a),e=()=>{if(!fc(t))return;let{start:e,end:o}=Lo(t);e===i&&o===a&&Bo(t,n,r)}}),()=>e()},[v,C,w,O,k,S,E]);let N=(0,H.useRef)(null),P=X(r),F=(0,H.useRef)(null),I=(0,H.useRef)(!1),ee=(0,H.useRef)(!1);(0,H.useEffect)(()=>{if(!A||!j)return;let t=zo(j);if(!t)return;N.current=t;let n=()=>{b.current=!1,I.current=!0},r=()=>{if(ee.current||(I.current=!0),!e||!b.current)return;let{activeId:t}=e.getState();t!==null&&t!==F.current&&(b.current=!1)},i={passive:!0,capture:!0};return t.addEventListener(`wheel`,n,i),t.addEventListener(`touchmove`,n,i),t.addEventListener(`scroll`,r,i),()=>{t.removeEventListener(`wheel`,n,!0),t.removeEventListener(`touchmove`,n,!0),t.removeEventListener(`scroll`,r,!0)}},[A,j,e]),Y(()=>{I.current=!1,E&&(x.current||(b.current=!0))},[E]),Y(()=>{S!==`always`&&A||(b.current=A)},[S,A]);let L=$(e,`resetValueOnSelect`);ms(()=>{let t=b.current;if(!e||!A||!t&&(!L||I.current))return;let{baseElement:n,contentElement:r,activeId:i}=e.getState();if(!(n&&!fc(n))){if(r?.hasAttribute(`data-placing`)){let e=new MutationObserver(y);return e.observe(r,{attributeFilter:[`data-placing`]}),()=>e.disconnect()}if(S&&t){let t=P(k),n=t===void 0?rm(k)??e.first():t;F.current=n,e.move(n??null)}else{let t=e.item(i||e.first())?.element;t&&`scrollIntoView`in t&&(ee.current=!0,t.scrollIntoView({block:`nearest`,inline:`nearest`}),requestAnimationFrame(()=>{ee.current=!1}))}}},[e,A,v,E,S,L,P,k]),(0,H.useEffect)(()=>{if(!C)return;let t=_.current;if(!t)return;let n=[t,j].filter(e=>!!e),r=t=>{n.every(e=>ts(t,e))&&e?.setValue(M)};for(let e of n)e.addEventListener(`focusout`,r);return()=>{for(let e of n)e.removeEventListener(`focusout`,r)}},[C,j,e,M]);let R=e=>e.currentTarget.value.length>=a,te=h.onChange,ne=_s(o??R),re=_s(i??!e.tag),ie=X(t=>{if(te?.(t),t.defaultPrevented||!e)return;let n=t.currentTarget,{value:r,selectionStart:i,selectionEnd:a}=n,o=t.nativeEvent;if(b.current=!0,tm(o)&&(o.isComposing&&(b.current=!1,x.current=!0),C)){let e=o.inputType===`insertText`||o.inputType===`insertCompositionText`,t=i===r.length;T(e&&t)}if(re(t)){let t=r===e.getState().value;e.setValue(r),queueMicrotask(()=>{Bo(n,i,a)}),C&&S&&t&&y()}ne(t)&&e.show(),(!S||!b.current)&&e.setActiveId(null)}),ae=h.onCompositionEnd,oe=X(e=>{b.current=!0,x.current=!1,ae?.(e),!e.defaultPrevented&&S&&y()}),se=h.onMouseDown,z=_s(d??(()=>!!e?.getState().includesBaseElement)),B=_s(f),ce=_s(c??R),le=X(t=>{se?.(t),!t.defaultPrevented&&(t.button||t.ctrlKey||e&&(z(t)&&e.setActiveId(null),B(t)&&e.setValue(M),ce(t)&&ns(t.currentTarget,`mouseup`,e.show)))}),ue=h.onKeyDown,de=_s(u??R),fe=X(t=>{if(ue?.(t),t.repeat||(b.current=!1),t.defaultPrevented||t.ctrlKey||t.altKey||t.shiftKey||t.metaKey||!e)return;let{open:n}=e.getState();n||(t.key===`ArrowUp`||t.key===`ArrowDown`)&&de(t)&&(t.preventDefault(),e.show())}),pe=h.onBlur,me=X(e=>{b.current=!1,pe?.(e),e.defaultPrevented}),he=ds(h.id),ge=nm(m)?m:void 0,_e=$(e,e=>e.activeId===null);return h={role:`combobox`,"aria-autocomplete":ge,"aria-haspopup":Ro(j,`listbox`),"aria-expanded":A,"aria-controls":j?.id,"data-active-item":_e||void 0,value:M,...h,id:he,ref:us(_,h.ref),onChange:ie,onCompositionEnd:oe,onMouseDown:le,onKeyDown:fe,onBlur:me},h=yl({store:e,focusable:t,...h,moveOnKeyPress:e=>_o(p,e)?!1:(C&&T(!0),!0)}),h=Ip({store:e,...h}),{autoComplete:`off`,...h}}),am=Z(function(e){return Q(Qp,im(e))}),om=`div`,sm=As(function({store:e,...t}){let n=uu();return e||=n,ho(e,!1),Ro($(e,`contentElement`))===`grid`&&(t={role:`rowgroup`,...t}),t=Vp({store:e,...t}),t}),cm=Z(function(e){return Q(om,sm(e))}),lm=`div`,um=As(function(e){return e=Gp(e),e}),dm=Z(function(e){return Q(lm,um(e))}),fm=`div`;function pm(e,t){if(t!=null)return e==null?!1:Array.isArray(e)?e.includes(t):e===t}function mm(e){return{menu:`menuitem`,listbox:`option`,tree:`treeitem`}[e]??`option`}var hm=As(function({store:e,value:t,hideOnClick:n,setValueOnClick:r,selectValueOnClick:i=!0,resetValueOnSelect:a,focusOnHover:o=!1,moveOnKeyPress:s=!0,getItem:c,...l}){let u=uu();e||=u,ho(e,!1);let{resetValueOnSelectState:d,multiSelectable:f,selected:p}=$c(e,{resetValueOnSelectState:`resetValueOnSelect`,multiSelectable(e){return Array.isArray(e.selectedValue)},selected(e){return pm(e.selectedValue,t)}}),m=(0,H.useCallback)(e=>{let n={...e,value:t};return c?c(n):n},[t,c]);r??=!f,n??=t!=null&&!f;let h=l.onClick,g=_s(r),_=_s(i),v=_s(a??d??f),y=_s(n),b=X(n=>{h?.(n),!n.defaultPrevented&&(Zo(n)||Xo(n)||(t!=null&&(_(n)&&(v(n)&&e?.resetValue(),e?.setSelectedValue(e=>Array.isArray(e)?e.includes(t)?e.filter(e=>e!==t):[...e,t]:t)),g(n)&&e?.setValue(t)),y(n)&&e?.hide()))}),x=l.onKeyDown,S=X(t=>{if(x?.(t),t.defaultPrevented)return;let n=e?.getState().baseElement;n&&(fc(n)||(t.key.length===1||t.key===`Backspace`||t.key===`Delete`)&&(queueMicrotask(()=>n.focus()),Po(n)&&e?.setValue(n.value)))});f&&p!=null&&(l={"aria-selected":p,...l}),l=vs(l,e=>(0,W.jsx)(mu.Provider,{value:t,children:(0,W.jsx)(hu.Provider,{value:p??!1,children:e})}),[t,p]),l={role:mm((0,H.useContext)(su)),children:t,...l,onClick:b,onKeyDown:S};let C=_s(s);return l=cl({store:e,...l,getItem:m,moveOnKeyPress:t=>{if(!C(t))return!1;let n=new Event(`combobox-item-move`);return(e?.getState().baseElement)?.dispatchEvent(n),!0}}),l=Zp({store:e,focusOnHover:o,...l}),l}),gm=ks(Z(function(e){return Q(fm,hm(e))})),_m=`div`,vm=As(function({store:e,alwaysVisible:t,...n}){let r=uu(!0),i=lu();e||=i;let a=!!e&&e===r;ho(e,!1);let o=(0,H.useRef)(null),s=ds(n.id),c=$(e,`mounted`),l=Pl(c,n.hidden,t),u=l?{...n.style,display:`none`}:n.style,d=$(e,e=>Array.isArray(e.selectedValue)),f=ps(o,`role`,n.role),p=(f===`listbox`||f===`tree`||f===`grid`)&&d||void 0,[m,h]=(0,H.useState)(!1),g=$(e,`contentElement`);Y(()=>{if(!c)return;let e=o.current;if(!e||g!==e)return;let t=()=>{h(!!e.querySelector(`[role='listbox']`))},n=new MutationObserver(t);return n.observe(e,{subtree:!0,childList:!0,attributeFilter:[`role`]}),t(),()=>n.disconnect()},[c,g]),m||(n={role:`listbox`,"aria-multiselectable":p,...n}),n=vs(n,t=>(0,W.jsx)(pu,{value:e,children:(0,W.jsx)(su.Provider,{value:f,children:t})}),[e,f]);let _=s&&(!r||!a)?e.setContentElement:null;return n={hidden:l,...n,id:s,ref:us(_,o,n.ref),style:u},yo(n)}),ym=Z(function(e){return Q(_m,vm(e))}),bm=`div`;function xm(e,...t){if(!e)return!1;if(`id`in e){let n=t.filter(Boolean).map(e=>`[aria-controls~="${e}"]`).join(`, `);return n?e.matches(n):!1}return!1}var Sm=As(function({store:e,modal:t,tabIndex:n,alwaysVisible:r,autoFocusOnHide:i=!0,hideOnInteractOutside:a=!0,...o}){let s=du();e||=s,ho(e,!1);let c=$(e,`baseElement`),l=(0,H.useRef)(!1),u=$(e.tag,e=>e?.renderedItems.length);return o=vm({store:e,alwaysVisible:r,...o}),o=Mp({store:e,modal:t,alwaysVisible:r,backdrop:!1,autoFocusOnShow:!1,finalFocus:c,preserveTabOrderAnchor:null,unstable_treeSnapshotKey:u,...o,getPersistentElements(){let n=o.getPersistentElements?.call(o)||[];if(!t||!e)return n;let{contentElement:r,baseElement:i}=e.getState();if(!i)return n;let a=Eo(i),s=[];if(r?.id&&s.push(`[aria-controls~="${r.id}"]`),i?.id&&s.push(`[aria-controls~="${i.id}"]`),!s.length)return[...n,i];let c=s.join(`,`),l=a.querySelectorAll(c);return[...n,...l]},autoFocusOnHide(e){return _o(i,e)?!1:l.current?(l.current=!1,!1):!0},hideOnInteractOutside(t){let n=e?.getState(),r=n?.contentElement?.id,i=n?.baseElement?.id;if(xm(t.target,r,i))return!1;let o=typeof a==`function`?a(t):a;return o&&(l.current=t.type===`click`),o}}),o}),Cm=Ed(Z(function(e){return Q(bm,Sm(e))}),du);(0,H.createContext)(null),(0,H.createContext)(null);var wm=js([zs],[Bs]),Tm=wm.useContext;wm.useScopedContext,wm.useProviderContext,wm.ContextProvider,wm.ScopedContextProvider;var Em=Go()&&Uo();function Dm({tag:e,...t}={}){let n=Xc(t.store,Yc(e,[`value`,`rtl`])),r=e?.getState(),i=n?.getState(),a=J(t.activeId,i?.activeId,t.defaultActiveId,null),o=iu({...t,activeId:a,includesBaseElement:J(t.includesBaseElement,i?.includesBaseElement,!0),orientation:J(t.orientation,i?.orientation,`vertical`),focusLoop:J(t.focusLoop,i?.focusLoop,!0),focusWrap:J(t.focusWrap,i?.focusWrap,!0),virtualFocus:J(t.virtualFocus,i?.virtualFocus,!0)}),s=Np({...t,placement:J(t.placement,i?.placement,`bottom-start`)}),c=J(t.value,i?.value,t.defaultValue,``),l=J(t.selectedValue,i?.selectedValue,r?.values,t.defaultSelectedValue,``),u=Array.isArray(l),d={...o.getState(),...s.getState(),value:c,selectedValue:l,resetValueOnSelect:J(t.resetValueOnSelect,i?.resetValueOnSelect,u),resetValueOnHide:J(t.resetValueOnHide,i?.resetValueOnHide,u&&!e),activeValue:i?.activeValue},f=Hc(d,o,s,n);return Em&&Uc(f,()=>Kc(f,[`virtualFocus`],()=>{f.setState(`virtualFocus`,!1)})),Uc(f,()=>{if(e)return lo(Kc(f,[`selectedValue`],t=>{Array.isArray(t.selectedValue)&&e.setValues(t.selectedValue)}),Kc(e,[`values`],e=>{f.setState(`selectedValue`,e.values)}))}),Uc(f,()=>Kc(f,[`resetValueOnHide`,`mounted`],e=>{e.resetValueOnHide&&(e.mounted||f.setState(`value`,c))})),Uc(f,()=>Kc(f,[`open`],e=>{e.open||(f.setState(`activeId`,a),f.setState(`moves`,0))})),Uc(f,()=>Kc(f,[`moves`,`activeId`],(e,t)=>{e.moves===t.moves&&f.setState(`activeValue`,void 0)})),Uc(f,()=>qc(f,[`moves`,`renderedItems`],(e,t)=>{if(e.moves===t.moves)return;let{activeId:n}=f.getState(),r=o.item(n);f.setState(`activeValue`,r?.value)})),{...s,...o,...f,tag:e,setValue:e=>f.setState(`value`,e),resetValue:()=>f.setState(`value`,d.value),setSelectedValue:e=>f.setState(`selectedValue`,e)}}function Om(e){let t=Tm();return e={...e,tag:e.tag===void 0?t:e.tag},au(e)}function km(e,t,n){return ms(t,[n.tag]),el(e,n,`value`,`setValue`),el(e,n,`selectedValue`,`setSelectedValue`),el(e,n,`resetValueOnHide`),el(e,n,`resetValueOnSelect`),Object.assign(ou(Pp(e,t,n),t,n),{tag:n.tag})}function Am(e={}){e=Om(e);let[t,n]=tl(Dm,e);return km(t,n,e)}function jm(e={}){return(0,W.jsx)(fu,{value:Am(e),children:e.children})}function Mm(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M232 306.667h48V176h-48v130.667z`},child:[]},{tag:`path`,attr:{d:`M407.67 170.271l30.786-30.786-33.942-33.941-30.785 30.786C341.217 111.057 300.369 96 256 96 149.961 96 64 181.961 64 288s85.961 192 192 192 192-85.961 192-192c0-44.369-15.057-85.217-40.33-117.729zm-45.604 223.795C333.734 422.398 296.066 438 256 438s-77.735-15.602-106.066-43.934C121.602 365.735 106 328.066 106 288s15.602-77.735 43.934-106.066C178.265 153.602 215.934 138 256 138s77.734 15.602 106.066 43.934C390.398 210.265 406 247.934 406 288s-15.602 77.735-43.934 106.066zM192 32h128v48H192z`},child:[]}]})(e)}function Nm(e){return V({tag:`svg`,attr:{viewBox:`0 0 512 512`},child:[{tag:`path`,attr:{d:`M256 48C140.559 48 48 140.559 48 256c0 115.436 92.559 208 208 208 115.435 0 208-92.564 208-208 0-115.441-92.564-208-208-208zm104.002 282.881l-29.12 29.117L256 285.117l-74.881 74.881-29.121-29.117L226.881 256l-74.883-74.881 29.121-29.116L256 226.881l74.881-74.878 29.12 29.116L285.119 256l74.883 74.881z`},child:[]}]})(e)}var Pm=e(t(((e,t)=>{var n=200,r=`Expected a function`,i=`__lodash_hash_undefined__`,a=500,o=1,s=2,c=1/0,l=9007199254740991,u=`[object Arguments]`,d=`[object Array]`,f=`[object AsyncFunction]`,p=`[object Boolean]`,m=`[object Date]`,h=`[object Error]`,g=`[object Function]`,_=`[object GeneratorFunction]`,v=`[object Map]`,y=`[object Number]`,b=`[object Null]`,x=`[object Object]`,S=`[object Promise]`,C=`[object Proxy]`,w=`[object RegExp]`,T=`[object Set]`,E=`[object String]`,D=`[object Symbol]`,O=`[object Undefined]`,k=`[object WeakMap]`,A=`[object ArrayBuffer]`,j=`[object DataView]`,M=`[object Float32Array]`,N=`[object Float64Array]`,P=`[object Int8Array]`,F=`[object Int16Array]`,I=`[object Int32Array]`,ee=`[object Uint8Array]`,L=`[object Uint8ClampedArray]`,R=`[object Uint16Array]`,te=`[object Uint32Array]`,ne=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,re=/^\w*$/,ie=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ae=/[\\^$.*+?()[\]{}|]/g,oe=/\\(\\)?/g,se=/^\[object .+?Constructor\]$/,z=/^(?:0|[1-9]\d*)$/,B={};B[M]=B[N]=B[P]=B[F]=B[I]=B[ee]=B[L]=B[R]=B[te]=!0,B[u]=B[d]=B[A]=B[p]=B[j]=B[m]=B[h]=B[g]=B[v]=B[y]=B[x]=B[w]=B[T]=B[E]=B[k]=!1;var ce=typeof global==`object`&&global&&global.Object===Object&&global,le=typeof self==`object`&&self&&self.Object===Object&&self,ue=ce||le||Function(`return this`)(),de=typeof e==`object`&&e&&!e.nodeType&&e,fe=de&&typeof t==`object`&&t&&!t.nodeType&&t,pe=fe&&fe.exports===de,me=pe&&ce.process,he=function(){try{return fe&&fe.require&&fe.require(`util`).types||me&&me.binding&&me.binding(`util`)}catch{}}(),ge=he&&he.isTypedArray;function _e(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n-1}function gt(e,t){var n=this.__data__,r=Mt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}dt.prototype.clear=ft,dt.prototype.delete=pt,dt.prototype.get=mt,dt.prototype.has=ht,dt.prototype.set=gt;function _t(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tt||a&&o&&c&&!s&&!l||r&&o&&c||!n&&c||!i)return 1;if(!r&&!a&&!l&&e=s?c:c*(n[r]==`desc`?-1:1)}return e.index-t.index}function rn(e,t){return function(n,r){if(n==null)return n;if(!Mn(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++al))return!1;var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=-1,m=!0,h=n&s?new Ct:void 0;for(a.set(e,t),a.set(t,e);++p-1&&e%1==0&&e-1&&e%1==0&&e<=l}function In(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}function Ln(e){return typeof e==`object`&&!!e}function Rn(e){return typeof e==`symbol`||Ln(e)&&Rt(e)==D}var zn=ge?we(ge):Gt;function Bn(e){return e==null?``:$t(e)}function Vn(e,t,n){var r=e==null?void 0:It(e,t);return r===void 0?n:r}function Hn(e,t){return e!=null&&mn(e,t,zt)}function Un(e){return Mn(e)?jt(e):qt(e)}function Wn(e){return e}function Gn(e){return gn(e)?xe(Tn(e)):Qt(e)}function Kn(){return[]}function qn(){return!1}t.exports=Dn}))(),1),Fm={InputWrapper:`_InputWrapper_avklz_1`,Shortcut:`_Shortcut_avklz_9`,Input:`_Input_avklz_1`,SelectedValue:`_SelectedValue_avklz_52`,SelectedName:`_SelectedName_avklz_67`,ItemType:`_ItemType_avklz_79`,Popover:`_Popover_avklz_83`,PopoverWrapper:`_PopoverWrapper_avklz_97`,List:`_List_avklz_110`,Group:`_Group_avklz_114`,GroupLabel:`_GroupLabel_avklz_122`,Item:`_Item_avklz_79`,ItemHeader:`_ItemHeader_avklz_162`,ItemName:`_ItemName_avklz_168`,ItemTypes:`_ItemTypes_avklz_174`,ItemMissionName:`_ItemMissionName_avklz_193`,NoResults:`_NoResults_avklz_198`,Backdrop:`_Backdrop_avklz_205`,CloseButton:`_CloseButton_avklz_215`},Im=new Set([`SkiFree`,`SkiFree_Daily`,`SkiFree_Randomizer`]),Lm={"missions.vl2":`Official`,"TR2final105-client.vl2":`Team Rabbit 2`,"z_mappacks/CTF/Classic_maps_v1.vl2":`Classic`,"z_mappacks/CTF/DynamixFinalPack.vl2":`Official`,"z_mappacks/CTF/KryMapPack_b3EDIT.vl2":`KryMapPack`,"z_mappacks/CTF/S5maps.vl2":`S5`,"z_mappacks/CTF/S8maps.vl2":`S8`,"z_mappacks/CTF/TWL-MapPack.vl2":`TWL`,"z_mappacks/CTF/TWL-MapPackEDIT.vl2":`TWL`,"z_mappacks/CTF/TWL2-MapPack.vl2":`TWL2`,"z_mappacks/CTF/TWL2-MapPackEDIT.vl2":`TWL2`,"z_mappacks/TWL_T2arenaOfficialMaps.vl2":`Arena`,"z_mappacks/xPack2.vl2":`xPack2`,"z_mappacks/z_DMP2-V0.6.vl2":`DMP2 (Discord Map Pack)`,"z_mappacks/zDMP-4.7.3DX.vl2":`DMP (Discord Map Pack)`,"z_mappacks/zDMP-4.7.3DX-ServerOnly.vl2":`DMP (Discord Map Pack)`},Rm={"z_mappacks/DM":`DM`,"z_mappacks/LCTF":`LCTF`,"z_mappacks/Lak":`LakRabbit`},zm=e=>{let t=e.match(/^(.*)(\/[^/]+)$/);return t?t[1]:``},Bm=ge().filter(e=>!Im.has(e)).map(e=>{let t=he(e),[n]=_e(t.resourcePath),r=zm(n),i=Lm[n]??Rm[r]??null;return{resourcePath:t.resourcePath,missionName:e,displayName:t.displayName,sourcePath:n,groupName:i,missionTypes:t.missionTypes}}),Vm=new Map(Bm.map(e=>[e.missionName,e]));function Hm(e){let t=new Map;for(let n of e){let e=t.get(n.groupName)??[];e.push(n),t.set(n.groupName,e)}return t.forEach((e,n)=>{t.set(n,(0,Pm.default)(e,[e=>(e.displayName||e.missionName).toLowerCase()],[`asc`]))}),(0,Pm.default)(Array.from(t.entries()),[([e])=>e===`Official`?0:e==null?2:1,([e])=>e?e.toLowerCase():``],[`asc`,`asc`])}var Um=Hm(Bm),Wm=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/.test(navigator.platform);function Gm(e){let t=(0,U.c)(12),{mission:n}=e,r=n.displayName||n.missionName,i;t[0]===r?i=t[1]:(i=(0,W.jsx)(`span`,{className:Fm.ItemName,children:r}),t[0]=r,t[1]=i);let a;t[2]===n.missionTypes?a=t[3]:(a=n.missionTypes.length>0&&(0,W.jsx)(`span`,{className:Fm.ItemTypes,children:n.missionTypes.map(Km)}),t[2]=n.missionTypes,t[3]=a);let o;t[4]!==i||t[5]!==a?(o=(0,W.jsxs)(`span`,{className:Fm.ItemHeader,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6];let s;t[7]===n.missionName?s=t[8]:(s=(0,W.jsx)(`span`,{className:Fm.ItemMissionName,children:n.missionName}),t[7]=n.missionName,t[8]=s);let c;return t[9]!==o||t[10]!==s?(c=(0,W.jsxs)(W.Fragment,{children:[o,s]}),t[9]=o,t[10]=s,t[11]=c):c=t[11],c}function Km(e){return(0,W.jsx)(`span`,{className:Fm.ItemType,"data-mission-type":e,children:e},e)}function qm(e){let t=(0,U.c)(65),{value:n,missionType:r,onChange:i,disabled:a,autoFocus:o,onCancel:s}=e,[c,l]=(0,H.useState)(``),u=(0,H.useDeferredValue)(c),d=(0,H.useRef)(null),f=(0,H.useRef)(r),p;t[0]===s?p=t[1]:(p=e=>{e||s?.()},t[0]=s,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>{l(e)},t[2]=m):m=t[2];let h=Am({resetValueOnHide:!0,selectedValue:n,setOpen:p,setSelectedValue:e=>{if(e){let t=f.current,n=he(e).missionTypes;(!t||!n.includes(t))&&(t=n[0]),i({missionName:e,missionType:t}),d.current?.blur()}},setValue:m}),g=$(h,`open`),_,v;t[3]!==o||t[4]!==h?(_=()=>{o&&(d.current?.focus(),h.show())},v=[o,h],t[3]=o,t[4]=h,t[5]=_,t[6]=v):(_=t[5],v=t[6]),(0,H.useEffect)(_,v);let y,b;t[7]===h?(y=t[8],b=t[9]):(y=()=>{let e=e=>{e.code===`KeyK`&&(e.metaKey||e.ctrlKey)&&(e.stopPropagation(),e.preventDefault(),d.current?.focus(),h.show())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},b=[h],t[7]=h,t[8]=y,t[9]=b),(0,H.useEffect)(y,b);let x;t[10]===n?x=t[11]:(x=Vm.get(n),t[10]=n,t[11]=x);let S=x,C;bb0:{if(!u){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e={type:`grouped`,groups:Um},t[12]=e):e=t[12],C=e;break bb0}let e;t[13]===u?e=t[14]:(e=Pa(Bm,u,{keys:[`displayName`,`missionName`,`missionTypes`,`groupName`]}),t[13]=u,t[14]=e);let n=e,r;t[15]===n?r=t[16]:(r={type:`flat`,missions:n},t[15]=n,t[16]=r),C=r}let w=C,T=S?S.displayName||S.missionName:n,E=w.type===`flat`?w.missions.length===0:w.groups.length===0,D=e=>(0,W.jsx)(gm,{value:e.missionName,className:Fm.Item,focusOnHover:!0,onClick:t=>{if(t.target&&t.target instanceof HTMLElement){let r=t.target.dataset.missionType;r?(f.current=r,e.missionName===n&&i({missionName:e.missionName,missionType:r})):f.current=null}else f.current=null},children:(0,W.jsx)(Gm,{mission:e})},e.missionName),O=jm,k=g?`visible`:`hidden`,A;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,W.jsx)(`div`,{className:Fm.Backdrop}),t[17]=A):A=t[17];let j;t[18]===k?j=t[19]:(j=(0,W.jsx)(H.Activity,{mode:k,children:A}),t[18]=k,t[19]=j);let M=S?void 0:`Choose a map…`,N,P;t[20]===h?(N=t[21],P=t[22]):(N=()=>{try{document.exitPointerLock()}catch{}h.show()},P=e=>{e.key===`Escape`&&!h.getState().open&&d.current?.blur()},t[20]=h,t[21]=N,t[22]=P);let F;t[23]!==o||t[24]!==a||t[25]!==M||t[26]!==N||t[27]!==P?(F=(0,W.jsx)(am,{ref:d,autoSelect:!0,autoFocus:o,disabled:a,placeholder:M,className:Fm.Input,onFocus:N,onKeyDown:P}),t[23]=o,t[24]=a,t[25]=M,t[26]=N,t[27]=P,t[28]=F):F=t[28];let I;t[29]!==T||t[30]!==r||t[31]!==S?(I=S&&(0,W.jsxs)(`div`,{className:Fm.SelectedValue,children:[(0,W.jsx)(`span`,{className:Fm.SelectedName,children:T}),r&&(0,W.jsx)(`span`,{className:Fm.ItemType,"data-mission-type":r,children:r})]}),t[29]=T,t[30]=r,t[31]=S,t[32]=I):I=t[32];let ee;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,W.jsx)(`kbd`,{className:Fm.Shortcut,children:Wm?`⌘K`:`^K`}),t[33]=ee):ee=t[33];let L;t[34]!==F||t[35]!==I?(L=(0,W.jsxs)(`div`,{className:Fm.InputWrapper,onKeyDown:Ym,children:[F,I,ee]}),t[34]=F,t[35]=I,t[36]=L):L=t[36];let R;t[37]!==h||t[38]!==s?(R=()=>{h.hide(),s?.()},t[37]=h,t[38]=s,t[39]=R):R=t[39];let te;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,W.jsx)(Nm,{}),t[40]=te):te=t[40];let ne;t[41]!==g||t[42]!==R?(ne=(0,W.jsx)(`button`,{type:`button`,className:Fm.CloseButton,"data-open":g,onClick:R,children:te}),t[41]=g,t[42]=R,t[43]=ne):ne=t[43];let re=Cm,ie=Fm,ae;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(ae={className:Fm.PopoverWrapper},t[44]=ae):ae=t[44];let oe=Jm,se=ym,z=Fm,B=w.type===`flat`?w.missions.map(D):w.groups.map(e=>{let[t,n]=e;return t?(0,W.jsxs)(cm,{className:Fm.Group,children:[(0,W.jsx)(dm,{className:Fm.GroupLabel,children:t}),n.map(D)]},t):(0,W.jsx)(H.Fragment,{children:n.map(D)},`ungrouped`)}),ce;t[45]===E?ce=t[46]:(ce=E&&(0,W.jsx)(`div`,{className:Fm.NoResults,children:`No missions found`}),t[45]=E,t[46]=ce);let le;t[47]!==se||t[48]!==z.List||t[49]!==B||t[50]!==ce?(le=(0,W.jsxs)(se,{className:z.List,children:[B,ce]}),t[47]=se,t[48]=z.List,t[49]=B,t[50]=ce,t[51]=le):le=t[51];let ue;t[52]!==re||t[53]!==ie.Popover||t[54]!==ae||t[55]!==oe||t[56]!==le?(ue=(0,W.jsx)(re,{gutter:4,fitViewport:!0,sameWidth:!0,fixed:!0,autoFocusOnHide:!1,className:ie.Popover,wrapperProps:ae,onKeyDown:oe,children:le}),t[52]=re,t[53]=ie.Popover,t[54]=ae,t[55]=oe,t[56]=le,t[57]=ue):ue=t[57];let de;return t[58]!==O||t[59]!==h||t[60]!==j||t[61]!==L||t[62]!==ne||t[63]!==ue?(de=(0,W.jsxs)(O,{store:h,children:[j,L,ne,ue]}),t[58]=O,t[59]=h,t[60]=j,t[61]=L,t[62]=ne,t[63]=ue,t[64]=de):de=t[64],de}function Jm(e){e.metaKey||e.stopPropagation()}function Ym(e){e.metaKey||e.stopPropagation()}function Xm(e){return V({tag:`svg`,attr:{viewBox:`0 0 24 24`},child:[{tag:`path`,attr:{d:`m12 6-6 8h12zM6 16h12v2H6z`},child:[]}]})(e)}var Zm={Header:`_Header_klnnn_1`,MissionInfo:`_MissionInfo_klnnn_9`,MissionName:`_MissionName_klnnn_21 _SelectedName_avklz_67`,MissionType:`_MissionType_klnnn_25 _ItemType_avklz_79`,MissionTypeDisplayName:`_MissionTypeDisplayName_klnnn_30`,Metadata:`_Metadata_klnnn_35`,Attribution:`_Attribution_klnnn_46`,ServerInfo:`_ServerInfo_klnnn_47`,PlayerName:`_PlayerName_klnnn_51`,RecordingDate:`_RecordingDate_klnnn_52`,ServerName:`_ServerName_klnnn_53`,EjectButton:`_EjectButton_klnnn_57 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,DisconnectButton:`_DisconnectButton_klnnn_58 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,EjectIcon:`_EjectIcon_klnnn_62`,Error:`_Error_klnnn_67`,Pulsing:`_Pulsing_klnnn_81`,blink:`_blink_klnnn_1`,ConnectionPing:`_ConnectionPing_klnnn_85`,PingDot:`_PingDot_klnnn_95 _Pulsing_klnnn_81`};function Qm(){let e=(0,U.c)(28),t=Sn(),n=jn(),r=En(),i=On(),a=Nn(),o=Fn(),s=Ln(),[c,l]=s?s.split(` `):[null,null],u=t===`live`,d=Gn(),f=Hn(th),p=Hn(Un),m=eh,h=$m,g=Zm,_;e[0]!==n||e[1]!==r||e[2]!==i?(_=n&&r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:Zm.MissionName,children:n}),r&&(0,W.jsxs)(W.Fragment,{children:[` `,(0,W.jsx)(`span`,{className:Zm.MissionType,"data-mission-type":r,children:i===`LCTF`?`LCTF`:r})]})]}):null,e[0]=n,e[1]=r,e[2]=i,e[3]=_):_=e[3];let v;e[4]===_?v=e[5]:(v=(0,W.jsx)(`div`,{className:Zm.MissionInfo,children:_}),e[4]=_,e[5]=v);let y;e[6]!==f||e[7]!==p?(y=f&&p!=null?(0,W.jsxs)(`span`,{className:Zm.ConnectionPing,"data-quality":p<150?`good`:p<300?`fine`:`poor`,children:[(0,W.jsx)(`span`,{className:Zm.PingDot}),` `,be(p)]}):null,e[6]=f,e[7]=p,e[8]=y):y=e[8];let b=Zm,x=u?f?o?(0,W.jsxs)(`div`,{className:Zm.Attribution,children:[`Connected as`,` `,(0,W.jsx)(`span`,{className:Zm.PlayerName,children:o})]}):null:(0,W.jsx)(`div`,{className:Zm.Error,children:`Disconnected`}):o&&s?(0,W.jsxs)(`div`,{className:Zm.Attribution,children:[`Recorded by `,(0,W.jsx)(`span`,{className:Zm.PlayerName,children:o}),` `,`on`,` `,(0,W.jsx)(`span`,{className:Zm.RecordingDate,children:c.replace(/-/g,` `)}),` `,`at`,` `,(0,W.jsx)(`span`,{className:Zm.RecordingDate,children:(l??``).replace(/(AM|PM)$/,` $1`)})]}):null,S;e[9]===a?S=e[10]:(S=a?(0,W.jsxs)(`div`,{className:Zm.ServerInfo,children:[`Server: `,(0,W.jsx)(`span`,{className:Zm.ServerName,children:a})]}):null,e[9]=a,e[10]=S);let C;e[11]!==b.Metadata||e[12]!==x||e[13]!==S?(C=(0,W.jsxs)(`div`,{className:b.Metadata,children:[x,S]}),e[11]=b.Metadata,e[12]=x,e[13]=S,e[14]=C):C=e[14];let w;e[15]!==t||e[16]!==h||e[17]!==m||e[18]!==u||e[19]!==f||e[20]!==d?(w=t===`demo`?(0,W.jsx)(`button`,{type:`button`,className:Zm.EjectButton,title:`Unload demo`,"aria-label":`Unload demo`,onClick:m,disabled:!d,children:(0,W.jsx)(Xm,{className:Zm.EjectIcon})}):u?(0,W.jsx)(`button`,{type:`button`,className:Zm.DisconnectButton,title:`Disconnect`,"aria-label":`Disconnect`,onClick:h,disabled:!f,children:(0,W.jsx)(ea,{})}):null,e[15]=t,e[16]=h,e[17]=m,e[18]=u,e[19]=f,e[20]=d,e[21]=w):w=e[21];let T;return e[22]!==g.Header||e[23]!==v||e[24]!==y||e[25]!==C||e[26]!==w?(T=(0,W.jsxs)(`div`,{className:g.Header,children:[v,y,C,w]}),e[22]=g.Header,e[23]=v,e[24]=y,e[25]=C,e[26]=w,e[27]=T):T=e[27],T}function $m(){Vn.getState().disconnectServer(),we.getState().setRecording(null)}function eh(){we.getState().setRecording(null)}function th(e){return e.gameStatus===`connected`||e.gameStatus===`authenticating`}function nh(e){let t=(0,U.c)(5),{onChangeMission:n}=e,{setRecording:r}=tr(),i=(0,H.useEffectEvent)(n),a;t[0]!==i||t[1]!==r?(a=()=>(window.setMissionName=e=>{let t=he(e).missionTypes;i({missionName:e,missionType:t[0]})},window.getMissionList=ge,window.getMissionInfo=he,window.loadDemoRecording=r,rh),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;t[3]===r?o=t[4]:(o=[r],t[3]=r,t[4]=o),(0,H.useEffect)(a,o)}function rh(){delete window.setMissionName,delete window.getMissionList,delete window.getMissionInfo,delete window.loadDemoRecording}var ih=(0,H.createContext)(null);function ah(){let e=(0,H.useContext)(ih);if(!e)throw Error(`useCameras must be used within CamerasProvider`);return e}function oh({children:e}){let t=o(e=>e.camera),[n,r]=(0,H.useState)(-1),[i,a]=(0,H.useState)({}),[s,c]=(0,H.useState)(()=>({initialized:!1,position:null,quarternion:null})),l=(0,H.useCallback)(e=>{a(t=>({...t,[e.id]:e}))},[]),u=(0,H.useCallback)(e=>{a(t=>{let{[e.id]:n,...r}=t;return r})},[]),d=Object.keys(i).length,f=(0,H.useCallback)(e=>{if(e>=0&&e{f(d?(n+1)%d:-1)},[d,n,f]);(0,H.useEffect)(()=>{let e=()=>{let e=window.location.hash;if(e.startsWith(`#c`)){let[t,n]=e.slice(2).split(`~`),r=t.split(`,`).map(e=>parseFloat(e)),i=n.split(`,`).map(e=>parseFloat(e));c({initialized:!0,position:new oe(...r),quarternion:new ae(...i)})}else c({initialized:!0,position:null,quarternion:null})};return window.addEventListener(`hashchange`,e),e(),()=>{window.removeEventListener(`hashchange`,e)}},[]),(0,H.useEffect)(()=>{s.initialized&&s.position&&(t.position.copy(s.position),s.quarternion&&t.quaternion.copy(s.quarternion))},[t,s]),(0,H.useEffect)(()=>{!s.initialized||s.position||d>0&&n===-1&&f(0)},[d,f,n,s]);let m=(0,H.useMemo)(()=>({registerCamera:l,unregisterCamera:u,nextCamera:p,setCameraIndex:f,cameraCount:d}),[l,u,p,f,d]);return d===0&&n!==-1&&r(-1),(0,W.jsx)(ih.Provider,{value:m,children:e})}var sh=(0,H.createContext)(null);function ch(){let e=(0,H.useContext)(sh);if(!e)throw Error(`useInputContext must be used within an InputProvider`);return e}function lh(){return ch().onInput}function uh(){return ch().mode}var dh=new Set([`Ctrl`,`Shift`,`Alt`]),fh=new Set([`MetaLeft`,`MetaRight`,`ControlLeft`,`ControlRight`,`ShiftLeft`,`ShiftRight`,`AltLeft`,`AltRight`]);function ph(e){if(typeof e!=`string`)return e;let t=e.split(`-`),n=t.pop(),r=[];for(let e of t)dh.has(e)&&r.push(e);return{type:`key`,code:n,modifiers:r.length>0?r:void 0}}function mh(e,t){let n=e.has(`ControlLeft`)||e.has(`ControlRight`),r=e.has(`ShiftLeft`)||e.has(`ShiftRight`),i=e.has(`AltLeft`)||e.has(`AltRight`);return n===(t?.includes(`Ctrl`)??!1)&&r===(t?.includes(`Shift`)??!1)&&i===(t?.includes(`Alt`)??!1)}function hh(e,t){let n=t?.includes(`Ctrl`)??!1,r=t?.includes(`Shift`)??!1,i=t?.includes(`Alt`)??!1;return e.ctrlKey===n&&e.shiftKey===r&&e.altKey===i}function gh(){return{pressed:!1}}function _h(){return{dragging:!1,deltaX:0,deltaY:0,startX:0,startY:0}}function vh(){return{deltaX:0,deltaY:0}}function yh(){return{touching:!1,dragging:!1,deltaX:0,deltaY:0}}function bh(e){switch(e.type){case`key`:case`click`:return gh();case`drag`:case`pointerLockMove`:return _h();case`scroll`:return vh();case`touch`:return yh()}}var xh=B()(Ce(()=>({keys:new Set,actions:{}}))),Sh=new Map;function Ch(e,t){let n=Sh.get(e);return n||(n=new Set,Sh.set(e,n)),n.add(t),()=>{n.delete(t),n.size===0&&Sh.delete(e)}}function wh(e){let t=Sh.get(e);if(t)for(let e of t)e()}var Th=new Set([`text`,`search`,`url`,`tel`,`email`,`password`,`number`,`date`,`datetime-local`,`month`,`week`,`time`]),Eh=new Set([`Space`,`Enter`,`NumpadEnter`,`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`]);function Dh(e){if(e.code===`Tab`)return document.pointerLockElement?(e.preventDefault(),!1):!0;let t=document.activeElement;if(!t||t===document.body)return!1;let n=t.tagName;if(t.isContentEditable||n===`TEXTAREA`)return!0;if(n===`INPUT`){let n=t.type.toLowerCase();return Th.has(n)?!0:Eh.has(e.code)}return n===`BUTTON`||n===`SELECT`||n===`A`||n===`SUMMARY`?Eh.has(e.code):!1}function Oh(e){if(e.metaKey||Dh(e))return;let{keys:t}=xh.getState();if(t.has(e.code))return;let n=new Set(t);n.add(e.code),xh.setState(e=>({...e,keys:n}))}function kh(e){let{keys:t}=xh.getState();if(!t.has(e.code))return;let n=new Set(t);if(n.delete(e.code),e.code===`MetaLeft`||e.code===`MetaRight`)for(let e of n)fh.has(e)||n.delete(e);xh.setState(e=>({...e,keys:n}))}function Ah(){let{keys:e}=xh.getState();e.size!==0&&xh.setState(e=>({...e,keys:new Set}))}window.addEventListener(`keydown`,Oh),window.addEventListener(`keyup`,kh),window.addEventListener(`blur`,Ah);function jh(e){let t=(0,U.c)(2),n;return t[0]===e?n=t[1]:(n=t=>e(t.actions),t[0]=e,t[1]=n),z(xh,n)}function Mh(){let e=(0,U.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[xh.subscribe,Nh],e[0]=t):t=e[0],t}function Nh(){return xh.getState().actions}function Ph(){let{actions:e}=xh.getState(),t={};for(let[n,r]of Object.entries(e))`deltaX`in r&&(r.deltaX!==0||r.deltaY!==0)&&(t[n]={...r,deltaX:0,deltaY:0});Object.keys(t).length>0&&xh.setState(e=>({...e,actions:{...e.actions,...t}}))}function Fh(e,t){let n=(0,U.c)(5),r=(0,H.useEffectEvent)(t),i;n[0]!==e||n[1]!==r?(i=()=>Ch(e,r),n[0]=e,n[1]=r,n[2]=i):i=n[2];let a;n[3]===e?a=n[4]:(a=[e],n[3]=e,n[4]=a),(0,H.useEffect)(i,a)}var Ih=1,Lh=11,Rh=.002;function zh(e){let t=(e-x)/(1-x);return(Math.round(t*15)+1)/16}function Bh(e,t){let n=e[t];return n!=null&&`pressed`in n&&n.pressed}function Vh(){let e=(0,U.c)(41),t=g(),{speedMultiplier:n,setSpeedMultiplier:r,mouseSensitivity:i,invertScroll:s,invertDrag:c}=b(),{onInput:l,mode:u}=ch(),[,d]=Mh(),f=o(Wh),{setCameraIndex:p,cameraCount:m}=ah(),h=(0,H.useRef)(!1),_=(0,H.useRef)(!1),v,y;e[0]===t?(v=e[1],y=e[2]):(v=()=>{t&&document.pointerLockElement&&document.exitPointerLock()},y=[t],e[0]=t,e[1]=v,e[2]=y),(0,H.useEffect)(v,y);let S;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(S=[],e[3]=S):S=e[3],(0,H.useEffect)(Hh,S);let C;e[4]!==f||e[5]!==t?(C=()=>{!t&&!De.getState().animation&&f.domElement.requestPointerLock()},e[4]=f,e[5]=t,e[6]=C):C=e[6],Fh(`canvasClick`,C);let w;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{h.current=!0},e[7]=w):w=e[7],Fh(`nextPlayer`,w);let T;e[8]!==d||e[9]!==s||e[10]!==r?(T=()=>{let e=d().adjustSpeed;if(!e||e.deltaY===0)return;let t=s?-1:1,n=(e.deltaY>0?-1:1)*t,i=Math.ceil(Math.log2(Math.abs(e.deltaY)+1)),a=Math.max(Ih,Math.min(Lh,i))*n;r(e=>{let t=Math.round(e*100)+a;return Math.max(x,Math.min(1,t/100))})},e[8]=d,e[9]=s,e[10]=r,e[11]=T):T=e[11],Fh(`adjustSpeed`,T);let E;e[12]!==m||e[13]!==p?(E=e=>{eD(0),e[15]=D,e[16]=O),Fh(`camera1`,O);let k;e[17]===D?k=e[18]:(k=()=>D(1),e[17]=D,e[18]=k),Fh(`camera2`,k);let A;e[19]===D?A=e[20]:(A=()=>D(2),e[19]=D,e[20]=A),Fh(`camera3`,A);let j;e[21]===D?j=e[22]:(j=()=>D(3),e[21]=D,e[22]=j),Fh(`camera4`,j);let M;e[23]===D?M=e[24]:(M=()=>D(4),e[23]=D,e[24]=M),Fh(`camera5`,M);let N;e[25]===D?N=e[26]:(N=()=>D(5),e[25]=D,e[26]=N),Fh(`camera6`,N);let P;e[27]===D?P=e[28]:(P=()=>D(6),e[27]=D,e[28]=P),Fh(`camera7`,P);let F;e[29]===D?F=e[30]:(F=()=>D(7),e[29]=D,e[30]=F),Fh(`camera8`,F);let I;e[31]===D?I=e[32]:(I=()=>D(8),e[31]=D,e[32]=I),Fh(`camera9`,I);let ee;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(ee=()=>{_.current=!0},e[33]=ee):ee=e[33],Fh(`toggleObserverMode`,ee);let L;return e[34]!==d||e[35]!==c||e[36]!==u||e[37]!==i||e[38]!==l||e[39]!==n?(L=(e,t)=>{if(De.getState().animation)return;let r=d(),a=0,o=0,s=r.lockedLook;s&&(s.deltaX!==0||s.deltaY!==0)&&(a=s.deltaX*i,o=s.deltaY*i);let f=r.dragLook;if(f?.dragging&&(f.deltaX!==0||f.deltaY!==0)){let e=(c?1:-1)*(u===`follow`?-1:1);a+=e*f.deltaX*Rh,o+=e*f.deltaY*Rh}Bh(r,`lookLeft`)&&(a-=1*t),Bh(r,`lookRight`)&&(a+=1*t),Bh(r,`lookUp`)&&(o-=1*t),Bh(r,`lookDown`)&&(o+=1*t);let p=0,m=0,g=0;Bh(r,`moveLeft`)&&(p=-1),Bh(r,`moveRight`)&&(p+=1),Bh(r,`moveForward`)&&(m=1),Bh(r,`moveBackward`)&&--m,Bh(r,`moveUp`)&&(g=1),Bh(r,`moveDown`)&&--g;let v=zh(n);p=Math.max(-1,Math.min(1,p*v)),m=Math.max(-1,Math.min(1,m*v)),g=Math.max(-1,Math.min(1,g*v));let y=[!1,!1,!1,!1,!1,!1];h.current&&=(y[0]=!0,!1),_.current&&=(y[2]=!0,!1),Ph();let b=a!==0||o!==0,x=p!==0||m!==0||g!==0,S=y.some(Boolean);!b&&!x&&!S||l({deltaYaw:a,deltaPitch:o,x:p,y:m,z:g,triggers:y,delta:t})},e[34]=d,e[35]=c,e[36]=u,e[37]=i,e[38]=l,e[39]=n,e[40]=L):L=e[40],a(L),null}function Hh(){return De.subscribe(Uh)}function Uh(e){e.animation&&document.pointerLockElement&&document.exitPointerLock()}function Wh(e){return e.gl}var Gh=(0,H.lazy)(()=>Te(()=>import(`./TouchHandler-BYqo6IGL.js`).then(e=>({default:e.TouchHandler})),__vite__mapDeps([7,8,2,9,3,10,11,12,13,14,15])));function Kh(e){let t=(0,U.c)(9),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],t[0]=r):r=t[0];let i=(0,H.useRef)(r),[a,o]=(0,H.useState)(`local`),s;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=e=>{i.current.push(e)},t[1]=s):s=t[1];let c=s,l;t[2]===a?l=t[3]:(l={moveQueue:i,onInput:c,mode:a,setMode:o},t[2]=a,t[3]=l);let u;t[4]===n?u=t[5]:(u=(0,W.jsx)(at,{children:n}),t[4]=n,t[5]=u);let d;return t[6]!==l||t[7]!==u?(d=(0,W.jsx)(sh.Provider,{value:l,children:u}),t[6]=l,t[7]=u,t[8]=d):d=t[8],d}function qh(){let e=(0,U.c)(5),t=g(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,W.jsx)(Vh,{}),e[0]=n):n=e[0];let r;e[1]===t?r=e[2]:(r=t?(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(Gh,{})}):null,e[1]=t,e[2]=r);let i;return e[3]===r?i=e[4]:(i=(0,W.jsxs)(W.Fragment,{children:[n,r]}),e[3]=r,e[4]=i),i}var Jh=(0,H.lazy)(()=>Te(()=>import(`./TouchJoystick-Cnt0wcWJ.js`).then(e=>({default:e.TouchJoystick})),__vite__mapDeps([16,2,17,11,9,12,10,13,14,15,18]))),Yh=(0,H.lazy)(()=>Te(()=>import(`./KeyboardOverlay-mMSQ0ePd.js`).then(e=>({default:e.KeyboardOverlay})),__vite__mapDeps([19,2,11,9,12,10,13,14,20,21,22,23])));function Xh(){let e=(0,U.c)(9),t=g(),n=Ee(Zh),{showInputOverlay:r}=u(),i;e[0]!==t||e[1]!==n?(i=t&&!n?(0,W.jsx)(Jh,{}):null,e[0]=t,e[1]=n,e[2]=i):i=e[2];let a;e[3]!==t||e[4]!==r?(a=t===!1&&r?(0,W.jsx)(Yh,{}):null,e[3]=t,e[4]=r,e[5]=a):a=e[5];let o;return e[6]!==i||e[7]!==a?(o=(0,W.jsxs)(H.Suspense,{children:[i,a]}),e[6]=i,e[7]=a,e[8]=o):o=e[8],o}function Zh(e){return e.animation!==null}var Qh={LoadingIndicator:`_LoadingIndicator_8ijel_1`,loadingComplete:`_loadingComplete_8ijel_1`,Spinner:`_Spinner_8ijel_19`,spin:`_spin_8ijel_1`,Progress:`_Progress_8ijel_28`,ProgressBar:`_ProgressBar_8ijel_36`,ProgressText:`_ProgressText_8ijel_43`};function $h(e){let t=(0,U.c)(12),{isLoading:n,progress:r}=e,i=r===void 0?null:r,a=(i??0)*100,o=!n,s=i==null,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,W.jsx)(`div`,{className:Qh.Spinner}),t[0]=c):c=t[0];let l=`${a}%`,u;t[1]===l?u=t[2]:(u=(0,W.jsx)(`div`,{className:Qh.Progress,children:(0,W.jsx)(`div`,{className:Qh.ProgressBar,style:{width:l}})}),t[1]=l,t[2]=u);let d;t[3]===a?d=t[4]:(d=Math.round(a),t[3]=a,t[4]=d);let f;t[5]===d?f=t[6]:(f=(0,W.jsxs)(`div`,{className:Qh.ProgressText,children:[d,`%`]}),t[5]=d,t[6]=f);let p;return t[7]!==o||t[8]!==s||t[9]!==u||t[10]!==f?(p=(0,W.jsxs)(`div`,{className:Qh.LoadingIndicator,"data-complete":o,"data-indeterminate":s,children:[c,u,f]}),t[7]=o,t[8]=s,t[9]=u,t[10]=f,t[11]=p):p=t[11],p}var eg={Dialog:`_Dialog_1t9wa_1`,Overlay:`_Overlay_1t9wa_22`,DialogButton:`_DialogButton_1t9wa_33`,Secondary:`_Secondary_1t9wa_72 _DialogButton_1t9wa_33`,Actions:`_Actions_1t9wa_86`};function tg(e){let t=(0,U.c)(5),{onClose:n}=e,r;t[0]===n?r=t[1]:(r=e=>{n?.()},t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,W.jsx)(`div`,{className:eg.Dialog,children:(0,W.jsx)($h,{isLoading:!0})}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,W.jsx)(`div`,{className:eg.Overlay,onClick:r,children:i}),t[3]=r,t[4]=a),a}var ng={Button:`_Button_n870r_1`};function rg(e){let t=(0,U.c)(9),{isOpen:n,orientation:r,onClick:i}=e,a=n?`Close sidebar`:`Open sidebar`,o=n?`Close sidebar`:`Open sidebar`,s;t[0]!==n||t[1]!==r?(s=r===`top`?n?(0,W.jsx)(Yi,{}):(0,W.jsx)(Ji,{}):n?(0,W.jsx)(Zi,{}):(0,W.jsx)(Xi,{}),t[0]=n,t[1]=r,t[2]=s):s=t[2];let c;return t[3]!==i||t[4]!==r||t[5]!==a||t[6]!==o||t[7]!==s?(c=(0,W.jsx)(`button`,{type:`button`,className:ng.Button,"data-orientation":r,"aria-label":a,title:o,onClick:i,children:s}),t[3]=i,t[4]=r,t[5]=a,t[6]=o,t[7]=s,t[8]=c):c=t[8],c}var ig={Button:`_Button_17xa1_1 _DestructiveActionButton_p0g82_141 _Button_p0g82_2`,ButtonLabel:`_ButtonLabel_17xa1_9 _ButtonLabel_p0g82_37`};function ag(){let e=(0,U.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,W.jsxs)(`button`,{type:`button`,className:ig.Button,onClick:og,children:[(0,W.jsx)(ya,{}),(0,W.jsx)(`span`,{className:ig.ButtonLabel,children:`Exit tour`})]}),e[0]=t):t=e[0],t}function og(){return De.getState().cancel()}var sg=fe(`shapePreloader`),cg=200,lg=2,ug=!1;function dg(e){let t=e.toLowerCase();return t.startsWith(`bioderm_`)||t.endsWith(`_male.dts`)||t.endsWith(`_female.dts`)?0:t.startsWith(`weapon_`)?1:t.startsWith(`pack_`)?2:3}function fg(){return pe().filter(e=>e.startsWith(`shapes/`)&&e.endsWith(`.dts`)).filter(e=>{let[t]=_e(e);return t===`shapes.vl2`}).sort((e,t)=>dg(e)-dg(t)).map(e=>{let[t,n]=_e(e);return`${de}@vl2/${t}/${n.replace(/\.dts$/i,`.glb`)}`})}function pg(){if(ug)return;ug=!0;let e=fg();sg.info(`Preloading %d shapes from shapes.vl2`,e.length);let t=0;function n(){let r=Math.min(t+lg,e.length);for(let n=t;nt().then(t=>({default:t[e]})))}var _g=gg(`GameView`,()=>Te(()=>import(`./GameView-Bie98edJ.js`),__vite__mapDeps([24,2,17,25,5,26,27,28,8,9,3,10,29,11,12,13,14,30,31,32,22,33,34,35,36,37,38,39,40,1,4,41,42]))),vg=gg(`DemoPlaybackControls`,()=>Te(()=>import(`./DemoPlaybackControls-CwlogtTb.js`),__vite__mapDeps([43,2,20,21,9,44]))),yg=gg(`PlayerHUD`,()=>Te(()=>import(`./PlayerHUD-CuRF2gd3.js`),__vite__mapDeps([45,2,17,11,9,12,10,13,14,32,25,5,38,46]))),bg=gg(`MapInfoDialog`,()=>Te(()=>import(`./MapInfoDialog-DSwIQB7a.js`),__vite__mapDeps([47,2,29,9,32,25,5,13,14,48]))),xg=gg(`ServerBrowser`,()=>Te(()=>import(`./ServerBrowser-CL7giwqp.js`),__vite__mapDeps([49,2,11,9,12,10,13,14,50]))),Sg=gg(`ScoreScreen`,()=>Te(()=>import(`./ScoreScreen-BnLWM4r1.js`),__vite__mapDeps([51,2,9,12,10,14,52])));function Cg(){let[e,t]=S(),n=Et(),{clearFogEnabledOverride:r,sidebarOpen:i,setSidebarOpen:a}=u(),{missionName:o,missionType:s}=e,[c,l]=(0,H.useState)(!1),[d,f]=(0,H.useState)(!1),[p,m]=(0,H.useState)(!1),[h,_]=(0,H.useState)(!1),[v,y]=(0,H.useState)(0),[b,x]=(0,H.useState)(!0),C=g(),w=Ee(e=>e.animation!==null),T=(0,H.useCallback)(e=>{window.location.hash=``,r(),_(!1),De.getState().cancel(),Vn.getState().disconnectServer(),we.getState().setRecording(null),K.getState().endStreaming(),t(e),C&&a(!1)},[r,t,C,a]);nh({onChangeMission:T});let E=Gn(),D=Sn(),O=D===`demo`||D===`live`;(0,H.useEffect)(()=>{O&&pg()},[O]);let k=wn(),A=En();(0,H.useEffect)(()=>{if(!(!O||!k))try{let e=he(k);t({missionName:k,missionType:A&&e.missionTypes.includes(A)?A:void 0})}catch{t(null)}},[O,k,A,t]),(0,H.useEffect)(()=>{E&&_(!1)},[E]);let j=Hn(e=>e.gameStatus);(0,H.useEffect)(()=>{j===`connected`&&C&&a(!1)},[j,C,a]),(0,H.useEffect)(()=>{E&&C&&a(!1)},[C,E,a]),(0,H.useEffect)(()=>{w&&C&&a(!1)},[C,w,a]),(0,H.useEffect)(()=>{let e=e=>{e.code===`Backslash`&&(e.metaKey||e.ctrlKey)&&(e.stopPropagation(),e.preventDefault(),a(e=>!e))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]);let M=v,N=M<1;(0,H.useEffect)(()=>{if(N)x(!0);else{let e=setTimeout(()=>x(!1),500);return()=>clearTimeout(e)}},[N]);let P=(0,H.useCallback)((e,t=0)=>{y(t)},[]),F=(0,H.useRef)(null),I=(0,H.useRef)(null),ee=(0,H.useCallback)(()=>l(!0),[]),L=(0,H.useCallback)(()=>m(!0),[]),R=(0,H.useCallback)(()=>{f(!0)},[]),te=(0,H.useCallback)(()=>_(!0),[]),ne=(0,H.useCallback)(()=>{_(!1)},[]),re=(0,H.useCallback)(e=>{F.current=e.camera,I.current=e.invalidate},[]);return(0,W.jsx)(`main`,{className:mg.Frame,children:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`header`,{className:mg.Toolbar,children:[(0,W.jsx)(rg,{orientation:`top`,isOpen:i,onClick:()=>{a(e=>!e)}}),(0,W.jsx)(rg,{orientation:`left`,isOpen:i,onClick:()=>{a(e=>!e)}}),(0,W.jsx)(H.Activity,{mode:O&&!h?`visible`:`hidden`,children:(0,W.jsx)(Qm,{})}),(0,W.jsx)(H.Activity,{mode:!O||h?`visible`:`hidden`,children:(0,W.jsx)(qm,{value:h?``:o,missionType:h?``:s??``,onChange:T,autoFocus:h,onCancel:ne})}),w&&(0,W.jsx)(ag,{})]}),i?(0,W.jsx)(`div`,{className:mg.Backdrop}):null,(0,W.jsx)(H.Activity,{mode:i?`visible`:`hidden`,children:(0,W.jsx)(`div`,{className:mg.Sidebar,"data-open":i,children:(0,W.jsx)(no,{missionName:o,missionType:s,choosingMap:h,cameraRef:F,invalidateRef:I,onOpenMapInfo:ee,onOpenScoreScreen:O?L:void 0,onOpenServerBrowser:n.live?R:void 0,onChooseMap:te,onCancelChoosingMap:ne,onClose:()=>{a(!1)}})})}),(0,W.jsx)(Kh,{children:(0,W.jsxs)(`div`,{className:mg.Content,children:[(0,W.jsx)(`div`,{className:mg.ThreeView,children:(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(_g,{missionName:o,missionType:s,dpr:c||d||p?.25:void 0,onCreated:re,onLoadingChange:P})})}),O&&!p?(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(yg,{})}):null,(0,W.jsx)(Xh,{}),b&&(0,W.jsx)($h,{isLoading:N,progress:M})]})}),(0,W.jsx)(`footer`,{className:mg.PlayerBar,children:E?.source===`demo`?(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(vg,{})}):null}),c?(0,W.jsx)(hg,{children:(0,W.jsx)(H.Suspense,{fallback:(0,W.jsx)(tg,{onClose:()=>l(!1)}),children:(0,W.jsx)(bg,{onClose:()=>l(!1),missionName:o,missionType:s??``})})}):null,d?(0,W.jsx)(hg,{children:(0,W.jsx)(H.Suspense,{fallback:(0,W.jsx)(tg,{onClose:()=>f(!1)}),children:(0,W.jsx)(xg,{onClose:()=>f(!1)})})}):null,p?(0,W.jsx)(hg,{children:(0,W.jsx)(H.Suspense,{fallback:(0,W.jsx)(tg,{onClose:()=>m(!1)}),children:(0,W.jsx)(Sg,{onClose:()=>m(!1)})})}):null]})})}var wg=new wt({defaultOptions:{queries:{refetchOnWindowFocus:!1}}});wg.prefetchQuery({queryKey:ce,queryFn:le,staleTime:1/0});function Tg(){let e=(0,U.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,W.jsx)(H.Suspense,{children:(0,W.jsx)(ht,{children:(0,W.jsx)(Dt,{children:(0,W.jsx)(F,{client:wg,children:(0,W.jsx)(v,{children:(0,W.jsx)(Cg,{})})})})})}),e[0]=t):t=e[0],t}(0,ot.createRoot)(document.getElementById(`root`)).render((0,W.jsx)(H.StrictMode,{children:(0,W.jsx)(Tg,{})}));export{Hn as A,Jt as B,Yn as C,Gn as D,tr as E,bn as F,Ft as G,zt as H,xn as I,Mt as J,Pt as K,cn as L,gn as M,Sn as N,$n as O,_n as P,on as R,Wn as S,qn as T,Lt as U,Bt as V,It as W,ah as _,hh as a,Wi as b,wh as c,jh as d,Mh as f,oh as g,lh as h,yh as i,K as j,Vn as k,ph as l,uh as m,_h as n,xh as o,ch as p,Nt as q,bh as r,mh as s,qh as t,Fh as u,Mm as v,Zn as w,Ui as x,qi as y,rn as z}; \ No newline at end of file diff --git a/docs/assets/loaders-5n1D4iOD.js b/docs/assets/loaders-5n1D4iOD.js new file mode 100644 index 00000000..9db5b99f --- /dev/null +++ b/docs/assets/loaders-5n1D4iOD.js @@ -0,0 +1 @@ +import{t as e}from"./logger-B058WGzf.js";import{c as t,n,s as r,t as i}from"./manifest-BIDT_vSa.js";import{a}from"./stringUtils-1MyeFdQ_.js";import{a as o}from"./mission-yeigCtfF.js";function s(e){return e.split(/(?:\r\n|\r|\n)/g).map(e=>e.trim()).filter(Boolean).filter(e=>!e.startsWith(`;`)).map(e=>{let t=e.match(/^(.+)\s(\d+)$/);if(t){let e=parseInt(t[2],10);return{name:t[1],frameCount:e}}else return{name:e,frameCount:1}})}var c=256;function l(e){let t=new DataView(e),n=0,r=t.getUint8(n++),i=new Uint16Array(c*c),a=[],o=e=>{let r=``;for(let i=0;i0&&a.push(i)}let l=[];for(let e of a){let e=new Uint8Array(c*c);for(let r=0;r1?r.slice(0,-1).join(`/`)+`/`:``}${e}`),f)}function v(e,n=f){return p(t(`textures/${e}`),n??void 0)}function y(e){return p(`audio/${/\.\w+$/.test(e)?e:`${e}.wav`}`).replace(/\.wav$/i,`.m4a`)}async function b(e){let t=p(`textures/${e}`);return(await(await fetch(t)).text()).split(/(?:\r\n|\r|\n)/).map(e=>{if(e=e.trim(),!e.startsWith(`;`))return e}).filter(Boolean)}async function x(e){let t=n(e),r=await(await fetch(p(t.resourcePath))).arrayBuffer(),i;try{i=new TextDecoder(`utf-8`,{fatal:!0}).decode(r)}catch{i=new TextDecoder(`windows-1252`).decode(r)}return i=i.replaceAll(`�`,`'`),o(i)}async function S(e){let t=p(`terrains/${e}`);u.debug(`Fetching terrain: %s`,t);let n=await fetch(t);if(!n.ok)throw Error(`[loadTerrain] Failed to fetch ${t}: ${n.status} ${n.statusText}`);let r=await n.arrayBuffer();return u.debug(`Loaded terrain %s: %d bytes`,e,r.byteLength),l(r)}async function C(e){let t=p(e);return s(await(await fetch(t)).text())}export{_ as a,C as c,h as d,g as f,p as i,x as l,d as n,m as o,v as p,y as r,b as s,f as t,S as u}; \ No newline at end of file diff --git a/docs/assets/loaders-B4T775qz.js b/docs/assets/loaders-B4T775qz.js deleted file mode 100644 index 1885179e..00000000 --- a/docs/assets/loaders-B4T775qz.js +++ /dev/null @@ -1 +0,0 @@ -import{t as e}from"./logger-B058WGzf.js";import{c as t,n,s as r,t as i}from"./manifest-BIDT_vSa.js";import{a}from"./stringUtils-1MyeFdQ_.js";import{a as o}from"./mission-yeigCtfF.js";function s(e){return e.split(/(?:\r\n|\r|\n)/g).map(e=>e.trim()).filter(Boolean).filter(e=>!e.startsWith(`;`)).map(e=>{let t=e.match(/^(.+)\s(\d+)$/);if(t){let e=parseInt(t[2],10);return{name:t[1],frameCount:e}}else return{name:e,frameCount:1}})}var c=256;function l(e){let t=new DataView(e),n=0,r=t.getUint8(n++),i=new Uint16Array(c*c),a=[],o=e=>{let r=``;for(let i=0;i0&&a.push(i)}let l=[];for(let e of a){let e=new Uint8Array(c*c);for(let r=0;r1?r.slice(0,-1).join(`/`)+`/`:``}${e}`),p)}function y(e,n=p){return m(t(`textures/${e}`),n??void 0)}function b(e){return m(`audio/${/\.\w+$/.test(e)?e:`${e}.wav`}`).replace(/\.wav$/i,`.m4a`)}async function x(e){let t=m(`textures/${e}`);return(await(await fetch(t)).text()).split(/(?:\r\n|\r|\n)/).map(e=>{if(e=e.trim(),!e.startsWith(`;`))return e}).filter(Boolean)}async function S(e){let t=n(e),r=await(await fetch(m(t.resourcePath))).arrayBuffer(),i;try{i=new TextDecoder(`utf-8`,{fatal:!0}).decode(r)}catch{i=new TextDecoder(`windows-1252`).decode(r)}return i=i.replaceAll(`�`,`'`),o(i)}async function C(e){let t=m(`terrains/${e}`);u.debug(`Fetching terrain: %s`,t);let n=await fetch(t);if(!n.ok)throw Error(`[loadTerrain] Failed to fetch ${t}: ${n.status} ${n.statusText}`);let r=await n.arrayBuffer();return u.debug(`Loaded terrain %s: %d bytes`,e,r.byteLength),l(r)}async function w(e){let t=m(e);return s(await(await fetch(t)).text())}export{v as a,w as c,g as d,_ as f,m as i,S as l,f as n,h as o,y as p,b as r,x as s,p as t,C as u}; \ No newline at end of file diff --git a/docs/assets/playbackUtils-DjmjN4tv.js b/docs/assets/playbackUtils-DuS6opSR.js similarity index 99% rename from docs/assets/playbackUtils-DjmjN4tv.js rename to docs/assets/playbackUtils-DuS6opSR.js index 0369e80b..05800530 100644 --- a/docs/assets/playbackUtils-DjmjN4tv.js +++ b/docs/assets/playbackUtils-DuS6opSR.js @@ -1,4 +1,4 @@ -import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{Ct as i,Gt as a,Ot as o,Wt as s,a as c,at as l,g as u,kt as d,o as f,ot as p,q as m,rt as ee,ut as h,v as g,wt as _}from"./three.module-DKAirPAO.js";import{a as v,i as y,n as te,t as b,u as x}from"./textureUtils-Bk_jPZib.js";import{a as S,c as ne,p as C}from"./loaders-B4T775qz.js";var w={directional:1,ambient:1.5};function T(e){e.uniforms.shapeDirectionalFactor={value:w.directional},e.uniforms.shapeAmbientFactor={value:w.ambient},e.fragmentShader=e.fragmentShader.replace(`#include `,`#include +import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{Ct as i,Gt as a,Ot as o,Wt as s,a as c,at as l,g as u,kt as d,o as f,ot as p,q as m,rt as ee,ut as h,v as g,wt as _}from"./three.module-DKAirPAO.js";import{a as v,i as y,n as te,t as b,u as x}from"./textureUtils-Bk_jPZib.js";import{a as S,c as ne,p as C}from"./loaders-5n1D4iOD.js";var w={directional:1,ambient:1.5};function T(e){e.uniforms.shapeDirectionalFactor={value:w.directional},e.uniforms.shapeAmbientFactor={value:w.ambient},e.fragmentShader=e.fragmentShader.replace(`#include `,`#include uniform float shapeDirectionalFactor; uniform float shapeAmbientFactor; `),e.fragmentShader=e.fragmentShader.replace(`#include `,`#include diff --git a/docs/index.html b/docs/index.html index 53acfaf0..2ad01295 100644 --- a/docs/index.html +++ b/docs/index.html @@ -19,7 +19,7 @@ - + @@ -36,15 +36,15 @@ - + - + - + - + diff --git a/package.json b/package.json index 06bc773f..1c8208e0 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "build:manifest": "tsx --tsconfig tsconfig.node.json scripts/generate-manifest.ts -o src/manifest.json", "build:parser": "peggy TorqueScript.pegjs -o generated/TorqueScript.js --format es", "build": "vite build", + "build:gh-pages": "BASE_PATH=/t2-mapper/ npm run build", "copy-public": "cpy --dot 'public/*' '!(public/docs)' docs", "format": "prettier --write .", "lint": "eslint .", diff --git a/src/components/PlayerModel.tsx b/src/components/PlayerModel.tsx index 1e4e6e87..10ee1ba4 100644 --- a/src/components/PlayerModel.tsx +++ b/src/components/PlayerModel.tsx @@ -71,8 +71,8 @@ import type { PlayerEntity } from "../state/gameEntityTypes"; */ export const playerEyePositions = new Map(); -const SKIN_BASE_URL = "https://exogen.github.io/t2-skins/skins/"; -const SKIN_MANIFEST_URL = "https://exogen.github.io/t2-skins/skins.json"; +const SKIN_BASE_URL = "https://assets.tribes2.online/skins/files/"; +const SKIN_MANIFEST_URL = "https://assets.tribes2.online/skins/manifest.json"; /** Map shape DTS name to skin texture suffix. */ const SKIN_SUFFIXES: Record = { diff --git a/src/loaders.ts b/src/loaders.ts index b14dc633..f02d35e2 100644 --- a/src/loaders.ts +++ b/src/loaders.ts @@ -14,9 +14,8 @@ const log = createLogger("loaders"); export type { TerrainFile }; -export const BASE_URL = "/t2-mapper"; -export const RESOURCE_ROOT_URL = `${BASE_URL}/base/`; -export const FALLBACK_TEXTURE_URL = `${BASE_URL}/white.png`; +export const RESOURCE_ROOT_URL = `${process.env.BASE_PATH}base/`; +export const FALLBACK_TEXTURE_URL = `${process.env.BASE_PATH}white.png`; export function getUrlForPath(resourcePath: string, fallbackUrl?: string) { let resourceKey; diff --git a/vite.config.ts b/vite.config.ts index ff86bfa3..946e4251 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -7,13 +7,15 @@ export default defineConfig(({ mode }) => { // Only expose specific env vars to the client bundle — loadEnv requires a // prefix, so we load with each var's own prefix and pick the value out. const allEnv = loadEnv(mode, process.cwd(), ""); + const basePath = allEnv.BASE_PATH || "/"; const publicEnvKeys = ["LOG_LEVEL", "RELAY_URL"]; const define: Record = {}; for (const key of publicEnvKeys) { define[`process.env.${key}`] = JSON.stringify(allEnv[key] ?? ""); } + define["process.env.BASE_PATH"] = JSON.stringify(basePath); return { - base: "/t2-mapper/", + base: basePath, server: { port: 3000 }, define, build: {