From e7315c043a9f848be0ccb19e52b77739f9620ec3 Mon Sep 17 00:00:00 2001 From: Brian Beck Date: Wed, 8 Apr 2026 23:00:53 -0700 Subject: [PATCH] fix mount rotations, add lights to flag and repair packs --- ...nput-B4ui_Qn8.js => ChatInput-B3JiLpoF.js} | 2 +- ...XN.js => DemoPlaybackControls-ByWxYIZa.js} | 2 +- ...Cmot7uAQ.js => ExplosionShape-CFtLb8wO.js} | 2 +- ...eView-BMPs220K.js => GameView-DDyKEtZP.js} | 92 +-- ...6kCnbeh.js => KeyboardOverlay-8NIHVGaH.js} | 2 +- ...-DlXHsR03.js => MapInfoDialog-DlTvQpC9.js} | 2 +- docs/assets/Mission-BEL-ZcOh.js | 1 - docs/assets/Mission-RZOaitqM.js | 1 + ...rHUD-CVj7JVJO.js => PlayerHUD-oFKWuzte.js} | 4 +- docs/assets/PlayerModel-D8NLwrT8.js | 2 + docs/assets/PlayerModel-DY4jKfUP.js | 2 - ...el-CsbVaSkV.js => PlayerModel-Kcb6K1_s.js} | 2 +- ...en-Ckch_fOf.js => ScoreScreen-Di92fTHh.js} | 2 +- ...-D4Uk1kaE.js => ServerBrowser-DlvPvTfO.js} | 2 +- ...f6m.js => StreamingController-mmR1lAIE.js} | 4 +- ...r-BRcAuQuj.js => TouchHandler-C-XYcmBd.js} | 2 +- ...-5yexEeii.js => demoStreaming-VZXXHEQr.js} | 2 +- docs/assets/index-BnXbiEzA.js | 4 + docs/assets/index-D4aiQcCU.js | 4 - .../TR2final105-client.vl2/shapes/TR2flag.glb | Bin 6884 -> 123416 bytes .../shapes/TR2heavy_male.glb | Bin 760960 -> 785916 bytes .../shapes/TR2light_female.glb | Bin 718712 -> 728576 bytes .../shapes/TR2light_male.glb | Bin 111528 -> 121576 bytes .../shapes/TR2medium_female.glb | Bin 730460 -> 740516 bytes .../shapes/TR2medium_male.glb | Bin 753524 -> 763376 bytes .../shapes/TR2weapon_chaingun.glb | Bin 56316 -> 56756 bytes .../shapes/TR2weapon_disc.glb | Bin 23720 -> 24084 bytes .../shapes/TR2weapon_grenade_launcher.glb | Bin 30052 -> 60116 bytes .../shapes/TR2weapon_shocklance.glb | Bin 42400 -> 44816 bytes .../@vl2/shapes.vl2/shapes/banner_honor.glb | Bin 6348 -> 41676 bytes .../shapes.vl2/shapes/banner_strength.glb | Bin 6352 -> 41680 bytes .../@vl2/shapes.vl2/shapes/banner_unity.glb | Bin 6348 -> 41676 bytes docs/base/@vl2/shapes.vl2/shapes/beacon.glb | Bin 7480 -> 7792 bytes .../@vl2/shapes.vl2/shapes/bioderm_heavy.glb | Bin 988624 -> 1010948 bytes .../@vl2/shapes.vl2/shapes/bioderm_light.glb | Bin 941980 -> 951852 bytes .../@vl2/shapes.vl2/shapes/bioderm_medium.glb | Bin 973092 -> 982820 bytes docs/base/@vl2/shapes.vl2/shapes/borg3.glb | Bin 5208 -> 223188 bytes .../@vl2/shapes.vl2/shapes/chaingun_shot.glb | Bin 7868 -> 18340 bytes .../@vl2/shapes.vl2/shapes/deploy_ammo.glb | Bin 32764 -> 309972 bytes .../shapes.vl2/shapes/deploy_inventory.glb | Bin 68992 -> 72940 bytes .../shapes/deploy_sensor_motion.glb | Bin 19396 -> 20748 bytes docs/base/@vl2/shapes.vl2/shapes/disc.glb | Bin 11392 -> 23080 bytes .../@vl2/shapes.vl2/shapes/disc_explosion.glb | Bin 17392 -> 138908 bytes .../shapes/effect_plasma_explosion.glb | Bin 6808 -> 80264 bytes .../@vl2/shapes.vl2/shapes/energy_bolt.glb | Bin 9372 -> 55620 bytes docs/base/@vl2/shapes.vl2/shapes/flag.glb | Bin 8888 -> 27220 bytes .../@vl2/shapes.vl2/shapes/gravemarker_1.glb | Bin 24324 -> 44264 bytes docs/base/@vl2/shapes.vl2/shapes/grenade.glb | Bin 13648 -> 14120 bytes .../@vl2/shapes.vl2/shapes/grenade_flare.glb | Bin 24864 -> 26592 bytes .../@vl2/shapes.vl2/shapes/heavy_male.glb | Bin 842088 -> 867184 bytes .../@vl2/shapes.vl2/shapes/light_female.glb | Bin 883820 -> 893792 bytes .../@vl2/shapes.vl2/shapes/light_male.glb | Bin 830280 -> 840376 bytes .../@vl2/shapes.vl2/shapes/medium_female.glb | Bin 876448 -> 886568 bytes .../@vl2/shapes.vl2/shapes/medium_male.glb | Bin 841820 -> 851736 bytes docs/base/@vl2/shapes.vl2/shapes/mine.glb | Bin 30432 -> 30572 bytes .../shapes.vl2/shapes/mortar_explosion.glb | Bin 9704 -> 131228 bytes .../@vl2/shapes.vl2/shapes/nexus_effect.glb | Bin 14316 -> 18564 bytes .../base/@vl2/shapes.vl2/shapes/nexusbase.glb | Bin 42048 -> 62480 bytes docs/base/@vl2/shapes.vl2/shapes/nexuscap.glb | Bin 43080 -> 64192 bytes .../shapes/pack_upgrade_cloaking.glb | Bin 33952 -> 36864 bytes .../shapes.vl2/shapes/pack_upgrade_repair.glb | Bin 27244 -> 28440 bytes .../shapes/pack_upgrade_satchel.glb | Bin 31800 -> 32404 bytes .../shapes/pack_upgrade_sensorjammer.glb | Bin 21448 -> 22256 bytes .../shapes.vl2/shapes/pack_upgrade_shield.glb | Bin 22368 -> 22544 bytes .../@vl2/shapes.vl2/shapes/repair_kit.glb | Bin 17096 -> 63528 bytes .../@vl2/shapes.vl2/shapes/repair_patch.glb | Bin 11148 -> 11632 bytes .../shapes.vl2/shapes/sensor_pulse_large.glb | Bin 31328 -> 32536 bytes .../shapes.vl2/shapes/sensor_pulse_medium.glb | Bin 24696 -> 25356 bytes .../@vl2/shapes.vl2/shapes/solarpanel.glb | Bin 21348 -> 22220 bytes .../shapes/station_generator_large.glb | Bin 54852 -> 69052 bytes .../shapes.vl2/shapes/station_inv_human.glb | Bin 41856 -> 44360 bytes .../shapes.vl2/shapes/station_inv_mpb.glb | Bin 12288 -> 13348 bytes .../shapes.vl2/shapes/station_teleport.glb | Bin 15680 -> 17480 bytes docs/base/@vl2/shapes.vl2/shapes/switch.glb | Bin 40164 -> 41124 bytes .../@vl2/shapes.vl2/shapes/teamlogo_bd.glb | Bin 9368 -> 11008 bytes .../@vl2/shapes.vl2/shapes/teamlogo_be.glb | Bin 8748 -> 10392 bytes .../@vl2/shapes.vl2/shapes/teamlogo_ds.glb | Bin 9116 -> 10756 bytes .../@vl2/shapes.vl2/shapes/teamlogo_hb.glb | Bin 9284 -> 10928 bytes .../@vl2/shapes.vl2/shapes/teamlogo_inf.glb | Bin 10424 -> 12064 bytes .../shapes.vl2/shapes/teamlogo_projector.glb | Bin 7916 -> 9024 bytes .../@vl2/shapes.vl2/shapes/teamlogo_storm.glb | Bin 8864 -> 10508 bytes .../shapes.vl2/shapes/turret_aa_large.glb | Bin 38268 -> 39576 bytes .../shapes/turret_assaulttank_mortar.glb | Bin 28412 -> 28856 bytes .../shapes.vl2/shapes/turret_base_large.glb | Bin 60412 -> 63732 bytes .../shapes.vl2/shapes/turret_base_mpb.glb | Bin 38200 -> 38416 bytes .../shapes.vl2/shapes/turret_elf_large.glb | Bin 69124 -> 71740 bytes .../shapes.vl2/shapes/turret_fusion_large.glb | Bin 32584 -> 33456 bytes .../shapes/turret_indoor_deployc.glb | Bin 50568 -> 50916 bytes .../shapes/turret_indoor_deployf.glb | Bin 50456 -> 50804 bytes .../shapes/turret_indoor_deployw.glb | Bin 54712 -> 55060 bytes .../shapes/turret_missile_large.glb | Bin 36520 -> 37612 bytes .../shapes.vl2/shapes/turret_mortar_large.glb | Bin 72588 -> 75856 bytes .../shapes/turret_outdoor_deploy.glb | Bin 59332 -> 59680 bytes .../@vl2/shapes.vl2/shapes/turret_sentry.glb | Bin 52456 -> 57168 bytes .../shapes/turret_tank_barrelchain.glb | Bin 12928 -> 13260 bytes .../shapes.vl2/shapes/vehicle_air_bomber.glb | Bin 62912 -> 110848 bytes .../shapes.vl2/shapes/vehicle_air_hapc.glb | Bin 68440 -> 116352 bytes .../shapes.vl2/shapes/vehicle_air_scout.glb | Bin 47640 -> 78232 bytes .../shapes.vl2/shapes/vehicle_grav_scout.glb | Bin 45892 -> 59000 bytes .../shapes.vl2/shapes/vehicle_grav_tank.glb | Bin 66192 -> 70348 bytes .../shapes.vl2/shapes/vehicle_land_mpbase.glb | Bin 416044 -> 426628 bytes .../@vl2/shapes.vl2/shapes/vehicle_pad.glb | Bin 120728 -> 143176 bytes .../shapes.vl2/shapes/vehicle_pad_station.glb | Bin 58164 -> 260248 bytes .../shapes.vl2/shapes/weapon_chaingun.glb | Bin 37240 -> 37680 bytes .../@vl2/shapes.vl2/shapes/weapon_disc.glb | Bin 24432 -> 24796 bytes .../@vl2/shapes.vl2/shapes/weapon_energy.glb | Bin 19700 -> 20404 bytes .../shapes/weapon_grenade_launcher.glb | Bin 23128 -> 53336 bytes .../@vl2/shapes.vl2/shapes/weapon_plasma.glb | Bin 42612 -> 43576 bytes .../shapes.vl2/shapes/weapon_shocklance.glb | Bin 44188 -> 46604 bytes docs/base/@vl2/shapes.vl2/shapes/xorg2.glb | Bin 8560 -> 105564 bytes .../z_DMP2-V0.6.vl2/shapes/buildStation.glb | Bin 46748 -> 54148 bytes .../z_DMP2-V0.6.vl2/shapes/hellFireTurret.glb | Bin 37040 -> 37944 bytes .../z_DMP2-V0.6.vl2/shapes/t1CMDStation.glb | Bin 22568 -> 24476 bytes .../z_DMP2-V0.6.vl2/shapes/t1Chaingun.glb | Bin 14420 -> 14720 bytes .../z_DMP2-V0.6.vl2/shapes/t1DepAmmo.glb | Bin 52280 -> 53728 bytes .../z_DMP2-V0.6.vl2/shapes/t1DepInvy.glb | Bin 21680 -> 22544 bytes .../z_DMP2-V0.6.vl2/shapes/t1LSensor.glb | Bin 36052 -> 36816 bytes .../z_DMP2-V0.6.vl2/shapes/t1MisTurret.glb | Bin 39292 -> 39948 bytes .../z_DMP2-V0.6.vl2/shapes/t1PowerGen.glb | Bin 16952 -> 19976 bytes .../z_DMP2-V0.6.vl2/shapes/t1RepairPack.glb | Bin 14604 -> 16460 bytes .../shapes/t1RepairPackGun.glb | Bin 10744 -> 13092 bytes .../z_DMP2-V0.6.vl2/shapes/t1Sentry.glb | Bin 21780 -> 22216 bytes .../z_DMP2-V0.6.vl2/shapes/t1Solar.glb | Bin 18448 -> 20840 bytes .../z_DMP2-V0.6.vl2/shapes/t1TargetLaser.glb | Bin 7408 -> 8036 bytes .../z_DMP2-V0.6.vl2/shapes/t1VehPad.glb | Bin 27364 -> 28836 bytes .../z_DMP2-V0.6.vl2/shapes/t1VehStation.glb | Bin 35492 -> 37780 bytes .../z_DMP2-V0.6.vl2/shapes/t1ammopad.glb | Bin 31600 -> 33932 bytes .../z_DMP2-V0.6.vl2/shapes/t1blaster.glb | Bin 19624 -> 20212 bytes .../z_DMP2-V0.6.vl2/shapes/t1elfTurret.glb | Bin 27268 -> 27920 bytes .../shapes/t1inventorystation.glb | Bin 25576 -> 27796 bytes .../z_DMP2-V0.6.vl2/shapes/t1mSensor.glb | Bin 25332 -> 25876 bytes .../z_DMP2-V0.6.vl2/shapes/t1pGen.glb | Bin 25116 -> 26968 bytes .../z_DMP2-V0.6.vl2/shapes/t2DepAmmo.glb | Bin 57460 -> 58320 bytes docs/index.html | 4 +- src/components/EntityRenderer.tsx | 19 + src/components/EntityScene.tsx | 39 +- src/components/GenericShape.tsx | 525 +++++++++++++----- src/components/StreamingController.tsx | 24 +- src/interiorMaterial.ts | 44 +- src/shaderUtils.ts | 31 ++ src/state/gameEntityTypes.ts | 55 +- src/stream/StreamEngine.ts | 26 + src/stream/entityBridge.ts | 35 +- src/stream/missionEntityBridge.ts | 32 ++ src/stream/types.ts | 7 + src/terrainMaterial.ts | 58 +- 146 files changed, 680 insertions(+), 353 deletions(-) rename docs/assets/{ChatInput-B4ui_Qn8.js => ChatInput-B3JiLpoF.js} (86%) rename docs/assets/{DemoPlaybackControls-DrXShtXN.js => DemoPlaybackControls-ByWxYIZa.js} (97%) rename docs/assets/{ExplosionShape-Cmot7uAQ.js => ExplosionShape-CFtLb8wO.js} (98%) rename docs/assets/{GameView-BMPs220K.js => GameView-DDyKEtZP.js} (63%) rename docs/assets/{KeyboardOverlay-C6kCnbeh.js => KeyboardOverlay-8NIHVGaH.js} (99%) rename docs/assets/{MapInfoDialog-DlXHsR03.js => MapInfoDialog-DlTvQpC9.js} (99%) delete mode 100644 docs/assets/Mission-BEL-ZcOh.js create mode 100644 docs/assets/Mission-RZOaitqM.js rename docs/assets/{PlayerHUD-CVj7JVJO.js => PlayerHUD-oFKWuzte.js} (98%) create mode 100644 docs/assets/PlayerModel-D8NLwrT8.js delete mode 100644 docs/assets/PlayerModel-DY4jKfUP.js rename docs/assets/{PlayerModel-CsbVaSkV.js => PlayerModel-Kcb6K1_s.js} (61%) rename docs/assets/{ScoreScreen-Ckch_fOf.js => ScoreScreen-Di92fTHh.js} (99%) rename docs/assets/{ServerBrowser-D4Uk1kaE.js => ServerBrowser-DlvPvTfO.js} (98%) rename docs/assets/{StreamingController-D56a4f6m.js => StreamingController-mmR1lAIE.js} (65%) rename docs/assets/{TouchHandler-BRcAuQuj.js => TouchHandler-C-XYcmBd.js} (95%) rename docs/assets/{demoStreaming-5yexEeii.js => demoStreaming-VZXXHEQr.js} (99%) create mode 100644 docs/assets/index-BnXbiEzA.js delete mode 100644 docs/assets/index-D4aiQcCU.js create mode 100644 src/shaderUtils.ts diff --git a/docs/assets/ChatInput-B4ui_Qn8.js b/docs/assets/ChatInput-B3JiLpoF.js similarity index 86% rename from docs/assets/ChatInput-B4ui_Qn8.js rename to docs/assets/ChatInput-B3JiLpoF.js index b3ae2629..a4da2c84 100644 --- a/docs/assets/ChatInput-B4ui_Qn8.js +++ b/docs/assets/ChatInput-B3JiLpoF.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-D4aiQcCU.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-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 diff --git a/docs/assets/DemoPlaybackControls-DrXShtXN.js b/docs/assets/DemoPlaybackControls-ByWxYIZa.js similarity index 97% rename from docs/assets/DemoPlaybackControls-DrXShtXN.js rename to docs/assets/DemoPlaybackControls-ByWxYIZa.js index 05184cea..5bfe636f 100644 --- a/docs/assets/DemoPlaybackControls-DrXShtXN.js +++ b/docs/assets/DemoPlaybackControls-ByWxYIZa.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-D4aiQcCU.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-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 diff --git a/docs/assets/ExplosionShape-Cmot7uAQ.js b/docs/assets/ExplosionShape-CFtLb8wO.js similarity index 98% rename from docs/assets/ExplosionShape-Cmot7uAQ.js rename to docs/assets/ExplosionShape-CFtLb8wO.js index 070e6076..975f03f4 100644 --- a/docs/assets/ExplosionShape-Cmot7uAQ.js +++ b/docs/assets/ExplosionShape-CFtLb8wO.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-DY4jKfUP.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-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 diff --git a/docs/assets/GameView-BMPs220K.js b/docs/assets/GameView-DDyKEtZP.js similarity index 63% rename from docs/assets/GameView-BMPs220K.js rename to docs/assets/GameView-DDyKEtZP.js index 51d1ff85..188356df 100644 --- a/docs/assets/GameView-BMPs220K.js +++ b/docs/assets/GameView-DDyKEtZP.js @@ -1,26 +1,24 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlayerModel-CsbVaSkV.js","assets/PlayerModel-DY4jKfUP.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-Cmot7uAQ.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-D56a4f6m.js","assets/index-D4aiQcCU.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-BEL-ZcOh.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-DY4jKfUP.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-D4aiQcCU.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-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;n{e.uniforms[`albedo${n}`]={value:t}});let c=n.length;if(n.forEach((t,n)=>{e.uniforms[`maskPacked${n}`]={value:t}}),r&&(e.uniforms.visibilityMask={value:r}),t.forEach((t,n)=>{e.uniforms[`tiling${n}`]={value:i[n]??32}}),o&&(e.uniforms.terrainLightmap={value:o}),a&&(e.uniforms.detailTexture={value:a},e.uniforms.detailTiling={value:Pt},e.uniforms.detailFadeDistance={value:Ft},e.vertexShader=e.vertexShader.replace(`#include `,`#include +`,Pt=256,Ft=512,It=64,Lt=150;function Rt({shader:e,baseTextures:t,alphaTextures:n,visibilityMask:r,tiling:i,detailTexture:a=null,lightmap:o=null}){e.uniforms.sunLightPointsDown=mt.sunLightPointsDown;let s=t.length;t.forEach((t,n)=>{e.uniforms[`albedo${n}`]={value:t}});let c=n.length;if(n.forEach((t,n)=>{e.uniforms[`maskPacked${n}`]={value:t}}),r&&(e.uniforms.visibilityMask={value:r}),t.forEach((t,n)=>{e.uniforms[`tiling${n}`]={value:i[n]??32}}),o&&(e.uniforms.terrainLightmap={value:o}),a&&(e.uniforms.detailTexture={value:a},e.uniforms.detailTiling={value:It},e.uniforms.detailFadeDistance={value:Lt},e.vertexShader=e.vertexShader.replace(`#include `,`#include varying vec3 vTerrainWorldPos;`),e.vertexShader=e.vertexShader.replace(`#include `,`#include vec4 _terrainPos = vec4(transformed, 1.0); #ifdef USE_INSTANCING @@ -44,7 +42,8 @@ uniform float detailTiling; uniform float detailFadeDistance; varying vec3 vTerrainWorldPos;`:``} -${It} +${Mt} +${Nt} // Global variable to store shadow factor from RE_Direct for use in output calculation float terrainShadowFactor = 1.0; @@ -67,7 +66,7 @@ float terrainShadowFactor = 1.0; // Sample alpha masks from packed RGB textures (3 masks per texture). // Add +0.5 texel offset: Torque samples alpha at grid corners (integer indices), // but GPU linear filtering samples at texel centers. This offset aligns them. - vec2 alphaUv = baseUv + vec2(0.5 / ${Mt}.0); + vec2 alphaUv = baseUv + vec2(0.5 / ${Pt}.0); vec3 maskRGB0 = texture2D(maskPacked0, alphaUv).rgb; float a0 = maskRGB0.r; ${s>1?`float a1 = maskRGB0.g;`:``} @@ -130,23 +129,29 @@ void RE_Direct_TerrainShadow( const in IncidentLight directLight, const in vec3 } #define RE_Direct RE_Direct_TerrainShadow -`),e.fragmentShader=e.fragmentShader.replace(`#include `,`#include +`),e.fragmentShader=e.fragmentShader.replace(`#include `,`vec3 terrainPreLightDirect = reflectedLight.directDiffuse; +#include // Clear indirect diffuse - we'll compute ambient in gamma space #if defined( RE_IndirectDiffuse ) irradiance = vec3(0.0); #endif `),e.fragmentShader=e.fragmentShader.replace(`#include `,`#include - // Clear Three.js lighting - we compute everything in gamma space + // Extract dynamic point/spot light contribution by subtracting what was + // there before lights ran. directDiffuse now has sun + point lights; + // terrainPreLightDirect was 0, so the difference is all lights. + // We'll subtract the sun part below and keep just the point/spot part. + vec3 terrainAllLightsLinear = reflectedLight.directDiffuse - terrainPreLightDirect; + // Clear Three.js lighting - we compute sun/ambient in gamma space reflectedLight.directDiffuse = vec3(0.0); reflectedLight.indirectDiffuse = vec3(0.0); `)),e.fragmentShader=e.fragmentShader.replace(`#include `,`// Torque-style terrain lighting: output = clamp(lighting × texture, 0, 1) in sRGB space { // Get texture in sRGB space (undo Three.js linear decode) - vec3 textureSRGB = terrainLinearToSRGB(diffuseColor.rgb); + vec3 textureSRGB = torqueLinearToSRGB(diffuseColor.rgb); ${o?` // Sample terrain lightmap for smooth NdotL - vec2 lightmapUv = vTerrainUv + vec2(0.5 / ${Nt}.0); + vec2 lightmapUv = vTerrainUv + vec2(0.5 / ${Ft}.0); float lightmapNdotL = texture2D(terrainLightmap, lightmapUv).r; // Get sun and ambient colors from Three.js lights (these ARE sRGB values from mission file) @@ -171,38 +176,27 @@ void RE_Direct_TerrainShadow( const in IncidentLight directLight, const in vec3 vec3 resultSRGB = clamp(lightingSRGB * textureSRGB, 0.0, 1.0); // Convert back to linear for Three.js output pipeline - outgoingLight = terrainSRGBToLinear(resultSRGB) + totalEmissiveRadiance; + outgoingLight = torqueSRGBToLinear(resultSRGB) + totalEmissiveRadiance; + // Add dynamic point/spot light contributions when present. + // terrainAllLightsLinear includes both directional + point from Three.js. + // We only add it when point/spot lights exist to avoid double-counting + // the sun (already computed in gamma space above). The slight sun + // double-count when points are active is acceptable — point light + // intensity dominates near the source. + #if ( NUM_POINT_LIGHTS > 0 || NUM_SPOT_LIGHTS > 0 ) + outgoingLight += terrainAllLightsLinear; + #endif } #include `),e.fragmentShader=e.fragmentShader.replace(`#include `,`#if DEBUG_MODE // Debug mode: overlay green grid matching terrain grid squares (256x256) - float gridIntensity = terrainDebugGrid(vTerrainUv, 256.0, 1.5); + float gridIntensity = torqueDebugGrid(vTerrainUv, 256.0, 1.5); vec3 gridColor = vec3(0.0, 0.8, 0.4); // Green gl_FragColor.rgb = mix(gl_FragColor.rgb, gridColor, gridIntensity * 0.1); #endif -#include `)}var Rt={0:32,1:32,2:32,3:32,4:32,5:32},zt=(0,K.memo)(function({displacementMap:e,visibilityMask:t,textureNames:n,alphaTextures:r,detailTextureName:i,lightmap:a}){let{debugMode:o}=u(),s=Te(),c=we(n.map(e=>he(e)),e=>{e.forEach(e=>B(e,{anisotropy:s}))}),l=i?U(i):null,d=we(l??ve,e=>{B(e,{anisotropy:s})}),f=(0,K.useCallback)(e=>{Lt({shader:e,baseTextures:c,alphaTextures:r,visibilityMask:t,tiling:Rt,detailTexture:l?d:null,lightmap:a}),H(e,z)},[c,r,t,d,l,a]),p=(0,K.useMemo)(()=>[n.join(`,`),l??`none`,a?a.id:`nolm`,c.map(e=>e.id).join(`,`)].join(`|`),[n,l,a,c]),m=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let e=m.current;e&&(e.defines??={},e.defines.DEBUG_MODE=o?1:0,e.needsUpdate=!0)},[o]),(0,K.useEffect)(()=>{let e=m.current;e&&(e.customProgramCacheKey=()=>p,e.needsUpdate=!0)},[p]),(0,J.jsx)(`meshLambertMaterial`,{ref:m,depthWrite:!0,side:0,defines:{DEBUG_MODE:o?1:0},onBeforeCompile:f},`${l?`detail`:`nodetail`}-${a?`lightmap`:`nolightmap`}`)}),Bt=(0,K.memo)(function(e){let t=(0,q.c)(8),{displacementMap:n,visibilityMask:r,textureNames:i,alphaTextures:a,detailTextureName:o,lightmap:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(`meshLambertMaterial`,{color:`rgb(0, 109, 56)`,wireframe:!0}),t[0]=c):c=t[0];let l;return t[1]!==a||t[2]!==o||t[3]!==n||t[4]!==s||t[5]!==i||t[6]!==r?(l=(0,J.jsx)(K.Suspense,{fallback:c,children:(0,J.jsx)(zt,{displacementMap:n,visibilityMask:r,textureNames:i,alphaTextures:a,detailTextureName:o,lightmap:s})}),t[1]=a,t[2]=o,t[3]=n,t[4]=s,t[5]=i,t[6]=r,t[7]=l):l=t[7],l}),Vt=(0,K.memo)(function(e){let t=(0,q.c)(15),{tileX:n,tileZ:r,blockSize:i,basePosition:a,textureNames:o,geometry:s,displacementMap:c,visibilityMask:l,alphaTextures:u,detailTextureName:d,lightmap:f,visible:p}=e,m=p===void 0?!0:p,h=i/2,g=a.x+n*i+h,_=a.z+r*i+h,v;t[0]!==g||t[1]!==_?(v=[g,0,_],t[0]=g,t[1]=_,t[2]=v):v=t[2];let y=v,b;t[3]!==u||t[4]!==d||t[5]!==c||t[6]!==f||t[7]!==o||t[8]!==l?(b=(0,J.jsx)(Bt,{displacementMap:c,visibilityMask:l,textureNames:o,alphaTextures:u,detailTextureName:d,lightmap:f}),t[3]=u,t[4]=d,t[5]=c,t[6]=f,t[7]=o,t[8]=l,t[9]=b):b=t[9];let x;return t[10]!==s||t[11]!==y||t[12]!==b||t[13]!==m?(x=(0,J.jsx)(`mesh`,{position:y,geometry:s,castShadow:!0,receiveShadow:!0,visible:m,children:b}),t[10]=s,t[11]=y,t[12]=b,t[13]=m,t[14]=x):x=t[14],x}),Ht=be(`TerrainBlock`),Ut=8,Wt=600,Y=256,Gt=512,X=2048;function Kt(e,t){let n=new D,r=(t+1)*(t+1),i=new Float32Array(r*3),a=new Float32Array(r*3),o=new Float32Array(r*2),s=t*t*6,c=new Uint32Array(s),l=0,u=e/t;for(let n=0;n<=t;n++)for(let r=0;r<=t;r++){let s=n*(t+1)+r;i[s*3]=r*u-e/2,i[s*3+1]=e/2-n*u,i[s*3+2]=0,a[s*3]=0,a[s*3+1]=0,a[s*3+2]=1,o[s*2]=r/t,o[s*2+1]=1-n/t}for(let e=0;e(e=Math.max(0,Math.min(Y-1,e)),n=Math.max(0,Math.min(Y-1,n)),t[n*Y+e]/65535*X),d=(e,n)=>{e=Math.max(0,Math.min(Y-1,e)),n=Math.max(0,Math.min(Y-1,n));let r=Math.floor(e),i=Math.floor(n),a=Math.min(r+1,Y-1),o=Math.min(i+1,Y-1),s=e-r,c=n-i,l=t[i*Y+r]/65535*X,u=t[i*Y+a]/65535*X,d=t[o*Y+r]/65535*X,f=t[o*Y+a]/65535*X,p=l*(1-s)+u*s,m=d*(1-s)+f*s;return p*(1-c)+m*c};for(let e=0;e0?(_/=b,v/=b,y/=b):(_=0,v=1,y=0),c[e*3]=_,c[e*3+1]=v,c[e*3+2]=y}r.needsUpdate=!0,a.needsUpdate=!0}function Jt(e,t,n,r,i,a){let o=r.z/i,s=r.x/i,c=r.y,l=Math.sqrt(o*o+s*s);if(l<1e-4)return 1;let u=.5/l,d=o*u,f=s*u,p=c*u,m=e,h=t,g=n+.1,_=Y*3;for(let e=0;e<_;e++){if(m+=d,h+=f,g+=p,m<0||m>=Y||h<0||h>=Y||g>X)return 1;let e=a(m,h);if(g{let r=Math.max(0,Math.min(Y-1,t)),i=Math.max(0,Math.min(Y-1,n)),a=Math.floor(r),o=Math.floor(i),s=Math.min(a+1,Y-1),c=Math.min(o+1,Y-1),l=r-a,u=i-o,d=e[o*Y+a]/65535,f=e[o*Y+s]/65535,p=e[c*Y+a]/65535,m=e[c*Y+s]/65535,h=d*(1-l)+f*l,g=p*(1-l)+m*l;return(h*(1-u)+g*u)*X},i=new C(-t.x,-t.y,-t.z).normalize(),a=new Uint8Array(Gt*Gt),o=.5;for(let e=0;e0&&(b=Jt(s,c,l,i,n,r)),a[e*Gt+t]=Math.floor(y*b*255)}let s=new p(a,Gt,Gt,g,_);return s.colorSpace=``,s.generateMipmaps=!0,s.wrapS=I,s.wrapT=I,s.magFilter=N,s.minFilter=N,s.needsUpdate=!0,s}function Xt(e){let t=(0,q.c)(8),n;t[0]===e?n=t[1]:(n={queryKey:[`terrain`,e],queryFn:()=>(Ht.debug(`Loading terrain: %s`,e),ye(e))},t[0]=e,t[1]=n);let r=d(n),i,a;return t[2]!==r.data||t[3]!==r.error||t[4]!==r.status||t[5]!==e?(i=()=>{Ht.debug(`Query status: %s%s%s file=%s`,r.status,r.error?` error=${r.error.message}`:``,r.data?` (data ready)`:` (no data)`,e)},a=[r.status,r.error,r.data,e],t[2]=r.data,t[3]=r.error,t[4]=r.status,t[5]=e,t[6]=i,t[7]=a):(i=t[6],a=t[7]),(0,K.useEffect)(i,a),r}function Zt(){let e=Ve();return e&&e.visibleDistance>0?e.visibleDistance:Wt}function Qt(e){let t=new Uint8Array(Y*Y);t.fill(255);for(let n of e){let e=n&255,r=n>>8&255,i=n>>16,a=r*Y;for(let n=0;n{if(S)return ct(Ge(S.heightMap,c)),nn},D=[S,c],t[8]=c,t[9]=S,t[10]=E,t[11]=D):(E=t[10],D=t[11]),(0,K.useEffect)(E,D);let O=He(),k;bb1:{if(!O){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=new C(.57735,-.57735,.57735),t[12]=e):e=t[12],k=e;break bb1}let e;t[13]===O.direction?e=t[14]:(e=Le(O.direction),t[13]=O.direction,t[14]=e);let[n,r,i]=e,a=Math.sqrt(n*n+r*r+i*i),o=n/a,s=r/a,c=i/a,l;t[15]!==c||t[16]!==o||t[17]!==s?(l=new C(o,s,c),t[15]=c,t[16]=o,t[17]=s,t[18]=l):l=t[18],k=l}let A=k,j;bb2:{if(!S){j=null;break bb2}let e;t[19]!==c||t[20]!==A||t[21]!==S.heightMap?(e=Yt(S.heightMap,A,c),t[19]=c,t[20]=A,t[21]=S.heightMap,t[22]=e):e=t[22],j=e}let M=j,N;bb3:{if(!S){N=null;break bb3}let e;t[23]===S.heightMap?e=t[24]:(e=new p(jt(S.heightMap),Y,Y,g,f),e.colorSpace=``,e.generateMipmaps=!1,e.wrapS=b,e.wrapT=b,e.needsUpdate=!0,t[23]=S.heightMap,t[24]=e),N=e}let F=N,I;t[25]===x?I=t[26]:(I=Qt(x),t[25]=x,t[26]=I);let L=I,ee;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(ee=Qt([]),t[27]=ee):ee=t[27];let te=ee,ne;bb4:{if(!S){ne=null;break bb4}let e;t[28]===S.alphaMaps?e=t[29]:(e=fe(S.alphaMaps),t[28]=S.alphaMaps,t[29]=e),ne=e}let R=ne,re=2*Math.ceil(d/u)+1,ie=re*re-1,ae=(0,K.useRef)(null),oe;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(oe=new P,t[30]=oe):oe=t[30];let se=oe,ce;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(ce={xStart:1/0,xEnd:-1/0,zStart:1/0,zEnd:-1/0},t[31]=ce):ce=t[31];let le=(0,K.useRef)(ce),z=(0,K.useRef)(null),ue;if(t[32]!==v||t[33]!==u||t[34]!==m||t[35]!==d?(ue=()=>{let e=ae.current;if(!e)return;let t=m.position.x-v.x,n=m.position.z-v.z,r=Math.floor((t-d)/u),i=Math.ceil((t+d)/u),a=Math.floor((n-d)/u),o=Math.ceil((n+d)/u),s=le.current;if(e===z.current&&r===s.xStart&&i===s.xEnd&&a===s.zStart&&o===s.zEnd)return;z.current=e,s.xStart=r,s.xEnd=i,s.zStart=a,s.zEnd=o;let c=u/2,l=0;for(let t=r;ta&&(a=t)}let o=i.x+r/2,s=a/2,c=i.z+r/2,l;t[0]!==o||t[1]!==s||t[2]!==c?(l=[o,s,c],t[0]=o,t[1]=s,t[2]=c,t[3]=l):l=t[3];let u=l,d;t[4]!==r||t[5]!==a?(d=[r,a,r],t[4]=r,t[5]=a,t[6]=d):d=t[6];let f=d,p;t[7]!==u||t[8]!==f?(p={center:u,size:f},t[7]=u,t[8]=f,t[9]=p):p=t[9];let m=p,h;t[10]===m.size?h=t[11]:(h=(0,J.jsx)(Me,{size:m.size}),t[10]=m.size,t[11]=h);let g;return t[12]!==m.center||t[13]!==h?(g=(0,J.jsx)(`group`,{position:m.center,children:h}),t[12]=m.center,t[13]=h,t[14]=g):g=t[14],g}function tn(e){return e.camera}function nn(){return ct(null)}var rn=` -vec3 interiorLinearToSRGB(vec3 linear) { - vec3 higher = pow(linear, vec3(1.0/2.4)) * 1.055 - 0.055; - vec3 lower = linear * 12.92; - return mix(lower, higher, step(vec3(0.0031308), linear)); -} - -vec3 interiorSRGBToLinear(vec3 srgb) { - vec3 higher = pow((srgb + 0.055) / 1.055, vec3(2.4)); - vec3 lower = srgb / 12.92; - return mix(lower, higher, step(vec3(0.04045), srgb)); -} - -// Debug grid overlay function using screen-space derivatives for sharp, anti-aliased lines -// Returns 1.0 on grid lines, 0.0 elsewhere -float debugGrid(vec2 uv, float gridSize, float lineWidth) { - vec2 scaledUV = uv * gridSize; - vec2 grid = abs(fract(scaledUV - 0.5) - 0.5) / fwidth(scaledUV); - float line = min(grid.x, grid.y); - return 1.0 - min(line / lineWidth, 1.0); -} -`;function an(e,t){let n=t.surfaceOutsideVisible??!1;e.uniforms.useSceneLighting={value:n},e.uniforms.interiorDebugColor={value:n?new C(0,.4,1):new C(1,.2,0)},e.fragmentShader=e.fragmentShader.replace(`#include `,`#include -${rn} +#include `)}var zt={0:32,1:32,2:32,3:32,4:32,5:32},Bt=(0,K.memo)(function({displacementMap:e,visibilityMask:t,textureNames:n,alphaTextures:r,detailTextureName:i,lightmap:a}){let{debugMode:o}=u(),s=Te(),c=we(n.map(e=>he(e)),e=>{e.forEach(e=>B(e,{anisotropy:s}))}),l=i?U(i):null,d=we(l??ve,e=>{B(e,{anisotropy:s})}),f=(0,K.useCallback)(e=>{Rt({shader:e,baseTextures:c,alphaTextures:r,visibilityMask:t,tiling:zt,detailTexture:l?d:null,lightmap:a}),H(e,z)},[c,r,t,d,l,a]),p=(0,K.useMemo)(()=>[n.join(`,`),l??`none`,a?a.id:`nolm`,c.map(e=>e.id).join(`,`)].join(`|`),[n,l,a,c]),m=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let e=m.current;e&&(e.defines??={},e.defines.DEBUG_MODE=o?1:0,e.needsUpdate=!0)},[o]),(0,K.useEffect)(()=>{let e=m.current;e&&(e.customProgramCacheKey=()=>p,e.needsUpdate=!0)},[p]),(0,J.jsx)(`meshLambertMaterial`,{ref:m,depthWrite:!0,side:0,defines:{DEBUG_MODE:o?1:0},onBeforeCompile:f},`${l?`detail`:`nodetail`}-${a?`lightmap`:`nolightmap`}`)}),Vt=(0,K.memo)(function(e){let t=(0,q.c)(8),{displacementMap:n,visibilityMask:r,textureNames:i,alphaTextures:a,detailTextureName:o,lightmap:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(`meshLambertMaterial`,{color:`rgb(0, 109, 56)`,wireframe:!0}),t[0]=c):c=t[0];let l;return t[1]!==a||t[2]!==o||t[3]!==n||t[4]!==s||t[5]!==i||t[6]!==r?(l=(0,J.jsx)(K.Suspense,{fallback:c,children:(0,J.jsx)(Bt,{displacementMap:n,visibilityMask:r,textureNames:i,alphaTextures:a,detailTextureName:o,lightmap:s})}),t[1]=a,t[2]=o,t[3]=n,t[4]=s,t[5]=i,t[6]=r,t[7]=l):l=t[7],l}),Ht=(0,K.memo)(function(e){let t=(0,q.c)(15),{tileX:n,tileZ:r,blockSize:i,basePosition:a,textureNames:o,geometry:s,displacementMap:c,visibilityMask:l,alphaTextures:u,detailTextureName:d,lightmap:f,visible:p}=e,m=p===void 0?!0:p,h=i/2,g=a.x+n*i+h,_=a.z+r*i+h,v;t[0]!==g||t[1]!==_?(v=[g,0,_],t[0]=g,t[1]=_,t[2]=v):v=t[2];let y=v,b;t[3]!==u||t[4]!==d||t[5]!==c||t[6]!==f||t[7]!==o||t[8]!==l?(b=(0,J.jsx)(Vt,{displacementMap:c,visibilityMask:l,textureNames:o,alphaTextures:u,detailTextureName:d,lightmap:f}),t[3]=u,t[4]=d,t[5]=c,t[6]=f,t[7]=o,t[8]=l,t[9]=b):b=t[9];let x;return t[10]!==s||t[11]!==y||t[12]!==b||t[13]!==m?(x=(0,J.jsx)(`mesh`,{position:y,geometry:s,castShadow:!0,receiveShadow:!0,visible:m,children:b}),t[10]=s,t[11]=y,t[12]=b,t[13]=m,t[14]=x):x=t[14],x}),Ut=be(`TerrainBlock`),Wt=8,Gt=600,Y=256,Kt=512,X=2048;function qt(e,t){let n=new D,r=(t+1)*(t+1),i=new Float32Array(r*3),a=new Float32Array(r*3),o=new Float32Array(r*2),s=t*t*6,c=new Uint32Array(s),l=0,u=e/t;for(let n=0;n<=t;n++)for(let r=0;r<=t;r++){let s=n*(t+1)+r;i[s*3]=r*u-e/2,i[s*3+1]=e/2-n*u,i[s*3+2]=0,a[s*3]=0,a[s*3+1]=0,a[s*3+2]=1,o[s*2]=r/t,o[s*2+1]=1-n/t}for(let e=0;e(e=Math.max(0,Math.min(Y-1,e)),n=Math.max(0,Math.min(Y-1,n)),t[n*Y+e]/65535*X),d=(e,n)=>{e=Math.max(0,Math.min(Y-1,e)),n=Math.max(0,Math.min(Y-1,n));let r=Math.floor(e),i=Math.floor(n),a=Math.min(r+1,Y-1),o=Math.min(i+1,Y-1),s=e-r,c=n-i,l=t[i*Y+r]/65535*X,u=t[i*Y+a]/65535*X,d=t[o*Y+r]/65535*X,f=t[o*Y+a]/65535*X,p=l*(1-s)+u*s,m=d*(1-s)+f*s;return p*(1-c)+m*c};for(let e=0;e0?(_/=b,v/=b,y/=b):(_=0,v=1,y=0),c[e*3]=_,c[e*3+1]=v,c[e*3+2]=y}r.needsUpdate=!0,a.needsUpdate=!0}function Yt(e,t,n,r,i,a){let o=r.z/i,s=r.x/i,c=r.y,l=Math.sqrt(o*o+s*s);if(l<1e-4)return 1;let u=.5/l,d=o*u,f=s*u,p=c*u,m=e,h=t,g=n+.1,_=Y*3;for(let e=0;e<_;e++){if(m+=d,h+=f,g+=p,m<0||m>=Y||h<0||h>=Y||g>X)return 1;let e=a(m,h);if(g{let r=Math.max(0,Math.min(Y-1,t)),i=Math.max(0,Math.min(Y-1,n)),a=Math.floor(r),o=Math.floor(i),s=Math.min(a+1,Y-1),c=Math.min(o+1,Y-1),l=r-a,u=i-o,d=e[o*Y+a]/65535,f=e[o*Y+s]/65535,p=e[c*Y+a]/65535,m=e[c*Y+s]/65535,h=d*(1-l)+f*l,g=p*(1-l)+m*l;return(h*(1-u)+g*u)*X},i=new C(-t.x,-t.y,-t.z).normalize(),a=new Uint8Array(Kt*Kt),o=.5;for(let e=0;e0&&(b=Yt(s,c,l,i,n,r)),a[e*Kt+t]=Math.floor(y*b*255)}let s=new p(a,Kt,Kt,g,_);return s.colorSpace=``,s.generateMipmaps=!0,s.wrapS=I,s.wrapT=I,s.magFilter=N,s.minFilter=N,s.needsUpdate=!0,s}function Zt(e){let t=(0,q.c)(8),n;t[0]===e?n=t[1]:(n={queryKey:[`terrain`,e],queryFn:()=>(Ut.debug(`Loading terrain: %s`,e),ye(e))},t[0]=e,t[1]=n);let r=d(n),i,a;return t[2]!==r.data||t[3]!==r.error||t[4]!==r.status||t[5]!==e?(i=()=>{Ut.debug(`Query status: %s%s%s file=%s`,r.status,r.error?` error=${r.error.message}`:``,r.data?` (data ready)`:` (no data)`,e)},a=[r.status,r.error,r.data,e],t[2]=r.data,t[3]=r.error,t[4]=r.status,t[5]=e,t[6]=i,t[7]=a):(i=t[6],a=t[7]),(0,K.useEffect)(i,a),r}function Qt(){let e=Ve();return e&&e.visibleDistance>0?e.visibleDistance:Gt}function $t(e){let t=new Uint8Array(Y*Y);t.fill(255);for(let n of e){let e=n&255,r=n>>8&255,i=n>>16,a=r*Y;for(let n=0;n{if(S)return ct(Ge(S.heightMap,c)),rn},D=[S,c],t[8]=c,t[9]=S,t[10]=E,t[11]=D):(E=t[10],D=t[11]),(0,K.useEffect)(E,D);let O=He(),k;bb1:{if(!O){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=new C(.57735,-.57735,.57735),t[12]=e):e=t[12],k=e;break bb1}let e;t[13]===O.direction?e=t[14]:(e=Le(O.direction),t[13]=O.direction,t[14]=e);let[n,r,i]=e,a=Math.sqrt(n*n+r*r+i*i),o=n/a,s=r/a,c=i/a,l;t[15]!==c||t[16]!==o||t[17]!==s?(l=new C(o,s,c),t[15]=c,t[16]=o,t[17]=s,t[18]=l):l=t[18],k=l}let A=k,j;bb2:{if(!S){j=null;break bb2}let e;t[19]!==c||t[20]!==A||t[21]!==S.heightMap?(e=Xt(S.heightMap,A,c),t[19]=c,t[20]=A,t[21]=S.heightMap,t[22]=e):e=t[22],j=e}let M=j,N;bb3:{if(!S){N=null;break bb3}let e;t[23]===S.heightMap?e=t[24]:(e=new p(jt(S.heightMap),Y,Y,g,f),e.colorSpace=``,e.generateMipmaps=!1,e.wrapS=b,e.wrapT=b,e.needsUpdate=!0,t[23]=S.heightMap,t[24]=e),N=e}let F=N,I;t[25]===x?I=t[26]:(I=$t(x),t[25]=x,t[26]=I);let L=I,ee;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(ee=$t([]),t[27]=ee):ee=t[27];let te=ee,ne;bb4:{if(!S){ne=null;break bb4}let e;t[28]===S.alphaMaps?e=t[29]:(e=fe(S.alphaMaps),t[28]=S.alphaMaps,t[29]=e),ne=e}let R=ne,re=2*Math.ceil(d/u)+1,ie=re*re-1,ae=(0,K.useRef)(null),oe;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(oe=new P,t[30]=oe):oe=t[30];let se=oe,ce;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(ce={xStart:1/0,xEnd:-1/0,zStart:1/0,zEnd:-1/0},t[31]=ce):ce=t[31];let le=(0,K.useRef)(ce),z=(0,K.useRef)(null),ue;if(t[32]!==v||t[33]!==u||t[34]!==m||t[35]!==d?(ue=()=>{let e=ae.current;if(!e)return;let t=m.position.x-v.x,n=m.position.z-v.z,r=Math.floor((t-d)/u),i=Math.ceil((t+d)/u),a=Math.floor((n-d)/u),o=Math.ceil((n+d)/u),s=le.current;if(e===z.current&&r===s.xStart&&i===s.xEnd&&a===s.zStart&&o===s.zEnd)return;z.current=e,s.xStart=r,s.xEnd=i,s.zStart=a,s.zEnd=o;let c=u/2,l=0;for(let t=r;ta&&(a=t)}let o=i.x+r/2,s=a/2,c=i.z+r/2,l;t[0]!==o||t[1]!==s||t[2]!==c?(l=[o,s,c],t[0]=o,t[1]=s,t[2]=c,t[3]=l):l=t[3];let u=l,d;t[4]!==r||t[5]!==a?(d=[r,a,r],t[4]=r,t[5]=a,t[6]=d):d=t[6];let f=d,p;t[7]!==u||t[8]!==f?(p={center:u,size:f},t[7]=u,t[8]=f,t[9]=p):p=t[9];let m=p,h;t[10]===m.size?h=t[11]:(h=(0,J.jsx)(Me,{size:m.size}),t[10]=m.size,t[11]=h);let g;return t[12]!==m.center||t[13]!==h?(g=(0,J.jsx)(`group`,{position:m.center,children:h}),t[12]=m.center,t[13]=h,t[14]=g):g=t[14],g}function nn(e){return e.camera}function rn(){return ct(null)}function an(e,t){let n=t.surfaceOutsideVisible??!1;e.uniforms.useSceneLighting={value:n},e.uniforms.interiorDebugColor={value:n?new C(0,.4,1):new C(1,.2,0)},e.fragmentShader=e.fragmentShader.replace(`#include `,`#include +${Mt} +${Nt} uniform bool useSceneLighting; uniform vec3 interiorDebugColor; `),e.fragmentShader=e.fragmentShader.replace(`#include `,`// Lightmap handled in custom output calculation @@ -210,7 +204,11 @@ uniform vec3 interiorDebugColor; vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); #endif`),e.fragmentShader=e.fragmentShader.replace(`#include `,`// Torque-style lighting: output = clamp(lighting × texture, 0, 1) in sRGB space // Get texture in sRGB space (undo Three.js linear decode) -vec3 textureSRGB = interiorLinearToSRGB(diffuseColor.rgb); +vec3 textureSRGB = torqueLinearToSRGB(diffuseColor.rgb); + +// Save Three.js computed direct lighting (includes sun + point/spot lights). +// We'll add it back for point/spot light contribution after our gamma-space calc. +vec3 interiorAllLightsLinear = reflectedLight.directDiffuse; // Compute lighting in sRGB space vec3 lightingSRGB = vec3(0.0); @@ -234,7 +232,7 @@ if (useSceneLighting) { // (stored in .ml files). Inside surfaces only have base lightmap. Both need lightmap here. #ifdef USE_LIGHTMAP // Lightmap is stored as linear in Three.js (decoded from sRGB texture), convert back - lightingSRGB += interiorLinearToSRGB(lightMapTexel.rgb); + lightingSRGB += torqueLinearToSRGB(lightMapTexel.rgb); #endif // Torque clamps the sum to [0,1] per channel (sceneLighting.cc lines 1817-1827) lightingSRGB = clamp(lightingSRGB, 0.0, 1.0); @@ -243,17 +241,21 @@ lightingSRGB = clamp(lightingSRGB, 0.0, 1.0); vec3 resultSRGB = clamp(lightingSRGB * textureSRGB, 0.0, 1.0); // Convert back to linear for Three.js output pipeline -vec3 resultLinear = interiorSRGBToLinear(resultSRGB); +vec3 resultLinear = torqueSRGBToLinear(resultSRGB); // Reassign outgoingLight before opaque_fragment consumes it +// Add dynamic point/spot lights when present (avoid sun double-count otherwise) outgoingLight = resultLinear + totalEmissiveRadiance; +#if ( NUM_POINT_LIGHTS > 0 || NUM_SPOT_LIGHTS > 0 ) + outgoingLight += interiorAllLightsLinear; +#endif #include `),e.fragmentShader=e.fragmentShader.replace(`#include `,`// Debug mode: overlay colored grid on top of normal rendering // Blue grid = SurfaceOutsideVisible (receives scene ambient light) // Red grid = inside surface (no scene ambient light) #if DEBUG_MODE && defined(USE_MAP) // gridSize=4 creates 4x4 grid per UV tile, lineWidth=1.5 is ~1.5 pixels wide - float gridIntensity = debugGrid(vMapUv, 4.0, 1.5); + float gridIntensity = torqueDebugGrid(vMapUv, 4.0, 1.5); gl_FragColor.rgb = mix(gl_FragColor.rgb, interiorDebugColor, gridIntensity * 0.1); #endif @@ -516,4 +518,4 @@ outgoingLight = resultLinear + totalEmissiveRadiance; gl_FragColor = vec4(linearToSRGB(finalColor), 1.0); } - `,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-CsbVaSkV.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-Cmot7uAQ.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)($t,{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(e){let t=(0,q.c)(25),{entity:n,objectMounts:r}=e,i=We(),a=i===`demo`||i===`live`,o=(0,K.useRef)(null);if(Xn(n,o),!n.shapeName)throw Error(`Shape entity missing shapeName: ${n.id}`);let s=n.shapeType??`StaticShape`,c;t[0]!==n.dataBlock||t[1]!==n.dataBlockId?(c=ne(n.dataBlockId,n.dataBlock),t[0]=n.dataBlock,t[1]=n.dataBlockId,t[2]=c):c=t[2];let l=c,u=n.dataBlock?.toLowerCase()===`flag`,d=n.teamId&&n.teamId>0?xe[n.teamId]:null,f=u&&d?`${d} Flag`:null,p=n.shapeType===`Item`?`pink`:n.threads?`#00ff88`:`yellow`,m;if(t[3]!==n.id||t[4]!==n.imageSlots||t[5]!==r){let e={...r},i=n.imageSlots;if(i)for(let t=0;t0?e:void 0,t[3]=n.id,t[4]=n.imageSlots,t[5]=r,t[6]=m}else m=t[6];let h=m,g=n.runtimeObject,_=n.rotate?o:void 0,v=a?n:void 0,y;t[7]===f?y=t[8]:(y=f?(0,J.jsx)(Ee,{opacity:.6,children:f}):null,t[7]=f,t[8]=y);let b;t[9]!==h||t[10]!==l||t[11]!==n.id||t[12]!==n.skinName||t[13]!==p||t[14]!==v||t[15]!==y?(b=(0,J.jsx)(re,{loadingColor:p,streamEntity:v,emap:l,entityId:n.id,skinName:n.skinName,mounted:h,children:y}),t[9]=h,t[10]=l,t[11]=n.id,t[12]=n.skinName,t[13]=p,t[14]=v,t[15]=y,t[16]=b):b=t[16];let x;t[17]!==_||t[18]!==b?(x=(0,J.jsx)(`group`,{ref:_,children:b}),t[17]=_,t[18]=b,t[19]=x):x=t[19];let S;return t[20]!==n.shapeName||t[21]!==s||t[22]!==g||t[23]!==x?(S=(0,J.jsx)(ce,{object:g,shapeName:n.shapeName,type:s,children:x}),t[20]=n.shapeName,t[21]=s,t[22]=g,t[23]=x,t[24]=S):S=t[24],S}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;if(n.renderType===`Shape`&&!n.shapeName){let e=n.id,r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(`sphereGeometry`,{args:[.3,6,4]}),t[2]=r):r=t[2];let o;t[3]===n.className?o=t[4]:(o=se(n.className),t[3]=n.className,t[4]=o);let c;t[5]===o?c=t[6]:(c=(0,J.jsxs)(`mesh`,{children:[r,(0,J.jsx)(`meshBasicMaterial`,{color:o,wireframe:!0})]}),t[5]=o,t[6]=c);let l;t[7]===n?l=t[8]:(l=(0,J.jsx)(_r,{entity:n}),t[7]=n,t[8]=l);let u;return t[9]!==n.id||t[10]!==i||t[11]!==s||t[12]!==a||t[13]!==c||t[14]!==l?(u=(0,J.jsxs)(`group`,{name:e,position:i,quaternion:s,scale:a,children:[c,l]}),t[9]=n.id,t[10]=i,t[11]=s,t[12]=a,t[13]=c,t[14]=l,t[15]=u):u=t[15],u}let c;t[16]!==n.className||t[17]!==n.renderType?(c=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[16]=n.className,t[17]=n.renderType,t[18]=c):c=t[18];let l=c,u;bb1:{if(!r||r.size===0){u=void 0;break bb1}let e;if(t[19]!==r){e={};for(let[t,n]of r)e[t]=(0,J.jsx)(K.Suspense,{children:(0,J.jsx)(ar,{entity:n})},n.id);t[19]=r,t[20]=e}else e=t[20];u=e}let d=u,f;t[21]!==n||t[22]!==d?(f=(0,J.jsx)(ar,{entity:n,objectMounts:d}),t[21]=n,t[22]=d,t[23]=f):f=t[23];let p;t[24]!==l||t[25]!==f?(p=(0,J.jsx)(ee,{fallback:l,children:f}),t[24]=l,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-D56a4f6m.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-BEL-ZcOh.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-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 diff --git a/docs/assets/KeyboardOverlay-C6kCnbeh.js b/docs/assets/KeyboardOverlay-8NIHVGaH.js similarity index 99% rename from docs/assets/KeyboardOverlay-C6kCnbeh.js rename to docs/assets/KeyboardOverlay-8NIHVGaH.js index 56272ee5..46d3e00d 100644 --- a/docs/assets/KeyboardOverlay-C6kCnbeh.js +++ b/docs/assets/KeyboardOverlay-8NIHVGaH.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-D4aiQcCU.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-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 diff --git a/docs/assets/MapInfoDialog-DlXHsR03.js b/docs/assets/MapInfoDialog-DlTvQpC9.js similarity index 99% rename from docs/assets/MapInfoDialog-DlXHsR03.js rename to docs/assets/MapInfoDialog-DlTvQpC9.js index 37eabe8d..2aa48f9a 100644 --- a/docs/assets/MapInfoDialog-DlXHsR03.js +++ b/docs/assets/MapInfoDialog-DlTvQpC9.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-D4aiQcCU.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-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(` `).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-BEL-ZcOh.js b/docs/assets/Mission-BEL-ZcOh.js deleted file mode 100644 index f4187f2b..00000000 --- a/docs/assets/Mission-BEL-ZcOh.js +++ /dev/null @@ -1 +0,0 @@ -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-D4aiQcCU.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};if(i===`Item`&&(l.rotate=B(h(t,`rotate`)??h(n,`rotate`)),o.toLowerCase()===`flag`&&a!=null&&(l.skinName=f[a])),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/Mission-RZOaitqM.js b/docs/assets/Mission-RZOaitqM.js new file mode 100644 index 00000000..a6cf6167 --- /dev/null +++ b/docs/assets/Mission-RZOaitqM.js @@ -0,0 +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 diff --git a/docs/assets/PlayerHUD-CVj7JVJO.js b/docs/assets/PlayerHUD-oFKWuzte.js similarity index 98% rename from docs/assets/PlayerHUD-CVj7JVJO.js rename to docs/assets/PlayerHUD-oFKWuzte.js index b4b6e091..62b6b0c6 100644 --- a/docs/assets/PlayerHUD-CVj7JVJO.js +++ b/docs/assets/PlayerHUD-oFKWuzte.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatInput-B4ui_Qn8.js","assets/chunk-DECur_0Z.js","assets/index-D4aiQcCU.js","assets/preload-helper-BPkniflS.js","assets/mission-yeigCtfF.js","assets/logger-B058WGzf.js","assets/PlayerModel-DY4jKfUP.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-B4ui_Qn8.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-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 diff --git a/docs/assets/PlayerModel-D8NLwrT8.js b/docs/assets/PlayerModel-D8NLwrT8.js new file mode 100644 index 00000000..0f7c98fa --- /dev/null +++ b/docs/assets/PlayerModel-D8NLwrT8.js @@ -0,0 +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=`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`;WebAssembly.validate(e)&&(n=`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`);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 diff --git a/docs/assets/PlayerModel-DY4jKfUP.js b/docs/assets/PlayerModel-DY4jKfUP.js deleted file mode 100644 index 02576189..00000000 --- a/docs/assets/PlayerModel-DY4jKfUP.js +++ /dev/null @@ -1,2 +0,0 @@ -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 A,Q as j,R as M,St as N,T as ee,U as P,Ut as F,V as I,W as L,Wt as R,Y as z,Z as B,a as V,at as H,b as U,bt as te,ct as ne,d as W,dt as re,et as ie,f as ae,ft as oe,gt as se,h as ce,ht as le,i as ue,it as de,lt as fe,m as pe,mt as me,nt as he,o as ge,pt as _e,q as ve,rt as ye,s as be,st as G,tt as xe,ut as Se,v as Ce,vt as we,wt as Te,xt as Ee,yt as De,z as Oe,zt as ke}from"./three.module-DKAirPAO.js";import{_ as Ae,a as je,c as Me,g as Ne,h as Pe,i as Fe,l as Ie,s as Le,t as K,u as Re,v as ze,y as Be}from"./playbackUtils-DjmjN4tv.js";import{t as Ve}from"./textureUtils-Bk_jPZib.js";import{d as He,p as Ue,r as We}from"./loaders-B4T775qz.js";import{t as Ge}from"./logger-B058WGzf.js";import{a as Ke,i as qe,n as Je,r as Ye,s as Xe}from"./engineStore-B1KAgiiF.js";import{t as Ze}from"./useAnisotropy-D9othEmk.js";import{a as Qe,c as $e,d as et,f as tt,i as nt,l as rt,o as it,p as at,r as ot}from"./AudioEmitter-CJMuEzA2.js";import{r as st}from"./cameraTourStore-CtH3IrnD.js";import{t as ct}from"./DebugBounds-CZKrvsAw.js";import{t as lt}from"./DebugSuspense-ChOWTvws.js";import{n as ut}from"./streamPlaybackStore-D5ldcfU5.js";function dt(e){let t=new Map,n=new Map,r=e.clone();return ft(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 ft(e,t,n){n(e,t);for(let r=0;r2||s>mt*mt)return r?{animation:`jet`,timeScale:1}:{animation:`root`,timeScale:1};let c=ht(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 yt:this.spinTimeScale=0;break;case St:this.spinTimeScale=1;break;case bt:e===xt&&s>0&&(this.delayTime*=1-n/s);break;case xt:e===bt&&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 yt:this.spinTimeScale=0;break;case bt:this.spinTimeScale=c>0?Math.max(0,1-this.delayTime/c):1;break;case St:this.spinTimeScale=1;break;case xt: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!==_t)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!==_t)return n;let r=t.ammo?e.transitionOnAmmo:e.transitionOnNoAmmo;if(r!==_t)return r;let i=t.target?e.transitionOnTarget:e.transitionOnNoTarget;if(i!==_t)return i;let a=t.wet?e.transitionOnWet:e.transitionOnNotWet;if(a!==_t)return a;let o=t.triggerDown?e.transitionOnTriggerDown:e.transitionOnTriggerUp;return o===_t?-1:o}resolveSequenceName(e){return e.sequence==null||e.sequence<0?null:this.seqIndexToName[e.sequence]??null}},q=e(n(),1),wt=(0,q.createContext)(null),Tt={didCatch:!1,error:null},Et=class extends q.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Tt}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(Tt))}componentDidCatch(e,t){this.props.onError?.(e,t)}componentDidUpdate(e,t){let{didCatch:n}=this.state,{resetKeys:r}=this.props;n&&t.error!==null&&Dt(e.resetKeys,r)&&(this.props.onReset?.({next:r,prev:e.resetKeys,reason:`keys`}),this.setState(Tt))}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,q.createElement)(n,e);else if(r!==void 0)o=r;else throw a}return(0,q.createElement)(wt.Provider,{value:{didCatch:i,error:a,resetErrorBoundary:this.resetErrorBoundary}},o)}};function Dt(e=[],t=[]){return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}var Ot=parseInt(`182`.replace(/\D+/g,``));function kt(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 Ft(){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 Y={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`},It=class{constructor(e){this.parser=e,this.name=Y.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)}},Xt=class{constructor(e){this.parser=e,this.name=Y.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}},Zt=class{constructor(e){this.parser=e,this.name=Y.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}},Qt=class{constructor(e){this.name=Y.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}},$t=class{constructor(e){this.name=Y.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!==X.TRIANGLES&&e.mode!==X.TRIANGLE_STRIP&&e.mode!==X.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 ye,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`},gn={scale:`scale`,translation:`position`,rotation:`quaternion`,weights:`morphTargetInfluences`},_n={CUBICSPLINE:void 0,LINEAR:I,STEP:p},vn={OPAQUE:`OPAQUE`,MASK:`MASK`,BLEND:`BLEND`};function yn(e){return e.DefaultMaterial===void 0&&(e.DefaultMaterial=new ne({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function bn(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 Z(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 ye,On=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new Ft,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 bn(i,a,r),Z(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=fn[n.magFilter]||1006,t.minFilter=fn[n.minFilter]||1008,t.wrapS=pn[n.wrapS]||1e3,t.wrapT=pn[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 ke(e);t.needsUpdate=!0,n(t)}),t.load(j.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){return c===!0&&o.revokeObjectURL(s),Z(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[Y.KHR_TEXTURE_TRANSFORM]){let e=n.extensions===void 0?void 0:n.extensions[Y.KHR_TEXTURE_TRANSFORM];if(e){let t=i.associations.get(a);a=i.extensions[Y.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),i.associations.set(a,t)}}return r!==void 0&&(typeof r==`number`&&(r=r===Mt?jt:J),`colorSpace`in a?a.colorSpace=r:a.encoding=r===jt?Mt:Nt),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 te,xe.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,xe.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 ne}loadMaterial(e){let t=this,n=this.json,r=this.extensions,i=n.materials[e],a,o={},s=i.extensions||{},c=[];if(s[Y.KHR_MATERIALS_UNLIT]){let e=r[Y.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),c.push(e.extendParams(o,i,t))}else{let n=i.pbrMetallicRoughness||{};if(o.color=new U(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],J),o.opacity=e[3]}n.baseColorTexture!==void 0&&c.push(t.assignTexture(o,`map`,n.baseColorTexture,jt)),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||vn.OPAQUE;if(l===vn.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,l===vn.MASK&&(o.alphaTest=i.alphaCutoff===void 0?.5:i.alphaCutoff)),i.normalTexture!==void 0&&a!==H&&(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!==H&&(c.push(t.assignTexture(o,`aoMap`,i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&a!==H){let e=i.emissiveFactor;o.emissive=new U().setRGB(e[0],e[1],e[2],J)}return i.emissiveTexture!==void 0&&a!==H&&c.push(t.assignTexture(o,`emissiveMap`,i.emissiveTexture,jt)),Promise.all(c).then(function(){let n=new a(o);return i.name&&(n.name=i.name),Z(n,i),t.associations.set(n,{materials:e}),i.extensions&&bn(r,n,i),n})}createUniqueName(e){let t=N.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[Y.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),Z(d,i),u.extensions&&bn(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 me,o!==t[0])for(let e=0,n=t.length;e{let t=new Map;for(let[e,n]of r.associations)(e instanceof xe||e instanceof ke)&&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=[];gn[i.path]===gn.weights?e.traverse(function(e){e.morphTargetInfluences&&s.push(e.name?e.name:e.uuid)}):s.push(o);let c;switch(gn[i.path]){case gn.weights:c=_e;break;case gn.rotation:c=Te;break;case gn.position:case gn.scale:c=v;break;default:switch(n.itemSize){case 1:c=_e;break;default:c=v;break}break}let l=r.interpolation===void 0?I:_n[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 ce;e.index&&t.setIndex(new pe(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=`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`;WebAssembly.validate(e)&&(n=`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`);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(Pt,e,Rn(t,n,r));zn.preload=(e,t,n,r)=>o.preload(Pt,e,Rn(t,n,r)),zn.clear=e=>o.clear(Pt,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}=et(),{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,q.useRef)(s),d;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(d=new Map,n[1]=d):d=n[1];let f=(0,q.useRef)(d),p,m;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>{for(let e of l.current)if(e){rt(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,q.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=Ye.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){rt(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=Ye.getState().playback.recording?.streamingPlayback;if(t)return!!t.getDataBlockData(e)?.emap}if(t){let e=Ye.getState().runtime.runtime;if(e)return!!e.state.datablocks.get(t)?.emap}return!1}function Gn(e){if(e==null)return!1;let t=Ye.getState().playback.recording?.streamingPlayback;return t?!!t.getDataBlockData(e)?.emap:!1}var $=r(),Kn=null;function qn(){return Kn||(Kn=Ve(Ue(`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=[Math.PI/2,-Math.PI/2,0],$n=[0,Math.PI/2,0],er=Ge(`GenericShape`);function tr(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=rr(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=Me(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)(or,{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)(ze,{shapeName:n,type:s,children:g}),t[16]=n,t[17]=s,t[18]=g,t[19]=_):_=t[19],_}function nr(){let{recording:e}=Ye.getState().playback;return e==null?performance.now()/1e3:Je()/1e3}function rr(e){let t=(0,Q.c)(2),n;return t[0]===e?n=t[1]:(n=He(e),t[0]=e,t[1]=n),zn(n)}function ir(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)(tt,{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 ar(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)(ir,{color:n,label:r}):null,t[0]=n,t[1]=i,t[2]=r,t[3]=a):a=t[3],a}var or=(0,q.memo)(function(e){let t=(0,Q.c)(23),{loadingColor:n,streamEntity:r,emap:i,entityId:a,children:o,mounted:s,noRotation:c,skinName:l}=e,u=n===void 0?`yellow`:n,{shapeName:d}=Be();if(!d){let e=`${a}: `,n;return t[0]===e?n=t[1]:(n=(0,$.jsx)(ar,{color:`orange`,label:e}),t[0]=e,t[1]=n),n}let f=`${a}: ${d}`,p;t[2]===f?p=t[3]:(p=(0,$.jsx)(ar,{color:`red`,label:f}),t[2]=f,t[3]=p);let m;t[4]===d?m=t[5]:(m=e=>{er.error(`Shape error: %s: %o`,d,e)},t[4]=d,t[5]=m);let h;t[6]===u?h=t[7]:(h=(0,$.jsx)(ir,{color:u}),t[6]=u,t[7]=h);let g;t[8]!==o||t[9]!==i||t[10]!==a||t[11]!==s||t[12]!==c||t[13]!==l||t[14]!==r?(g=(0,$.jsx)(cr,{streamEntity:r,emap:i,entityId:a,mounted:s,noRotation:c,skinName:l,children:o}),t[8]=o,t[9]=i,t[10]=a,t[11]=s,t[12]=c,t[13]=l,t[14]=r,t[15]=g):g=t[15];let _;t[16]!==h||t[17]!==g?(_=(0,$.jsx)(q.Suspense,{fallback:h,children:g}),t[16]=h,t[17]=g,t[18]=_):_=t[18];let v;return t[19]!==p||t[20]!==m||t[21]!==_?(v=(0,$.jsx)(Et,{fallback:p,onError:m,children:_}),t[19]=p,t[20]=m,t[21]=_,t[22]=v):v=t[22],v}),sr=(0,q.memo)(function({gltf:e,streamEntity:t,emap:n,entityId:r,children:o,mounted:s,noRotation:u,skinName:d}){let{object:p,shapeName:m}=Be(),{debugMode:h}=l(),{animationEnabled:g}=c(),_=qe(e=>e.runtime.runtime),v=Ze(),{clonedScene:y,mixer:b,clipsByName:x,visNodesBySequence:S,iflMeshes:C}=(0,q.useMemo)(()=>{let t=dt(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})}}),Ie(t,m??void 0,{anisotropy:v,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.vis_keyframes,r=t.vis_duration,a=(t.vis_sequence??``).toLowerCase();if(!a||!Array.isArray(n)||n.length<=1||!r||r<=0)return;let o=i.get(a);o||(o=[],i.set(a,o)),o.push({mesh:e,keyframes:n,duration:r,cyclic:!!t.vis_cyclic})});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;n0?new ge(t):null,clipsByName:c,visNodesBySequence:i,iflMeshes:r}},[e.scene,e.animations,m,v,n,d]);(0,q.useEffect)(()=>()=>{je(y),b?.uncacheRoot(y)},[y,b]);let w=(0,q.useRef)(new Map),T=(0,q.useRef)(new Map),E=(0,q.useRef)([]),D=(0,q.useRef)(0),O=(0,q.useRef)(g);O.current=g;let k=(0,q.useRef)(null),A=(0,q.useRef)(t);A.current=t;let j=(0,q.useRef)(null),M=(0,q.useRef)(null),N=(0,q.useRef)(void 0);(0,q.useEffect)(()=>{E.current=[],T.current.clear();for(let e of C)Ne(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};E.current.push(r),T.current.set(e.mesh,t)}).catch(t=>{er.warn(`Failed to load IFL atlas for %s: %o`,e.iflPath,t)})},[C]);let{seqCyclicByName:ee,seqBlendByName:P}=(0,q.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=w.current,t=A.current==null;function n(e){if(e.mesh.visible=!0,e.mesh.material?.isMeshStandardMaterial){let t=e.mesh.material,n=Re(t,e.mesh.userData?.vis??0);e.mesh.material=n.material}e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.transparent=!0,e.mesh.material.depthWrite=!1);let t=T.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=x.get(o),c=S.get(o),l={sequence:o,startTime:nr(),forward:a};if(s&&b){let e=b.clipAction(s);ee.get(o)??!0?e.setLoop(ie,1/0):(e.setLoop(f,1),e.clampWhenFinished=!0),P.has(o)&&(e.blendMode=ue),e.timeScale=a?1:-1,e.reset(),a||(e.time=s.duration),e.play(),l.action=e}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.visNodes)for(let e of n.visNodes)e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.opacity=e.keyframes[0],e.mesh.visible=e.keyframes[0]>.01);e.delete(t)}}if(j.current=r,M.current=i,b&&x.has(`wheel0`)){let e=[];for(let t=0;t<6;t++){let n={rotation:0},r=x.get(`wheel${t}`);if(r){let e=b.clipAction(r);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),n.wheelAction=e}let i=x.get(`spring${t}`);if(i){let e=b.clipAction(i);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=0,n.springAction=e}let a=x.get(`turn${t}`);if(a){let e=b.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)}k.current=e}else k.current=null;if(!t)return()=>{j.current=null,M.current=null,N.current=void 0,k.current=null;for(let t of[...e.keys()])i(t)};let a=[];_&&(a.push(_.$.onMethodCalled(`ShapeBase`,`playThread`,(e,t,n)=>{e._id===p?._id&&r(Number(t),String(n))})),a.push(_.$.onMethodCalled(`ShapeBase`,`stopThread`,(e,t)=>{e._id===p?._id&&i(Number(t))})),a.push(_.$.onMethodCalled(`ShapeBase`,`pauseThread`,(t,n)=>{if(t._id!==p?._id)return;let r=e.get(Number(n));r?.action&&(r.action.paused=!0)})));for(let[e,t]of[[0,`power`],[1,`ambient`]])(x.has(t)||S.has(t))&&r(e,t);return()=>{a.forEach(e=>e()),j.current=null,M.current=null,N.current=void 0,k.current=null;for(let t of[...e.keys()])i(t)}},[b,x,S,ee,P,p,_]);let F=(0,q.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=w.current,r=A.current!=null,i=Ye.getState().playback,a=r?i.status===`playing`?t*i.rate:0:t,o=A.current?.threads,s=N.current;if(o!==s){let e=j.current,t=M.current;if(e&&t){N.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);!t||t.sequence!==r||t.forward!==a.forward?e(o,r,a.forward):t?.action?.paused&&(t.action.paused=!1,t.action.timeScale=a.forward?1:-1)}}else s&&t(o)}}}b&&g&&b.update(a);for(let[e,t]of n)if(t.visNodes)for(let{mesh:e,keyframes:n,duration:r,cyclic:i}of t.visNodes){let a=e.material;if(!a||Array.isArray(a))continue;if(!g){a.opacity=n[0],e.visible=a.opacity>.01;continue}let o=nr()-t.startTime,s;s=i?(o%r+r)%r/r:t.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,e.visible=a.opacity>.01}let c=A.current?.damageState??0,l=S.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=k.current;if(u&&g){let e=A.current,t=e?.wheels,n=e?.steeringYaw??0,r=e?.maxSteeringAngle??.3;for(let e=0;e0){D.current+=a;for(let e of d){let t=(e,t)=>{Ae(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(g){let t=0;if(e.sequenceName&&e.sequenceDuration){for(let[,r]of n)if(r.sequence===e.sequenceName){let n=nr()-r.startTime,i=e.sequenceDuration;t=(e.cyclic?n/i%1:Math.min(n/i,1))*i+(e.toolBegin??0);break}}else t=D.current;r=Pe(e.atlas,t)}t(e,r)}}});let I=(0,q.useRef)(1),L=(0,q.useRef)(0);i(e=>{let t=A.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===I.current&&r===L.current)return;I.current=n,L.current=r;let a=i?.125+(1-r)*.875:n,o=i?qn():Kn;y.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(A,y);let z=st(r??``),B=(0,q.useMemo)(()=>{if(!z)return null;let t=new ae().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]}},[z,e.scene]),V=(0,q.useMemo)(()=>{let e={};return y.traverse(t=>{let n=t.name.match(/^Mount(\d+)$/);n&&(e[Number(n[1])]=t)}),Object.keys(e).length>0?e:null},[y]),H=(0,q.useMemo)(()=>{let e=null;return y.traverse(t=>{t.name===`Eye`&&(e=t)}),e},[y]);return(0,q.useEffect)(()=>{if(!(!H||!r))return()=>{br.delete(r)}},[H,r]),i(()=>{if(!H||!r)return;let e=br.get(r);e||(e=new R,br.set(r,e)),H.getWorldPosition(e),y.worldToLocal(e);let t=e.x,n=e.y,i=e.z;e.set(i,n,-t)}),(0,$.jsxs)(`group`,{rotation:u?void 0:$n,children:[(0,$.jsx)(`primitive`,{object:y}),h?(0,$.jsxs)(tt,{children:[r,`: `,m]}):null,B&&(0,$.jsx)(`group`,{position:B.center,children:(0,$.jsx)(ct,{size:B.size})}),o,V&&s&&Object.entries(s).map(([e,t])=>{let n=V[Number(e)];return n?(0,$.jsx)(q.Fragment,{children:a((0,$.jsx)(`group`,{rotation:Qn,children:t}),n)},e):null})]})});function cr(e){let t=(0,Q.c)(9),{streamEntity:n,emap:r,entityId:i,children:a,mounted:o,noRotation:s,skinName:c}=e,{shapeName:l}=Be(),u=rr(l),d;return t[0]!==a||t[1]!==r||t[2]!==i||t[3]!==u||t[4]!==o||t[5]!==s||t[6]!==c||t[7]!==n?(d=(0,$.jsx)(sr,{gltf:u,streamEntity:n,emap:r,entityId:i,mounted:o,noRotation:s,skinName:c,children:a}),t[0]=a,t[1]=r,t[2]=i,t[3]=u,t[4]=o,t[5]=s,t[6]=c,t[7]=n,t[8]=d):d=t[8],d}var lr=Ge(`ShapeErrorBoundary`),ur=class extends q.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){lr.error(`Shape load failed: %s %s`,e.message,t.componentStack)}render(){return this.state.hasError?this.props.fallback:this.props.children}},dr={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`},fr=150,pr=.1,mr=-.2,hr=Ue(`gui/hud_alliedtriangle`),gr=Ue(`gui/hud_enemytriangle`),_r=[];function vr(e){let t=(0,Q.c)(23),{entity:n}=e,r=rr(n.shapeName),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={fadeDistance:fr},t[0]=a):a=t[0];let{groupRef:o,isVisible:c,opacityRef:l}=at(a),u=(0,q.useRef)(null),d=(0,q.useRef)(null),f=(0,q.useRef)(null),p=(0,q.useRef)(null),m=(0,q.useRef)(null),h;t[1]===r.scene?h=t[2]:(h=new ae().setFromObject(r.scene),t[1]=r.scene,t[2]=h);let g=h.max.y+pr,_=n.keyframes??_r,v;t[3]===_?v=t[4]:(v=_.some(yr),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=Le(_,ut.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?gr:hr;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?gr:hr,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:dr.Top,children:(0,$.jsx)(`img`,{ref:p,className:dr.IffArrow,src:x,alt:``})})}),(0,$.jsx)(s,{position:[0,mr,0],center:!0,children:(0,$.jsxs)(`div`,{ref:d,className:dr.Bottom,children:[(0,$.jsx)(`div`,{ref:m,className:dr.Name,children:n.playerName??n.id}),y&&(0,$.jsx)(`div`,{className:dr.HealthBar,children:(0,$.jsx)(`div`,{ref:f,className:dr.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 yr(e){return e.health!=null}var br=new Map,xr=`https://exogen.github.io/t2-skins/skins/`,Sr=`https://exogen.github.io/t2-skins/skins.json`,Cr={"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`},wr=[`customSkinManifest`];async function Tr(){let e=await fetch(Sr);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 Er(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:wr,queryFn:Tr,staleTime:1/0,retry:1},e[0]=t):t=e[0],d(t)}var Dr=8,Or=[`root`,`run`,`back`,`side`,`fall`,`jet`,`jump`,`land`];function kr(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=Ze(),l=qe(e=>e.playback.streamSnapshot?.controlPlayerGhostId),{data:d}=Er(),p=(0,q.useMemo)(()=>{let t=e.skinPrefName??e.skinName;if(!t||t===`base`)return;let r=Cr[n.toLowerCase()];if(r){try{return Ue(`skins/${t}.${r}`,null)}catch{}if(d?.[r]?.has(t))return`${xr}${t}.${r}.png`}},[e.skinPrefName,e.skinName,n,d]),m=(0,q.useMemo)(()=>Wn(e.dataBlockId,e.dataBlock),[e.dataBlockId,e.dataBlock]),{clonedScene:h,mixer:g,mount0:_,mount1:v,mount2:y,eyeBone:b,iflInitializers:x}=(0,q.useMemo)(()=>{let e=dt(r.scene),t=Ie(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 ge(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,q.useEffect)(()=>()=>{br.delete(e.id),je(h),g.uncacheRoot(h)},[h,g]);let S=(0,q.useRef)(new Map),C=(0,q.useRef)({head:null,headside:null}),w=(0,q.useRef)(new Map),T=(0,q.useRef)(null),E=(0,q.useRef)({name:`root`,timeScale:1}),D=(0,q.useRef)(!1),O=(0,q.useRef)(void 0),k=(0,q.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 kr(a,o,jr(r.scene,a,o))},[t,n,r.scene]),A=(0,q.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=Xe(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);be.makeClipAdditive(a,o,i,30);let s=g.clipAction(a);s.blendMode=ue,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 V(`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=Fe(r.scene,s);be.makeClipAdditive(s,0,c,30);let l=g.clipAction(s);l.blendMode=ue,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,q.useEffect)(()=>{let e=[];for(let{mesh:t,initialize:n}of x)n(t,()=>ut.getState().time).then(t=>e.push(t)).catch(()=>{});return()=>e.forEach(e=>e())},[x]);let j=t=>e.imageSlots?.[t]?.shapeName,M=(0,q.useRef)(j(0)),[N,ee]=(0,q.useState)(j(0)),P=(0,q.useRef)(j(2)),[F,I]=(0,q.useState)(j(2)),L=(0,q.useRef)(j(3)),[z,B]=(0,q.useState)(j(3)),H=(0,q.useRef)(e);H.current=e,Vn(H,h);let{audioLoader:U,audioListener:te}=et(),{audioEnabled:ne}=c(),W=(0,q.useRef)(null),re=(0,q.useRef)(null),ae=(0,q.useRef)(null);return(0,q.useEffect)(()=>{if(!U)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=it(i,r);if(a){ae.current=a;try{ot(We(a.filename),U,e=>{re.current=e})}catch{}}},[U,t,e.dataBlockId]),(0,q.useEffect)(()=>()=>{let e=W.current;if(e){rt(e);try{e.stop()}catch{}try{e.disconnect()}catch{}e.parent?.remove(e),W.current=null}},[]),i((n,r)=>{let i=j(0);i!==M.current&&(M.current=i,ee(i));let a=j(2);a!==P.current&&(P.current=a,I(a));let o=j(3);o!==L.current&&(L.current=o,B(o));let s=t.getState().playback,c=s.status===`playing`,l=ut.getState().time,d=Le(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(K),t.setLoop(f,1),t.clampWhenFinished=!0,t.reset().fadeIn(K).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(ie,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&&_>=Dr,t=v!=null&&v>=Dr;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(K),t.setLoop(f,1),t.clampWhenFinished=!0,t.reset().fadeIn(K).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(K),t.setLoop(ie,1/0),t.clampWhenFinished=!1)}E.current={name:`root`,timeScale:1};let t=m.get(`root`);t&&t.reset().fadeIn(K).play()}}if(_!=null&&_>=Dr&&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>=Dr;if(!D.current&&!y){let t=gt(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&&(A.get(t.animation)??!0?(r.setLoop(ie,1/0),r.clampWhenFinished=!1):(r.setLoop(f,1),r.clampWhenFinished=!0),c&&e&&e!==r?(e.fadeOut(K),r.reset().fadeIn(K).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:N,headside:F}=C.current,z=T.current?w.current.get(T.current):null,V=p?0:1,H=e.headPitch??0,U=e.headYaw??0,oe=(H+1)/2,se=(U+1)/2;z&&(z.time=oe*z.getClip().duration,z.weight=V),N&&(N.time=oe*N.getClip().duration,N.weight=V),F&&(F.time=se*F.getClip().duration,F.weight=V);let ce=!!e.jetting&&!p,le=ae.current,ue=W.current,de=ue?.isPlaying??!1;if(ce&&!de){if(ne&&te&&re.current&&le){let e=ue;e||(e=new Ee(te),e.setDistanceModel(`inverse`),e.setRefDistance(le.refDist),e.setMaxDistance(le.maxDist),e.setRolloffFactor(1),e.setVolume(le.volume),h.add(e),W.current=e);try{e.setBuffer(re.current),e.setLoop(!0),e.setPlaybackRate(u()),e.play(),$e(e,1)}catch{}}}else if(!ce&&de&&ue){rt(ue);try{ue.stop()}catch{}}if(c?g.update(r*s.rate):g.update(0),b){let t=br.get(e.id);t||(t=new R,br.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)(vr,{entity:e}),(0,$.jsxs)(`group`,{rotation:[0,Math.PI/2,0],children:[(0,$.jsx)(`primitive`,{object:h}),(0,$.jsx)(Pr,{entityId:e.id,scene:r.scene})]}),N&&_&&(0,$.jsx)(ur,{fallback:(0,$.jsx)(ir,{color:`red`,label:N}),children:(0,$.jsx)(lt,{name:`Weapon:${e.id}/${N}`,fallback:(0,$.jsx)(ir,{color:`cyan`,label:N}),children:(0,$.jsx)(Ir,{entity:e,weaponShape:N,mount0:_})})},N),F&&v&&a((0,$.jsx)(q.Suspense,{children:(0,$.jsx)(tr,{shapeName:F,imageDataBlockId:e.imageSlots?.[2]?.dataBlockId,entityId:e.id})}),v),z&&y&&a((0,$.jsx)(q.Suspense,{children:(0,$.jsx)(tr,{shapeName:z,imageDataBlockId:e.imageSlots?.[3]?.dataBlockId,entityId:e.id,skinName:e.imageSlots?.[3]?.skinName})}),y)]})}function Pr(e){let t=(0,Q.c)(19),{entityId:n,scene:r}=e,i=st(n),a;bb0:{if(!i){a=null;break bb0}let e,n;if(t[0]!==r){let i=new ae().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)(ct,{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 Fr(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 Ir(e){let t=(0,Q.c)(46),{entity:n,weaponShape:r,mount0:a}=e,o=Ke(),s=rr(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=Ze(),m,h,g,_;if(t[2]!==p||t[3]!==f||t[4]!==s.animations||t[5]!==s.scene){m=dt(s.scene),h=Ie(m,void 0,{anisotropy:p,emap:f});let e=Me(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 ge(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=Fr(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=()=>()=>{je(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,q.useEffect)(O,k);let A;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(A=new Map,t[23]=A):A=t[23];let j=(0,q.useRef)(A),M=(0,q.useRef)(null),N,ee;t[24]!==s.animations||t[25]!==w?(N=()=>{let e=new Map;for(let t of s.animations)e.set(t.name.toLowerCase(),w.clipAction(t));j.current=e;let t=e.get(`spin`);return t&&(t.setLoop(ie,1/0),t.timeScale=0,t.play()),M.current=t??null,w.update(0),()=>{w.stopAllAction(),j.current=new Map,M.current=null,Mr(H,U)}},ee=[w,s.animations],t[24]=s.animations,t[25]=w,t[26]=N,t[27]=ee):(N=t[26],ee=t[27]),(0,q.useEffect)(N,ee);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,zr).then(t=>e.push(t)).catch(Rr);return()=>e.forEach(Lr)},F=[D],t[28]=D,t[29]=P,t[30]=F),(0,q.useEffect)(P,F);let{audioLoader:I,audioListener:L}=et(),R=c()?.audioEnabled??!1,z=(0,q.useRef)(null),B=(0,q.useRef)(null),V=(0,q.useRef)(n.weaponImageStates),H=(0,q.useRef)(null),U=(0,q.useRef)(-1),te,ne;t[31]!==a||t[32]!==C?(te=()=>(a.add(C),()=>{a.remove(C)}),ne=[C,a],t[31]=a,t[32]=C,t[33]=te,t[34]=ne):(te=t[33],ne=t[34]),(0,q.useEffect)(te,ne);let W;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?(W=(e,t)=>{let r=o.getState().playback,i=r.status===`playing`,a=j.current,s=n.weaponImageState,c=n.weaponImageStates;c!==V.current&&(V.current=c,c&&c.length>0?z.current=new Ct(c,T):z.current=null,B.current=null,Mr(H,U,C)),!z.current&&c&&c.length>0&&(z.current=new Ct(c,T));let l=z.current;if(l&&s&&i){let e=t*r.rate,n=l.tick(e,s);if(Br(n,a,B,E),H.current&&n.stateIndex!==U.current&&Mr(H,U,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=it(t,e);if(n)if(n.isLooping){if(!H.current)try{let e=We(n.filename),t=nt();ot(e,I,e=>{if(t!==nt()||H.current)return;let r=l.stateIndex,i=new Ee(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),$e(i),i.play(),H.current=i,U.current=r})}catch{}}else Qe(n,L,I,void 0,C)}}M.current&&(M.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]=W):W=t[45],i(W),null}function Lr(e){return e()}function Rr(){}function zr(){return ut.getState().time}function Br(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(K),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(ie,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(K),o.reset().fadeIn(K).play()):o.reset().play(),n.current=i}}export{ur as a,rr as c,Et as d,dt as f,wr as i,Wn as l,Tr as n,tr as o,br as r,or as s,Nr as t,zn as u}; \ No newline at end of file diff --git a/docs/assets/PlayerModel-CsbVaSkV.js b/docs/assets/PlayerModel-Kcb6K1_s.js similarity index 61% rename from docs/assets/PlayerModel-CsbVaSkV.js rename to docs/assets/PlayerModel-Kcb6K1_s.js index 3e293212..80e30919 100644 --- a/docs/assets/PlayerModel-CsbVaSkV.js +++ b/docs/assets/PlayerModel-Kcb6K1_s.js @@ -1 +1 @@ -import{i as e,n as t,r as n,t as r}from"./PlayerModel-DY4jKfUP.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-D8NLwrT8.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/ScoreScreen-Ckch_fOf.js b/docs/assets/ScoreScreen-Di92fTHh.js similarity index 99% rename from docs/assets/ScoreScreen-Ckch_fOf.js rename to docs/assets/ScoreScreen-Di92fTHh.js index 595f952c..16e8b8df 100644 --- a/docs/assets/ScoreScreen-Ckch_fOf.js +++ b/docs/assets/ScoreScreen-Di92fTHh.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{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-D4aiQcCU.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 +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-BnXbiEzA.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-D4Uk1kaE.js b/docs/assets/ServerBrowser-DlvPvTfO.js similarity index 98% rename from docs/assets/ServerBrowser-D4Uk1kaE.js rename to docs/assets/ServerBrowser-DlvPvTfO.js index bb29ba19..89c5f72f 100644 --- a/docs/assets/ServerBrowser-D4Uk1kaE.js +++ b/docs/assets/ServerBrowser-DlvPvTfO.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-D4aiQcCU.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-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 diff --git a/docs/assets/StreamingController-D56a4f6m.js b/docs/assets/StreamingController-mmR1lAIE.js similarity index 65% rename from docs/assets/StreamingController-D56a4f6m.js rename to docs/assets/StreamingController-mmR1lAIE.js index a54cee89..87cb29e5 100644 --- a/docs/assets/StreamingController-D56a4f6m.js +++ b/docs/assets/StreamingController-mmR1lAIE.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-DY4jKfUP.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-D4aiQcCU.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-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=` // 'position' is auto-declared by Three.js for ShaderMaterial. attribute vec4 particleColor; attribute float particleSize; @@ -86,4 +86,4 @@ void main() { vec4 tex = texture2D(uTexture, vUV); gl_FragColor = vec4(vColor.rgb * tex.rgb, vColor.a * tex.a); } -`;function We(e){let t=(e+1)*2,n=new Float32Array(t*3),r=new Float32Array(t*2),i=new Float32Array(t*4),a=e*6,o=new Uint16Array(a);for(let t=0;t0){let e=0;for(let n of t)e=Math.max(e,n.x,n.y,n.z);if(e>0)return e/1e3}let n=e.particleRadius;return typeof n==`number`&&n>0?n:5}function Ye(e){let t=new b,n=e*4,r=e*6,i=new Float32Array(n*2);for(let t=0;t{let i=m.current,a=r.current;if(!i||!a)return;let o=te.getState().playback,s=o.status===`playing`,h=s?t*o.rate:0,y=h*1e3,S=n.getDataBlockData.bind(n);for(let e of a.entities){if(e.type!==`Explosion`||!e.explosionDataBlockId||!e.position||b.current.has(e.id))continue;b.current.add(e.id);let t=Qe(e.explosionDataBlockId,S);if(!t)continue;let n=[...e.position];for(let e of t.burstEmitters){let t=new De(e.data,K);t.emitBurst(n,e.density);let r=J(e.data.particles.textureName),a=Ye(K),o=Xe(r,e.data.particles.useInvAlpha,e.data.orientParticles),s=new x(a,o);s.frustumCulled=!1,i.add(s),g.current.push({emitter:t,mesh:s,geometry:a,material:o,targetTexture:r,origin:n,isBurst:!0,hasBurst:!0})}for(let e of t.streamingEmitters){let r=new De(e,K,t.lifetimeMS),a=J(e.particles.textureName),o=Ye(K),s=Xe(a,e.particles.useInvAlpha,e.orientParticles),c=new x(o,s);c.frustumCulled=!1,i.add(c),g.current.push({emitter:r,mesh:c,geometry:o,material:s,targetTexture:a,origin:n,isBurst:!1,hasBurst:!1})}let r=S(e.explosionDataBlockId);if(l){let a=r?Je(r):5,o=qe(e.dataBlock),s=new v({color:o,wireframe:!0,transparent:!0,opacity:1,depthWrite:!1}),c=new x(Re,s);c.frustumCulled=!1,c.scale.setScalar(a),c.position.set(n[1],n[2],n[0]),i.add(c);let{sprite:l,material:u}=ze(`${e.id}: ${e.dataBlock??`expId:${e.explosionDataBlockId}`}`,o);l.position.set(n[1],n[2]+a+2,n[0]),l.frustumCulled=!1,i.add(l),A.current.push({entityId:e.id,mesh:c,material:s,label:l,labelMaterial:u,creationTime:I(),lifetimeMS:Math.max(t.lifetimeMS,3e3),targetRadius:a})}let a=r?.shockwave;if(typeof a==`number`){let t=Be(a,S);if(t){let r=J(t.textureName),a=We(t.numSegments),o=Ke(r),s=new x(a,o);s.frustumCulled=!1,s.position.set(n[1],n[2],n[0]),i.add(s);let c=null,l=null;t.renderBottom&&(l=We(t.numSegments),c=new x(l,o),c.frustumCulled=!1,c.position.set(n[1],n[2],n[0]),c.scale.y=-1,i.add(c));let u=Math.abs(t.velocity)>1e-10?t.velocity:0;M.current.push({entityId:e.id,mesh:s,bottomMesh:c,geometry:a,bottomGeometry:l,material:o,creationTime:I(),lifetimeMS:t.lifetimeMS,data:t,radius:0,velocity:u})}}}let w=new Set;for(let e of a.entities){if(w.add(e.id),!e.maintainEmitterId||C.current.has(e.id))continue;C.current.add(e.id);let t=S(e.maintainEmitterId);if(!t)continue;let n=Se(t,S);if(!n)continue;let r=e.position?[...e.position]:[0,0,0],a=new De(n,K),o=J(n.particles.textureName),s=Ye(K),c=Xe(o,n.particles.useInvAlpha,n.orientParticles),l=new x(s,c);l.frustumCulled=!1,i.add(l),g.current.push({emitter:a,mesh:l,geometry:s,material:c,targetTexture:o,origin:r,isBurst:!1,hasBurst:!1,followEntityId:e.id})}for(let e of g.current)e.followEntityId&&!w.has(e.followEntityId)&&e.emitter.kill();for(let e of C.current)w.has(e)||C.current.delete(e);let D=g.current;for(let e=D.length-1;e>=0;e--){let t=D[e];if(t.shaderChecked||=(Ze(p,t.material,t.isBurst?`burst`:`stream`),!0),t.followEntityId){let e=a.entities.find(e=>e.id===t.followEntityId);e?.position&&(t.origin[0]=e.position[0],t.origin[1]=e.position[1],t.origin[2]=e.position[2]),e?.direction&&(t.emitAxis=e.direction)}if(t.isBurst||t.emitter.emitPeriodic(t.origin,y,t.emitAxis),t.emitter.update(y),Ne.has(t.targetTexture)&&t.material.uniforms.particleTexture.value!==t.targetTexture&&(t.material.uniforms.particleTexture.value=t.targetTexture),t.material.uniforms.debugOpacity.value=l?.2:1,$e(t),l){t.debugOriginMesh||(t.debugOriginMesh=new x(Pe,Fe),t.debugOriginMesh.frustumCulled=!1,i.add(t.debugOriginMesh)),t.debugOriginMesh.position.set(t.origin[1],t.origin[2],t.origin[0]),t.debugParticleMeshes||=[];let e=Math.min(t.emitter.particles.length,8);for(;t.debugParticleMeshes.length=0;e--){let t=k[e],n=j-t.creationTime,r=Math.min(n/t.lifetimeMS,1),a=Math.min(r/.1,1);t.mesh.scale.setScalar(t.targetRadius*a),t.material.opacity=1-r,t.labelMaterial.opacity=1-r,r>=1&&(i.remove(t.mesh),i.remove(t.label),t.material.dispose(),t.labelMaterial.dispose(),k.splice(e,1))}let N=M.current;for(let t=N.length-1;t>=0;t--){let n=N[t],r=j-n.creationTime,a=Math.min(r/n.lifetimeMS,1),o=h;n.velocity+=n.data.acceleration*o,n.radius+=n.velocity*o;let s=Ve(n.data,a);Ge(n.geometry,n.data,n.radius,s,n.data.is2D),n.bottomGeometry&&Ge(n.bottomGeometry,n.data,n.radius,s,n.data.is2D),n.data.is2D&&n.mesh.lookAt(e.camera.position),a>=1&&(i.remove(n.mesh),n.bottomMesh&&i.remove(n.bottomMesh),n.geometry.dispose(),n.bottomGeometry?.dispose(),n.material.dispose(),N.splice(t,1))}if(s&&u&&d&&f&&m.current){for(let e of a.entities){if(e.type!==`Explosion`||!e.explosionDataBlockId||!e.position)continue;let t=`snd:${e.id}`;if(O.current.has(t))continue;O.current.add(t);let n=S(e.explosionDataBlockId);if(!n)continue;let r=n.soundProfile;if(typeof r!=`number`)continue;let i=se(r,S);i&&ne(i,f,d,new _(e.position[1],e.position[2],e.position[0]),m.current)}let e=T.current;for(let t of a.entities){if(t.type!==`Projectile`||!t.dataBlockId||!t.position)continue;if(e.has(t.id)){e.get(t.id).position.set(t.position[1],t.position[2],t.position[0]);continue}if(e.size>=et)continue;let n=S(t.dataBlockId);if(!n)continue;let r=n.sound;if(typeof r!=`number`)continue;let i=se(r,S);if(!(!i||!i.isLooping||!i.is3D))try{let n=ee(i.filename),r=ae();ce(n,d,n=>{if(r!==ae()||!w.has(t.id)||e.has(t.id))return;let a=m.current;if(!a)return;let o=new E(f);o.setBuffer(n),o.setDistanceModel(`inverse`),o.setRefDistance(i.refDist),o.setMaxDistance(i.maxDist),o.setRolloffFactor(1),o.setVolume(i.volume),o.setPlaybackRate(c()),o.setLoop(!0),o.position.set(t.position[1],t.position[2],t.position[0]),a.add(o),re(o),o.play(),e.set(t.id,o)})}catch{}}for(let[t,n]of e)if(!w.has(t)){oe(n);try{n.stop()}catch{}try{n.disconnect()}catch{}m.current?.remove(n),e.delete(t)}for(let e of a.audioEvents){let t=`${e.timeSec}:${e.profileId}:${e.position?.x??``}`;if(O.current.has(t))continue;O.current.add(t);let n=se(e.profileId,S);n&&ne(n,f,d,e.position?new _(e.position.y,e.position.z,e.position.x):void 0,m.current)}}if(b.current.size>500){let e=new Set(a.entities.map(rt));for(let t of b.current)e.has(t)||b.current.delete(t)}if(O.current.size>500){let e=new Set(a.entities.map(nt));for(let t of O.current)t.startsWith(`snd:`)&&e.has(t.slice(4))||O.current.delete(t)}},t[7]=u,t[8]=f,t[9]=d,t[10]=l,t[11]=p,t[12]=n,t[13]=r,t[14]=N):N=t[14],i(N);let P,F;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>()=>{let e=m.current;for(let t of g.current){if(e&&(e.remove(t.mesh),t.debugOriginMesh&&e.remove(t.debugOriginMesh),t.debugParticleMeshes))for(let n of t.debugParticleMeshes)e.remove(n);t.geometry.dispose(),t.material.dispose()}g.current=[];for(let t of A.current)e&&(e.remove(t.mesh),e.remove(t.label)),t.material.dispose(),t.labelMaterial.dispose();A.current=[];for(let t of M.current)e&&(e.remove(t.mesh),t.bottomMesh&&e.remove(t.bottomMesh)),t.geometry.dispose(),t.bottomGeometry?.dispose(),t.material.dispose();M.current=[],b.current.clear(),C.current.clear();for(let[,t]of T.current){oe(t);try{t.stop()}catch{}try{t.disconnect()}catch{}e&&e.remove(t)}T.current.clear(),O.current.clear()},P=[],t[15]=P,t[16]=F):(P=t[15],F=t[16]),(0,B.useEffect)(F,P);let L;return t[17]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,G.jsx)(`group`,{ref:m}),t[17]=L):L=t[17],L}function nt(e){return e.id}function rt(e){return e.id}function it(e){return e.gl}function Y(e,t){return{id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t,position:e.position,rotation:e.rotation,velocity:e.velocity,mountObjectId:e.mountObjectId,mountNode:e.mountNode,imageSlots:e.imageSlots,keyframes:[{time:t??0,position:e.position??[0,0,0],rotation:e.rotation??[0,0,0,1]}]}}function at(e,t){if(e.sceneData){let n={id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t};switch(e.sceneData.className){case`TerrainBlock`:return{...n,renderType:`TerrainBlock`,terrainData:e.sceneData};case`InteriorInstance`:return{...n,renderType:`InteriorInstance`,interiorData:e.sceneData};case`Sky`:return{...n,renderType:`Sky`,skyData:e.sceneData};case`Sun`:return{...n,renderType:`Sun`,sunData:e.sceneData};case`WaterBlock`:return{...n,renderType:`WaterBlock`,waterData:e.sceneData};case`MissionArea`:return{...n,renderType:`MissionArea`,missionAreaData:e.sceneData};case`TSStatic`:return{...Y(e,t),renderType:`Shape`,shapeName:e.sceneData.shapeName,shapeType:`TSStatic`,dataBlock:e.dataBlock}}}switch(e.visual?.kind){case`tracer`:return{...Y(e,t),renderType:`Tracer`,visual:e.visual,dataBlock:e.dataBlock,direction:e.direction};case`sprite`:return{...Y(e,t),renderType:`Sprite`,visual:e.visual}}switch(e.className){case`Player`:return{...Y(e,t),renderType:`Player`,shapeName:e.dataBlock,dataBlock:e.dataBlock,armAction:e.armAction,falling:e.falling,jetting:e.jetting,playerName:e.playerName,skinName:e.skinName,skinPrefName:e.skinPrefName,iffColor:e.iffColor,threads:e.threads,weaponImageState:e.weaponImageState,weaponImageStates:e.weaponImageStates,headPitch:e.headPitch,headYaw:e.headYaw,targetRenderFlags:e.targetRenderFlags,soundSlots:e.soundSlots};case`Explosion`:return e.dataBlock?{...Y(e,t),renderType:`Explosion`,shapeName:e.dataBlock,dataBlock:e.dataBlock,explosionDataBlockId:e.explosionDataBlockId,faceViewer:e.faceViewer}:{...Y(e,t),renderType:`None`};case`ForceFieldBare`:return{...Y(e,t),renderType:`ForceFieldBare`,forceFieldData:e.forceFieldData?{textures:e.forceFieldData.textures,color:e.forceFieldData.color,baseTranslucency:e.forceFieldData.baseTranslucency,numFrames:e.forceFieldData.textures.length,framesPerSec:e.forceFieldData.framesPerSec,scrollSpeed:e.forceFieldData.scrollSpeed,umapping:e.forceFieldData.umapping,vmapping:e.forceFieldData.vmapping,dimensions:e.forceFieldData.dimensions}:void 0};case`AudioEmitter`:return{...Y(e,t),renderType:`AudioEmitter`,audioFileName:e.audioFileName,audioVolume:e.audioVolume,audioIs3D:e.audioIs3D,audioIsLooping:e.audioIsLooping??!0,audioMinDistance:e.audioMinDistance,audioMaxDistance:e.audioMaxDistance,audioMinLoopGap:e.audioMinLoopGap,audioMaxLoopGap:e.audioMaxLoopGap};case`WayPoint`:return{...Y(e,t),renderType:`WayPoint`,label:e.label};case`AIObjective`:case`MissionMarker`:case`PhysicalZone`:case`SpawnSphere`:case`VehicleBlocker`:return{id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t,renderType:`None`};case`Camera`:return{...Y(e,t),renderType:`Camera`};default:return{...Y(e,t),renderType:`Shape`,shapeName:e.dataBlock,shapeType:e.className===`Turret`?`Turret`:e.className===`Item`?`Item`:`StaticShape`,dataBlock:e.dataBlock,skinName:e.skinName,damageState:e.damageState,armAction:e.armAction,threads:e.threads,targetRenderFlags:e.targetRenderFlags,iffColor:e.iffColor,wheels:e.wheels,steeringYaw:e.steeringYaw,frozen:e.frozen,maxSteeringAngle:e.maxSteeringAngle,soundSlots:e.soundSlots,fadeVal:e.fadeVal,cloakLevel:e.cloakLevel}}}function ot(e,t){return e[t]}function st(e,t){let n=e;switch(n.mountObjectId=t.mountObjectId,n.mountNode=t.mountNode,n.imageSlots=t.imageSlots,e.renderType){case`Player`:n.threads=t.threads,n.armAction=t.armAction,n.falling=t.falling,n.jetting=t.jetting,n.weaponImageState=t.weaponImageState,n.weaponImageStates=t.weaponImageStates,n.playerName=t.playerName,n.iffColor=t.iffColor,n.headPitch=t.headPitch,n.headYaw=t.headYaw,n.targetRenderFlags=t.targetRenderFlags,n.soundSlots=t.soundSlots;break;case`Shape`:n.threads=t.threads,n.damageState=t.damageState,n.fadeVal=t.fadeVal,n.cloakLevel=t.cloakLevel,n.armAction=t.armAction,n.targetRenderFlags=t.targetRenderFlags,n.iffColor=t.iffColor,n.soundSlots=t.soundSlots;break}}var ct=new WeakMap;function lt(e){let t=ct.get(e);return t||(t=new Map(e.entities.map(e=>[e.id,e])),ct.set(e,t)),t}var X=new _,Z=new u,ut=new u,dt=new u,ft=new u,pt=new u(0,1,0,0),Q=new _,$=new _,mt=new _,ht=1.5,gt=new _(1,0,0),_t=new _(0,1,0);function vt(e,t,n,r,i,a=ht){X.copy(n).applyQuaternion(t.quaternion),e.position.copy(t.position).add(X);let o=-r*a,s=i*a;dt.setFromAxisAngle(_t,s),ft.setFromAxisAngle(gt,o),dt.multiply(ft),e.quaternion.copy(t.quaternion).multiply(dt)}function yt(e){let t=(0,fe.c)(19),{recording:n}=e,r=F(),{fov:a}=o(),s=(0,B.useRef)(0),c=(0,B.useRef)(0),l=(0,B.useRef)(null),u=(0,B.useRef)(null),d=(0,B.useRef)(n.streamingPlayback??null),f=(0,B.useRef)(null),p=(0,B.useRef)(null),m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>{if(e===p.current)return;p.current=e;let t=z.getState().streamEntities,n=!1,r=new Set;for(let i of e.entities){r.add(i.id);let a=t.get(i.id),o=a&&(a.renderType===`Shape`||a.renderType===`Player`||a.renderType===`Explosion`);if(!a||a.className!==(i.className??i.type)||a.ghostIndex!==i.ghostIndex||a.dataBlockId!==i.dataBlockId||a.shapeHint!==i.shapeHint||o&&i.dataBlock!=null&&ot(a,`shapeName`)!==i.dataBlock||a.renderType!==`Player`&&o&&ot(a,`imageSlots`)!==i.imageSlots){let r=a?.debugHidden;a=at(i,e.timeSec),r&&(a.debugHidden=!0),t.set(i.id,a),n=!0}else{let e=a.mountObjectId;st(a,i),a.mountObjectId!==e&&(n=!0)}if(de(a)||a.renderType===`None`)continue;let s=a.keyframes;s.length===0&&s.push({time:e.timeSec,position:i.position??[0,0,0],rotation:i.rotation??[0,0,0,1]});let c=s[0];c.time=e.timeSec,i.position&&(c.position=i.position),i.rotation&&(c.rotation=i.rotation),c.velocity=i.velocity,c.health=i.health,c.energy=i.energy,c.actionAnim=i.actionAnim,c.actionAtEnd=i.actionAtEnd,c.damageState=i.damageState}if(r.size>0)for(let[i,a]of t)r.has(i)||a.renderType===`Explosion`&&a.shapeName&&a.spawnTime!=null&&e.timeSec-a.spawnTime<5||(t.delete(i),n=!0);n&&z.getState().bumpStreamVersion()},t[0]=m):m=t[0];let h=m,g;t[1]!==r||t[2]!==n.gameType||t[3]!==n.missionName||t[4]!==n.recorderName||t[5]!==n.recordingDate||t[6]!==n.serverDisplayName||t[7]!==n.source||t[8]!==n.streamingPlayback?(g=()=>{le(),d.current=n.streamingPlayback??null,p.current=null,f.current=null,ue(),s.current=0,c.current=0,l.current=null,u.current=null;let e=d.current;if(R.setState({playback:e}),z.getState().beginStreaming(n.source),!e){r.getState().setPlaybackStreamSnapshot(null);return}e.onMissionInfoChange=()=>{z.getState().setMissionInfo({missionDisplayName:e.missionDisplayName??void 0,missionTypeDisplayName:e.missionTypeDisplayName??void 0,gameClassName:e.gameClassName??void 0,recorderName:e.connectedPlayerName??void 0})};let t=e.missionDisplayName,i=e.missionTypeDisplayName,a=e.gameClassName,o=e.serverDisplayName,m=e.connectedPlayerName;n.source!==`live`&&e.reset(),e.missionDisplayName=t,e.missionTypeDisplayName=i,e.gameClassName=a,e.serverDisplayName=o,e.connectedPlayerName=m,z.getState().setMissionInfo({missionName:n.missionName??void 0,missionTypeDisplayName:n.gameType??void 0,missionDisplayName:t??void 0,gameClassName:a??void 0,serverDisplayName:o??n.serverDisplayName??void 0,recorderName:m??n.recorderName??void 0,recordingDate:n.recordingDate??void 0});let g=e.getSnapshot();return R.setState({time:g.timeSec}),s.current=g.timeSec,l.current=g,u.current=g,h(g),r.getState().setPlaybackStreamSnapshot(g),f.current=g,()=>{le(),d.current=null,ue()}},t[1]=r,t[2]=n.gameType,t[3]=n.missionName,t[4]=n.recorderName,t[5]=n.recordingDate,t[6]=n.serverDisplayName,t[7]=n.source,t[8]=n.streamingPlayback,t[9]=g):g=t[9];let _;t[10]!==r||t[11]!==n?(_=[n,r,h],t[10]=r,t[11]=n,t[12]=_):_=t[12],(0,B.useEffect)(g,_);let v;t[13]!==r||t[14]!==n.source||t[15]!==a?(v=(e,t)=>{let i=d.current;if(!i)return;let o=r.getState(),p=o.playback,m=p.status===`playing`,g=p.seekTime!==c.current;g&&(c.current=p.seekTime,s.current=p.seekTime),m&&(L(t,p.rate),s.current+=t*p.rate);let _=Math.max(1,Math.ceil(t*1e3*Math.max(p.rate,.01)/32)+2),v=s.current+j,y=i.stepToTime(v,m&&!g?_:1/0),b=u.current;!b||y.timeSec.032*1.5?(l.current=y,u.current=y):y.timeSec!==b.timeSec&&(l.current=b,u.current=y);let x=u.current??y,S=l.current??x,C=x.timeSec-j,w=Math.max(0,Math.min(1,(s.current-C)/j));R.setState({time:s.current}),y.exhausted&&m&&(s.current=Math.min(s.current,y.timeSec)),h(x),x!==f.current&&(f.current=x,o.setPlaybackStreamSnapshot(x));let T=x.camera,E=T&&S.camera&&S.camera.mode===T.mode&&S.camera.controlEntityId===T.controlEntityId&&S.camera.orbitTargetId===T.orbitTargetId?S.camera:null,O=R.getState().cameraMode,M=n.source===`live`;if(T&&O!==`freeFly`){if(!M&&O!==`orbitOverride`)if(E){let t=E.position[0],n=E.position[1],r=E.position[2],i=T.position[0],a=T.position[1],o=T.position[2],s=t+(i-t)*w,c=n+(a-n)*w,l=r+(o-r)*w;e.camera.position.set(c,l,s),Z.set(...E.rotation),ut.set(...T.rotation),Z.slerp(ut,w),e.camera.quaternion.copy(Z)}else e.camera.position.set(T.position[1],T.position[2],T.position[0]),e.camera.quaternion.set(...T.rotation);if(`isPerspectiveCamera`in e.camera&&e.camera.isPerspectiveCamera){let t=e.camera,n=A(a,t.aspect);Math.abs(t.fov-n)>.01&&(t.fov=n,t.updateProjectionMatrix())}}let N=lt(x),ee=lt(S),P=z.getState().streamEntities,F=R.getState().root;if(F)for(let t of F.children){let n=P.get(t.name);if(n&&de(n))continue;let r=N.get(t.name);if(!r){let e=n&&`keyframes`in n?n.keyframes:void 0;if(e?.[0]?.position){let n=e[0];t.visible=!0,t.position.set(n.position[1],n.position[2],n.position[0]);continue}}if(!r?.position||r.fadeVal===0&&!r.cloakLevel){t.visible=!1;continue}t.visible=!0;let i=ee.get(t.name);if(i?.position){let e=i.position[0],n=i.position[1],a=i.position[2],o=r.position[0],s=r.position[1],c=r.position[2],l=e+(o-e)*w,u=n+(s-n)*w,d=a+(c-a)*w;t.position.set(u,d,l)}else t.position.set(r.position[1],r.position[2],r.position[0]);r.faceViewer?t.quaternion.copy(e.camera.quaternion).multiply(pt):r.visual?.kind===`tracer`?t.quaternion.identity():r.rotation&&(i?.rotation?(Z.set(...i.rotation),ut.set(...r.rotation),Z.slerp(ut,w),t.quaternion.copy(Z)):t.quaternion.set(...r.rotation))}let I=T?.mode,te=O===`orbitOverride`&&!M&&T?.orbitTargetId!=null;if(O!==`freeFly`&&!M&&(I===`third-person`||te)&&F&&T?.orbitTargetId){let t=F.children.find(e=>e.name===T.orbitTargetId);if(t){let n=N.get(T.orbitTargetId);$.copy(t.position),T.orbitOffset?$.y+=T.orbitOffset:n?.type===`Player`&&($.y+=1);let r=!1;if(te){let e=R.getState(),t=Math.sin(e.orbitOverridePitch),n=Math.cos(e.orbitOverridePitch),i=Math.sin(e.orbitOverrideYaw),a=Math.cos(e.orbitOverrideYaw);Q.set(-a*n,-t,-i*n),r=Q.lengthSq()>1e-8}else if(T.orbitDirection)Q.set(T.orbitDirection[0],T.orbitDirection[1],T.orbitDirection[2]),r=Q.lengthSq()>1e-8;else if(typeof T.yaw==`number`&&typeof T.pitch==`number`){let e=Math.sin(T.pitch),t=Math.cos(T.pitch),n=Math.sin(T.yaw),i=Math.cos(T.yaw);Q.set(-i*t,-e,-n*t),r=Q.lengthSq()>1e-8}if(r||=(Q.copy(e.camera.position).sub($),Q.lengthSq()>1e-8),r){Q.normalize();let t=Math.max(.1,T.orbitDistance??4);mt.copy($).addScaledVector(Q,t),e.camera.position.copy(mt),e.camera.lookAt($)}}}if(I===`first-person`&&F&&T?.controlEntityId){let t=D.get(T.controlEntityId),n=F.children.find(e=>e.name===T.controlEntityId);if(O===`original`)t&&n?(X.copy(t).applyQuaternion(n.quaternion),e.camera.position.add(X)):e.camera.position.y=e.camera.position.y+k;else if(n){let r=N.get(T.controlEntityId);vt(e.camera,n,t??X.set(0,2.1,0),r?.headPitch??0,r?.headYaw??0)}}m&&y.exhausted&&o.setPlaybackStatus(`paused`)},t[13]=r,t[14]=n.source,t[15]=a,t[16]=v):v=t[16],i(v);let y;return t[17]===n.streamingPlayback?y=t[18]:(y=(0,G.jsx)(G.Fragment,{children:(0,G.jsx)(tt,{playback:n.streamingPlayback,snapshotRef:u})}),t[17]=n.streamingPlayback,t[18]=y),y}export{yt as StreamingController}; \ No newline at end of file +`;function We(e){let t=(e+1)*2,n=new Float32Array(t*3),r=new Float32Array(t*2),i=new Float32Array(t*4),a=e*6,o=new Uint16Array(a);for(let t=0;t0){let e=0;for(let n of t)e=Math.max(e,n.x,n.y,n.z);if(e>0)return e/1e3}let n=e.particleRadius;return typeof n==`number`&&n>0?n:5}function Ye(e){let t=new b,n=e*4,r=e*6,i=new Float32Array(n*2);for(let t=0;t{let i=m.current,a=r.current;if(!i||!a)return;let o=te.getState().playback,s=o.status===`playing`,h=s?t*o.rate:0,y=h*1e3,S=n.getDataBlockData.bind(n);for(let e of a.entities){if(e.type!==`Explosion`||!e.explosionDataBlockId||!e.position||b.current.has(e.id))continue;b.current.add(e.id);let t=Qe(e.explosionDataBlockId,S);if(!t)continue;let n=[...e.position];for(let e of t.burstEmitters){let t=new De(e.data,K);t.emitBurst(n,e.density);let r=J(e.data.particles.textureName),a=Ye(K),o=Xe(r,e.data.particles.useInvAlpha,e.data.orientParticles),s=new x(a,o);s.frustumCulled=!1,i.add(s),g.current.push({emitter:t,mesh:s,geometry:a,material:o,targetTexture:r,origin:n,isBurst:!0,hasBurst:!0})}for(let e of t.streamingEmitters){let r=new De(e,K,t.lifetimeMS),a=J(e.particles.textureName),o=Ye(K),s=Xe(a,e.particles.useInvAlpha,e.orientParticles),c=new x(o,s);c.frustumCulled=!1,i.add(c),g.current.push({emitter:r,mesh:c,geometry:o,material:s,targetTexture:a,origin:n,isBurst:!1,hasBurst:!1})}let r=S(e.explosionDataBlockId);if(l){let a=r?Je(r):5,o=qe(e.dataBlock),s=new v({color:o,wireframe:!0,transparent:!0,opacity:1,depthWrite:!1}),c=new x(Re,s);c.frustumCulled=!1,c.scale.setScalar(a),c.position.set(n[1],n[2],n[0]),i.add(c);let{sprite:l,material:u}=ze(`${e.id}: ${e.dataBlock??`expId:${e.explosionDataBlockId}`}`,o);l.position.set(n[1],n[2]+a+2,n[0]),l.frustumCulled=!1,i.add(l),A.current.push({entityId:e.id,mesh:c,material:s,label:l,labelMaterial:u,creationTime:I(),lifetimeMS:Math.max(t.lifetimeMS,3e3),targetRadius:a})}let a=r?.shockwave;if(typeof a==`number`){let t=Be(a,S);if(t){let r=J(t.textureName),a=We(t.numSegments),o=Ke(r),s=new x(a,o);s.frustumCulled=!1,s.position.set(n[1],n[2],n[0]),i.add(s);let c=null,l=null;t.renderBottom&&(l=We(t.numSegments),c=new x(l,o),c.frustumCulled=!1,c.position.set(n[1],n[2],n[0]),c.scale.y=-1,i.add(c));let u=Math.abs(t.velocity)>1e-10?t.velocity:0;M.current.push({entityId:e.id,mesh:s,bottomMesh:c,geometry:a,bottomGeometry:l,material:o,creationTime:I(),lifetimeMS:t.lifetimeMS,data:t,radius:0,velocity:u})}}}let w=new Set;for(let e of a.entities){if(w.add(e.id),!e.maintainEmitterId||C.current.has(e.id))continue;C.current.add(e.id);let t=S(e.maintainEmitterId);if(!t)continue;let n=Se(t,S);if(!n)continue;let r=e.position?[...e.position]:[0,0,0],a=new De(n,K),o=J(n.particles.textureName),s=Ye(K),c=Xe(o,n.particles.useInvAlpha,n.orientParticles),l=new x(s,c);l.frustumCulled=!1,i.add(l),g.current.push({emitter:a,mesh:l,geometry:s,material:c,targetTexture:o,origin:r,isBurst:!1,hasBurst:!1,followEntityId:e.id})}for(let e of g.current)e.followEntityId&&!w.has(e.followEntityId)&&e.emitter.kill();for(let e of C.current)w.has(e)||C.current.delete(e);let D=g.current;for(let e=D.length-1;e>=0;e--){let t=D[e];if(t.shaderChecked||=(Ze(p,t.material,t.isBurst?`burst`:`stream`),!0),t.followEntityId){let e=a.entities.find(e=>e.id===t.followEntityId);e?.position&&(t.origin[0]=e.position[0],t.origin[1]=e.position[1],t.origin[2]=e.position[2]),e?.direction&&(t.emitAxis=e.direction)}if(t.isBurst||t.emitter.emitPeriodic(t.origin,y,t.emitAxis),t.emitter.update(y),Ne.has(t.targetTexture)&&t.material.uniforms.particleTexture.value!==t.targetTexture&&(t.material.uniforms.particleTexture.value=t.targetTexture),t.material.uniforms.debugOpacity.value=l?.2:1,$e(t),l){t.debugOriginMesh||(t.debugOriginMesh=new x(Pe,Fe),t.debugOriginMesh.frustumCulled=!1,i.add(t.debugOriginMesh)),t.debugOriginMesh.position.set(t.origin[1],t.origin[2],t.origin[0]),t.debugParticleMeshes||=[];let e=Math.min(t.emitter.particles.length,8);for(;t.debugParticleMeshes.length=0;e--){let t=k[e],n=j-t.creationTime,r=Math.min(n/t.lifetimeMS,1),a=Math.min(r/.1,1);t.mesh.scale.setScalar(t.targetRadius*a),t.material.opacity=1-r,t.labelMaterial.opacity=1-r,r>=1&&(i.remove(t.mesh),i.remove(t.label),t.material.dispose(),t.labelMaterial.dispose(),k.splice(e,1))}let N=M.current;for(let t=N.length-1;t>=0;t--){let n=N[t],r=j-n.creationTime,a=Math.min(r/n.lifetimeMS,1),o=h;n.velocity+=n.data.acceleration*o,n.radius+=n.velocity*o;let s=Ve(n.data,a);Ge(n.geometry,n.data,n.radius,s,n.data.is2D),n.bottomGeometry&&Ge(n.bottomGeometry,n.data,n.radius,s,n.data.is2D),n.data.is2D&&n.mesh.lookAt(e.camera.position),a>=1&&(i.remove(n.mesh),n.bottomMesh&&i.remove(n.bottomMesh),n.geometry.dispose(),n.bottomGeometry?.dispose(),n.material.dispose(),N.splice(t,1))}if(s&&u&&d&&f&&m.current){for(let e of a.entities){if(e.type!==`Explosion`||!e.explosionDataBlockId||!e.position)continue;let t=`snd:${e.id}`;if(O.current.has(t))continue;O.current.add(t);let n=S(e.explosionDataBlockId);if(!n)continue;let r=n.soundProfile;if(typeof r!=`number`)continue;let i=se(r,S);i&&ne(i,f,d,new _(e.position[1],e.position[2],e.position[0]),m.current)}let e=T.current;for(let t of a.entities){if(t.type!==`Projectile`||!t.dataBlockId||!t.position)continue;if(e.has(t.id)){e.get(t.id).position.set(t.position[1],t.position[2],t.position[0]);continue}if(e.size>=et)continue;let n=S(t.dataBlockId);if(!n)continue;let r=n.sound;if(typeof r!=`number`)continue;let i=se(r,S);if(!(!i||!i.isLooping||!i.is3D))try{let n=ee(i.filename),r=ae();ce(n,d,n=>{if(r!==ae()||!w.has(t.id)||e.has(t.id))return;let a=m.current;if(!a)return;let o=new E(f);o.setBuffer(n),o.setDistanceModel(`inverse`),o.setRefDistance(i.refDist),o.setMaxDistance(i.maxDist),o.setRolloffFactor(1),o.setVolume(i.volume),o.setPlaybackRate(c()),o.setLoop(!0),o.position.set(t.position[1],t.position[2],t.position[0]),a.add(o),re(o),o.play(),e.set(t.id,o)})}catch{}}for(let[t,n]of e)if(!w.has(t)){oe(n);try{n.stop()}catch{}try{n.disconnect()}catch{}m.current?.remove(n),e.delete(t)}for(let e of a.audioEvents){let t=`${e.timeSec}:${e.profileId}:${e.position?.x??``}`;if(O.current.has(t))continue;O.current.add(t);let n=se(e.profileId,S);n&&ne(n,f,d,e.position?new _(e.position.y,e.position.z,e.position.x):void 0,m.current)}}if(b.current.size>500){let e=new Set(a.entities.map(rt));for(let t of b.current)e.has(t)||b.current.delete(t)}if(O.current.size>500){let e=new Set(a.entities.map(nt));for(let t of O.current)t.startsWith(`snd:`)&&e.has(t.slice(4))||O.current.delete(t)}},t[7]=u,t[8]=f,t[9]=d,t[10]=l,t[11]=p,t[12]=n,t[13]=r,t[14]=N):N=t[14],i(N);let P,F;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>()=>{let e=m.current;for(let t of g.current){if(e&&(e.remove(t.mesh),t.debugOriginMesh&&e.remove(t.debugOriginMesh),t.debugParticleMeshes))for(let n of t.debugParticleMeshes)e.remove(n);t.geometry.dispose(),t.material.dispose()}g.current=[];for(let t of A.current)e&&(e.remove(t.mesh),e.remove(t.label)),t.material.dispose(),t.labelMaterial.dispose();A.current=[];for(let t of M.current)e&&(e.remove(t.mesh),t.bottomMesh&&e.remove(t.bottomMesh)),t.geometry.dispose(),t.bottomGeometry?.dispose(),t.material.dispose();M.current=[],b.current.clear(),C.current.clear();for(let[,t]of T.current){oe(t);try{t.stop()}catch{}try{t.disconnect()}catch{}e&&e.remove(t)}T.current.clear(),O.current.clear()},P=[],t[15]=P,t[16]=F):(P=t[15],F=t[16]),(0,B.useEffect)(F,P);let L;return t[17]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,G.jsx)(`group`,{ref:m}),t[17]=L):L=t[17],L}function nt(e){return e.id}function rt(e){return e.id}function it(e){return e.gl}function Y(e,t){return{id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,dataBlock:e.dataBlock,skinName:e.skinName,spawnTime:t,position:e.position,rotation:e.rotation,velocity:e.velocity,mountObjectId:e.mountObjectId,mountNode:e.mountNode,imageSlots:e.imageSlots,threads:e.threads,armAction:e.armAction,damageState:e.damageState,targetRenderFlags:e.targetRenderFlags,iffColor:e.iffColor,soundSlots:e.soundSlots,health:e.health,energy:e.energy,actionAnim:e.actionAnim,actionAtEnd:e.actionAtEnd,keyframes:[{time:t??0,position:e.position??[0,0,0],rotation:e.rotation??[0,0,0,1]}]}}function at(e,t){if(e.sceneData){let n={id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t};switch(e.sceneData.className){case`TerrainBlock`:return{...n,renderType:`TerrainBlock`,terrainData:e.sceneData};case`InteriorInstance`:return{...n,renderType:`InteriorInstance`,interiorData:e.sceneData};case`Sky`:return{...n,renderType:`Sky`,skyData:e.sceneData};case`Sun`:return{...n,renderType:`Sun`,sunData:e.sceneData};case`WaterBlock`:return{...n,renderType:`WaterBlock`,waterData:e.sceneData};case`MissionArea`:return{...n,renderType:`MissionArea`,missionAreaData:e.sceneData};case`TSStatic`:return{...Y(e,t),renderType:`Shape`,shapeName:e.sceneData.shapeName,shapeType:`TSStatic`,dataBlock:e.dataBlock}}}switch(e.visual?.kind){case`tracer`:return{...Y(e,t),renderType:`Tracer`,visual:e.visual,dataBlock:e.dataBlock,direction:e.direction};case`sprite`:return{...Y(e,t),renderType:`Sprite`,visual:e.visual}}switch(e.className){case`Player`:return{...Y(e,t),renderType:`Player`,shapeName:e.dataBlock,skinPrefName:e.skinPrefName,falling:e.falling,jetting:e.jetting,playerName:e.playerName,weaponImageState:e.weaponImageState,weaponImageStates:e.weaponImageStates,headPitch:e.headPitch,headYaw:e.headYaw};case`Explosion`:return e.dataBlock?{...Y(e,t),renderType:`Explosion`,shapeName:e.dataBlock,dataBlock:e.dataBlock,explosionDataBlockId:e.explosionDataBlockId,faceViewer:e.faceViewer}:{...Y(e,t),renderType:`None`};case`ForceFieldBare`:return{...Y(e,t),renderType:`ForceFieldBare`,forceFieldData:e.forceFieldData?{textures:e.forceFieldData.textures,color:e.forceFieldData.color,baseTranslucency:e.forceFieldData.baseTranslucency,numFrames:e.forceFieldData.textures.length,framesPerSec:e.forceFieldData.framesPerSec,scrollSpeed:e.forceFieldData.scrollSpeed,umapping:e.forceFieldData.umapping,vmapping:e.forceFieldData.vmapping,dimensions:e.forceFieldData.dimensions}:void 0};case`AudioEmitter`:return{...Y(e,t),renderType:`AudioEmitter`,audioFileName:e.audioFileName,audioVolume:e.audioVolume,audioIs3D:e.audioIs3D,audioIsLooping:e.audioIsLooping??!0,audioMinDistance:e.audioMinDistance,audioMaxDistance:e.audioMaxDistance,audioMinLoopGap:e.audioMinLoopGap,audioMaxLoopGap:e.audioMaxLoopGap};case`WayPoint`:return{...Y(e,t),renderType:`WayPoint`,label:e.label};case`AIObjective`:case`MissionMarker`:case`PhysicalZone`:case`SpawnSphere`:case`VehicleBlocker`:return{id:e.id,className:e.className??e.type,ghostIndex:e.ghostIndex,dataBlockId:e.dataBlockId,shapeHint:e.shapeHint,spawnTime:t,renderType:`None`};case`Camera`:return{...Y(e,t),renderType:`Camera`};default:return{...Y(e,t),renderType:`Shape`,shapeName:e.dataBlock,shapeType:e.className===`Turret`?`Turret`:e.className===`Item`?`Item`:`StaticShape`,wheels:e.wheels,steeringYaw:e.steeringYaw,frozen:e.frozen,maxSteeringAngle:e.maxSteeringAngle,fadeVal:e.fadeVal,cloakLevel:e.cloakLevel,lightType:e.lightType,lightColor:e.lightColor,lightTime:e.lightTime,lightRadius:e.lightRadius,lightOnlyStatic:e.lightOnlyStatic,isStaticItem:e.isStaticItem}}}function ot(e,t){return e[t]}function st(e,t){let n=e;switch(n.mountObjectId=t.mountObjectId,n.mountNode=t.mountNode,n.imageSlots=t.imageSlots,n.threads=t.threads,n.armAction=t.armAction,n.targetRenderFlags=t.targetRenderFlags,n.iffColor=t.iffColor,n.soundSlots=t.soundSlots,e.renderType){case`Player`:n.falling=t.falling,n.jetting=t.jetting,n.weaponImageState=t.weaponImageState,n.weaponImageStates=t.weaponImageStates,n.playerName=t.playerName,n.headPitch=t.headPitch,n.headYaw=t.headYaw;break;case`Shape`:n.damageState=t.damageState,n.fadeVal=t.fadeVal,n.cloakLevel=t.cloakLevel;break}}var ct=new WeakMap;function lt(e){let t=ct.get(e);return t||(t=new Map(e.entities.map(e=>[e.id,e])),ct.set(e,t)),t}var X=new _,Z=new u,ut=new u,dt=new u,ft=new u,pt=new u(0,1,0,0),Q=new _,$=new _,mt=new _,ht=1.5,gt=new _(1,0,0),_t=new _(0,1,0);function vt(e,t,n,r,i,a=ht){X.copy(n).applyQuaternion(t.quaternion),e.position.copy(t.position).add(X);let o=-r*a,s=i*a;dt.setFromAxisAngle(_t,s),ft.setFromAxisAngle(gt,o),dt.multiply(ft),e.quaternion.copy(t.quaternion).multiply(dt)}function yt(e){let t=(0,fe.c)(19),{recording:n}=e,r=F(),{fov:a}=o(),s=(0,B.useRef)(0),c=(0,B.useRef)(0),l=(0,B.useRef)(null),u=(0,B.useRef)(null),d=(0,B.useRef)(n.streamingPlayback??null),f=(0,B.useRef)(null),p=(0,B.useRef)(null),m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>{if(e===p.current)return;p.current=e;let t=z.getState().streamEntities,n=!1,r=new Set;for(let i of e.entities){r.add(i.id);let a=t.get(i.id),o=a&&(a.renderType===`Shape`||a.renderType===`Player`||a.renderType===`Explosion`);if(!a||a.className!==(i.className??i.type)||a.ghostIndex!==i.ghostIndex||a.dataBlockId!==i.dataBlockId||a.shapeHint!==i.shapeHint||o&&i.dataBlock!=null&&ot(a,`shapeName`)!==i.dataBlock||a.renderType!==`Player`&&o&&ot(a,`imageSlots`)!==i.imageSlots){let r=a?.debugHidden;a=at(i,e.timeSec),r&&(a.debugHidden=!0),t.set(i.id,a),n=!0}else{let e=a.mountObjectId;st(a,i),a.mountObjectId!==e&&(n=!0)}if(de(a)||a.renderType===`None`)continue;let s=a.keyframes;s.length===0&&s.push({time:e.timeSec,position:i.position??[0,0,0],rotation:i.rotation??[0,0,0,1]});let c=s[0];c.time=e.timeSec,i.position&&(c.position=i.position),i.rotation&&(c.rotation=i.rotation),c.velocity=i.velocity,c.health=i.health,c.energy=i.energy,c.actionAnim=i.actionAnim,c.actionAtEnd=i.actionAtEnd,c.damageState=i.damageState}if(r.size>0)for(let[i,a]of t)r.has(i)||a.renderType===`Explosion`&&a.shapeName&&a.spawnTime!=null&&e.timeSec-a.spawnTime<5||(t.delete(i),n=!0);n&&z.getState().bumpStreamVersion()},t[0]=m):m=t[0];let h=m,g;t[1]!==r||t[2]!==n.gameType||t[3]!==n.missionName||t[4]!==n.recorderName||t[5]!==n.recordingDate||t[6]!==n.serverDisplayName||t[7]!==n.source||t[8]!==n.streamingPlayback?(g=()=>{le(),d.current=n.streamingPlayback??null,p.current=null,f.current=null,ue(),s.current=0,c.current=0,l.current=null,u.current=null;let e=d.current;if(R.setState({playback:e}),z.getState().beginStreaming(n.source),!e){r.getState().setPlaybackStreamSnapshot(null);return}e.onMissionInfoChange=()=>{z.getState().setMissionInfo({missionDisplayName:e.missionDisplayName??void 0,missionTypeDisplayName:e.missionTypeDisplayName??void 0,gameClassName:e.gameClassName??void 0,recorderName:e.connectedPlayerName??void 0})};let t=e.missionDisplayName,i=e.missionTypeDisplayName,a=e.gameClassName,o=e.serverDisplayName,m=e.connectedPlayerName;n.source!==`live`&&e.reset(),e.missionDisplayName=t,e.missionTypeDisplayName=i,e.gameClassName=a,e.serverDisplayName=o,e.connectedPlayerName=m,z.getState().setMissionInfo({missionName:n.missionName??void 0,missionTypeDisplayName:n.gameType??void 0,missionDisplayName:t??void 0,gameClassName:a??void 0,serverDisplayName:o??n.serverDisplayName??void 0,recorderName:m??n.recorderName??void 0,recordingDate:n.recordingDate??void 0});let g=e.getSnapshot();return R.setState({time:g.timeSec}),s.current=g.timeSec,l.current=g,u.current=g,h(g),r.getState().setPlaybackStreamSnapshot(g),f.current=g,()=>{le(),d.current=null,ue()}},t[1]=r,t[2]=n.gameType,t[3]=n.missionName,t[4]=n.recorderName,t[5]=n.recordingDate,t[6]=n.serverDisplayName,t[7]=n.source,t[8]=n.streamingPlayback,t[9]=g):g=t[9];let _;t[10]!==r||t[11]!==n?(_=[n,r,h],t[10]=r,t[11]=n,t[12]=_):_=t[12],(0,B.useEffect)(g,_);let v;t[13]!==r||t[14]!==n.source||t[15]!==a?(v=(e,t)=>{let i=d.current;if(!i)return;let o=r.getState(),p=o.playback,m=p.status===`playing`,g=p.seekTime!==c.current;g&&(c.current=p.seekTime,s.current=p.seekTime),m&&(L(t,p.rate),s.current+=t*p.rate);let _=Math.max(1,Math.ceil(t*1e3*Math.max(p.rate,.01)/32)+2),v=s.current+j,y=i.stepToTime(v,m&&!g?_:1/0),b=u.current;!b||y.timeSec.032*1.5?(l.current=y,u.current=y):y.timeSec!==b.timeSec&&(l.current=b,u.current=y);let x=u.current??y,S=l.current??x,C=x.timeSec-j,w=Math.max(0,Math.min(1,(s.current-C)/j));R.setState({time:s.current}),y.exhausted&&m&&(s.current=Math.min(s.current,y.timeSec)),h(x),x!==f.current&&(f.current=x,o.setPlaybackStreamSnapshot(x));let T=x.camera,E=T&&S.camera&&S.camera.mode===T.mode&&S.camera.controlEntityId===T.controlEntityId&&S.camera.orbitTargetId===T.orbitTargetId?S.camera:null,O=R.getState().cameraMode,M=n.source===`live`;if(T&&O!==`freeFly`){if(!M&&O!==`orbitOverride`)if(E){let t=E.position[0],n=E.position[1],r=E.position[2],i=T.position[0],a=T.position[1],o=T.position[2],s=t+(i-t)*w,c=n+(a-n)*w,l=r+(o-r)*w;e.camera.position.set(c,l,s),Z.set(...E.rotation),ut.set(...T.rotation),Z.slerp(ut,w),e.camera.quaternion.copy(Z)}else e.camera.position.set(T.position[1],T.position[2],T.position[0]),e.camera.quaternion.set(...T.rotation);if(`isPerspectiveCamera`in e.camera&&e.camera.isPerspectiveCamera){let t=e.camera,n=A(a,t.aspect);Math.abs(t.fov-n)>.01&&(t.fov=n,t.updateProjectionMatrix())}}let N=lt(x),ee=lt(S),P=z.getState().streamEntities,F=R.getState().root;if(F)for(let t of F.children){let n=P.get(t.name);if(n&&de(n))continue;let r=N.get(t.name);if(!r){let e=n&&`keyframes`in n?n.keyframes:void 0;if(e?.[0]?.position){let n=e[0];t.visible=!0,t.position.set(n.position[1],n.position[2],n.position[0]);continue}}if(!r?.position||r.fadeVal===0&&!r.cloakLevel){t.visible=!1;continue}t.visible=!0;let i=ee.get(t.name);if(i?.position){let e=i.position[0],n=i.position[1],a=i.position[2],o=r.position[0],s=r.position[1],c=r.position[2],l=e+(o-e)*w,u=n+(s-n)*w,d=a+(c-a)*w;t.position.set(u,d,l)}else t.position.set(r.position[1],r.position[2],r.position[0]);r.faceViewer?t.quaternion.copy(e.camera.quaternion).multiply(pt):r.visual?.kind===`tracer`?t.quaternion.identity():r.rotation&&(i?.rotation?(Z.set(...i.rotation),ut.set(...r.rotation),Z.slerp(ut,w),t.quaternion.copy(Z)):t.quaternion.set(...r.rotation))}let I=T?.mode,te=O===`orbitOverride`&&!M&&T?.orbitTargetId!=null;if(O!==`freeFly`&&!M&&(I===`third-person`||te)&&F&&T?.orbitTargetId){let t=F.children.find(e=>e.name===T.orbitTargetId);if(t){let n=N.get(T.orbitTargetId);$.copy(t.position),T.orbitOffset?$.y+=T.orbitOffset:n?.type===`Player`&&($.y+=1);let r=!1;if(te){let e=R.getState(),t=Math.sin(e.orbitOverridePitch),n=Math.cos(e.orbitOverridePitch),i=Math.sin(e.orbitOverrideYaw),a=Math.cos(e.orbitOverrideYaw);Q.set(-a*n,-t,-i*n),r=Q.lengthSq()>1e-8}else if(T.orbitDirection)Q.set(T.orbitDirection[0],T.orbitDirection[1],T.orbitDirection[2]),r=Q.lengthSq()>1e-8;else if(typeof T.yaw==`number`&&typeof T.pitch==`number`){let e=Math.sin(T.pitch),t=Math.cos(T.pitch),n=Math.sin(T.yaw),i=Math.cos(T.yaw);Q.set(-i*t,-e,-n*t),r=Q.lengthSq()>1e-8}if(r||=(Q.copy(e.camera.position).sub($),Q.lengthSq()>1e-8),r){Q.normalize();let t=Math.max(.1,T.orbitDistance??4);mt.copy($).addScaledVector(Q,t),e.camera.position.copy(mt),e.camera.lookAt($)}}}if(I===`first-person`&&F&&T?.controlEntityId){let t=D.get(T.controlEntityId),n=F.children.find(e=>e.name===T.controlEntityId);if(O===`original`)t&&n?(X.copy(t).applyQuaternion(n.quaternion),e.camera.position.add(X)):e.camera.position.y=e.camera.position.y+k;else if(n){let r=N.get(T.controlEntityId);vt(e.camera,n,t??X.set(0,2.1,0),r?.headPitch??0,r?.headYaw??0)}}m&&y.exhausted&&o.setPlaybackStatus(`paused`)},t[13]=r,t[14]=n.source,t[15]=a,t[16]=v):v=t[16],i(v);let y;return t[17]===n.streamingPlayback?y=t[18]:(y=(0,G.jsx)(G.Fragment,{children:(0,G.jsx)(tt,{playback:n.streamingPlayback,snapshotRef:u})}),t[17]=n.streamingPlayback,t[18]=y),y}export{yt as StreamingController}; \ No newline at end of file diff --git a/docs/assets/TouchHandler-BRcAuQuj.js b/docs/assets/TouchHandler-C-XYcmBd.js similarity index 95% rename from docs/assets/TouchHandler-BRcAuQuj.js rename to docs/assets/TouchHandler-C-XYcmBd.js index 0f1d2c68..9a3c14f5 100644 --- a/docs/assets/TouchHandler-BRcAuQuj.js +++ b/docs/assets/TouchHandler-C-XYcmBd.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-D4aiQcCU.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-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 diff --git a/docs/assets/demoStreaming-5yexEeii.js b/docs/assets/demoStreaming-VZXXHEQr.js similarity index 99% rename from docs/assets/demoStreaming-5yexEeii.js rename to docs/assets/demoStreaming-VZXXHEQr.js index 99223eeb..dbd03499 100644 --- a/docs/assets/demoStreaming-5yexEeii.js +++ b/docs/assets/demoStreaming-VZXXHEQr.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-D4aiQcCU.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-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 diff --git a/docs/assets/index-BnXbiEzA.js b/docs/assets/index-BnXbiEzA.js new file mode 100644 index 00000000..281b59ce --- /dev/null +++ b/docs/assets/index-BnXbiEzA.js @@ -0,0 +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 + 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 diff --git a/docs/assets/index-D4aiQcCU.js b/docs/assets/index-D4aiQcCU.js deleted file mode 100644 index a3eb1240..00000000 --- a/docs/assets/index-D4aiQcCU.js +++ /dev/null @@ -1,4 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/demoStreaming-5yexEeii.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-BRcAuQuj.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-C6kCnbeh.js","assets/gr-DFj_ScyC.js","assets/iconBase-DZ3jidsI.js","assets/cameraTourStore-CtH3IrnD.js","assets/KeyboardOverlay-CpSto9KR.css","assets/GameView-BMPs220K.js","assets/mission-yeigCtfF.js","assets/extends-lXRikpl0.js","assets/PlayerModel-DY4jKfUP.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-DrXShtXN.js","assets/DemoPlaybackControls-D1aGRzqE.css","assets/PlayerHUD-CVj7JVJO.js","assets/PlayerHUD-DWa6gIym.css","assets/MapInfoDialog-DlXHsR03.js","assets/MapInfoDialog-qPSE5ow_.css","assets/ServerBrowser-D4Uk1kaE.js","assets/ServerBrowser-B1ZZ25fp.css","assets/ScoreScreen-Ckch_fOf.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-DY4jKfUP.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 - 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);if(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),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,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-5yexEeii.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-BRcAuQuj.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-C6kCnbeh.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-BMPs220K.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-DrXShtXN.js`),__vite__mapDeps([43,2,20,21,9,44]))),yg=gg(`PlayerHUD`,()=>Te(()=>import(`./PlayerHUD-CVj7JVJO.js`),__vite__mapDeps([45,2,17,11,9,12,10,13,14,32,25,5,38,46]))),bg=gg(`MapInfoDialog`,()=>Te(()=>import(`./MapInfoDialog-DlXHsR03.js`),__vite__mapDeps([47,2,29,9,32,25,5,13,14,48]))),xg=gg(`ServerBrowser`,()=>Te(()=>import(`./ServerBrowser-D4Uk1kaE.js`),__vite__mapDeps([49,2,11,9,12,10,13,14,50]))),Sg=gg(`ScoreScreen`,()=>Te(()=>import(`./ScoreScreen-Ckch_fOf.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/base/@vl2/TR2final105-client.vl2/shapes/TR2flag.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2flag.glb index f3bd07cb2c68bf15d2ca9b00fb950924ebc0e610..0b77ff3502b76a77ffe329b64df1d56ed50dd874 100644 GIT binary patch literal 123416 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 delta 3000 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
  • YISohp11Z4;&A1qm_l1*_lBW_Ca+l89HY`Sg%UG?fnnCGo9bZ15_#A2WT{Dp^$) z-s+a40iE*jGl;y)g;F4@K_wlL#N^j1QxdN-Q zaGRjWx$7`mSoC-Y6M@Eo+X|;(`Qpm)rNa;Fe3H5jGB}=;Ig)>o>}8$4_WT zVRIQn`Bm$|=;uBNj^=G7&=kIYSFT65p;@$1^UH3D|0o#S221Z6xnX2@hV0 z5)(tDU_9t1Su_lO-?u6On~WqE{(u*VW!pMN6^OSO4aK9_Bl0Q0i^mK8 z?B=)KJ`dhMBtMOb`VJnR*!EA9D;VHexUUuEVjsE}%d)5vivsr}XiuISHo@IBm%^by zD9Rb}%CDg*zPC?kD#Svp{1a3w#IQ*735`z00xlNmcE{kwcjws^Uu}S|ub@3&sV5qK?M^aq5nzNqt%DBq8^DV?$G!RidH{V}%p15q0U<8s7=AdZsa*v3o6 z``cnN<^7%1#6rNAU+??q799S?Hmk=+M1%Y1TLD26uBII;{fIcRFM(wjFz*L)7|Abl z5`K+PjCGGK7*s#2CO=8o9e^d%CJr*(Q}e;$6l?FD~RQi%Kv_Yow9(?Cc#E0V)^ z9_>5`C?);2*mps~+e-0~^ z`;wQdxwBzja;zX=pM(_)hlkn!!oH}g0oFL4i$>6-p>4GhNTy!qa zrOh5KUp#@XdgY&PAGrkdaRDp+9BV&bS(Y1}YN&uDYz4bTO@$gTuy#yR)k%($*fE6| zzZ{T6I?B;zTPCrHNnNR2Ok1w4l$2gWrsATLg&>^^_yU7Y@nR!}T_^2FBoY2bYY!s& zgANp;984m*3qbEcIV>!ENtUEAUpRe*w!!2h)j~2=K93{K@ak+)geDe7u{9hCMBm;(lZAS9p?;?`ee)_D|f*NC*>Y z@NPJC@ZgMrRgY#XPhgj16djkxKVA`)%sWw}uvqf`rW9Ro;RJ&t0ck`xSA5SeQkcQq zKNao}m2qXi`5KJ)Y7C((C&4nfOXgDeh8|m8T<^$(0&hwPGlow>!3iH?tBk99F$sx= zpX&7#vFTsnv>am9#V}(b5tnB@UK-ugz(2KPeRiU6@wEn`>_vN^Al^C`3sY(r7G3%Z z2GSQx=5CA+{4R{MkhR+dLkZLNlx`VF&P|)TZ!mO=_EM4X8C*e8Bzl-{hmPL`JBh&B z_)Y*cEE@cNh9FHq?pjmdpeF3vaan_nCKCJ(g%2d>!x@B+0#A_7p^HSGz+%Wp3yFNb z?ZW;Enp1h`_I@;4L?Rb>^9rJ%i5}W#*}BqZ3%Uv^58a3;UGuZ>rQUMzsFAd-;zvwg z8@}Se=nQx}Zq$N=%L1-2ua0gzl*TXzSPHj9-fj5$9x*QG?nA5b9XrA=_V^yX6XRXq zjxFFMSSdF*kg&xeuTLA^h5OLIajg1ifuH)5w~HhwQo)-n1YkdWIS~Tln1TDk{nXcL zGL;{oo|0olVsxWYxZfSX9!*SNWaeezDid>rt`R7SRol;o&~~dDx`2o!ov(y4iCqtG zu1rD?zK}(=NoVId>%TubUQkR z^7;2G(hUp|vO@S$9-He-Vd8QUL9P|14Or+qz`TmSjECjL)l|A_86w%YX zNDNomCUgSt9(?tO*oue>Pzv8+aZMr^O7h6K9)!!lK^W7xBrAk3&62)(6-`8ZgNP`B z-+ke$iTu*_fr{S8o|}$oMD!r)Ck~6a`GO?A{EEuQKBEDGKd6kWC23e0xjz-9;=88A z@+Zr|y(JwKBoT8OUPF`vSI@VyDh0pC7iP(dlL`0rDk-BySfbNm><= z;MMuOmK1qqD}>aZjrS?cUn!A~BO5m-AtWwG5xNn*z#|uuA}<0^T)uE;GGE?XQa;Sg z=mZ>L=zKy&VUqwo?Os62Rsef2x^cOn0|pr9BhFUc!Gnc~-&J9bxXBQ(HRPiW5_v(s z2a^wcTW&E>vA)a8azDhd^_$mcT@XD?EUZeQuij34u1g7E*i z#KTz)>mWZ|wLgYb#i5@sC4E(jcb%YNYp|~^Leg<{D@55ilJsnco)-c**7Nw76p+(d z(%@R?zDUyK6e1e!#P~^Al4KVX3B~h+CsBy)m4leqvOIaKB!#3K+tU(L3I<3U0!iVX z7!Dj19;MJ^Y0|AqT8M_IfE6C&@#1^Mg*`};yup)VDgckxd+?QZ!gwW3nvRr{7g>^qy$!|k zBu!eTq;V@N$aCINhT`y&u(AU7;HjA0z;qbk(+S^sChP{0U~HP@C3cT42!i4J(By7a z(fF+s(QvnfD`&b?Q6#Ll?OA03wFG{a+ngZDt8YqxB=;XO#m9~Zp+O_R_Zo(xs(?lk z-px-J+=3IE0zP&!h3if-b(w+-vgP1*3^}!Z5S;K8h8+0>CFjP<#jgN}krF<-t`|~h zsUd}{RxO3AR=K_2=!47hv2Bk*|H>e`7>h7n{$LgIW`*&cZ9*ydIiBQt@Bzpns=Q!Q zRGem-dpaXTfz3Kab>I)_NdsJnQG8T!Noyt|%E0b{gxnP5=!lV!TsWig-k>Ck@Kd`= zh+Rf5lr-O~QGy&9=u?l%bSWjKfap)AF2q7 zFt98{MRAl|*#Zn3CBTUb4;cie;%|m$h7!21ibQaKp~;ZAp~HgPvku2vmsBDZ2|eut$M|=BpO<4ECyKSKve@7ZEBA zSLT@D)SXxa>A3~jo~STosX>%STgd`&U%{P-X5-I0Nj6L(zS^lI{2Rts>Wx{1Cw{0V zEX(wmi{zpU7dm9Aq!>pj1V2d1YNFhEC|+0$U7lBTqOpT5^U&0y&NL!^pSUnVA`1yQ zlZb{SSb3c)DfenB$*(@KH5AOSEUtq}%9~4>#InbGm!3gHt++3sOFEt6*QS(0tym`b z!5p)mA{jVB(DPuJ_qj-+W#njc;3cul@1s*MJSO;H8+?TnQn(c1TY5>8k2^>jU+vm4 znUdG7A_eEF%g@3sqr9IHl~b^~9ZhhGpzs403DMWElTq{Xviwn8N$|@ zDzq4GE#;y?ZOOv3ScaSj-*u?!f6` z`$)Qk;BBu?prddLvkHYR6jF!Hya-HV3IPzN zD3I8W6O-~+M4-b3?YTG?tc-UnPoM?1mb5hTUhs8AkCOw08ORo3vI;x+cbsV0N%O4_ zZymlmRj5f1nw?PfZe`(Adpyp)?{ADi8^cE2jr~L^ZT| zL1aY=$+MIoVcO7OwxkDh%}1b78fF_FPCSOb1HA?bu9YmiP7?R%1*})8C$9m%w;JVN zS?X!m9N)f=A88*nsj#s8PZd*3Jrhn&x?HYSZ7s{?_PDGpm#1Nt2giADt~)2!o1Nor zk(1rLMRv0m&6_rB-lSR6#!Z?wYSOqtqsIApE!*VfAKNBB@0gaYj>&7?D$nw`ns{6; z3;$T2CT^G8?Qy$MZjR@htkdpm_dvTwD_RZj*M57d>SEXT=g(btdy^4|lRxGqT|-{@ z@$=#LUB3PP0n=PVGXE~UYwLFno^P`Bi=CS%JiGmZ=l36ehq+uM-ePkPY<{FmzvD(c z&}GmIV05K=j{Nc4&G%mZU4s!lzj0M<{%J{rRPUEgvs`_f&33t-Z?M!=b=u^uuDuVr zU9ReRhnBeKf`-4trTE8Vxte*(I_BJ#bl>J~^h$oCmgn|ac-fxRz{G+>$NVX^^1yn} z`Wt2(7}$61+Sd-O?=bN677#@94pR|mRf~?@b3Z!eo2-VOFNzLretL>$kk2F$$DLcQUR{qtTzZ3E=uduNa zbwO7D0UwD6`AJ?-?Fz1?{8a7yGS1(nmO{J%RW`II}P*w7VBtW@Kv!6Vvbex2596vbh=9|3c?j zralw|*8*q0>%)o{NWe88`6kwCrZmDtbh)+|{F=h^pXcR>^40j;0@YN3{^R+kfTZwz z-hx_+nzBd5Nff02eifcJYGLBvv(_f?nK^#pfy9uRYq`;x*yJHYoAB7$1nAu8oH$vV zP<->kOw)(gCg{_|OI|*Z2_c`1&cuzb75qgvFHD%2_((ZY%*4;$E*dcE>V=7ClSV@K z!|w%p6fXa?csFdwCEPUtjep7oLNyUmHi7563YUMT1xyU8_)95(&y*`wy8@NZ%c)&{ zQfM@!M#U(oPKBT-Z$V9dTZ@zpX%^_eBjDt(VREGs^VTIAY&ev-e95}Zh+CVN4twVi zH#!q5o*whoaYMUv>!HLClbTnO0Ui-2CDRAbugm0pa412aCXS46UODiehqwWmc-5nV z|HJ3kB}`0)MwO9bCca{cXut`NtV<|dibkpVulwmY2UV9W?@-*X(&aiu8y)I^tz5GF zq~dnTN>{2*f)Ef)wS{dhRYA3RlGd5pXSVh_ru5EF^Ga!XRhSG*@m$zuGdDUf_(A7JcQpL3V>f4#*L|H= zx~}==3?&GEj?Xqdj;WjgOa^4)H^4_c|2%ec!o59_cwaq(w)rCpkBPMFwe zu-*Sg=Kl_>?_B=F)n`9GVmO%s{$pfE8tRg z`7>3;GC%2>A_}T0P%RazDPU`nvf+_!=x99Den&xp$kxRA?+Q!tnYr@(wx#8}3QNi8 z6egoHc_@A8+rm=NxzQaBFFbW?=8}VjrSysalRELpS#2w?2Z4;q#OZcI;BV2b2@?~a ztc=Sje9@U(6Nzt7&M8|HCN_G)fMWcOjQ<{1y)>r#DSyANa#7o{tBq1pscYtUAB22Y zs@iFcJ(etgFS+@;%EAZduXa&FVOu(7Lx>L?yLu{kyiJ@H_+FX6`WEE7TxU48ZiVNJ zT|E!^>7U1RH_LIQ?p*GILNo51-`#9~Dz$n{_wzy6@pTOWTiT(Jo$a)t{~({&pDI3W zdt!xETAGM$&$Mk`T)M+mT1rNzFc}$WnupTk8Q?BvX~$alG>MNR(kEu)!5RDmaI8du7dN-hsU zq0*s~9r@lpk;JpeZ*d?QaS+Txe-C`%uR9Z~ZyQni!(Vr1hOauQbVzda2yS#dA+gCs z#Z9Z7Z|uyRIcY@c=#@J&WAVSj^Ol}eIS~0|KPFBNSRj~YysMZT-*V~5c#I%aGpfC{EJ z7+b@JCNAGj`S;9s=INBg0L{`+0Eg0Tsu(`N0=wEELYrPoF$ zaGN8XR0)%b4DH+Q6H39rjqYf;;nba(bI+JinuSjj_n&@J2yiwX_2_x})Lg19xQBJUOM5K23b*%N;7$ zBcF`U#A7ZH{4WgMk+5-c2RAy>4i$4Dg*)FYT5#~P9SIW~z4E_9Z_Oeq9vbcm=F+hI zABW}gT)$9Q?#JN>%ei@2&OKr>h2@&^uv}{Ew+){Eaft}ay*&?Mxz-5Ftz%D6Sg!BS z!yoE0=oB87E2Xeps%BWOfg>z;ISr4kbsc9U2+wFGaJMk*W!1Hx>UYwKPpg! z`jk-m)O5rDeSWej0$y!DI+W+~{P2V?@z16dI(cnu*EiC`_m#aSB7J#NoFOB}hpV>prO${7?2*xU?xn z;^sDUo>^Qnzp7@wZ)p?aPf@m2-WpO^_tmcj|GE7QS^9S#DC=Cq z=wyCXryBWv1^-;iH?h!=>Q5QU0-t+?3i^xuS`}O<@>55sxK@6TrJJb%B44+^h7ww( z-z@)g#IMdnVC|3$#8G?;`)?766N#&RCKDMN1<)vX_G>T#YCQNxK{XRoB#+7``!O*B zYMJ#(ga#?9#uEyIQAOWKNMUHsTR=*hSohU`0d)V@CtLp0nC|ydFzs|_pseb?`Q6u0 zpsdH38b;T#q8$1Ecp8B?mx*;PDT#RfsW%aUqYA1@oE5w}ZT{-jyn>F73I_f%X7#to zpZk8zz*>`NQv}@Rmd|&_J{phhegOPE-mJ-Qw_j;Qiv4DIH)2+QX;@m?B)&aEF)kH| z(>MvQXEKqYQ2>pCXTJs`pvEI{6jWO!qjH2Pl1G)1{g@a*v)si0tnmnd8MM?7_jO88kj*vZ&kmb#rRG)~ zgZ!osBNAs~TR3GyTu(Roe)VZxlXq8ok9AgX&$LdNGOD1e&{4rJKYzEHA;0g=8iBRc zjOfeAA3xC%iAxP>{C)R_kzf5u4SrjTlzIMlXlL{M=f>FogdK?`?FN*N@`*qk1=DDC zrFfUZiYIyL2|M`mN)a@Qq><4b4I`k&BXJZ|E0R$;!W7A)3dnv;jDT8(0&CAAL}+60 zCF_jDLG#2(h|rOiP*7u|SAHW{!~V|wC6ag!fv@XZI|F6+4x5}fNP)7djKd~esc$Oo zM1FQTB5@|R)l1pXmHMG!H1jn02dYS)tUtA7*yPOjyntYCQTj22nT@QzVZnAfq$!L4*V;G)O@;6BC~bzO}AM+6ic$ z=!$|!OA{MC@!Lb{|Kooiljwv1*ImasBXO;!%}+dxd{=d~!zNs*cFPYTfHpIYNSujn z^-?x;rD9FSW==slZL*!^-!yH0CixIm;L3AU@Yc^`G8Q6h=N>R3Yh(whyqFL9->00B zxS5T|CK@1r%U3n{Z7m!M+1alD{CQRnNk+oQ?5h8ALo^nRw zuD*LtVk7wXj;_hCiu^SzXY$uDIeFF&*pZm>)RfZK2kgjDj7vr0OlGiNZZMC6J$3`S8QYdl9GY6sG%s@^@5zZI80lqYBih{eR`JS$~bp*@ino5CN>ZSyBKh=5kcYmt+n@F=Ny@Q&+~oH^Zo(+_G)|WwfA1ToO2I9 z?rfO;^q`8fFF5%qx2&ve`h8u>nj4o@9Ma$W=aBf5Q}%t;WzcY7vKxb@Vj;p{@gXmE zcS~7s(z3plrQ9_Guj+H|Ma`F9(&u1H%eO%*v_UJjK`ZS+i>8vvwuq^=i0QV7nYM`8 zwupPS2DR_m91!yn{CUq*|tm@ZS(FOS!srb zw?<$rm2IOHUf~y3Hj>J=G0dJnr{2w)VU`WKtEpaxlPisYH`s?43q-x4NE@}cMZoKF zidbkA7)#|sfi!9hM8I3`!^%^w1*nDMWL?jN;$)1yI?h+ihdSN}mtI!zD@hYF0P3ZW6FYm1}`ZFJktOX|Sje)GCbtaLSm zh0xeC0+)(__oxpy2#lqQq39U3BPUtA-W5K4Tp-j!(J^Y>&k(g^1wuB|Z`R*pC{V^i z`*X#@!9Ki5U@TP%1>h;?Iu2zcv#SoxcPT5vd7waY}nd(4L)2t;jd zxpVYo)~t6EeE?(1!o=?Vae!rcY(H%DJ@=61t9g3F` z_)G-6URPLIZ-l^DIvbp5X`|L60^XNCtiRG)fLbUrM(rjM@SYV2*-)QpSx`ekG8V3! zVXN>K3yh_6!G**++2dM~J1(hgDlH0^VjH)?IHc z#M1fT@?q6(6oE)OpQBAxqvIu;6DmI3so~v~!tSc4xAfa;Z*6lQuj$Ncuc;~Ft^ISg zH}Q);Pd3kOin!^#I_XBIUo@Q$MN(6}Q*Wqr47|mMD+ET<^7z;^`=*M3v~y&<;k^w?o#f(`Nv)mQIiHb{k)yfGO%Heh0%2Av|?qI z2zW31aJN9Hg@R-3o_&Y4>)q?aH3FlVWGFaBt>B5;`96G5Ak;#^F=`#|v}zD&!<}d* zbfmCt`}FP#iOD|q_;|RFp&3dRro!dEgts|>>+TgR&}Iw0yI-_U^WiLkh+7+4+lB89ct8wH z5Eu<@)Jbf@J)ou-N2s7ERc-<#>fl>(!=P~=r(^d8N1}+phQD9|oJZH30WiVM9npd~XYF7s5oMxwO9nWZ~)D!)^ ztpY29IhzzxPp|?>-SPyRCAdQ19u7E9io)0@Md5aVPKjpDf9VXQyM=%670DEn-s?~H z_YVA1H`l<^1y%;r4@u7dQ`$=H5GilaQ&u+|1Sm{-N)%qwQp1+__jU;k2LTGhma_s$ z-Lss{0*1STrTT}XVQ8TNVrZd$(KPS3&so#na~k3%%KPfMN@^WoESn7Vj;4B}R#*XV zrVm#Ngj#5j7`6RYirQ%c-E2|~Yj%Fg8|G`4ZmC0leGCv1~dR9;vu<$xKP-f7Ti)Fy0^YMe{7PUf8@gGsRg8Mc+Vy7oaHT+~1$)k_?f0^%ohH!D zX8udheX+6D&6u8pxPb#+5ja6$ESn7l$jH7Z0^Uv^HoR&rKrIv%qozc_d)bG(1;(~LfLbsE*xK$A0XLifFJ0GnOYcZF&wUrm7J_Srp?Z_wsdTk~cef8;6$rIZ zgp6$NT~RyNhxZGFS|~zBt=&3NEBWw3fw62c6d~(+Xgh6PAFxS`O%MnRpd@R{>a+(?)Bjsfo`_cR)>u%_a^6+{A4kIp+*$~YC)4ipw)z$x@NqPp$c=^2p4$3w@K?Tti+mhS zhZ3i?5E@#>ht92H!AZB(t-mS9QGy(M3F(;oB>?NPK+|H@#0T3Rq|T3T?>Yg*cv^*ZmcHF!e=Rt7td z6lUyTg_Cyn_tt4Cf)zVi7jO?xPTDC73q{I%UtndhYp90Ak5-|rJ{eQ4{uOh2lhai3 z;vc!vbs8e zm-;vwy3w|Zdv){`Pw=r*d~(~BhqqU2V@|oMsB`vla^9wM`m4`6I+YB1buwUt0hPJX z#kCf1u~J`JP~TbWK|C}(*yv4$sh+jqD=VH4T~ur9qq-Pd`A`Pd%Iv zDD`UbPps75)kg0`11j^OoU6s3vQl4IP+Mc22_;r7euH7ErwwrPDFpZvr{$+ZoeAyL z5d)pxPRfgo?-$Ldf>$PaCaT|dM=u%toR6dVPy*EgAO^>w(Hhgkw{V+}Asp-mu@Kz* z84CyW^ev3{aWo>gseBn`0pclbJC)yw0h#O%GjQ82)nMtIa;Fs}E=eGnvu4QTXZ^ zA8r*G&1c*2<ty-Xa!Tc z(fS|ZNAkJ+e>-*K&UdP6KEp|xAAlUZ}Bngg(7HbJmnx?^S1%~oR4Gq&}P}z*?*9)IVON_^D#6- zku-IF=SxKL1&-z69o4uaoPAII?tLm~A1QHa54YNERD2+1mI1!Ch8>}n%gJW@n2 z@Zmgx&(OFhs6c21CxFpulzJ&oJXS!*AJdhwf|4m?2n*@H8$d2S6SQ*YumH7)V;or#VY9~<{p zoz_QfY;wA*wO2U(y;W~itL7V=F5c|hdV29C-Bs&p&Jes@q7uhA{nc^DI^Co&HBboM zV-_I3`dB9|lKUK|)#e-r8^Z&I&`E*RAi-)Zxj7)I>W=qqgsw74ZPM`pwPym7YHOfS z8QhVO8qe#{TPHp>G!jKNG!P6`oi`FY3R`#}P{7(3IOST~Zaz=*De1NDPI&Q_YTJD+ z@k!2~B9TH~rww({FEA=h3dx6Dw-Rsp5~}mbBCUq_IJ}t`+YkE^YFz+VoFZ1Dh2Z8% zG=JkusD%OizK^5DQ1Gm`N1ZCR)s+Ff*vHXgC}2j@E%K`N|MZx6kI{Yu?;LcOhn|IE z1vb=RZt$tW$Xlwqc^oBJqpAK9Dzyen(NZY+TaD4^rOQ#2pXjCpmcZKC_Rv z^r~ua&CEV6$tliU2LpKGvVQ7CsMA9L!aD=FVWQA+)C&et3uBN3cauU44jp55$C(&7 zx`siMErfn>1u&v>g&!%V?7lL%G#wVvn{>5nGW^r|6{dn+Z<6j=XNiEiCxBn`akLmZ zw;09z*}md=0sMfEq1eXa(Ec1>@!$Zy$j8xQ=#*k=eE9-IMW3*C3xsHJ=o!(oFBH*x zeYi#-w1NZ9XcaCJt@C~Opg^~n#d`vu_)lfJxinB{U8zy44siO?y3*2mo%1)xLAJ*0 z0&4KZXl&6GE)EoMz7Hk=EAn$Afg@% z7Cs0Rpxj1;)X`V__9Ml@|Ls9^$8t4kj#CdQdK}$1Rt()68LH}e4Kj%>93L!93lyLn zik&v8J`0GbUQ+{>Mg$76V(8k)R@M>_QC|iN_0xPyP!0vrHYT*_NE1Wn7hBQ0H_%yv zgP^+IC>WMQqs>TM>Px6c19*dvW5v({Ve2{aCb6xq2;j$k49(z7wVK^;7R^YpRBE~S zcg{H#YU4vrrJAz9`B2@n2wT0E9(4w)^B-|4DhKvC`N+|Sj~FrXhzZF)2V4ANQj~IF4uoEDc`MKWfPm*57=;gHDpC3at>rqYg zXW~V*YPmBQFG#bzlT#y}g5;7#&cM2S(yu0;3hU+5tcRmV(?aJ6H=m(u4phm-&Oz$< zNB3w=UaeeCUf~@nv_=hn#Mw)&d&udb<}P&x)a46-ii$t0sAL>0Xw|15cIwphWzJyr z{iDtpH&rBZv%2L8c)evIQA$KPLfuL&zTrvy_3>jMr;}R$+C}hi`kz2vzlg{W^)4p}8)Pd`?92#tpVYurp;~s+yW1TR5^_~_nj3-Pn zuFl(Fbr%Yn^uDFd7j()8mUfq*<2PE`OhJvCEG^#RCRFP;PB-oSwsUo{Ud?DiNYLK6 zYVB=lsoJ10UW|-=i&rjj26+j6&awxiH#C}WkZH>%VNALpXhco=5*kZ)Ag)8VV<68r z#kkr;Xw@$KmH4+70g6Mnc?Z0GZ5LuaUl^MRY2htacoHF|%@^7xL5Zy*CuqK)O@b0% ziJYJp1$Ah(+@lF`Z8r(+ML`|5i5wvK38BEVQoQfSYvO za@B4(lEsNs9NG@Sx!o`lYK_pM)Qb>KsFMh>+#N#ur_gG?vvQ{pV!643-WIgi_m(?G z&^?0I3+lby%3Uw$1wrlqV{1E_5Z89IpnnMJ{DYM{o)F93D(F=~6+5il2tq73TWGHn zYVCl4z0}@4TvhFK;&Z!Vgpb^b2!ozbcUscFgw*3lBX#PJR_b?_^p24B`N>F){mDtN z(R(d;&w^TXB(qMp;6V#ET5!y6BlBAeUIJj}?t-hNe%A>uo4M;Y^Y3eLoV|}aT0%9U zpSh+v7Q8_{&q6h>5jxqmq`4re=~al!?G=d2Tf{&yu6jm*W>a1qO^9iC3tA`KUgefM zju30yFSPds)zj!?D-#K^+b*-4-t#eXJ)@R8TF~8s))8WRy<%2w93iINAH$%FV}Q-Abq`bT>rz71 zV~~Mdp(gZmtJOqZN~rlE@`sk(w>l_&rYeg3m3V zM2O{nFSL&cO+N@xdv74dSigiWR;YLy>0+`e#?`}N#%IFVzfVZxTvLpzg<-~*;o`u) zA+-y`#l_*`SK(r^Ur2XKxcEf4_)WMtwtqb;m*Mj~e=sQ9AfmZG^L4Ouhe~{)HuO^xz zvXr0?1@#>i5hgT+q{kb_g1rg}vEB zAp8eG9~;z7H6M=I*e{3Wk44VPS>XkOJ~zk+@1M8A=jE;NV}kx|kP#kOu)-G=w6I|; z=HihE;)27G9=4ATb{Qe2{aI)~2<_luR_-c7EcX|o{Um4z z4P~xlnxIvJaD!yHhY7k)&}Kmcj<9kU5aQY%7ur@q4b;!L3ohIsuzjuILHF zNT_cFWlyxi+|)}=F`&Kr-welr$<9XtZ9L@}9T`%YbLG4Fc?$Ls77W5B6oqu8FrU-gM&^LtG zgY3yx?ovU^1#Kt9a>Y}u+!cbJ5ww#K%N=s6mAi%z(^d#=x6p>t*x**qAjERd3oSC* z(vBd+ayJO=e}vXyjO89<5UwW1=I=oqr*>!JwCa2KM$LU>#5k(3}0R#H1qt6A(newXj=)jPDSQgeHAiS1C3Y|IYA6Vh@*+aR>s%S4WlmJ`|rq19e4a)h*; z&^8FI_6m_Bq~(ORL1?vCiX0&=C$tShtG!C(2x&Q?wY%EVjw19R#o#8P{at9CuCa2* z5n{QSLVHDM-DuEo9m5H++$^E371}b|)qik{d$bxk4d|$u_{*Dyj=yOpX#XNKbT+11 z&2&u3fZM2}f1+62r@gCUg zHOtD46Li0z_X)9F{cI~YQP6xs%>7VM-#M0cCL#9uA)$RLwEgZtP7t+1d6ys{SpzVT+cVm)QqYZpUL?eF9q+et z#|pYd(948auImFP4UJ=yoAuBiBAk(&4!dNRP_OKNmX^;{2OfjL}d{~E$8P%%C0u+a~Ad(eN zVuv%z6cg%q234q4PhuDLvFHQjsh^lSiC&)~_eyGoC5DYLjSnYim-)Jvcda(&ymd z^|7Dppd#of?NfH&8m@Wj97IrOe+B!LcaN z$I#TK6Cwvi(rC}5&hT{FD@4YtIg@&!v{aW0K9Al|VSUZQdne1<88u=}$wcamR=TKW ztVgZdVkYGa;u~JZzTpMzNALlzpdMbV9+oi`;8(Cq+C}P({ajM}sBPrZL9HBqw{Eo} z_@xxs?%oWJsl6K{(hNqLCO3ebR6<>ABQ%#3;|C zb4BI6;`ZiZB!iEgv1zT9Rk3f3WF(UN-eUI@?58q>aRwGYioQ=fj)h&!R-Iz!gFEmX$2dsbp3(?5p zOGp^=Mi3oM!Jzl!r^IYMS^P?!hX$Hoh1b8F9)?5T8%Q;xKnxddzupn?Yd$g(buprO zCbhnU_Td`<%9%iN?@)~x-vM4Jr`x{qO-SaFIo$}>%i+~F_Koz)b7{QE#j(~*ILn z=;?znf!3}^cNS2Z^SGd} zq*m`2se`#1wc16UYY&M;BPEO}w!C&DqF%!AU-nDzW)H+1Dy7u)_0$4p;l)T~g<3Uh zU<86lr9 zVV&eG06Ewj_91$yRJ2oz6hPfX{iv0ZL8-f`RISc94z&})3!ofu@}xYK#LJgFiC75T zm2wbF{1ZuL3OdcO%PEZM+3&-2d=SD!rDjTJq~&6{;6CR9awo4Hq}2}JqAr;+%}h*g zUP_4xKU(V|33b({h;$N*0H>sjKj)H3vhzN7tICrl+r;Q+v{oar>Vd0ECe|O2nG||u zZ4Hfg=3%n&8c$|W-3MQ|DcX6=`v~zRiSm>r11eHpUj06JBp*qkS=a^CDRPP4gI!ZY zBa;p1P0+L!mZp6XTrCIB-!Udo<@_%Z$rL({Cq2Zg5#AXIZ3w#^yvzEzo1`~jIcTUD zyPmvWVIW-t6PV}?Sn_o;p!%yR&-3^~o2%ShR+@~iz%XmoK4X^f5QQ?r&I2Fj*&_8E zysgHx=i$wEkivM=Gw(MP|ZTfd7a}WB9+0q zAFzVuj0dE)nMHVLC8ZL*&N><~)Eul2sLiZTsf=0GG!M&Kzy^|7&_-;W*uZQJc#NrF z{h%IThhdL&~mMNSW@Av=qjivq90Y#&3HwKzIiJDp$KhK@rL zNTiT~Xxj@MZ^i7|^)*Iuwy3iSaquA)40qZPFe`_Spsr+AF3H~3tKDBC@#o+>C$i)> z=%XBbr$nX&5ki^>x`5F`IYk#}?tY6rlFMVYqs52F_zk#n25Hx@21A|}8!)g0BmQ%G z!=2=}@HCHY86{irYG~_DX^b$onoHY3XySKpC67cx`GJM7ld(?LVDB<)4Z0Z)SJRud zm7-C=u7);s#Bq_r$whn)NyYjarwU24VMPt-MC_c6hi)OQCcbGSNee73H0rkPaHK#h z@lLm)9G^Hgo%xslpd+ZZ9f$$;{aKw1i5w|laPf>-xt*TQG(_Tx=|xNpUL!z9tCN(C z>eO@pK|G3B2e`YLh21AlJ1StAo3jgUt%5C@rPgqFy_01TES)F966+#u&e=^<0FKkj zGwd+Usm5B9(+eErP(qtd8Veo?MoKsdaVmzR)h=3N{e&QrfYTGxqm`OmH1no@2bzHP zaGLD>BTOXiQHEJ)4|~c5j3OF1iVL&_sY1QAKcd}9oC?_8_zu*IE}%n~()O@X;<+*P zC)AsS7N2o`g6~PpO5Xk~-Gz$rp8)7^EhSz`XAW#2nV01;P^XscCP}0`ZrGAtyqxXc zflY?y6tTFuk)%$!w6kI|9nZKYV7kV|>P(|Wae;Q$)Fv)q>x2+#B|5U4bN~v>K@adg z3WaJujBu2xg!6}SH}j48`rQe-G`(9mFcqz&gd@|YRe-#9275s4rhV4>l;*`5o0 zSgljt%CU9Hp^JIL-G~xqWITm2(p(;)lSOKaTR)doa9ZMB0x=>vBsCuMq{6E|hAqia z-k|Q)I_P*Y9LZr{GldpL=wKM+c$%~m>C{Z3sA@^A4Fmo_&Xvf<=QtcvT@TrU2P(aS0C6_r^e%ZG*?IKlb zl@p;xqhm|@gvenkV7$Yz6!H|twvHW^&lzK}gK6!EEm46EE_7&)cS1V~`U;^=P3w#p z7mz}sT&F6#Mxy2Tb}>4N&R@(dV#~>+i52m~P8w+qNF}&wpyiRslmlmP#kkTMNT}?u zHdn+L<{739VAOHgiOGj+Y&Yt;W|T1PsS~s$#tQ;wy~1y)^i%+|2J12RH!y7&`Rq=Z zE-851%Z!ZPNlxty24<*r7X_0Xw1Xw&yMVtXByygOtXD8AGh0WTY$z}<%tn4_SL!@- zK!*;F`ALi!p0>=Ri<2)Aoavn-mEd7Qa{76x0v(aWAqK+*Tlg4_J8VGc8ls_+SQtrc zWOg)yWQ4VuH)+J9E2)XSNQ+r;ivz4#rMZ+w$sYEi*nQIZ3LL~HrB^Mk3MmKckg6({vzwNvs^~U3a$$OQGpJlE@AlcYRPJ8nl*3~1AN&VXf8ykpJvcbi7}Q| zoM?38@Ue28CA2Cn1>`5m;j<+HKamZ2C(mueav47ZCRSBJ3^{|nF`a8brLy`&sbQwD>3fr>SWSSaPKcQNEBG9=1@eM_Cl*sz=j7Su{&a)K?+1lOX8YD zUj=G1-Hc!q;>^(##_*|4+6UCDt=*}FoWS0Zwel>bBtAN`J$#8!uV}=?bq6Lgt)=lE za5rm*IlF;dFkGMDJ73&&rluVBsoWwcU@V(1W?MNdblh}ZvezoQgd-)#h)Z-kA@1U{ zO?o^Lt2~cynrm;hByv8lzq({Qu4!+0n@3AHt7sltVgpj8qJP7($89R$M9vPg4!#be zI~zLPF?o59r8&qHn~p;NKD7_}1KS?naxLwJAQdQe)45<;FG^VWcmRiNV=Ya$0z~;( zLCo@k967ZnU3>MSjAdKAq&G|yF?=|MOznks6!p0P>ntimHsdLzjTez;x%tE@$1jgf zY;+Ny{G$CPtYa*3*3cG;dUjC(ztlu8(!!?=mas?WHk%?HvS^27itq&PCTTy<{R3~S zDA&VTEra1`PPedLLz^|eZ9_Zgz{EqC7|8L)(~Z3&-SI1a@-ykeeRi`Vj%Ft*KhRBb zw4Npu-BIlNs{on#J6b}csm!UHc?fzHwL-?>?;}Ne}*!}aO0j(MwIr$2i47wRCWt6ko z9Ht!ynF{o?LY%rZgHnsNjNh~BlK}~#qp>m4LCj)7llVrmxWC|JfhZu+QGEC+f_ep; z|Fh8|;?QmKS{m%|6A9a#lQqX&K4}B!JYJ2dRGyXL{=t5c8ufeH`)e`G7WTCH06m&H zz*L~ii!~Su+-h8M@tys}2T(ua7r(TN(j4?1-MXwDiD=`)zt{tqTPrT&10&|1jdq@< zy|_&xCLN^c>Kqqsyb;9_OW&MuB0#(`_7h$lF{68Ku+v zYT9Y(8uG{`yl~p0*$0~r;|8-W z(JZ76UKb~x$a+Y;&K4LYCQ0%nCLUI5teO0nh)rS!4Vz58YfR#hj+v%ed_hpFNR7@w z^ZLPM!@?}0sFN0s{3Z;xGHkWtsv#4p)VBfF558^Z))+^!{7^|-M6wevYFg*}Nbg<(SH}Jn#=}SMOqtA8hJlc#s>4}j+q+)iz)|R;>HcB|?*z|*<<$zl(I-~bf7hpzJNi_S#_ypqOUPKpjeJ)7)ap_Y9;&MSTmzMO1+0h4Q3jnmlVN!1kUVKk&(r@X#OeO zBRImY9&Or#2{oIZM;aaMIe0P{gV?6g4ULqV#zOS0Lum+NX=AUaH&Pf-;*324B^UcS zz9%y*bT|!2VnNWP8pGqq!N{16Y!XxNu*e|VbSygr)v__#fza%)ClP$RNKbJ#MkVev z!_%i?T~X0qrEx`a8Z~-&AVZH`4bR-W7@kRfhL_W+!thKIH#|Nxn}!v!g7Qo=JY2KT z({-a~df4#HkTE=L<7u6sHqZ?UKS$Rr9GZC~Xf)Dw*$61b8%>zhpk3x z6r#y7#ut**>t~^4tK;lLCaG>7T4a$5e4}M5<5gS7s~jIuGCK#uG-L3+BdCLrTY1oR z#eF+UMIC58<*0~75V!P}$=5~ooOo$3Elj!@;M?YTM`9@};`)SFj^xqE-o)CQ1_adT z7&B)Ct}wMldznpg5q#^2hB;DD5!+8O4Z7LAk!^Z5N7vO#n>J@nt&cS`poMhIBV2og zB*dFJEs3;aYC=*8=pb zXJSAF+RIUMGy{W&ZXZprqrL=E>$NZ>9~9J`~F8g@z3M@AYDBpmna%ki0iWJ$WAu)^kH29^Lmm+-PObTDr!`Idv^_~D2?!}1bP z!kpr(QLTk*rfrBcY0&{+`%I5&IUVafPPgfHk*cP<0A6)ym(4qA;|+E&e86P8m@P9# zMh2>tYOPEwVj;4>IMV9XFuux;g8AW?JdZ@tj#c;99=K86~?(^QxFfk+fENqGx zT^u}HG?$pRXkN=0y8_$S94-NPUr42Ll=wQeR@ov>0VB|s4@RTbByzewa*sg>lgQ%S zC-cT~3Au!JB*=&uRb~^cS-3ReD->p7jPT-aSZ1L!C39VGO6KgKOSpRE@yAB!0mFUdR5BW6JL@Z=)^M^t>Jkg=?ed*gWJ(3SHS+j|qpc;mmE;Cf0y|yxWBoJ&(txuTCMHcw%oJ zh;{fSVvGMUku%lYGZB?E0?kwFwO>*Ri}CAc;Z`h-tjsaiWOHTC8uZMb51h=(kpDOU zYZi7oG`^`o&#&NSoo3*n7u%&b=jeQ(C3ODM5?I}7*l0#hzY{WHGThBzKv81VVn`db z$55r<1@~!xsl|{djf?b*9-EDN1eW%_MylH3vH(l;_;Vw*-Ll0bzH>MJ zns_|^?YNd3&y8HUf4zhMZGN8~ZV#ud(+6)&{pp#-Up`Z|+v&609W#vns7V(^`c2E= zn_ThsW$~|{czOEn#vN5dQJlwfN++vg4(%j?#K-wR&pUs5859Q|c3J8C zHCLC;pVqGI(#(?QzJG=O8r}5#^MCpNmHuPSsoWibSwy6><2YsAB8SFcXJw8NkF_|pM@ YI^s_!{OR1X|GF+4do1|z+b*5{5B?}R%K!iX diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2light_female.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2light_female.glb index 22361ef277cdec56a4c2958924d75ccfd218afe1..2d9aa1f6e3b989f2570899698a16a59f5b2dc813 100644 GIT binary patch delta 35407 zcmdUYcYGB^_kMP7=#bnL6)9;XfDpp%1#*{AL#&|La+cL zy@i(DfQX17Q2`MJ10qGFT0lhkJu^EycUSQJ{{8d)g!{~#GH1@5Ia7A;eQ#W9n7<=4 zX3(%Mt>q~EmsBO{%Af0EZq&MW{E#udhYpR6V7P6qDU~9n zJ+)FR8l~6bGd5(@PED7BWQku&4P|J<0{M4KR`e2nOyHJZ!L4Y|jOo8ejwmveUUio7$p$_?fn~ZBC~rysmvlxKf9z z0%x1>$Ow)#H^=2-gC-O7y7X{`j@7uXbi2!WCxhMPx?82$4Th@g-C|^BVS2b>cL93~ zXm|PVR2BYI(8GU4VB;Q!0=xSzR)vY6hd+dj!=5I=@T&q94VmPW9dI<{YKEkReA}jW&+y1mj3HfcCTer zxT;tB33*LGyVv3g&RVa(V0|J2=L%@|T0Fs}t_ym&;Q*naw}5t^B`&zsr-B~-D*_u2 zG!)oGo^zi2qcw0cb|1N$B4|>|rD)})gIa0Xr!PM~LPKibKrqUD9;a2@pWj`Au zyWip$y)x_{6vOG^p%J)PK)c`K7p^McFb5k~_0VvkYH|dw5zrp++(qiX5kjh61m+27 z4_Ib4Z|kg}hii@$3OWdA4_e}dOBD%v_(B9G=Nby^LEl|0d{NND+avIDZj9s)mlR~g zI;_s1b&_Mlyd~DLC@+QAzL6IGp>qN$$&}JwdnhqnP+WII*)ut^>~e(HJ(?a?N5ybx zcR9?y(&?x)kD#bD+srkMn`mbmKjfds^-m-`v#p%@!AUyvB>uTd{{-`$HiYkaR%d>g ze@@ju!E7ETuK6ds=u!O>Db_qXoOu&xI?q3APhmnfm&>=IWa>&OoYFZZT#%O# z&S{+*&gq;G?)X${k>erhkS+Z8gk;&}5AQ5U4{w_SAL{UufOfZ~+nnBQs$hLtK)c&K zqg^_y-EHv%mw#x6ke?iZYXr2rEiU0w_q`yb+C^ZVfOe0?H(cthpoeSD6bd>BX!ls6 zfJ+q#diX*FCckJXuzT<3mlp*+ygdRh3uyP=#T&BMi&5%ZUh;;Uw?HV*iq(f=jV|4^w7Qg7^`tvzC+)JPW1KC}cB|T2pAgXQw(M(l zR#cju!{vWi7AvtvK{k&NCqJ~Dlf#n*T4NxH+{L2%J~Twy36y6bB-gtban>M*YpyVa zI~WKe<`LqC6&d941%Z-35`FQQM~I8OXpqC(4J5niMt0TzT3Oy&#8JqtYkYa z3TH=PiGX&G#U0oSQr7ybxD@sYroDxmkuze=TROeYMfcG=H)MosY^-L$_5#M5cK}pi z-bNwtv)~FRZ8BsnXCNxjcM}unyD1~QP3NNUl7O-1=}QHin}xv3o0(cFpb8jk-po<~ zsYnPsUc>~xEXoMa5%7*qe_2#-!_KKK%ZK0HP+Ru9!<7B0E!8-*b{XU)TU-X$O~Dn; z+A0LhJ61OYMs2NEEpmv}YyRbW#+4CHE@4VWZOyQ{fs82rK4_bmiuMF4SWzfTqN8lU*?LkW1}9q2MV2?ZJQh=F6k$ z;XOK?!kYrh4i|D(tMcLRv|2Wg1EX>@-EP^H^2+eO-PH_+@IMi3cbEf1XfRI_L&IC2 z2n}{ib~U7&W)~S!J@&`Qx?SPf5m+Li-D!4_Ayxl?km?nI1p?ZgW)~S!Hv~PL`Gru> zM?kyFJZ%iAy@DRT6@iX}h63vafg$yVpojMh_*$tDvfK}FA=&NPQ2I%~^0J!^RJauE zI<#I4csM=qr9lr5i@-twtrr8jlr@7Hb(WD~+B3qBAFZahj%hDota*XarCkPBgKvev zQvzD9bg00RZ<)ZTV;SL_Iv0gm$CxZ&ta)*v0;7%zfqjB2{EvXK=B0%SH2+Qry!D-- zHvEMS~n{y8jCAXcM@uJQn<#zW6n^|PQ%m6-0q?Nm%hN)j!B0ZqDFN@WW64iUVAL55iOxk~))^)X zXdM!mH0q2H*eAHc{|IOu5(qRuD+Jy;Yp4x>p~JXycXm4NT)hq9C6&vEPyJXsJgr?u zc;UHN_F1Zb#(FHN)5BES`Y#TfAI2s|htZt%?A=2HIO4Jpvg zCh2rkn%4_1lzq$2n#|>&@AJ>2{IlxcIz5Mfj^&@r`RDii)Bcan*NT5m*8BuNt3GDp2$2k9#b5wb19M=nLMWtu_;tz=j>f>h7da#99a zT~3OTbZps{aRxW1k+$UpA9*fnL(aO z)HzX^K^B<`*3km{Nt2j0WVkL%*7q8fmV97TT0F)p$%-0MRrJ?SQftDN6XudNtaTP= zg!kE+X35p&(jAswttpu#+txBmK4&i7;kTW&xFkRZsZpCtvQm3<=?>S;t8JG2+009l zl1zH&W%Sf0;l|I!g!{CuOkTZ5N|9Xjv0et*nk0Q4ZoK+f5z>&&Mjogm)hjxeCXKg| zYw6&zKOj{jPu7v@BKwd|btD&V?&dA|DqOlC?X|Cwt?)dd@X17W{kpi5etS(EO{E0f zUuUoj*^)O|mJ2&_>V!+TCxq=?tAumZ`@)Vl?jfa(qzqhoCx#CWOD5Q=(NT z2kJ|;=t$Qkr49^lFO0eDcj?3HCmriZZans3McMCVpCsEY#jrRaxdxK`0iAZ#s3BE7 zoJ$H=o^gl_xmD61FxRbS_9=UGT$l9rOH~cBc@xaYE>0nTMYu@gKt#ek)csgiPl|j&KdmL3aDt0zdr6>T1KIpe7DG;w(b8b+DbTA10vla=nu+C;K8&0kjcUE0544hEMBzzO zAe8r)|h9Hho05y|!u9Ot(@ zQ!*qsM>xpOCY=}|XBOGL#315m}NSbGWA=$0H&`n-8VKsu|{FbLmhGg9i zLel2<{O>#J-))kI%*(-E%<`zouUC@m9gyufZrCw`dq*%1Go~9*E{Idh-6}03%hjIf zCe+4SRtdv~*4+gIdDetiM=-WrcQ!}v?GX`dYr@Y(aIEE-l+ogu2m`6nGoqw@1Y>Qu zON*N$4CH4MPI_D@iS^&bU1Vm2fozN5yFC2w6HVUfhK(JbebY44^$CnM$1j<1aRkTt z{TA=&+^99Lr+%Z>^0yhR5 zR&d^}N0v(r!FjhHS*|k#=iPebx?7Jd%Zn~92i(}0JK|l=%(UFTV+W@-Nt-Zm$e_Vv z$B_JcqWR6XGB1@?gib%(Ri?#TWv`=f|_GG5D@6h?t z=8pig=rYlKCK`(;6D?q(F@HyB9!G@cVY9$Qi*=cZ2z)YkoK&Nm)hLgtVf~#qlLAx2 zo_{s$H8o7vK{9oMR3l^RlT)9}G)5L~aArF0{2!S#T56W$HF?A9%}nd^V2_p^I&^N; z+mY79>m$-gsj2J=lD@;Fma^ARQYJ|a$@DQ&W^J#@DsRv#=p)l6OWCp;w=9s8e8f3H z$|MuVN|{MMlQVqoe~Ecmdy<><878%oeO|q}k>k*u&*UJV|6g(oM$*=CinOe^XA_9$JNxU_e8{7$zA zEFLFo%x8@)haJ{4y|D&zirzC;?6;aX*2WR=y4_A+(CrF3eLj!Vb!TJf zyUXkJ1%g4m7aa&-3ecYUaoPz6oL)Cv;>DJ-Pl3^s(YGuebM7(Pays39zn6Lh2R5{I zXH#x$fgI55!HZ7VnII(5l+)n~dVC%Sb*>xzHuo#-GfP`bHuAPwJ3TI!Gl-`OxRXI^ zh}Szt49@abk1>n!5-L25#4S8n$eVH$rOlG= zjUjv9rcGzb(WKV`sU<1DP%oyC)*Quv`3)wi>=JO2xfuyESA#A^KVg`3#ChB#A9-NQTZjfi6u)5rBpKfUCb?pRta=b zphoY3dgd)OGVDG4!_Z2Bei111eSk7jE8!zBGt@<( z`2rmg=)RQ(Uk{4*Q`t8~-7$e`t}^&~QN;M(5p^d7N?vX7^`VIIEfIC6L|vUVxGXFE z5TiL@jg(8;uSR-4w??``N>^ja#ka`u;OFuEXCKY#lzO(z3VN^-L1tpti^Aw z#TpwdvQJox3wbe>9JdmZHd@4bTZ@Ifm`YAs32B=wV*Rbf_jxgu{A4B6-K>kHl0lmh zE3xaOR%H2RDT{R61SkHyS!zUQZ~|#iWYi5SLRge+#CUvF1X-XM%A7zFwpfZ?ti}1( z;t^}{zO5G79@gTU*5Wa1vF0{iHkI_^h#T~dwRpl>Ox|vY_2Gz%EwL6)S&Mac7-9oB z;$j~N!kHcLXM39^0&ju zT{QzO5a=6$s+Snlo&vok(02mW+G+4TDbOO0Vsvv(>_ls<$&_6Nb6-i>)1ufb6(c1u^u;yqGg(V9=BIuhx)M@l0#K1HN4 z^aMw#V^Xb^>VKF|n7zma&JVkvjV0kU{kwHmDO18+BU_!!tSPDoHs4H!##!pmzoO zQK0m148DN^EfwgjK=qFrd_y>@rW>?E5H1Lm`K`e`oFmS>S`aP^?~?2J<+MIAQZCWSl<7u_3yCO1efao<_#``$w8_>{P>`pU?+}mJ4)V zpay3Q>QI4J3UpDRtg{B+NP*UJ6hjWYiBY+BmQGjNr0bl)JVv069C7A9&Kb#=oHJJ1@|#mtDX#X?PKhFf>e{RRUcS zsPQH6m7ay=BQHTeLu&=PDv;~4K^?o05k=09kSHJN?eV4fPOQ zpWB>yeh%(=sMP#v2G~V!euP?ClDXPel7%osk~2uwElh&PmJE;b9yP2XdEo4z*RKY0q2`;RDW!M=!%^2K^<_$nMU=emg7K7on^ zx-O8vn&1(%R3xYpZFbh<~k-;noe!I@h2@~vc9kMV(u1K0z zk+VsW9f9&x9qds4up2J%#~F3wY`DV zb)UgCABb@s7FG9D=T%(+bW`V3RFZ&eqM8YED{`0@V@PZw`g_m)Iu&OfjyPeyARM+5 z?x~?maK5hA;(TlIFfXQ(dum$6ti}1(;$dEdSS_oVwK%^Pf}zuWv|F_>f^)Vb)h5=) zn6oop7lvrv>!R+Es7p)|d<-!@QFlnxB_?A={Z2hRB^m#0qG$(2tS&vps2fNTt6M7S z&WgJFsRrK=iWuJtQFlSqWu_T?!zp5Xt3};qQRk>*@QtE~@vRqizlu6fy1_S&BF49w zB5$(%5V=m#LfV-?22xO2GCVmc1I3PY(CIRcki6<3R8r^^V1zy#aYCUWlvxQW^@M~# zg#wiclu}>kvV5TU)ft*JA?ZP&RA@;BXHXE87AeFMtoTASu z9985hp@yl1YO` zoHo<|D-CcFKxfLz;!GnAu+{)q0dyu;W6m@NK(E@^7`-d?!1O<89YcPHfhG#HRiK*= z!&`-3jA1_~igqs~-lK?lh7nF%iy1Bp^=WHy87<=GIhCB_h+hrYcf-DpS)e}ShVcZ$ zutHS*f-0TZ$YY=p0<8gJ0+&684kxvfX&Wuj1|Y`vtJh%j`V4E{p{RyaZbME`RMCxb zFL0vU$$m?*kF~hOT0CVf)(Kc-2k>Gl`G6wk%QF;3d|5AO5C#kMp+G+i)Ub)cH%y>a z0$rjgqO@^SgE^O?2w`1Q%-o(n%-m~D5#2vD#Xf3WwtR)8WCKkKfjNivs4N6;GL)(q zsGmUZ33OVZjAjPk(*i9M=$t?gDt_b98 zVPPK4iz#G-mGD~&_+ViOKJd0gRxfOUo=<3r6`_LygNjlHDw8d5%w>d4zmbP*(y(5VyP1?!V=#@?a zY4!-LFF+GysX%81s{g1#9U{;Qfi4J?+1}tAF3@U$E>o0$5NC+S9ncVK?J7NuGqk>g zA^R&ujL+TC;2YP`pl%lEIz^1n-^t*c)XAvZ+6n#b{|Nf~S10)@x$>BtP;|SqjH6~p zv@UsxvxA(2J$x!jc?|!wr~pBR)_;vm#d)rlaZE6?Fwv-_k2HS_(Nxw!P5{;y71|$m z;-(ygU1Rs5TG=sQDr#o=mKxfXe+RE~@HyXXr)`uk3I5U6sPhgEnzmUg`->*cmS}Cz5>&{7Zl9zF2~vMrU%*i0%)Ih zm+dweOc>P*r5oMlSlQ(w&EJL%1^Z+>E$lo2%9@^3%H^R_wMm&?LjIV65~WeblUukH z7z1WTyc4!$x)5_abunEDUd6gP7jnJ#(Wc#`QyE&LBwBDD=LMU~jd@HP<5EGh6yBE_ zB^W*U`ckAZ50p@`@=s8W9#T38j8}Te39>Ih9hyW6dZC+Mm(B)CJbmSjdY8OAG}NZ&nSLSHgO7)QJ?KlMhUh6UWj00#bg3_JEEt-79{z-We2_QuZeFffBDrIjR$6 z`0C_j@Raq3fXAbUFBO38Uh-wGp$l&bviZYw;pIF;5P}9mHoOW%N^^D1aWY~agV#73 z-<^(VrYjb6)ersAqzmulz|T}V-iEiJL@Nji4@rFwB+7@ia@tCc>GWeE#uNk`WR$A+ zD=yj_#MCzIgoYrQcK}k02cjj+U}k6GK#VTpZ4(ISK%C8o89~RFvDw@~ZYtx$r2WcJ zfVZNqu0z)@_myL#=_@jkmTW$lQHUWVm-=Et`-1omD-C<{G};Q1E5m79gW>pKkVP2j zGnB@j$4k~dBWKwhkaqS&a-h{R-d`&mgj#$ZN1q6gjElxwXDobb6UR_Gm*83&{gj5E zBw+!~3O0OEMQ>aebK{LdG}4#`2cl0G$2j>&CpyWXES|o`i6Cl3nk}Up0M?oh4KUlV zc(Nd5wvj6tKgg%Gt}+NSp|VkQ0B^bp zopC54P?<3)gW)_Zy87@!UmQvveQ;Rf2{`#|&K<#~XzF^j^-3;W5O9$`G>#YnbBm5H zB_JE($t{H#rYP0~6(suzL>t~LGl@k9-6nhO zHoOKY+KZ=O=ivs&MF+huya-G)ws!ftdAu#<$ z<|rG3tbz$KZ6H)IQV=nV36^EUwm|o0>^KaCgWP@v#&(2sG`0l#`e+of{>*z73d%;y z3HZ$!o|T|G9@Bc%JBTP?nnBsD<~saNnn)T$TL7tbjO@fbqG^vQ#S-pV&`%eni}vNY z6pyBjyAZf>OVJZM?6Tq4u6RlV(S}#(h%_5Cy$!sb%4Z79E{8V@ks~9b^hMYH0jVb%3<4!`9l{BLj8o5Szp5L#cyi;YwLjb z?pTA3vDmWZJBegZU@l4>4|Syz;XD`3K{QnrPQaKUC$D{0c0}X1<1l5Gp_&OG-agd@ z5@qBJw)%meI)g7#(3OZEE7N_!3P|=$FDoEfQ@u#XXpN@!(n**)Y>qQJUNvT$98|~K zJXkc@at%^~jMcyIVZ&OFv1y>BXpfgpY;Gl13ZIAMPm~=p)=D<3C==QFDh84wn-}p_ zxD2ZHPewh~L_BDu?cv2$W}WPH>pLF379JS&GI$P5MlwKTM-0Skw|bmAroceF1InVT zA1$CGSf7$epXbmZUMtqeyI>lf98MCqo06u&RR|(BpXW{kpAWubDkup7%r=jdLe~T~ zIcigdiFl)%IgctQJGa9&2qZ-NoyY*q^O2BY*R-R06R7rJBjThR74Xv;$aiT}#^%Si zlFcBUM$-#7J09OV(wCQld^E|uPchB+%uHrlz-z3)R7Eu2WsX>i9a8}Bb<(84^an8E zu?@o344uMHC6nfP2nM{^O(&$zBL}hPE9AD@@EWu}kI+;i?Ut~W=8n`6-~%N-+U1}* zgD%$gok+Sa2O_5%{L=BbY%hlr#*ppX3SWc=a2BK^ig^Soc-;ikAepRs0g`z6R?k-X zGuS?TU2pJFsc398u$Ivv<6_urj0TZ1+VJXYghuBn3u&eUbLJq}>@%UyK^8CLRz>3l zU_=j1jFg0#Y0|*I!KrF%`^0r{9$+a9K_Ex|IDIO2)jR;kV;-=o@3^KfMf%AApS7)FQeqb z%wWeK$|q6}D;Q&mLLyQ*+oUoA+{SVjDTS22ETDPuOFJXa4-oj62;JCupKd@u&AY^vVksD*D>(V``bJK5j(9A(C0TWLI zpe16?@&%N2%kM@4VGAMb#1R^sdzu(1C*A3@69EeM(A_<2R@VssvlW{PMf-#LrWdMU#=It2@@RpZlShbKwx22 z#ac;d_k47z)C<^+V;?skJ2y8y3euGoJ)rXx{-!qvXad_OCysOLo~3Re=mEZUpeJ)m zq)P!CGb$JD#uqr~GU1SMOrd*zw9ky!O~f}m^f1vIL8hVyDQ2S!nU}?}uE&M*3LAu{ z-$Wbe8M}h${Wi4mV>EHRh2A5~S&%RaPN3{sfKo6#%q$S@B`0UW_WjU=1&hZ-!8_o= zj+Cyo;Ky;txqu!I=Dvdaj)ie-^*dG+KaG*BE%lPf44-= ziuU2R#L3BTp(qFS^rD4MS;~X6&bkF?mtxt&uGDmbjM%)o2b7dTx~AdY2rf;c^6`ik z<~b&VxyJTLOj!^oiX?LIeI!RG<%ZdMN@LdPCB!jEGk3ORy0{WV59_??a3LRMMNvM=8cOXCE-D$7(_MT@;g) z5wM@t^2trP@q26Bd6Z)F!EEeovTXR?k!~HWmg(7#-uN*I+z0FKX1Z{bLT5murEoTG zzR5g#%>8JE99IrsNizm!@k(ab5_*z$tft<|TwM5N5c@O{OyOWZirqs#Z?}6v;Ts7)r6S@xwT!*zlc6vU7#p2sYunVPq#eyFm>- z`LoDl2I5z7=)43*l0{GGB?B!W9b*FO^2p5W`UG38HRuyCZYmiUo~;CELS>y|_t`tC z>vaYAsvW&_VNysy{9c&SNa6$~TFKBmh= zfX}_$_2>Z#Y>xEVjYLIr&R5j=yRnPM*Y|XFl*CG`6I2SRitUa##jQ^lrjK4=(Y|sL zzun?O>_VAR$miS89bJG=QZB%=mQG@;ztF{2u-aUT_W@GzbgHoV3L$o)m*}RFQpn~V z=nbuA`y0ljOK?wd60V@=1)xqcwl}(zSNMS5o2;cLEiS}!J!_|sMjWjtr7GT)YPl5o zf)XI&pmUvz@LOHh4nl_wmZs`)#4H$DggC-6#zod`!Stff8W>C8NMD+h_r|7<`WEN?gcFNP~tFT)^xcLoF=ADu)XXmPFuW6zOA%b(3hv zSOGcg9TaHW(Jp#blUgKa(J9JifZh~zv*o1!Rw@n&nqscd9@0JEGbog(prC*$m<2U7 zTv))Pnk5DVHtxqM6FnW!ts8R?@-uS;(}eFWX@Y zJ2UAe9e{-sYdbZtCLb&8+lsMs#>+dEnZ%yKJl0Dd!U!iqt6 z2#kP@5T0c)W9elCT@IOctnVds9cLX!0awc0RoEi3u%&I_>=7W%Rd^lODNHG|1_d_d zs3s(8+!gedYbRJQtnl4vtZHl>o33Fvypg!ZqK0h`ecFYCK0UawtMb|lK0~LxdZMNT zy8UKjTeyp@0DN81N$fd75*4A_ShijTT0TUSm?*!1hefIEftax8XcUQ*hZc0@1nra3E) z?QE%`O2LZ9_H^N)MA`&fDUAY-i+XmZ6m|eYE{S8u0+W!F9PEqqsyBvQ!uqK<=A@@r zs$Opl?h$hA5`ZnLdhc*uLC<{fBRzNU@!_S&0L5c*Tf0CXBk&<*7(+};=r(Sl5Erl! zw-T%^sv;U+^uPD5eVRNBTjLFO@k2{u%%^}T6owB*T8gocuwAr zh(WGky6JO=avnEbN2wS|+0SMsJ3vudG-#$r6tu`M%Baq0w};08eV$8;+(@Q}Zo-)- zxgyL=VNJB#>*h`Bl3s2&m*nwDC2bz;UD%+C5*x@(=m(x$^Ywh~0T_-j>4qMzIY4J0 zpH{ShU9m)$I7YzCVOfe3*p8GDuw7=GPTX2hpWrjp!O9@ zQY@)5aj(AKQY_;jfk}s*0GMQ)l<~;VVG9`hep-t|zl+3u1@my;(v#>xY7s`71J=oI=6 z0^Kt+Av`x?5k^UPJZhYzs8qDiftk!~rB6Os!iP*eZiW2cR~&_Xs?S->1-9i2Vk>=2xJ{j{xI>y~`S^&#uCDM9IUPs^qRE9jRpwaKgB z;i$Ni?zPc(Tu0%4hFL~SxRXMFbPSl%>5C8 zf~chzvbRrSi1BQIE2Sj*RM0^m;7}UQWPIX*l&C)o(CcYZ9|SHYf|UbnThfA4v>ES$ z*>GOLk1!tB7i`{BCYul8fJ1+6Mj~Y=!Nlt66KHn(pqCI~%rnV9AoT~o zXYo&EXsTq1hbhO?E!|Y64wId}rJ@UAX0bavrVzhNLRXa9)FIfn;BnS=yk9CcoKOzGnu17ccvh}m)s2w%Qfy%(Jbk{CD!I$`xFDw9(E$uXd$QMCaIT7r)JQ3a zYnM23_AAwX&~86BzTfzzKfF?76D*Fp-3M6 z`p|8*=VP`Ot}m;{jEaqldgQBT)GJSR%vo9IZ&jX|*(|2=MsGl!b!vLZcW8REs!{p( z_@knh6-7mz*%*~S(jS$Vf2b%bzi@L@)IUCq1PD#=*BpN@`=j!c{83RU=x~8ID(Vey zRQ?#0&wzFUe?1}75ak5?nQ?p6Yp8nxe`b6OdioYcMb!a)1llSeKzn}l{}&LBqOuz* z%N0fC$XlYKwgS&aqvfGw+UBVI@+iZgs3;iwr8g=k6+ADYJOTA9p!Bq_zU_Q=pX)n{ z^GT;2)EWH0d;{P!f318dyQJTa;yy3TF?gu|qw?Eyn44WVzPNbSsBH#;)zg3YfB7Zt z%V!tP(~93X{M8OKHW=`kAC=v=Y1xFG#a9M>X4O-;yJ=z7UBw+&zh|j0-JCZxyYNOy zai19@Erd3d?EPWjhDSLV%9_cq$D zUK`Ldw5Qh$b;_=<)pXmCP+p(w*=hm#($aggOV`R>LTmeFt36(bDK^))?hqR)93N6A zj%s45H}jOWpNS!Brp`Ltx!82HadjO_{n5=A zFl0GupBa}eMmMvy2o)Yz)SMmaj$Ktxs9kTLRiBsNQhOagsMd)-p_U$hU+p}-n%Zps zJ=%?2H57Glgc`h-m!(y2HcZ*uB)+)6+(6q`JWW|!@?!DA*7dbZGoDx8J^4ZC_gN`g zjnwrPTt9hj$R*d)?0+6s%=nF*_-4H-Z&xqIG*P-l-`gy0qpHShb(F<57b-0?kEkCF zc~xEe%xB8x1;^BdC41FrdAaSC2D478^?e7__dXk_G@1IXnyc(n>lJ=BimKi;B(I%#(7lesdsXi)nbb)+W%1BT2@2LU9wr7IrB&Ldh-Nr)u{dI zAGPDv$(`$KH}aQ-JnA5IVcEmltZL(wj(fN5xKyBMHy)j?lysX={En<>br(OcJoD_y zP>+gDv|k=6vfxft)sXh)gW7AuzE>hR?|Y@rst1}C6v^6;Js(p}zn|4?MxjlsJGZ{F z>9-Y1lein|#bxu=*0aA+0=YJA&(Y&5IrfBdWR9%8=KEefIbgEV{hPnlchkRBcPv;R z+VP5{m47{2>rr+!O;pzbZCkGfzr(-|V9kcB*FveP+>=T(!*Nak<*lpc>{{2K5g@~%5|nI%U`!C z*V7)>qDqS_xa8Kyp#j~yYn}IgubAb=O;XYS!5h zYIEop_4{h)E%j#Ef>ZTEQR6SGQ}RBssiFXEVftitcIn}(>ZzT7Srpm#{+_*d?ltw7 zH}_lWTXznJ_WG`>JJ!#))ZahjTF5^ClA1GgL~-huQQC!Rt+lML4yx~~KdX87_6TXs z|GcVZ1>)75Q$Z~-`jybywLR4FN&U5oo(W1x{<=h5e1 z{>49zgl<)j(UJ~Vu?&G(IA{FBA^qGs%K(CXxK|} z+Kd-|w-}d}_t{#cM!WXNdmAi-@zdj!?7Fd9{c3ZI1NTc>-RB?EuAD!tR=jy$O^R-- z%~<-EdgiS-b;Tk@+xy=1P^||ZQ@30kqLnNduVAOPz4Uxntyf~6QolyK;txu@Yu}H2 zPN~)QekJ>_p4#K_n+49Jg(_$FhQ4_J87=d%V-{TWUQV<2=bCDjUU@>Pa-?;$JtLcF zY5S@xwsTvRf11Q;uaI}tecOLjzB-$%?LPRc`qIItm7{H|YrAV*P^(XRNm+gGz1oc> zXVv1)TS9YYCu@Cf#A*+3O;TQ4n4$glN4mD}RJ%N7Vvh`M;eaAb@69fKYI;!VaU@;q zGUQJS&(3`}L;F9?(Aw9jV|8^zIR8eap`pQx>uD#S4X9=uVabciFG&0(yR6Lv+Jz<# ztD>rzp{UOv&}Ii>E%i5>eG!`dZGG)f_)CjHCw4ucT#@Q&YfmpN{`_>5wz%z++Tz$_ zYWf@J)CS}+Ew{O(z4fKx-##=2yNn@)u(U?rZRq@_IqK<~sFsYwQeuOSUlIZL#*=t_>lJ8s3u0ezW+B1A8kJqt64KGe7Lh}#%7+B?33BwPiU^4 z9rUoFh?4Uw7PbmuiSZH>WcZZsdK9kfC&{-e1d1*l59L)qSCgd&g=OPkf^YoQFc)j0c+)?Riw| z^j&vl<;r%=o*LOsbG3?9hU6A2F9+_^+VxwkUU8gJ-p#D9m3RE9e)-*C<+-j&TFe`l z)S0i$Rt_DlrCs^`XSL(2TSGVJ*VmqYJ6`+Y)&t6}Jz3g`+4Z!2anCCq7j)64?7Lv; zJ#`u1f53Imk5Hm7Kc+=>OR>1r6--qoW^~n7YMm_gRG9ylzqUFF?SHksO4Lw`~aROqX9-ce4g{Bf+>>a*5b>4gEIOivqi^3HME z#Fxh^QMYK3Iqy})+bCIcRQg42nD@ulQ2dUDTJ7NpTDg;rl;8h!YV)6} zul>Db9yTDuv~B;$mfo9Px@Ou8rPt)4+KRd^3s0>&Zsn0f!?f?K4YAalWoMsSh7HI_ zEpN&v&#Oj(Vlz|0Csjj-4v*4K?wo9?kJ>vfv~lie?b4f%Sn40_oS^LXjndTh_gLy{ z&KRxO=a10Z482r*CjPd1>)VlXsMI zD$%_gX)Ai&Qm>yJqI8N+(|WvrMeWyrjtI6JpL-+uOj{`7448KPx+-Ib?*DKDu&*lH7j&||9*T{RK8fz zK)JsE5hdmF2nF@Zwm08I-3kSBrkQCl?h47#=9QA-?68r delta 28154 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 diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2light_male.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2light_male.glb index 0cb8ebd311afffc61616d3091fddb3f323e8718d..46674a5b80b7cedd37abce10e508481f600a2502 100644 GIT binary patch delta 14642 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 Zk;jJVUpzLv@8%z`BkfCHIkAUa^nc*J#9{yd diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2medium_female.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2medium_female.glb index 285618ad2ecf294f5be1b9c0fae2aa5394a7a552..b6f9270477c00b4d70606c33276921a1f7d08b48 100644 GIT binary patch delta 38408 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±g<=R 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 F{|^od|0)0g delta 30468 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 t7b94Xz diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2medium_male.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2medium_male.glb index a68e81cc3210f6282efc21fc345234423b9fb459..a1a76f29fa2e678b0808ffba6cecdbceddba407e 100644 GIT binary patch delta 39243 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

    nf5!@~+;6*GkOf>dZrWLX6j;I`84SZK@^(oQ}X zxfq6zu1RwMUQJp$O1GI!}FfFV_(b5*!Fh+idx#+_(uclO;#FKqK#7MSesAXUpf!|;v z@L;-RX-yBKt4Ok0Ff2QQ+2YeYt58kNQ7{l#Sw>&>Gnv3yku`@{4xc#NfQLNBSklD8 z)!e~ju)r9!=;$7cnM0*4G!q9A0VzAAP$%v)LfkadK|TC%O_s60FpoeEBWxTMAcj_Z z`2bVF5fB+TXR)(2GmbUv(+Yove*)t0%-SCin+sDwwDb7jI%X?~Y00u7*0!J+E~vGj z3mq1txmJKrSgwU>AzF&03DcB$pJ|~JY!_h$L)abICRu!#1u1+Jlt#jR9On6xsSV+{2bdz|=xClo`yBN#~ zrzovqldT8sO6>Gfa|#W>)ME3t=ro2uy$yz+k!hEt1HwvDL?c-h#6c`%2U(J*8+|rD zXa1t_iCIpbuRDVQqH{NUMvyo|eK8KS#GYm{RRu+l*LKLLNsKPiRwW-^=Nfb?jQ&vy0S^cdH5kDHmFX;ff2?zgr+(U zy<`!wXd5zbKjtjEm*8aVO8nYRbzmz+O?%7m%z=2x{s2yHJR+)&7Cav*gBUu2P>%?_ z6`={=ZN`r&&@})R9e(ULxC4<)Oar!-Nsm?woQG(Qkc?}9Zcs)dfWRS@gUc?0cMMAy zVmi(-)vy<*^d4+x(i2k7dAzz8$b)GHVeAdt#DC8U+U-gvy&P- z(lM``l)@S;-t#PtSQPKmPg8HW9GgBhjme&I%}Ppi6~QhxiKCTmhi{3DV>w2ShL>rG zNx@9v7J?!;XLzkmqti3`W7Ln%%K9lCW=>))6Un+!6EXmbjAW1=y?<-;htg(t#NjoC z`MjhiV2`x=08yKc`P>I|70=qx<|1^+d735*RQPi!W(g~f^^Dh!lB^w<1jgzn6}lvl zF2Huc7BC*f;dnsj9eQ|H+YIv#A%z{%K3q)`Hi#P>Hd@5fme6FyQ!#qB!*WWZI_Sb$ z>Vw0=3$uj;n2kFX5Ruq!#?&#lThbP`hShQ52yhzU}*vdaAO6-*5PGdYijhCf4oaj5QA6(jjbmZFjeF|D;*~Fmh z7IuBXRgezQY9kI#P(~_duvij}TL#pW9HI+R76=TcF$BCBSWaxyGkC@+$>13)!QdHp zc?Qqe6N!f^u=LYgIkH4E*>T5EV|zJkrnaf2!=(|Kx>9#SZDTZEn8x%ZVQ)uATP?pOu$M=HW-T!taVlgJdJ+m?uq1{U4j;9ZW-W14A1b9wmF6um zJuvN;dA_XUl@QO8LT>6q>D4C&-OyEFGv6f8G z9j=Ji&@y&mrbYR)2#{DkVIH4I2~mKhA0#HXR<2_Ss;G&crpcP*|6%wXR7MFKzm}SiALVC2x z8SEk-mrG;|bDAZ2OdZpR-idgn9WmJDw~!LoaAX*JB+I<2T40LeSBCfuPjnB;y(DPwqsT;xb^fFiao zHifB-IE8RRS-&i?+@4CL$~Hr`Ejv-f`H*ex8!mRF!IDR$o`y6+HQTEUQ&^pJ05V#E zbjGTSe+Jst3M1<T3r+Cg*h;A+E3rpY^b#0^Fm=P!I5%eM!EfL;G>x_z ze$h>QJRV?M4HL%Ml`T0|z>dIjN>ZWM=U9Xz4uT@PG$-u9udi!+(R

    *-@E^V@6?H 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 X{MQ-(b!oWiuCABluWVl2wbTCtak7KE diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_chaingun.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_chaingun.glb index 7731404e8e160d156d700e91762ed0bebaf1786f..da3437cd228fafa685f2a1f9ed82838dedc9134c 100644 GIT binary patch delta 261 zcmeyfoq5Y{X1?^C5H}_U28Jzn85msBHu7=Eik4*-$7iQjrWGaTrWVJiWfrBzmt{`o plUL$|af&A!$SWZ6CW@{&CtDDNU?Ev~oU2OmW delta 61 zcmdn8oB7XnX1?^C5H}_U28KVk85nv}Hu7=EPG%O7+q_8DnhDIvRDd!JlpP@=e^s|{ F2LM`k6D0ru diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_disc.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_disc.glb index 5bb22ba8b6569309c77402f4bf6ca1e02e936e2f..10aeaccbeddfe6f191a72e8b781dc89a7a34b56a 100644 GIT binary patch delta 257 zcmZ3nlX1!(M!xi%5H}_U1_qHh28IC3jeINECCW03hxskD% zsj0bvfjLBTa%FN(W-^jO3`2`jbMg~YfDVzHoW{802I^J= delta 39 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 delta 2244 zcmZuxe^66b7C!I2P{OYetHGlDNP=NUN#MOCyq5$`q9B5xPzPA5Km#pQivlBYmafHQ zSf^zMs_4}gT12ZjRNThcxJpHA)XJ_>E!0+9l`d>u6+x74neMO(dy`;CrupNYd(U^y zcg}b2z4N~Pj=J-J5WKN5E13j<*S7$?z2dlF^Gl?fK?fqDg4N1u`Bv$MvWhKcsqPu3 z@`9ZU)7T8T)7T8T)7T8T z(-`Nauf_}JWe(QM9ITf)STA$1zn_C-)sAs-w;y`CK!Dzi8AQ&7A~dOpiBNHJ>FSI% ztCprqbt;WqnzcMPF(YG5(yKJ~waBy}fn;d3OO{BgX*9SX6#Xk!O0w~e7vees9oChL z34%d=1~KYSOGbH%B`7I95=obYpv;5-*Pdk5h*=rwhRsVn;Y|H=VeYr^LA?ZhxhffL zGlU@V>P3VSom(M7rqzp3uR(%hR!5@08be$@sZ_a1E@;vyL8W-Tx%3(7Wxav7>Cw1A<~W7Ol%tppLv*_%u;N zZa5ms6H*+Fh2|@G9L*`wu6#L(7p5=*1sC9$N`)Ho6%?mtJvl6m&oW<5ahwX#xnaoQ zO46`s7v7f_%;IrchDCiQIjLa~@k#`$z;TUIgL+L0N`qfLQHWREd>3w>QHW!jcw8sk zl}Bo6BVJlnAb~n48tka z)%n$5DIBAPm**@a@PFgaX433O#43n|kN!8g>DH6spO5u)+J+}=!>701I(c?@Vtm7R zUrzS^cH8iWczJNzMof|I#wqerD*n*YqG-#8*^#v}>QidD@aY`sF9+Mc{&(Af%7pLV zIa*CWIz4o^b;r%-?OAC%^wHM(O*sWM#%euKL1{=SxUv%q{p&dR*Ftx%bKx4-0tsm;jIxn~L|a5pQ(;aBEj# zW9{Fku!Oc$o;sOT_&-A6M$Mxb78hsaTY`65xo@s`Udj&-uL|F7JgR8BW;tTc_}Uqr{fDW>j;5|9L56~}9{`(>62pHu zm|lBAxBE#>n$-WRK9iz@8s9oGh-!QiCj5+2KhF9{=-N9hfOQU(D})r?;y~b0YAR`qqWB|DCN4wg%Sz z8r1(9*&GDXPLa?MRj*q#Fp&GX@3GF{+F+yaM{?@EkvAd$yC3{`vyum+5Jq%R6}$m~ zbCxv$rYJl;zD|FFARveud~tSd5Fw+Q0-FN0mS9;`_|cvUM5ip1ly1LMKE?B|AF-(t z0$cwku-zDH5bv9Fc~AAW`SVMWs0PF}VT0$cKGs0PU$%d{_?0nA{A8e~AD{;A>mel` zh9Jcsa>!n(F&32XIfu&yEb`)pXgF!~ZP7uZ=_(BVX>CX27jAy_Z1$+1~;wedk tFc#Nb5Cpg_2+u#?$Ng%80Ur8i7H{4e*QSJyb@$$){txC0^ML>W diff --git a/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_shocklance.glb b/docs/base/@vl2/TR2final105-client.vl2/shapes/TR2weapon_shocklance.glb index e3052669b0ab0de498035fa241c841b3c15f81a5..624c6f9727c113156dc9deee809395fa697d6b11 100644 GIT binary patch delta 245 zcmZ2*nrXs4CcgBX5H}_U1_puk3=C_^H}btx7B0&yj?Yf5Oe;#vO)ZWu$S+SV+Pq3p zjEN1xo~)>&zzJb0Ss6~=z^SlVO65K?8QR1(+*q(`W7d+xV_UV3CU$N39eK#$UI_pe C<5oBT delta 57 zcmbPmk7>baCcgBX5H}_U28IPo85nHxHuAkwo?L7!zqwTH9y6G6M#q(9bFr~I3z%nY Hb+-fnJ{uHT diff --git a/docs/base/@vl2/shapes.vl2/shapes/banner_honor.glb b/docs/base/@vl2/shapes.vl2/shapes/banner_honor.glb index ef25764d78fc5a649858ffd1ed5b2dd12fba79e6..bd83c96e73cd77492742b25bfb337de8635ba638 100644 GIT binary patch literal 41676 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 delta 866 zcmY*WZA?>V7=7ON?JoW9OMwW3(&jRwLV@0vQd$z)T4ln}B1*&=Vs%4|B1FeB36NeF zi6JH$eRcX{VHl%ew#+P56F;!mU=49#(5N9Xjx8Yz*|H%UQD#`LxBf8k$8&x>&p9Vg z&KXbOalzQywz(Puz<4$QHUDJ1!(l;S54i#?IAf>MyqKwVf3O0Y$yS?+m{zYh+4;?D zn?m7m!?lV@jmbST*2{{?0iSgVY%r%7F;oZ z`T%0Tl;~sAMLx_9W>}fGq?(yCvsl2aW#5%pk(;3$E9)=y61S(EB}xm~tw1_Pq(pGJSfc>FYt<0*2Ya zVXI_(W&w@#^C6wxpdQuH$b|bLejnA4rFx)^=cd{@%!{ zR0gsiASuV=aQ0F3W=LWq^PZ~#BM<~SQez>-m;{Mwy~WTubo8@}#-8rw)`Js=AakWC zFQtJ38Nd25o|^W#sef!R-!Kv0CBb`hHk?v3Lyz36a(Gqnq-vuWxd*`&Y%_Q4|d9l0I#>tptlJc%7USB2gH Dg^LiJ diff --git a/docs/base/@vl2/shapes.vl2/shapes/banner_strength.glb b/docs/base/@vl2/shapes.vl2/shapes/banner_strength.glb index bf0d4c8b4554de70ac53adb65d3bcc2a881a6a53..f646823923d4941b7e611011046d8c71c1e08c58 100644 GIT binary patch literal 41680 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 delta 878 zcmZWmYe-XJ7=FL+TgTnpj&72*&8=0GIqjSschhLDrKMdamS};r?of82gc3E6kwo;P z^0Uj25F@%#6tN1r?nD_<88a$`h>9Ylpt7VaYNs;@D*Ew0KOUa>n!rPoC`~9 z!;whU%q5(&$V>MbixE$|bYbM9Cbrt*|Dz53tL5ol<22;{tyO0fV_t}rW^^HH$=AkS zMr=CPXG%3c5R9(shc(u<)C6)&Wgg{*UUZ@}A9 z*W&1A0A`fWhnZEOa0Fw7l=O;gag7>H9)rey=sNrE`Cv<^?Ix0ive4))qlb!T`^G=GP#b?#Ro=DX z(?hMk>2+jSqd94r;3t_5q^|_A2GR$+PueBJQyXZcdu=*by84!mjrQ>%?mESaM>PO` z+`9)W=%5z-Qnl?-{Na6M77c8=fC$GB@*z>nuPi#Y?Q zPmMV3IR_Gz40;dZ18E0TI5thpSsTq&Vgfk`kd)(bIP|dfYFMJzhkO@H3_uX*NV$#V zV-h09dA9V16T6omH#9d*v~TTe1M_52{*eX>m|g@i9(W#v*UBJBVYdvOGU@#QN$s$G z`;D7lqoFUF+Z(2%MNT$(S^jaY{&_s98nKHqfOt2a{7yh7iV?H|K&$)&(n+Ihk;-B- zDDmqG`o2wC`eg9d8~KFCBo-2oWS+2vI#z(N0KC!&YJoTexN{%(>P1cfcZw@fXR|3k bvQdFyTm&PyXy=XApgzWRI7zJI$aM4zM8_G> diff --git a/docs/base/@vl2/shapes.vl2/shapes/banner_unity.glb b/docs/base/@vl2/shapes.vl2/shapes/banner_unity.glb index 586dd145dbafb706f7ffcb7c8f54923f09108a88..8d9cbc72eba98d62014048b74ecef495c5fdd705 100644 GIT binary patch literal 41676 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 delta 866 zcmY*WZA?>V7=7ON?JoW9OMwW3(&jRwLV@0vQd$z)T4ln}B1*&=Vs%4|B1FeB36NeF zi6JH$eRcX{VHl%ew#+P56F;!mU=49#(5N9Xjx8Yz*|H%UQD#`LxBf8k$8&x>&p9Vg z&KXbOalzQywz(Puz<4$QHUDJ1!(l;S54i#?IAf>MyqKwVf3O0Y$yS?+m{zYh+4;?D zn?m7m!?lV@jmbST*2{{?0iSgVY%r%7F;oZ z`T%0Tl;~sAMLx_9W>}fGq?(yCvsl2aW#5%pk(;3$E9)=y61S(EB}xm~tw1_Pq(pGJSfc>FYt<0*2Ya zVXI_(W&w@#^C6wxpdQuH$b|bLejnA4rFx)^=cd{@%!{ zR0gsiASuV=aQ0F3W=LWq^PZ~#BM<~SQez>-m;{Mwy~WTubo8@}#-8rw)`Js=AakWC zFQtJ38Nd25o|^W#sef!R-!Kv0CBb`hHk?v3Lyz36a(Gqnq-vuWxd*`&Y%_Q4|d9l0I#>tptlJc%7USB2gH Dg^LiJ diff --git a/docs/base/@vl2/shapes.vl2/shapes/beacon.glb b/docs/base/@vl2/shapes.vl2/shapes/beacon.glb index 5c0e3035d29732d238eef06014f107e4331ddd0c..9ede70795389ef0ee590948585cf44cce51e5df8 100644 GIT binary patch delta 84 zcmdmC^}&WOJtxGCiGhKkK#qaof%rzgqfDY@nZ@zhsg-F(iMgr8@rk)fnW=dtlb12R b=YVsjGAVGwI7(KAn=dlG65hN=tcDE$*Sj8$ delta 43 zcmexhv%`unJtxGCiGhK^LY9GHh1f>EqfC<*a!5=TU}M{?#d1oRQDO5J@ftP&4_6FV diff --git a/docs/base/@vl2/shapes.vl2/shapes/bioderm_heavy.glb b/docs/base/@vl2/shapes.vl2/shapes/bioderm_heavy.glb index 51b9c712a400bab6b45630fcabf6b97e26b9c173..97eeb679bfa32df8b4e8f0580d529f79260995fd 100644 GIT binary patch delta 61127 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 delta 43672 zcmchAcbHT~_BI^|5@vdWfP_gT1I%=q?jA%OS44D`U=~paGX@xQLV^j!m0$~H78XSp zCCSPtD8WS+5g5=lz$y}4WnCQxca5lg?>SXn`2F=g58*wr@~KmGZ+G9j{kSbJ z4am9j+Oq}+TeN7g}ShP82tT|@9IcC$g zz-QCOfZ4P)U^ZWzAj? zh3r2CMpC}cF}jhIuY0VAi)wOgJ0q!PtM-nkk^RNN<)b~zbhEXa?P+8;IQVxDN7BvK z>WWLmclHSn2h(XiI!kWtrsrw8>0HaEF4be1z1o6j49Lm&#*AHLTU}<<`&%&9fSio4 zL$vxwR;%sh#%`biIaR)1(CYI=*tF=JD&Ih9gCnmsZbw-#!+@Nsri(56lhx{b9ozNF zUVL3HdFquLk2YCMy|RBd((C~XD#mL4P&`_xd-slex&@-y(qDRJ-y53~jB9vMU?d)O zSF@2{IZjlc^kBWfNId4Y)>x%$#p)UlJ}VGbZljG=>+8kpSPza97>UQ-rfVxO-60TW zGqpPZHu3+kK-jy}LF}8U-%+=V{e=P}abMuJ_KBu7&HgM#*?xCeSD|_2*;co&_kh?0h98BM!X`{#Q6#GpABXM8Ewf4S{YYH7RUhJP12zy^gaZzCU zI!c#cb(gh=ylMR+@k)0|nL=0IlWUs4&mt)LhEaPz_g<^`kf7BT!K9fA^|{ZQTp(z= zMUi;QH(0uqAFVhLS6ep*KA8PRpk21{icZ<+)B-i9XP|Ai`t?rP#&reDs%O6vCZ&%9 zSez+$XVT2<-|x?5Y4(5x6;m_^`o8YbYRX8n?^$qA^wYi$(fU_DVEjL6LA?RF@wBfu zOeKBc)z&=SOiiXtH=b8ou+M(yFKN3 z8SY_N`qr_re9hCye&gVhr^QPkQMYDApgO?Qe_8eGZ-ukzSGud(b%9>lH=fSbpwWQb zMBL2*5?XrRGe+%C7OXJ<`fgVk{Ue_>`lBqEVL)!emk1mEpR8KnImWPNPPmmG=@VBfPOQjFSlx68xTq)=@^3* zaPZBtU}ZEr^U0psDSyeaaHR+L35-E>$nrO2~g{wfZJ3XG(E zLt@&pT;#!YMvukDcZ))abQKLoB;)R4hMB$p)tsP~XIFTzL0}}~>lLGV&T_Gu>cLe4 zBN<;`7^~iOVl~o((*#DUe0^c6?MqK>TdJC?)yb>G|D7IOEHF~lT&+5-W~==hdS?IV z!HEJR(L-xRs$Ypb+jWgN7$z_h^^FkP0;^z@P7YWivp*~eMl;097O(9PN@^VO-C`JK zc8aHvUFqO`9*+2~Dy-qTZ;9vZLk?c;;fU`(!W#DZn>Fl}9rd^Nrh2`yGd!H@_KCLZ zmFsRamgkO><+l)-qb7Cw~C-UdXu(+EW5(f%Qkp8*X;%J zAKUENOx-NLv#UJpYdhIc*=`0vJeok~*LUE00!J#{%+M(KuL!Kwryq({Hu90+NToYC zR{1thA^Wm}cX~Kd*<9U*d@P=`;~l)j!~S~$Q(`bhhm6a@YSO|$S$56C#o0+0bCD_j=+=8QlfnQeTfS9anjx%7W-GUcW$TK1KeWxH-;o$N6Ee{M4E_LSDG zGdlk<{}*pJe$#HBXx%AVmR)K7-zU0mH?VGQ(ieEO{R_KtOzra1aIOO zl3+!WRc?^8Dd1P0Mz-s}L_0go!;#9UyNs-5ou`rgkAsW96fdxJ`^H*M@iek49lX!O zuyp&#Sc2=0nDzJKw^CyEQwK*HgpbAM20Uwdo2QX|*}*$K3`=*WTFW8(#CLYQgO_+1 zYuTN*#xhhHkIQJ4$Vi>m==q!EVfb+8vn_qEr;+Wp-?JR**>4>Cbl^e`-&=__!X8O!WnewGrmpLrNrW;4A8uDglZez^S?&&NU!L%W$? z1Gl*qaLNJC$6X$Vb~F7KtgNhCyCQJBKBv4|8~9sT9gGCJ1uE6`>u`uX{Z}M_8Y4Qp z-RN=MC1JSPe|vV>?!UP{+z$18xE*SJyzbd$zx6P#kKGOxAHEFR`grhnDLeb7hvCER zP|t_kp&qxHI;+3542Wy>nL|V>eOJNa#TWDqSKZ#q@v_h%;H8;<1-F@ct5aG#UhZ-T z=r_}|p~|#AEva|91&TtI8C-8R^i)IJ1UgtE;=3j`8WG<$hBf=zF;hi{xjuZosY{9Y zt~RWX6^@x|FoYVBhg%{yR6|`eeG|Yi)kAFq?Wz8(qE@?7N+V7g3THu&XaEL&rZtVmt+U$}W+SW}U z8yM4C9eYfmTQG|Ii9(dur4T)lveZzQ@+GN8CFbdV?dqzc!yP}lZqJbA=)(h!!qq4BG+B7qW+?zp*}SP zMx>|8EyD7FBO-9)b4XdNa;u}FUUG@g9U_u&rxcaU#wQnh{?(l>vDhIZzT0Ur?o{F! z|IsBTIz+^GH7&+pIV!4aspDywLqvS{(qdfasNew^Hu)O@*`2dXvuhR>sK);UO0%^$ z7O2_|0FhAuA0S(nU;!e>|#C2(T3Dje=Lp13hXmCSGvq`;}>5CyKh<#q1_6qO^IIHn@M?)QO ziHc01Lm-u%f!nRL??jPerka%rVryeN)H}o~}Cj zWY6D49>$HNFBIsWe8*Ezzc{#jh&X|vZ-3H;vpog1!NI?KIFj}~lQdPm;uP_$o^bGH z55usTeoCF{8D8z+XFLqUW=62pA3ekV4j$`ayeZI3=X~TTsJ5qhP6m1yhRt-&d{04b zcW}<>;v|yxJ$*EtbBm{-7C3l^hhf-E=L{Yyp4A-=UgTjIHq$vBhk1slI(UMIaVy^cYZ>s940q^;ynzRyoUN!bd zJoU`(oZ6Efc=CQ(dx6<6Y2&P!6)3BlaYbNh5Ps=yyhmQzcVIAFb?c}=ZcuBemmK`L zhhgdVvb8+i5|{N`;G?I@+(h6b-md0GR(uUbUWHw z)_EH0KOPRHGgZ#+i7fY?)}eG2J=*D^rqrMWgI79upNI3(zH54GdG2V>@*xMW_Ao4c zePhb$a|v6jrMDnu9CZoiQdLwFGaSNyVUJR^%1@4p>U*hUT;mY_dwVfn@2IF>T_Sp! z=gEJ8FUF7gRNN(ERU*EtB+FG-jloe)sHc3?7MF_nE|kO~bG2)Kt&f`HQh33|Nx8+o z%{8w503TKBQh1G_Ir~ps9o7C?*ITtq;o){u`(6syBFAPYjm*i`%x|l1pAaYsB=}Aw zlu5*CVyL{MSO{*b5vn=_{C+9 zEXMKTr(SAKFBq-4rd{^pTRW*4{|X$Qt^T=8RXmK`I+McNz;_;U&M-`5h+3$=zLWAk zLllko2ww(GW~0YbVrev2IGU=#A$%D$nFS`G3hv#7WvZ!n>C#9;t#Sxo+G^DMbnu?X zTMtdDNS^A}Ou*X)d?A3u>#@UB&69y6_@Kcx@tuf~+A`CPa&%Z&dM_Qz0VdyvseL5ZFB4qK_ehKk);?g$pZOrl@A9CrWNN5OHR&y=xZ_IB$f`*_ znd!zh(wzLTTkQ6S-C}d5Ih1colI4hL#uA{HT3~gV+Tl{ZiD)dF){gD&m~KjBYLQDd zIoa)>?v{V*46m*|@jj&!f=!3?RCAt0(6$s_K5R~>%~Ot!8sMX9T`CawuaTvPiEH(V ztEk#P?YgXXDZGT#TqRy~b=0RmD)NluE#liMY}3?ju8w-yN9}Z}$RS4uo;f|$kY}AT z)Oa7Y#HAvKoFI&S=Q*zZX+CO_OGOSjNErLQu8!(9*Y!5srSQb7x&C|2)luL0sFFWB z-tZKoIr|4(9rcEfYIG_8+dI<#=go7<6^KOj)+o>(} zfv(w!XBX5>dNXi$E4*O1^*2PWD&J{BGu1h-;PTAisSaM{;oK_UVZtc)UgjB&bnr9} z!_YlT7{ebt1$FdaJtr4=IJe68in=j;$5T+hIJo>(aRNhk>KVh?o`Txo;NLwALwBP! zhF2`No_nh&9lXWExl!NCKWx}r^{?{`$9Wja?oMHpw|NRG=QS~ea+50cR=0TyYN3a7 zqrO`tpCxFjpf!Si5Y%_Qv4}){A>8_Y%*xefLE(38Dg6c23YstIQ;Q-|UwF2@ zhitHZCJ6egpsxj$yl3^!5%edE;M*Nw>-#4wSLGY6^<{#d5VU1uAl%-|g^f85%&~d#4Fmrcp57Dsb_hGgP-!S{|!v*C77ww&yZ+8q2nJtOTr_hIy_726%0jjSF-;z zbdrBj8?JikGkw*;D(;h^m@!P!eGEy}={p=%|01_4uRAJgpF>34y8w1Q_j9_q9TGG?deO+D)n5&s-D`hg5zKkhsuP^L;Q59ISnT3L)&C823DDEc5xWA35L!f_w_3OhS%IY@Ze|^`Ty?~5 zSI5^Bs}u1}QOi{mzC;5}QT{fG%GZvHD)~z5qjzwUU4ist`J}+bVRhWEfl__T(px?B z70%82a;0~!?<`=L>PJUI_1o*JyVbPnk2@Nw-XZY$3uob3^<)3-IP@I@ti}tDhWgAQ z@Rod2hj_KUDN`NS;FjV}UR%mv91ZokL*)7%AY1i6?sFXaUPZDRb&iJm)**6zA1Afy z=Qnx|gGv1gt6E(UY^Bz=4t5J9)%Cw)ejR8;l+YM&>NyRK#f-+4`$a=N?P32LqgEU5 zTs7mve;Tm5s_uWD=WjiXmtmUmq0ax_)1L0&w;g=I!~PS1lzHV3;^mN!nVRX%1IN<51J6&Q)AlTBmRr8uv)l4nn-uJ4iZEdDaFfX7>8tcL5Jh7>6o}$k_ny^jK-+KFV)f# zb(TR!(BU#GINcy4Xmz<37;>YbpVN8?#hAdU_d$b@& zZ5kIUP&XQ~RQ=U2_+A95d$mQWx>e9?1{p6ui=h8~R{2grZwUHL(7^kx-o*PcG_^B9 zt`QWNVtIcssDrNVJt9~qsO1Azd9Xo7d5Q?u3p(sUt9+_KM)@HTZ1f8{OhwhIPeM;l z8-#3p$gJS8>h!7bvg9!crV)a)P&M8c?4Y)gG7BOP`2=S?WCf3qfK@&aRQM;K@;QI9 z%Ckwp${!2r{IKPnFX#zDfoWFy2SN7;T1UvMZma3Gpuy9v*%U$R33a+v^a*D0NIw-EthSJ#_F3rVJ)%*Ls-K6@b%r5JR94VG1Rb8WX6G1W z%#;W|5p=|(R(YgBrRu3iQ6$PORi6nenq_(S3VK^mtJzx01r?~14Oyxl5cIB~w#ujc zM?;pXKMC3-D2L_{>S8<(Gi0fn;TLQrGCCiVu+?)|&iRjntX_a7oJk0RQuV0tJ``TZ zC#>GNf*upJjS$;*dD7}#Am}MUp9v~@%IaM#XpW%PPh05_K@Sq*GByaW-7{A2G(is& zV!h46%cZ%&tsE|BCLz{)Uw8#`EblBr6)y){s;Mubn`RMt{Gwo)`p5{%RHwO?cOD@q zm#N2vw_Q-zKU=*~gjnxs;q4GqJkRRY2%0Nsx1dv=vwBkny(g&s^R|rB32~jL391(q zq4a_4!ifayJwiN29|$UZ!Rnn&h^4cI_c5Uvf5mJnIT<0XVp(v2>hvP!5O^i(JcE#W zkhJ=F#I+}0)D|Ubdo$8*f3eb0f3aSk7PP}4*I&s3Yf(e9n9H3jXt$sqFInkjf;I}u zdD%*b3wp#LQ`(k=SX&>xj1+*&=(x~YoG0iBgFFiyIjAFw7Fp#QgG$xBMY`ff89~3j z`a-0A7B`h%wHRK8uS93RyaIFbB~k&IqZ(Hu-}u&$rK)0yPcUKw%pxn%_d8cYZ<$~E zy`M}k_1WHT$Wpb^FZj(*9{-BZY_gyHo1bjCOjoD`=fT)Y9I3ee3oTbQ2&(w2uj;ji zEKy4ZeJ3dKs!#bQLzbvl1^pl>z1*jKn;}co>wdv6%h9lschKh*Z=uhRtzFE+6gN*WzBFMaHm2Vfc!XTr3Km-F;X=Nk0YZZFDhFZRg&~RE82Ze_d zkm2F*WAxq<6k20>g9x$heZqT3Q0ui;Z-}4=1#J-2?kyCKm07B85VTCt{|s_hX7X=P zW{X??W^L;P{bZ19ky&Rg?pS9nRtoynAlG8R+ty;j+uFjFu7Y&-2iTD6x8T5hkaQy- z;-Bhwm|vfxajHVF#yXix#_p0!IA|6Zoe`L{kLR`k1G_E9_{jnAPLD0Q|-Z7|59rg)!PZ*S` zKMH#I6P%r^x8vB8yA4~xmIX-Lhi(g2Xx_|i!Nr<)#&*psP>*g8F44Sm{u!**=#zh< zD#Q08Oz-^?Vfu(qHCduY8kD0Je*@1?ir`bfp!;Xm;vzxM3fgIq@lv|ODqkXKo}e!T z_4?fET_NZNL3;%qwbSZdZICJGB@uihsNXKDJk}tiyjTQ{2H}jp8zX~$DOEQb#L5Ng zuOj%~FG%fy#g+!dnd=(RleZeOOuc4Mt{ONgl&^l;1EtnwNoC{sut%G8qYp!bI_wQ`xdN6jW(lw9g<@s|xA^uI{cg ztl2AjE&8uPMmh0st9HSZ|5&z7t+@ zpVhmC5bM1rykCSjpwa40AjEoWgcsazd4mXzqgLK8y!FCsOXJJ7rx9YkX~Nqgy!`)K zy|W0h-fZE0BD^mD(|V=q!v7)2K(ACiO9*9@s;yHkugCY6clr0hl3BH(!Rq<%G2eCu zabNz`_s}f~g>uxm5T^K0G6jjd8H0>qvj}p2v?@adO%t?PP|i=HXOM9eqDM&UbrL<1R&=(~v7I5+dV(4V z4Y&xmAf0-Kj#U*$K)L2}tf;X^KmgQ1m0Ut=#*oFT!7nK9qV-^5khKs&gI`eIRV)m$ z79wcy3(C8Rg+bOr1Py*cd3Uie$XbY?!7nH;5(|Tj#YZCORIF8u;5=r?fGM~j|hAdXk`vqT$pid8<#Z^S!P#!v2 zE$D&K-&T&%|C)Gq%Acr4^wcB{ls)Zi+A6&KUY0kam*^3X=lJ`A@_Sp}8H9Ky&g^Y1 z-WOh8AIm$VkF|J2(EEb&kF;J!9BC~cA)YQ*Q2tS(ca-Q6PwNTFKU(yT7Cqr@B_0yX z!7A?lmTY%c}bz#L#Uomk7F(G zQbNp|M<{my=`rtE(i>oTmlCQc-aO&$5nhkuM30cx6W$)-^%w~0^nvhlDWPG6<_T|) z@Om6CdW5u|@b(C=N44k?(t3n)Pk`q=gzBq-dYoW+ml9&$JmKvTUXMSB9wDtKygkC} zaU!JCPo#Db8b)ZI@b(C=#~{%or1gZiM|eF>5o7%$p~? zJ;Lj8vgi@gdcxZyydFa!oj!!xL1-AEc|$^F>X??HT=nRgp~|}5Lqc=f(q7(9-E>jt zIQ8zC2xq*Pw>b-w&D&Il7_wMB;1{eHL7TJv7KVg{U$9;TZO-vq7!nqK!Fmz2IoEGt zNLcs<>qXG!Jimn@Vc{377eSlz{T7CVgqXG!LcfI}Vc{377eSkg{1z95da5OV#CvQLdm^1%auI?KCw7g5m>0d+ z@@ffbJ>fM9FIppdH7Miv8}N+lzH5*ZFCmiOLTeNh9c_8F29>E-Mq^?^uT1?{Q1TMX zyIIh3LaWC???>TfF132M3tB;l^$rMcz-3nNEdPUGUXR@V!P?MCbPHCh z_SK@!Zy7KjpwL4=@OrtTBoJAztYY4wH(dQi{?LG7-xdZ!U$e-8_9v!L8D zR&O{V*5mhpxGwLDwBTw;AGtYniaLwX#9L6mS%N+i)ae>4J?|PcaMCUK2X7A=6uQ=; zlLSp6G~+h>^RA$F*IC}_^uA$rDgJqw#*)*ydP2<08*6!I5@OygK_3e`g2tDn7Z74E zPYdsJ;g!}}y-RCxq@QyKsrGaAUMCJ0(1D0rvU8$^ip?l-(L_3oV*k1bQM%8s5A8l>9M@a%jL-FZ482+GuS;cXRO z!ChAGY(YxUHbQLMb%NEqP|&l2b_wb+(du0;XtSWmBr82b(4&O7jE{uZd9u|TDd;Ie zthYmWC3joBO9VYfi1oe{-jVlM-qrVnO6yik58V|EWK`ynP(Ss&3gri*aTVAQ>aIQ_ zA{JM9yFs*mjEJ<_wF5+khaJ%(5qgEaW?`sEEqo@F7miipz3l6k!SUyig<_Q{we+8$ za-R+5g<`3sifsf{%@kfTC#o<*Z&~}ir}1rm3!yh`R2V)oc)gscNu$E>k--;53`1Qf z{h2&g#ngxjqF7dy(Edq=-{DhptHVWBRHb`@72{F72ffw0j7L+tFGz;B&1Wn`^R*sc z=U@Ab=*3bh@MogPJzg~5{|uTT00`K(47GfkT6UKh= zLiA5%qDoEfje@o;Aa6;vKMxMHsM5?PEy7wl978^50r^HB@s!b`H1(>r%5bsTA--id z?YR$Cq9b@(lNr8C7DKZDZN+D7C!dH?;TqE$-#^md5Fz}Cl&*9NBgZSAEW@cJ#&~Hb z)S682>9Nu^w)m7?nOrke6O*Qh8y8C1KGmhuV*C*^h})XVRI0hB=wkEnI*?OK3^Hn2 z9!g_5ahxFo`sm2@E463D8GQQ>tz>qU#6w*=dma^@S*WQ@ef$iHI{p=O8op^5b3Pi%Ap9ZXndzGGO?P|}kEeUaH{CP7 z>7MaT_l$44XMEEg@k~#5t}h}KraRt4UmPkxY##Aks3Ke?GaX#42%hMs=~bBMyewH% ziB6?O&x9S9dbkSescwzzT)%i}=y3WDRqACbJ{-fB4bZrBSF4wyC`|6PAD|OHUyc=w zkNfLYI_y=V5}+suX&FKiPqyK&qSK>Ej`us4V>(6=h&aM&y%ea^P(zZ@$Fk?pk|l@X zXa-FQyc#O!uLAzqmKwvRw6)M$pmvc`EEjeiLxp%a*>wyRsu^q)Lovh+j>TFA*Rdof zkEZbbP-|&DawV{}?WBQ5B?{3O93DuGmdw^uq^znmg%|cv5Q<_VVbyn6+*}GSZQu@8 z1qe}dm+86}1QQ6&G!sz{hAp8h%e{vmi<8P0sI7gWr1=;$j(wlE!#)vP-fDf-_zb2cThg~6Ee^5AASy_4mb?eC*llGC5j{9zn7&fihxbn+ zPzP*Rx)H%-TnBg7!Y0MrJrmf7xOQxk)P2hBPFBYCd}1|B__hDQIDja`a^c9s0$TU9 z`H~HOQB|#>+Rs=Cf>u~>G;rS=Gy~11QMj6dHbN0k)#KNoOYw^ldPC^9z! z+VTz>p%pRyJk<(pHFIyjL0uUj{~bkfxw1 zW}(VTv-xWoKF}v+W4KD6MKiS|?Nk`wIFHSQ;w4oi2p6Taz_en0B>ywm51>W z+6>KqRQnw)JF^E-dqNp(JBaGqQpITR*DkBjr(8>}79up~izVwZvC*Y(hho91q*_98 zhV&_4-T4^~KqvsYOIj^m3!kJ-6P&A7@-9|eRPTi-IzNnGW7TOxVKRXaR=PQK98q>e z2l$?}33ZHOcja7aVm(TVqEQr}v3EA-X&|Oi~j|&Dx%Y5xo#)ys* zCwu`la)-#A(t(iu#jt`AtBS})0Y#J1lw*RR2*NobtHt3Wx{0z}{8R^zxn?Jk%Tin? zin3fJwlRc8GyGZy`zvBZ5tpupcMX@2b|L*z3g#b|l~0jcXa6L@l;drMn~04q_Fvn? z1XcuBaMEUOBIg-YN;pZ0AX3ckx{*m#%&TS+YX=KSS0R+789-ZXr!DA?B!&yYu}Cce zMLE}S%!ox>(H!KUu|Gqw^L-3SCB~awEZzzu{Gy5;1uaAH;KGQ)3Z5H>3&O!lOyFS{ z1?>;tD^4dIZBxb3l8eOzj;rgx(sd}L$cESWw!j>j1`h#Sq>#m)@UKt>vd5Ip3^g0s z5RW=rU?OrYsWJFIYBLU0d>CI4ZF)!xvE}f#GYoOFZwRIit5VTFD zQ%_1QD(Jw3qOgp;dKOYvz*{s)@X6`GyD0Rjf1;E)(m$%u?9b4eIOd8z0`5W^=IjlX z&fY;fI7jj9itZu`xg;$=5{2U_3>ej!D9Vj$ehd|BBg}0~Eo3X7BQ_!}j9rHOhe}Bx zM4->2oSAjDOay(JQ*4{Sen1nE)Dd?nJ_8<(Rb{G*z=13Z$5XH=GOumNZVI8n`v_Mw znc~w8>rm=F8V5$WF9=rYNzYZrlrIfnrIJMuSxxL!C{Zmd%~6&sREcAS)UFbnIxmw7 z^b(%}DHdxZI!5f*jmGYP6CrIfHDACtz64NDNoOXnmzE5Lc!d@h%0#z zV#@FW)`n?4F|{TF6-ODO=pbF%Rj*N;?NKexOtlCX7j*7qt2E9?)OuYLOblFbSWz1L z8f8&b7Pi;9X>c4DPdG;x#x!y84MxsN-#g1CK+8H zuqzmGlpznH3?>G5pSG$(*yD7cYD(vSnn6@np{o5#BZN>s=HL`g@gsrp+e%jf+QRI* zn+_M(&V-EexZnYNc?xUu2*uVsleoqvlI$*^5F{)UlS^Ka6_ zB;qAOdbHJ!?g95qAgAYkVSh35SAo8p@f8Le`;|DSX%INm7$Kc8+XR=3@72&fLuCcx zvr4fq66CK$pv{`=5XU~oK}J(Jy>VT&Vn#)iaQ-kgF@XevcSeY4^WWdo)|GOJe~02U z!)-0mk(fU`&$tB%oMm|UxN(^MxcJf)pc4WoA6(}oq5+Q|6&b|L;{8mE5Da*pkwZ%O zd7hQ*LuD#eWET>plKlt<7)|a)5>Sm;Yxs9WVCy{}btVatY-H-3zI{vQ0(&UaG6XbU zTgCe^NGY5k(2y8i66x&i8x)D{G;MvQ&;-s=*gAzBh?~GQNZ}T23;MbdM!W%W3;Ca4f6huR&IZjK*pM%zDa!Z0huB$(9ObOJ3d zo+~5>+EFBTL1a{cMoMl|bQi!~fioKB11)tF!5Rn?6=D2rpv@e=N3Cef;>kGtzfiK- z1PHW)GfyZ5VZlf9No;{|!ec}hh!Q+TEQui!=sc42aO~D&L|HR3ucRI%SYd0#VT@a^ zDf(JpItFM8!G;6c#2+y@NZ2T%D-=NY3X$Dt&!iuCa*U>BLwxEAPD057vu6Kb%zHLS z=><-FozK#3L#Ll;->br%F)nG5()@xuLpu5M+FA57lB`4&q$f;J*2q~AggBlcGSltn z&RKIYF!=;go?mIY((~4M; zTuY+pKGrEZNV)R0;u498b%LG1)R-DaiDP5E}@v)|Aa6b*M_93sDKg6C6hD4ZWg zvAW{3s>ASrh`~Yh_#iI%DJMTFT+EU*<`(%TA_x|1_6~K16xy7aE8 z)j?+Qg>?WY)49s7nmN=f$95z;s_DFjLAVnC{ZXkUE;92k?imv|=T z;#8YptfeDj=xN&#@P@!*`XP@lEu{uTc-;`g+_3{frw&X^T{)UmNZ^nmr7?)4^(KgM z9Z*pa2no2LZHL7a!zBp&CJ`t;2jN~9GCBwI!%1z0U7Q|&X+7E#=-Hm8@MsKku_6>h zNZo%6+FILzo;D()j=0#PO!KsBJOlbrydgMZVq0%m>>P@;@1z+%ZH7BNx~kJ6Bq@BW zNfae_Nb7Msn?pq-g7Gj%b1~~RHkQc^x;URqD z5e8a_G+{D5yVJhRU8ybxF>M4rK(-=W3fN*Ys<8{zANpNsX3({29`zG?hK9*FFc+fM z0f!wDg=2K?$8AABbPMia@#$Pt5jZm6bP*n3^D`;kd7$_a0t&#BYkK6M3!rd9ae)ee z4krg_6G91Jd>FO~C1ipkmeQ54t`P!B5o(Wb#G|J!6?8$4l*tr{3q-v!LYD#q9-o=k z<53+iHzVNHM$YLO91DAp6${DQ@Ve6xNLoG5F97co@q8X}1 zeEndXkH*+FhI0}>DC3!gX7afl^#$Nb6vq=oJBcW>6KbXkdl=sF5dxr%3xp-#rVE3MCiS5d1nYX5IqfV>{dknX<6_NMZYfl>Lh`)C`^ zL58161b*ukb9VJ5SgJO5h#-~amY&G7=pKfFdG24BvPWQ;_nbitS{~?OYq^=5`2Os0uIb= z2~ltmebsS*=Vd0HParShL80R5dXM{yY;f<1QNF$yNG@rXT>2$wCAn&YO_ymv0tE-mk^-=HV3XXVi)0Y3~QRS2TAbC5v&^=PB6w*JQ?LZKuQ zlo7N`Yscmc!|L0QG3s<=K~7Olo+q7%&cyu3VYp&;KdXRs%}&TJl*CHry*`OkKkfCZ zceyS2gmcgfq!mua=oK04^w7s>P|z~g=DG}ak%XbmncxzyaP{zbVV>~*bGfa*b5q6hFQtF z_PFaBAyWsZIh!+L3gDS8*0Mf+fZ~Uqs2TuejdZ2Wcc$78q9NYdBQf8&*olCwXAh_#)Z*d>M+vym8TzH2l6fKwq}2}7|6wVd11 zvv-@@VmLq{vXR^*CAzkVxO~Nc0t@siGJF%#m_I%x9e`7zJtP&NWgINY0?#34)3pri z^Kvp=^WY*K#$7cXpa_XFwtQoI57CsPuC5|dIUJEH z=vtj-J!!Vo0T#FF7!rg>xG~`jCGlOmJta|5<_XJ|{%ATcqUh-yF8PrjadBScWprI{ z#I#C!Zv=B4sSa*7`N54z%INI{#2OMni?_;hT+LE`W|cX2r;JHGe{8tKa(S^6m;6zu z85ibqktFa#>6sCj5oJeX26&D*9uODh>+aM=AkU=CUOS@vOxP4J*-gLWtQ$-=iWAxm z0yuTG)#rOLBhf2V*9hUArvSU!@3`XdVGM9zf%mb-&cLh4EIsPS5eSG7`q~u+`jtylqijhZtQAB!;+j zE2l?cyqbv11Xj1M1f8*LTCR?(_PlWHF<$txx*VnH1ln{LDB4hrA2f#E)FTTOIKeiC z&JQ**$7?MZaZ34y)0_N6@iN4_@$||Il1qxJhB9}kL4N_HOK9LQv*~J{*tn?2;XX=XX*7988byy)v^_ogrv7J&o?3GA4P^qoq0F8~ z6g?Q>GlmhFhXg2%Z)3PoT7{OAt?Kx6vN#WAWE7 zrE*avdU8GNGBiGgnZ#3`D0)|rGaE~ANm@@oPQxcbSP%COl;dd;hMx=8BFquW3yHu) zLB@qCgXdzGqZ3nTGA&K@`Q=m?eglE7zb(Og8XrRFX$LJmI$5M}MBsBjm~z$!*S(Q| zXlFDW4Ppo6`9x0Cq>C~05~IT1^jU_U6wy->?G!`KcguW-k)p&Kmj!$r!;V>F4?whi zHr|35uhl5X(^W?b1J1iQACl;eNV&7XJNLK-u~#Lauw{}-8uxIH2~M$MLT^9P$3(O< z1UPMgOEoc|clS9R17jj`!V2Qx_*dzE!{Y1_YKAy#>d^Ktdu-HyWwUbc_^pl8>gw6MmKB1{A4< zRY(nZ)U;_8_F!}no^#z8j)YTHc9S&9=micY+7r%>cw<34;js$GS)+?%498ZZiv$0S zJmD*K=NYzsWNIseMZ%NAREAb2J%2GC?T2eDX|6gAiCl_@7Pj<4E#G=WgtrUyZcScj zO!T^j;${|dG%cn44oU8)Fpn(OWlU8dGh#UmsbD$O3Me< z9C7&MA={38Ve+gsJA+#~_b6=jhim>m_SfJ4V$lW;gmj~YXSC885-*-GG^x84I zZ|(Bce}~P@S(a(j;$R5A(8RWZK%hkjG$pq(G^SN$sP(KP#&m3*J?X>A_dan`i@oKK zwVvE16u2wcV&MOlv>Q08Y|Uv)`^?+cerUIW$JBgx>(+n#?fFk?pDNvwe^2i_{?((y z-U?mG+!ie!xG=tINQ(u>mCV2U`1W;umxX`r@PF!3)B}GuwSWAGK%~w3H@m;F``W3K z7jNzO_Kg+YTQ-hA?u%fX!WKj3v^@WT%4=`B?5fUXom$NA9EuG(YQjke{{EMar5!uI zy}M$~D{u6!`Qp5DU#_}rPVXx!dluezbl}mGuleHM!ut1b>v+<88_qba_U;W=hF|Pv z`!tv-T|Iu{=^Nj8;+2`JE*V$n^y#MdV>-6FJ1{tL?IY;ZBM+>ay79Mp2k-uAawZT= zJv{2<;I7c|I}->0KX>Vrz8{D2wOSW+FYA5D-)nl0eWaCDRK+2nq^{6j5v_prRm1QBYJggIGXRz>#bV zNU$rQV2c6?(Q5$(4Hj%Dv0PD61g~DZ{GPRTIp;v~>i5sz`+lx@_G)|WwcFbJoHH!l zm|As9@9c{vpL)FI@pyXNnC(gSUz=T%f9T~CFB>yy{FN78I_{G3myNl2{EQ1HkGphy zCMSP(3%j%+zo@w`Www=;JoQcf=q}!rc;PH>*X&g4njTjdPn9E#R$n-y{Yar~b+Ym#JmKb8VF=FIk zV&;+4vMp&ov%`jgQJNYECmPY3W%!v@Hf%635NX7#%%Ib?)y!-gt}!qWamGlsCDZW? zqcy~aX#)ch=g81nUm1R;)0xJ=a09*3r>a)pos}s)t+N%4Qg}1pf~jEPSsDhSuJ%iQ zAewXrMH5|qC`%K@=6I#~r3Te&6o|RHM5!dlX_d(aRcRE6HR4aE`FUEUk3rKk3dCKV zp=x&xrP%4jTc4mh`feVy!Al^vxtwc}`@GfIJdlQ)vwOunip};5* zO1N4t*(Z#**)AWnPTU!JO?1UX8hUk7fb08R{Vko$hE&-HxNoS()eamrSLK8?^OBM7fK}%#)Vm#^o?yY zJ08vxrB8Z0W`a+(%nX~}Md>3|DjI!kKy4Dd2KM3P3IDjI&a^VkTyi z!Ydtkr;VZMnj1>`gv)Kss~z|W8wbK6*Q%v7J6vIFp5(w4Hio8aR4C0|wnXNLS+otc`SdDNhfHG+=I z7o{_BzOLs=gH~$<9arp?PWzj+&R~PC(I__@clCkN`H$vj4qKqKec?Fm@k_HZf85x~ zip$nMvmi&quWguri>Bs=6RxI9HBg-sBy6ZIS5y@j-mZ;h?zZ6@2Ev$YWGJJB(Uy8%{A0YOa1!wQV;7nU+h8g)#%7=IR=y_K*?Cd}zb$N^QXk zr?9y%%gXFsoNuLQ_wAB-3|s|2F)%lras@#Ofa+Yr!iMVdMH&0ovH{I<5(0*i?UrCcbL=0Q<{YS!mT7rk8>8YJB3i{6 z6{T|eBRNz>W`X**PcaZgxgUUgmZ6cfXcBxNTS%5y^huOx5s~nX2D=^2X8m<-E+^3yU&= zyYe!@(M3=7d*BD3H!9CKZ>&Q4#SqD}tNltKzFG@pE;bOduC6c^Tv1ULDxT67pyqN} z3G6ZgnIoRovYBB91|spsJgYVWncX(*{EW5$wZ`1J$p~cD+wgk>q2}r@<>cwlYP*>Q zHr!}nAmUnFBTDVaYNK|xfmS3@ja|On`&7f@SNSvL$ChM%uFm1V-Jg?x$H>1JJFcda z3~0{9J;Hi3Yo*?!>hH($FJxVlf@KG8l(JWLvAIqU_gbF%ykS?3}tWuH+pU#q|QFS1Tf)Rk_stS=f2%jF?ln{P#f;?v#Uu9@#% z#0g8{K-6^_x2ev-W>cNc*i>hqD{AKA%>h~2y$S@PA!q2d+##C^$PoD?Fs-KGYz4i_{E6!_KLw6)soo%wrmSVk@ImHz}03pYw)K6 zfoRk@9ke6k-&G2CX|PoRC^X_tCbnHEOw?eR0#I;`1m#lJdrBdt!6ga=qA}-^tzCLo z%e8o4Y4%mX7mdZAn)Al`EGw4CEdHiz=EL{1HO&4%!+>kai%L=VLEI2s^(&)i?9`Sr zx7e`Gz(Cv;d8Kt!gV7po!$k%L60YzotzQg3)8kWPV61_GgsTsf)+WQx{9(i3XWBp@ z;pzybb*JHHwitN(=SC^nNHDBq1Oczg%5>a$xRs1@(CeWhVIb*>gyJW^u=y@O6#wLJ z+W4Z3OLAN>VOmJ@GT(gD+TeoS2IsgU0-bTYZJl+tTxO4ra}M+)^sUtKepiyY`CDn5 zaIKAVT;V`H-tTOkv%a%+ZnJUDf$`Yp&^daKt#huzBYrCJ1`%N-%&orZq|=F*YpK-x z;V*m4e%RxC1IK>vZ*5=BD%n8HwRUO?*mt?K@kS!oSw6Qmi6J$B(;ZIflo;<{g)7mWL7NeD#mJXhX$K8_(OwWCnbD=26t+(MS;qEB@)$O zf(A=9sMo+>poEheOxB>P!0Sgt%6McyTjG7Lxfpr4w}TZA@gY()?@S$_3Vob~X^ui5 z?mFIU`S%?nqIIFeQn{l5WoOK_@*@rrvBOyi6xo&nan~tdE6;L>h*i!)gQEat=V;Z+ zgNkkYVz#re#!-N>bHr-pj$IteL!5=QqY#L@E(WynuRR^gJ$u;&$U6tCk_WZ1$Zd8g zia#9%$UAo|W5sn*pnbWk)UIA^brkR{$hmvjRvL@t#Gu2roDqjfUElU~7{fI82H*5!*hjG#YAG z!mX`5>QEFPI|_lg>yemgo+|;@R<4ZN)r-}R0<1I|YF9$8tqhJitX$(LU>j>R)UFI& zTRAN5uyV4a04t3~*OjzuD_^@68yOie*GQN}^)cQYJanP=1jKF!?%c=F@p!V4Q7mq< zCB%9M{@%vWY$TlG^uETnSYU98sOyW3fPKNq;@}9Dh@;AkfEew-i)@_Zx)71!DG|Te z0-{Gh+sIfO=L8Q9Pl*)@W>%~YR^ypef4`Lo(PPm-!u7CC62;5MW8(l<{Hj6E6C?%l z&ZS4mFHu~vS%W`~yz9Z5k{>@v*}qGJtqLIbaV{rHJ~mj%Pt;(U0+4qO4<(;i)PVNQ;~nX_Xu2l^tUix-aQfhsBnvuY~0tzfkedBcqRRyEg?Q|;5I{y z6&#(NIeJ2Bg6bR?Hr2U`*;MDaRa7zb6lWdIDW)Z!wI#$i4qPzOsp%XpTJuI*LacM( zJvI&`Tzi7n9CfO(EpB$;S{p;tIh(X*x6^FRvmE#~8zakYBx=4yJdDxZI}><3oBOtM zh_}!i=X*c!Xwfh8@{`!xpODXCo!9AmFKj7J&hs9g8FpJ<_1>Z0l+PQ_Oh37+cx4p) zVTfv74r`)o_(`R~XJPn}_B9G12Y0zF#r~tk4m(@PpR54nU0o^VpV4ApYmh%$Dnj1X zfl~ek#TCyRG1sD%ZoGUkm{;4yw`j2`U0*iOL9`KplPCOa!8^`O+z3)QrVLBHPkC3q54tF>Ufyp)pJ~+d!Q zITct$83vNB{URy(R~WunX~UfcLdzK@rFBADTNPK^@CgHPA?%Eg(&{kBXq{xk3In0# z42;s+W%%NV>x_Y6213gj5v5ga_+qyWJI~by0!dezue5G*@(=a}O3taL9lS*w6-V4^ z;4lMm&Ej0Hw1b8(cH6M?ZQ1~|oRdvEX!v5i4Zk-KTFzOfv`$~Bt%?OU+-P7RnR2e| zO6$l)M(b=FE;JBY2S>w~L=z^2j_Xu^{WBe zeX*%!jDdlaYlT-1y=wU4cN>=8t_?t|k&p?)7q8oJzk$$dBxDz5v{iAB4c{~{ka8{I z%EQDRMr)FR5N%{ArCh7H)Q4mvlda=&tOcrqAr73jaUkWoi&w&5*#e?dm2G6WjiGq3 zZ{j&yKz!@Kg)58^C^j=8Ifns(f1?t3NNy8Amv)AQ%d3&TSD}Bz}6gVV`w@d29DE%GTTwnTBoW)1!{@~-7w$&cTl%-*HJRs{kn*TSyk zV>L>Cq6W((Cv~a7Q^nzR-Zt7yi5TWA z<%XPt-Do`Tlo5NJrCisVZZyt#!CA+x&Qh-HRTa_@(_i#<6TiHm+9QiSUvw4&&Y`7s zWH6-o7Pq)_8Pnq34vr{SJn7%gnnabW7&tJnV#H=|w}3OdVf##V&I+4)kn1EXCT_y= zkG6ARxuXy`$afZLwb_;rIJZn)QPfyltwg=AH|8l(#bK{WYg`!SC)25eIXI^Kw!^3F?YbYR7&s`HMD@};UB~^O&%?TVy)n9nDG?3Z zz1co|bH%0Hpz9rNO%^A<=MWMV&JtAI{wup*JB38S`wj!SLD$w|YMJL05;e{eRGfQ> zQ91Ghhg~t+S%Qjt1SrQ|aSDmwU8UfM4s*U>!oHxCiN&k$dJA|}5dA+yXDt0tcLo&? z9u-V=`;EcOs>gifR29=)#e;_~>wM@E5;;4R2`q~xxvo8kMiEiPtR2oJX0@}Fn>=t7 zvqp!Hof<=&rCisO0bNIK(j8`1^KPf6DEvfO6>~moY`zgyEcisngo|~q;=$2np`&*? zbq-z@Sg6%!P9f3HRXlk5K}W5c_{^`H_{fNJG3Rq_jEV=Zxu80=SGvT-PFL~Z#g?nM z=-eZTM=DZW`0)@=fFS=kiTs z<)_}y)n`(oem62A`N@yS`qsw19eApZ1EG-XvA5Fvz?Kl%-x(_;?OdOg^ekIKthTWq z(n+kS{||T7`95*n*WMz&rN%z82M>hk-nN_jJ$Sz01FNJQ4v@qf0hp*GHmI@b?nYn{y(du^QKdN{6R zNB?Z>=D6MrRs2mhU;Jg`9M`8uQr3#mmUmZ{`1-%zV!5+*6Wf15hx4M}O|<^iVE0Q( zp^%g~;M+|_6{Gh%^jtGeOKh?w#9ubXn-q>n>sppvY-yL4RM~L5fp|&9U_2{s#Dth- zONhs9?0$b#S11m*j6E^jfp2u+4K~IjpvLMv%4b_S*T(MmNOhgKYnPpox8HO|rQbFX zci_o3#>HzRRl8qe(pBL0u~AvqX+Za^dw()i=S;BeHrB_u32Ll1*P{?)!F8mvsg1TR z<;o4TXRgO1wuMI9=6d{X%Qo6J*CP`pTap`gozWa*=c?o&H!`frNF(hdaw82avBE+6 z5HlDJhk6uG8#iM@aqr?Q#!tLx!i>v`ues)&9>r7eLj<6mIDW?Q^h*R|04|(}zw`?Q zV&AKHCKC>3`X8H@H}ceh!;5kEdTb7!!h)L}7y>21N~u85B1tVNlYbltG~&!B(=CQ1Lm}^bnu5 zvGxt28;<7_m0KIh}PCI_>NGF zXlosZ1%7{XtGn2dWA)6BIf4;Ox%J{=dJC(M6~Wkp8Xn|Twy=&CZv~(hcla5P9H{1P zXZ67a;_$ZC06e>1n`8A5ujN`j3gV9F#1jW-C8d)Qd~(dSrMR}bwx})Ph*$zMz}dKj z7~YzkjL5bn#PmZ^-E(=UF5!qt;((YWR7~*pGRGt#WAb=As?HIU!~ro$s+h#2mq{6u z2irp}>4-`4fS4qOipiWdh)Gh$WEngyNIGJYJRl}X9g~ErO~xeC!RnEpa>OKcKul69 zCQzsTPKj-;(ckksTHOm$j+mqlh)GJvM2(Xa#pG~t$zfI(AHIXH&Kzca-7+8kUNUYL z<|L0rjL%CZPBA5sJH{#yb2eFpV$CyFXR#t|6;{|9y@J7HG7*fWqFDZ-iEt>ApaBgs zzCgyqgIF*Y#rIjUWW?C*NnBEj#)H8WzC{h;W3L`ejpOMbUi`sJbP0SC6pu=3IEBvv z;<0EviO=tqQ+V1GPr%be zJQ#{5LN1?3C5ftnp%{LYAeP|D!?9>M9t*~C>lcbe6Umr#DU}N1g`ikG5=$lHk#G`* zW{7rUtWILvL>;MZ`>i5Zq+-z!>Q041$vE1sTnfdKuo{X)V==@loSq+mFfKn1aII7}X0IZYfo2L1iQMcSw76$ki~h(ytK zkw_?odLogij1zw8AQBA5;>lzPkB#C%vL*)wbrb2J_Ei&Fh&od6C>l%!W1%S8uiOfU zBk@!?8Hq*`c)u!1VRyKd3MG?qbT61O1c+R~fhZisCX3JH;^3y@(ys)?Fa)twBpeB; zSYf*rhmEm1I0k!F_<(RB#(1`cP)8!cXfhm=eueNtV<>@VHyCZynQ@n2&`Bnuada^p z!3suh#W0xB7%1Xh7Sc;j3PET=nA>h!VE)DbWmK__4VuUAfkB`8H z@idw2%n(mc#897Se0mi=O?52_nEtVN3SZb@ppzrmQm`zze4r%)S2V#87K&6P8Hq)C za)oKgrO?eGObC2+F1w7Pjqt>R$wUI*tVR;&h!-XyBrT$95fCRt4~R<`3qTSo7^!$O zE3B7*NSwkON63;9kb~~dA|*@*%%WH#lE7+2J%bU2*Say`Q&VZB*Qt<@h667kd#;Lx-=)p`+qRvzV!`?lvp%cfm&mdM&ysR1uvq$*u z5HF9RC2F81oJby;|dyZE@fxW`@Wb&S@P^_rrr z*InG>F81o<)-^?`>n`r;V|5iP6V`E}S6^$2C>v?D6_59|dWl}cfc6k#TCXxqn^Fez z*?p}dvAqlflF_04G#X`4B_j&wyZuOmQ2TO?PBUnULGK#WzCYxKlE!I-Sa*p*?;6zp zSR+SB${F;oLG6z-a)hLup}l(?VsLvIV$gm7V(>;KTE1iewR{TDyM&n5exRnEHV{^R z8h{vV7>JfL`oo|;$7|YbgEkoShe3T#AUO)>)hECdqYVcANhn64D;uP_6$aHApL0Knix#J13+)akI=|rnUTshD>R9(th;;|D&rcjQ;Z_< zZ-e~9UBUx~YvCIeqe#4JQ1cNk;Xxy`@Xc<R{Th2K7Ew)2=pXgF$~9RCbz{t1zg}Anzz} zgCkMfv4psexdy#tP}b>M?s!5hcauSz3~F(PmOGIU%PlapEe5qY6WoT=EWdbmBxcJD zRV)(E81z4b5@$)_A~DOL=MDPJpkvO~akZ>&H{+0VT}DrE7ayl$)o8RgbSB#Sy($)o;26nZ^X&&SF)>0Hcu>jKRBC(eiP4HsYl?>!#_{nZOF(3#e3yrvBvkEV_#D{CmLW%PqV z(F-;0a)X{T=r@DtvAElyj|}QG-6edEDi(`--He^nF;M1BMnDQL#X4AjDZ+67r5GM{Q!r#c zzZ79$TFGUaHvTeL4o*RkwiwiAhNcZQXrV#%2IbDwa;F%SG3XtG+Fvf^vZ?YsF-jGS zgfQrRgATjGC481D7KwWd+F?-sESK=Ps#qkJyBQ6$5SRIvAudH%A};-AT6xv?Uukvq zioG+?^qi|gOWpJ?5hhMpF!0W6%!q4~rh=qv3{#$|0A;h%hhK3tAY$vzkKZ6!ggyv%$%v(f832ip0_@aYEKsgM%>z%UM9 zB83&>>?Ig4{zaHa_bkC)`{pvZQBZ01s=OOu41gq6Y0{^akgr>U8_B`Kn!-}A32Q1q zyXuqgv@Z2Z`M2(}_DQt;Zsz8RGw#87Wcwf9V?89Y1o~pxQcdf;Ow~CSfW+E~`<7Wf zxq{D@!R7QaM7`_1=m|#S4SL9+T?QSsT+2-~=rKam?m~ZlvmEvqb+6KBGNHOka911J z9)n6(Xt`;GSZ=MM{a{e!J}ozc5X(JdX#X>`#QkXZ&J_sp^Y^2*Y9rciwn`qEu2JJSe$HP`3udH+k7@-ei(;SscY-D7C$azeioVp^Y- zns&`f)G(YX{KBBFt2FHbgB~#G3xm3@HgX0%V9*x^b$wjQWy{JhP{ktgfI(jv)b$C6 za9eTy6L1aw6^i=}`rM!{Yb2K~Ls%6d>}Gtv26L)vCF0U$Em~gwB~H2L6G{`h-_Slc zv@TB?IYLs-&^|Y`E>9UbLQ>AqJ~y;3PaCj95R`f`>d85`K*@97}~pr*1nqL$nq#ctSb!deM39!IW2bP)MoWdC*&pd+pVZLd?V7M zzzekTZA5CYh^|$Z8rn`nE2z_Q=au_9SAK`!RvFUgby~If1*^2O1`)mB1q>s$_JAgR zX-M5(R8kXO)KZUV(l>^5^uLwV9F4;YdA7!o{`-;^ z3%{(zX1=UxPaE3Lh8BNC)jI1HUF&n2^qV2|epN}$epO3t(4@Z%sce&yN^jCqbs&l0 zX0*V!S-WxUW=*@n&|WgMX0K_v<6qNq^9^m2p|yHl%boZ-pfX45(5po!JwB7%6i|(8FYg|FB_Egfsr%l28FW4HCxb^ zFB?YIhep_-8x+#QhLQD=5mrcv+~6+0>@H^Qz~Sq<=dsTX*n!ydJ@)m4_#XQuL-T*E zX#)sJIYWEN(EOhmIYLtI6U2G^$N0~8pJ0GINT}ydAf_!L#I)^()}aBk5{mBW4fxM^ zLU$5k+6RVq_@|n7HX)W$sm^f?gf=q%17#I*Yj z?F&OI`2ySrKe3J%7ZO?%#&-Mg7s#ZB??fcO`T}!i_~)4R-T#A;o%1<*b<%$j4bbw$ zs{g=)y3cTD#f-c!WwA(%G$>=x+Xm(Ba;c3}#Uhb0=xu}YzA{D?Qnh6a<86cTzBa-N zX<@^7$DsD#XyH)`DPdt4@4Fd??S{s(l~yb9-hZq<;w&oqS0TiA??&hb5c-G^(>i^t z(K!a)YtT-E3h82vHO3iqpFy7+)OC-pV>}_&c*xLp?cr^qtvKp?^cXhDc4E@^IN;P^ z?|qC&Rr^5tPLq1<)ugF=mDJ;gv`>?Q`?S<$`;^p^hV+vrMSqYr=84OHz$uGreAbYD z(WK;mwbWJrRZ{B==?_in^P`r!_D3aEt4WnVDN6ZI7@mv%XBAXG_LG&!qReA}`0F>t zE&ClNf`6d3nyre0I{HZ9%|EXl=Y04%|Y5A9u zIq@$gbBm^Ik(72KXTPdz=zf-IC#JsyXX;gHNuH0pX2~f&@}%98C93?6EQ=0aNf4vF zOvw{>dVMms?`z88mZF?xDVe33vO`k}d`jkApOUH4lm<}5aKEpe=;BwEo#)r22Q}#n zLpm}`NnMzwr5@F!uMDaCAxi4vLm)M_In1xtq;CzWw3(8c(o9P&-h%k-HN{ACC2?tU zE%A&d{Rk5GU%Z8C-Q_J5M?c2R3hd&tms8CthCMy`#KGqhcX)-Bt}Wg9s|+hu6oa*SM#ku$VihSn`$ z2}wCa`_j<5 z4Zsp`PDg0Da|p5Ay@s~a&f+S0hJA${E^bLu*lDAqHXB-tBaIv(DQ9S#4XwpdMvjn_GqlY|A>^EU1^)eb#45LpEm&Ua{v_`Fy(N28I?`%>IS>Ds3 z(N4_m2^u%>#h$(uqOhmWFTOjawrxHf2l-@F+ddy#dW3N zYK^wy-|nJ6=;97^7jJYIUv(Fohg`aYRk2Xq>}I^~F18N4)J|5#LUEg$@us^Nh+t<+ zM||zYsS#ff8WC;9?S{79(Aq_{+!;|VS4p&Kr3lyuQ8}90ijFZ&J3FRncN^NrhSn*r z<;KLd+`WeOsi74nAh#$1|1L=Adhau|FAc40Qp-(9YPp9D?HfZoDy8Knr{rM3ZFou! zq&BiK->YJg2=#U`E>lIkb>U|GY#6CyTpCxaVv(qEGxi%s|2{5_xvE$sUUoB@^_6l( zVz5HW-35lR)y>E$(;6cbQW_bQ;yv!-$L?b1a+mHnckzCA z@js@Bm+T6}k^QwU7bm)lEBj-I#Zj-V*xlb36cuF{aHYp;+SFq)?)mt~j1P|`Q*;zP z{5Z)d6r&Bg*PsT4vZcMQ1GL%&1GL&h27P7F(F0wzO&O@w9#;%JbT%k_yi54<TG4Ab(9EGQGj=FYH6f<` zIuvFYT{BE`Hxgo6Tik(H4nbp%9qub6;0=p?C;R$~Pkpj1`qSH5PYlM=jJL@Yq9@HH z%wJ>-L0Uw7`ZbvoU>D732b?<+-Kywo2l~pb5PnILQmDOyQA>nt!5{B1B_>9^Esf&W z{O8~bmF0L+b4~bHE=HJ|@Gsryn#8_lh&|b)SIU%s{7Mu;+p}yHp?GO;cFzk zi7Zy!=F6A7cn}|wG{M8~?ls9vrSK)m!Fv6weSx-#P!eBoG{wZ5$4xWw@^8~jeB#hF zGew^zHBo0W6m8le{Hk2j4khtgebZ*~?L*T{yj9;M6Q3qD?GS!yscDDs0(jF7;YI1D z9ZDq=O*)i^@4xYRK@;%xXxfYZ{LDBySUwIcZW=A}|67yq~&eir9UUoTpo5mUAVYLvr;b!#;2V!)ukO08JT zI0!5FIP5_skAG%Eys#Dph~qt-Vstupm;FN}E0V&uFRL!K zC#FUP7Z6q+ZdC9lL|r!otYHjX#ZR3s{$8r&;fqC%Dr?|3sL&B?E7ytz@l#2%%3NOz zF%FfW4>kA&3o^rY{#TK6ss@0_M}4>rfjr@GUAWOtOG6#of7oJYw|b zBxxxR9m{=5@;-bqC6_BIi8Z4kL(&!oDlbV~L5kJ`ZcZ-!q%HgAOJYG?bUCV`Cj0O? zk#rCK=i*;*qSdWHvECTm` z1SSS;QnG~o!gxq477tO@LLOy2^kb7$!-WHbqL{NEb*qwGvfG8RkGeLhpxzOuP4VT? z%Fa%40Yim{pDd(gT~wfd0gDDjzUVgv&SMhs3}Cr^T5Ecd6 zT`Q+SCMa^}`3eYfmZ-Wfmwo^R-9artCD_NYLs0Zc&=)}{`)`-^gB8UVPxF@I1wAZZ zwEnOpzWfv`Ci!~$LfEE)pI~SOCi(&p!sp9+++gbuiG?$<*>0YOag!9&4yD0-8Ad<8 zjgzJqO^1Ie)n&xOXOwkq{Dq=o1|krQ$jJakJ2aX@2#gkmWi(`gGY4$Kh%(O|qGEFL zm}3cSG`23*Io^VpgM0)d8@kb$t;_2vHJnAT;MvMpqsGm^0E~As+a;H~%qp+qy< z`ofqdkSu6NiLh%h;NJiiE4D-KiJ5SomcxB0G+aSS$TW(oB@6oqy5?5|Z0D8e8hq19 z-HCi)CYA6(IQK@w<-T_8;r)h1yE5fsV6{ibqd$W_d~PSUEmVeiW8+ppB#*XxOf;N; zX2OFgO8b^;TT#lxC_mv!qi7QQDkbsRH~Y$-$Iv?%57_8tQIEu=uMH@`1*{5+fxvG2 z2?eQxMP>x8@uY(uT{P1d^2K1*_B0N&?CH)cU>5RgA5otA@$n+|iz|5$K7ej34EIWwK9aC(2dBr^t+a# z$4g8p<^@LlbXF_di8hwJ{&r2KX zYKMQYSA6=7k;Aay`9yMNa)Ee93V-?8o-mUZUJJ4 zrtrEaS?CrXJSgR1^TJsIXB}YrQ4?O(xIj~xV!=|-7(;jgBAkMIJb{^$64Td7S9AT5 zAdZSW|G~nc1$oCv@b=yY7vu`V=5n(l_-zVa7xSr&q==BNxD}%hIz=n6osa>Lv1({n zQKa7i;&74@UfZY3L6)Ow%`2+37K*79Wy34ZmqaslI?hmh34uFsBg zTk)#}a+p(mXfpG$rPC6)jh|hR#?t~VqE%ueyclvPv2bwZD+*%y@IxDNP@Z%rVjPpH zF8o-6!Gh)I(;LwAbR}5$NekK0P{Xi407$L1NpE^Iv6-S zpSa!xPQ^tumSqX+C656rA(V^n!YYd~%|~*0){awr>J%2o@0QT2Dc!{6Q#+jGVchY= zqQ?61lLu;0OC}|j6xua+kxkVd%t~Q+v9BB?{1k@6*%S`oJiR0j>l3dhv+u_BK%JjX z+4rEXND2oh?%!3*DAh`(#5e&b8X%Y~l#*}`B9ZYXCJEd_0x{v;prjF7?i|*{ zxr+xnxkP*Y-sPy5E|b``z;d{TrIV8|$YYB{KXVUq8^YMBIVh5cqn>dPdnguQ&Q8f) z4D>~J!vR){U~Sf3VtP^E(J){ikev2^9EBar;Wj3+F;5}t|DrKLi#_#X`3ktG?*&#a zgA&H}r{iIP8jjhArHWRT^7}ABaVW2Y1;!CkwOwJFZQNjDpAsf@4`K7frOhOuFHIr0$Pt`v&Z zG;HvzCw9M6+Nk>rr+vxa+)FV5?r^fa52GWUo~{ghtWC zr8}mn528cy(-^X^u}`-3NAbHXbUA=y;DfM_pN)|n0KIk;FT8O6FxL3RpWuNA*}~84 ztGR^|c0Ei=jkx5JVSMloTN& z$o0qQ+|IrtU7#Xn8xK9=;*t!PH=n|X3m#)8@>-rPrK@O;V_#x#OIM;xFv@tKNEYTc zH!`>q&LYX9!_3q}K^NLB~AJPYHOM@bO&X#CRkGmGKJfaGezVhA7ymkOBRxj3;a zG0HV*=D`4E$yni*nUXwhAon6?!1MoUb^qdmK(+1L8p^ZD0@0T}4?k`hw^C zm?uyvfX%c>z~pu+eI6PW&E(E>V_C6{nA%nFI1c5jhxgG1D{98xMl>&)JzdG ztwswmah}GlI3}KKG67vJau2Mn%6)y+%(c?CM^e%}AL&&naG5KN3Vd6OLRCH8XzP2y zY1J4PF*+mS99oTtAqiRB22pCm1(~2%2K<;*bX$NcHOYbwH=FfwF}M?Sh0}DRAoWVR zb|501KzKTG0m%!NuYAeD`KN!bzn2(YgXK!HId@ZREG!%!Hk}k}p7Vt;5&3At!ZdT} z%A58Sw?idJJio+}%M(N#*i;{|!U@j6_$ABpA~hhOlAqIxg*F z?%`~VXD6tKb_z1jj{x}e12gzk)Qf9w<>i|TRVZlvtEVd!83}bJN2{=9^Ae!z#iEJy z8TDc(XPcyeAwqXHJ28T>e)IZ96;OdU*NT_r>6dmxSpg2oX>3^B3o)F+czu*jzyL+h zqJ~%q|7ZdBcgl__m(6(kQHE5BmYMQNMy~(LWvIv z=oXw(X^zQiku&OHg=~gbG96~*HarZd2QcpWu0kncLH&_xzzlE}O1FM|j#gAmOd42mb26fV6~}Ll@xTIIowTJm z(qRk*T|pTAss|S`H0%Y1>UwEBNk&~@!J?i3$b|cvn4vUQskzvXUwFe86#HqZOK;_IfI)};1E!n?3no%io}4&_F_Djay1<*S zD$vmo#;|PQ*-D81EYX&*FmRCj){{f(nF7~`hET3KY%4B2y#G^PP&VL@SC=PTJq9iN zgv(wm7@b8~J=Q#VkzXLlJmwJZ?_3q~2wqmELQ2$)f&6mv0LwBjyY(cGaY-woWQ678 zDq`S*1rN&KMr<*RL+?YR;%(H0fb*CpdFbvfz-~bdQAZayit60}ab=xXFlimG(c?SC zfSbBnWU=%_o){M9fZpg(n`%3Akc;Bp2)BeJMg>YZBnQ)lEK3dwv?_2lDf!$}GSriE z#o$FvGSH?ojV)|xWLR==RsJ?cIc6H$ltext=&E_fXmRz(TsnnGdnTHA?si`Q+t}h7 z;JwZK0Y82)4=g&E)^5j;!@rPu3s`{pq0A8Jb6}5T*RY33QAWoDEe&vF>4IRUY6OKRwo` zrup!@kFwQ!x6@!iFVEL3I{Wart@?-tB615l#_n8;nViJ^n?0|SSe!T}#3R9JXChh+ zYq5&qU;3>4gdU+H^JN94uHFezCH2mND)Ga1oOYp4#&|$0mU`(xm3SDFZFDKUltERuHwC=D;-Bf1D@5HF z=v%dGW1i|=n>I8a-_i!wIbK;IooDuJZY04!P_o`~kmNw9-yloHv z62fZJ<~22m`+jZ{apayY=~xh9Qh84MKW*ChsZq0Ox2G`>!l95e0BWFEPA6ccu6Ao~ zIJOzytR+j|2}+jQt?{dra<`UL-mG!3rJXvs8&OjGv}_HsShmNq@?l`U+&pl#$Qw25 z$Zc8#cH`afQ@%!*N_pOh73Jpr?mRs43S%qj32 zz$&Lm(XAuh)64pF`YT=Gmk6{gGXGWS5`N&9Qi>oSJt+dRR*ZiPc~I3Js?G2blbfFs z$bj*h7-e;IrN}8o;T{|lR0fPjAp^!U70M@wLGK>f$ts;SFi?ZI%2Gog|45-6q#So7 zT{M>}|I1U2$Es`@PHsH#rAs&q(7{@1s-6z|wytmwXdW zW@y{t99UKmr?=U31u_ZN6<|UjV-36JlqaqWbutL-CHOsuEgjpgnx`r4pj;^h82#K+EtwfD-Leq42SO(q$wJ? zFI-`>RO%vYK|V|;B0t`0m4nQ}p^u-J$#CmTn52otcUH22Fsswn01{v9uoz^$2&st% z9cJ)@4`yJsq~S{pq`i1M<8$d2i*ZgYnPh|$6wY9CP^611mBNxRW{S>Xb13iYTrI~b zndKMiI1qs>ln`qqvOSrB_Y@=pAO2zC;bm7jgA|5t0njw0)%Z6Q zF=PmwZBN6~^q(}N@RG@PX$AK-oVg%K%;Aig?SsSbOlgj~Iabwh=B=F4&kvaumC1-^ z@lGP`Ve8}DBF%zF^wg8Ia7lupLT|{h7szaMZ0I=JCV$>FtdpE$>0|b?jnvB+zPV!8I1kf2Y$F(gS*-kf>BB znh1F|MFlz$YEHwWwBl1c>ER2%iNx*1O29K%Dyg(aRf4xn&O?hNOTAh{EHs`@9Aut& z*pP7*PcP2!8mpA~O$6K$RnWl+kMj6Bl}gaY;AL&Y9Gj0u)Or1U*5GldB<1k|PeZ}O zD#2#}#iBDWCGonb^6+6kKR?ytRG4_;scb(ko4DqXylvG=A^3%DJzqeH-i=U6A<5$C ziKlv$e=1Enp;C*LD0-VRh2cIwy=a9SXSxQa60ThXv|^pJ-G><-(vP_t^3XUG*ap&i zymb{$B*nNke!OUfDaChWL>KSm;u1-UtG6MEOuHx#c;X=Y<2;2J&{o%NQis<;y!*>6 zda`_&pXMj7{P;Klc@R03g*@Fap&h+IM0!kzB_^tLnB7U@85%wOrrTF#6cdU9&!W72 zIylJu(OWpS@CzlJvnwr}3hB^BTGf-<`gi&1#1#rNhK6Q0A+ZXy|cnSs@=nLo#ee@;RkyftfjGk-4&$s?a>h=>#$ zYr>(R;+l<*<5CnW9-ZD*%{cgcgbL)4)v1T!;dV>K1&+`|CF1z;Jq#aNds2P;07xmQ z6S%C0Uz;=afORNlVp8zyZAxBU4oP|bC;(HD9>35ncVQ>YPsE(wnpC8~BOus*MEk0tPqS^y=k@FdBcleBfxXPXK&b(ak zBL*D3NfC!)UaY}tCr+V9iHdvIHS zL{9Q96b#k=vBhK!3%{I)U}2HwV?1#vJ>u7(_jW-`^$iEPJv1frJ*)u*! z5<_gGH)0s^Yv+uxq~dnzNVtlHwwoX43gm@HQEgat_=1UT;&98ug>C9f9N0ux^41nS z8d$whUUd|?r}~H({N5wo(oQ`J@qv5%sX~4UA{;}sa*Hv!@C1fl7$RNdX`C#u9R!W% zKNqmDb9Zn7$Czs407*7bdkuY8&AX(C4>*nmmOdkL~MEQzeCvMH&FFtTf;LU#o08ve-* zIns$L)?N=)TnQlG#G4rO5lnl$bMAgy865TE)agC^ZL{zX_u#ZLrH4PiWg?7!&m8~s z*ZTviD|`5V=uqMDc$x>iUd!XNyoY4@n`Ir+vPJV&Em~%`X`Rz1+w1eR@OeC5{KxBS zVR`{6%6ucwvI8|>^2 z_&uJFZ-Sd!T6%)rJ?Z`Pto`t5KPn0GP1&J(D;le~DMRGIf7dK3Ysfzm zGvn{^ygj+KBR*`k@zh(F*EE4ETnsW=_u8D=MK@(}1%HQwZ}%-*wYuZR_mel*{1g1v z8@V+NC!SH$aqAtb3*`Ju5AD&tuLq1xuWJUm;z>{W?3|j0lh3HB%e~Ik1qU0F^0$3{ zPT#RZ&Zv1L&n@4SouL&?RNRyys^WtZZ_N!!~x^esj$~!R7S>YYO|WsTn?H3w42vKR`O(dqUrI zpEWhJCNqQlp#MwvoLgB_*l$fu$FEkqy5ImqQX29l*H`u}EL&6a$Tx2J#_d!zU2#)} zsHRi1=9VoQ-<%`#x48e_nk#De*B*7^+#1h;xS}xzDk#qzSDXIqRc`U$;f9s@W&6%= zy)kh5_?mx$yOo?)6FB|1nrYX4y1~RBb*A6yeO2GFqkgNImHw3aM*m-WWzYL+f@gw$ z0Wa2nFW_?teW^uE4@XZ%)^JlZYah#juK$%>mYM3voe*2uE-4{O+=zr(>Jm)B(7 z|5k0_h+Z{rT+uj#Dp=m9N3G}K30%S7;Z4uJ-S^#DU)K)$^{|?Mf{$*|vu07UxYko~ z`wOm6x9xUP-$7tZSmdUcJUX{#TB^9V?!5V~E-;1;u#>-XZr@+1g7I$o1MTSkPd8O@ zQ-&x)Z#fJw3t|&(9k=wlk4_5W@tQnCa z=l>q}ub%xwaD!*>C(qHjV0MMG&?xqJcI7{8D)?JmzC8KyGky$coD2Q|uBg4dvd{3- zE~~A(V2W#0d+u1XVHW7+W8C!XfBd4)FQ-Dj^98P1)0CZ4cYU#;5O%7H-15p!#X*Le zs<o>VnA^_4Pcrjc38%;5q3E^Gy5S`+DB`*ZTh(A0mZrdSIX*|I5Pv4#EGL;eXBX zzZUpkOZ=}D{?{7+Yg7He!0cq(;nd&<<~8s8z`S{Vf8MeMf18)R@z~L2KW`aQR`~st xGSJJ`-E|jekCkCz??>|g*Z+yxceO5Pd$7d+ujs`G`|qZt`&I8aJ-e>i{|87ZKZO7Q delta 42883 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 diff --git a/docs/base/@vl2/shapes.vl2/shapes/bioderm_medium.glb b/docs/base/@vl2/shapes.vl2/shapes/bioderm_medium.glb index 36bfb86fd21df78f6ba92a6c6bb77d8ccc4ae1bf..9ee6bbd2726da66244331ce075dc64a3e4dc3c43 100644 GIT binary patch delta 50802 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 WEBF)p?GBJev7%q~B^$Hrn*Beso*>5n delta 43032 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 delta 1637 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 Jev`(`{2w|`0s8;| delta 621 zcmZ3|&$!2yFFhy3jfsJQVUHXGgM!3Hz5*^LLxaf;T*~~0hP67?N||{Dr6o#MFfk)6 zV#XL^jE0+wcup}-z9jI9wKf(gJ^6~Tm9)8zlAnK&ucMEWm4%K{h--wizkiTRyn&LH z<>UqY){I7z@9+n38|od8#*1u`v+;G&imlM9V?nG6jlI~dDOt~C+V zHZ(Rdsf`7iSellWT2!oL6{CNelMJOGFL3n0nFzz7s%_-{X1&`j8!ftitko0-u-nvsK%gPDOV z_CF)TKW3mb2m=*zF)}hTFas4Z3NSM?OzT+!(aaAt;R}-$2)FI4x96F>-^8gN$zp~E zX-=S$+!P?OV=rB46= diff --git a/docs/base/@vl2/shapes.vl2/shapes/deploy_ammo.glb b/docs/base/@vl2/shapes.vl2/shapes/deploy_ammo.glb index ea86d8adac8c715fd8257eeda4ef6f135174cb14..a875d430b95c93ab2d308d0d44483b7e2f3b8678 100644 GIT binary patch literal 309972 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 diff --git a/docs/base/@vl2/shapes.vl2/shapes/deploy_inventory.glb b/docs/base/@vl2/shapes.vl2/shapes/deploy_inventory.glb index d651c73d897727e5f3071e3d41f7f321f03c23a5..bb5439b78b825de4621738fa756ce19451c3a182 100644 GIT binary patch delta 681 zcmZpe&GKd^3txIph#M0F1H&5`Mh1rM8~M7K#mh2_dwAxs`y XMNSA4n36WT+a_i)Dr{b{{6;DO3PbC! delta 112 zcmaE}lcixc3txIph#M0F149EZBg2&C8~M7KCnvMZZ4O{%W1C#;FTa_OH<}eJq976g wVW>+pb8bGY+5_UrZ)Vrcf-p2q;vfur>tCE;tsmWXvTWYs6Q8wNWc!U&08yGGYXATM diff --git a/docs/base/@vl2/shapes.vl2/shapes/deploy_sensor_motion.glb b/docs/base/@vl2/shapes.vl2/shapes/deploy_sensor_motion.glb index 8e4f25b73f0a820852376b0bf547fef71577ed93..7cabe7135e6653b5a4ae7363c0da58bb671e648b 100644 GIT binary patch delta 210 zcmX>yov~*TBVT$>h#M0F0|QSW14D(yM!p&r(X!0q`0Uimw4%h^)Z+NW+@#FZypqkI z7^9dtV7$re1r)ep93?Bm$@{q!Hm_i@WaM>(C|A-^%1q0dyi7nIM8_vrCg)@(0~LaW q<4f}MbK;Xy(=+pwtc>*xH|w$O=fYuaC?6qfxdknhHoF)%NB{s4(nm!A delta 135 zcmeBK#CT*nBVT$>h#M0F1H%z-1_lG;jeIpMlRt|~Os?Z)+w8+`$>{5nT9A`psidQn znU)iuQd*Q)l9`{UWM!adY5)X=28PB)<`$M_hDHz-$(6}DnaMzT2)86ZKPNsZH9Zrk a#YoR=^JR|xTp;r|`-#~pZSJ;clmGzBbt+u| diff --git a/docs/base/@vl2/shapes.vl2/shapes/disc.glb b/docs/base/@vl2/shapes.vl2/shapes/disc.glb index 6fc8e6939daf0f6151b1aa9bf30b793ff65f512a..3df92691948c7ff01d6deec79f6eff48d1bc3b53 100644 GIT binary patch literal 23080 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 %5s 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 Ljd8P9#6Ly=e{+Ku diff --git a/docs/base/@vl2/shapes.vl2/shapes/disc_explosion.glb b/docs/base/@vl2/shapes.vl2/shapes/disc_explosion.glb index 8b73d3323d65cb41d45f493a9dc35b1640ae9e12..76fdf7dac0d18d1803b9e4f01b563a6812f511aa 100644 GIT binary patch literal 138908 zcmeEv37izwwRg<`$}XY;@8zjDMkC6My)Vd2SK|^iE(qd_Uo?beSQLS<7^9MuD8>a9 z&5K)%l3bjpFhtaYfWTOf(ubc^Z9*NmRc7|J-}KtGkD;hRW}~yzlGQ zrcRwc=U?aEI(6&bbI-jqWA+&*G+LH*`$3J?8-K8@lO~*Y>cvfy7c6LB*fi?mrWx&X z+UHMRICp;2sHQK?oIiKY+y%pDKxO!t+3jKX$dtg9@*4>;llPgWG$GupnY1?sIN4AY3%q()8leEjkOP!pNpkp^;5OEx=VS=7r}^26=JQw1o>MEdW^ioT=@T=1j&_ zVcu8HZkl}llv(X_7M|U74h%05n)=PDvu91E)bz=-7qnOWK80oX{ETuE7n})V3Qp%v z<7K`Q4xO_Yr81{pvo4qgflv#qo<3icL7hK&;R%Hk2uwP!{hRVDu_znf!!LDr^9!?S z!L&uV{c=k~E$I+H=~OxvO@>3!sFE^C znl*iP_hsY{)oY6qp4#H+!nt#2Pnyy`V-}tnaRxf#wDyIQXW=TdE`m>mL*T>1__T3$9E!sO@C?maFx#L;TO!G1ItILO zI3129l8{Q$uR@_nDiuwK<6&Ga7KU$(jI~5V=}0;Zc08Rk!n6310SFew^_$tX#)@T2i) zJQ8%Oj3qm*=ic%>SNrWp)hpU8Pa5xl8#iQYPG=egXY>u@=V(~~i4y`!KodAni zFe8QHMq`kUC8TV{76;zG`;T_<@x(=7KL1alzGKlisyLd)-AbpD@l-sNNG8dOr&F39$_B-142a=VA|1leDH_7~ zhW~MJ8TPVK8>Iu^!q5(fKOeQ$O2_-Np!*CkUE(WKGuxDtPN+jaxL?jZf81{xo zMn}d+CW_Cm$6WR3mR=eIsc0mLQD!t0M(dDFCiw`35|KnohEf<4MKETUQgBeZ>nkUV z*Icl0^8AHp^hz&9T#N@X%u8Y1jDZ{ma~x7*{DtQiLv0K%lM!5v1H6vY6&+@y5Tq~p$*ke!d{+M@aG zO$^9Qo-+$)3`thwUpnb;PJcG+4ZGjm1;@9OU0|{?D|rPN;T9^^$LV7 z<)td>?D|rut#UQgPxVXTX6{;N*Ov-+;}@u)>emW);}}Jy(u)<{)&xos*;Y=eJapEa zd5aL8M@Ir9-Z=}~=g*sKVsuR>pLpu=+3|R`=Pp{PrPB1!-P4I7;<(#7;XTla?14^n z4|HOCpcCH%ox~pKB=gnzL9c+xjMzofAmAB8Ig{eAunNOR$2orP@Fg=1fx`p!>wacuco(#lPY= zuO%)WlkV#9{8^Z#y`bHQVvY&_0k=5sv3r$^>4`n9+zIWor=K``_M-D=%|S12&J0xj zZqzq=xnXGhKV9e3W-XZ7jYI!8)Oo>@f2jJF=V8H2nWXp5%Bv3Hsd!znF=>+7_(}8@ zMMVl!v_QoQRJ=eX3RJQ{F+W0~qzhD-GoAV(#jAvimkAfI6E0pTT)a}ac&TvlTH)fw z!o{maidTyiuNEm@EmFK%q zT2<0V*j_H0KD~YZnX}rzA*g$DL9~D9EKi#?l~!U5VO}l*c)pAR3qvSXtYSg%gDHq~ z9*e)=?Pz|H?q2a1^x@4f(m^Z!!hweQDJ-39&u{3!6n>KqvFA6B8R0TJkOENDE3*Uv zjN)%)wnRL(M9OT5cx;K3*%I;C5-GDK;;|)CW=q6lOQg(}sK=IQnJt(uE|ei!W=qs# zOSH@uOl%kR%532<%hYwW%$AtPmROlBnDZ{^#ma2Kbbax+GFxIETViFl#5}gd%4~^y zY(a+@1Gu73#67me%WOe7r(jFG%$B&vmUx*hagQzWwCakPUO!TwRDfr9|CQlJu}e{J zkIkDWXnV{?yvFu8;c=uyS&N(q(j?Pk{=RK8tn+D;6KKQD)0>bmK=G+aAOutRO@{8C z-_Z9j{3gR~&u{3un%|NVDk=V!gh_?pB)sAI&0|Zl%ogPI6!pq%LD0AOTbV6Mk1eS( zTT&idQf0QJJhr6DY(bh(;d-euTT&idQf0QJJhr6EY(dzzfSE3{CGD{#U1kfieTsTz zwxm6_q|0ncdu%~qy|g(DhdkDVLuKYLf30v$C0{;SujaJf~C z5*ptLhs&)Bd#wtWTNUP%?=?2ohy!?TE&FNS4s@8E zwLR`ahuK~HuWqoz-u`5`yhDjuac^&Eh_JDhP^#bOt+RJd#ysJv!s(7_I6ytiE^uu zU0S?uqP(sWUaJ!2b%hCEk8ZhDNM-f>T5eU+)15-fb(zgcuT{x%tCC);lI2z2)dg@k&~CcJ%hVRi{%0Zq>u=To!{P@M52icsS+t^i;X0r@Wq? zD))4xloy|{RQdCVM19Y%<IQITfX?0&>BM*F_pe`L7Cy?tF#H^?Y;ZU^?uK zZz2h3R9t#wQ|B(i{Me`nu+N`-A%LSTSWkmID!3`ts8?~6EDp8Wx3RPmx7R;NB zyUI|xxrQg6T^b=r172Bpv_wr8OvZdD?q{iZgrV{B+VDo)rCil-e>HV9AC>0dNvQB1 ztR%w9FRUxWYO`b{jTEpbWc!UXR)Xka`^tr;(|L#Zy?fg`prEULo;jg?qf=I2uf2si|(13VXg z>Z%UHSVNXfA~7(GHE?JsFsd=E2xjoH}^aLaBLBQ%s zh3bJo9ViU6HVLe(#6Lb&fL@zl8LGJf-^G6VrVdhwS*5U?6RRW9vxuMygpY)mv-YO^uKn+wN7|(!HAsZCwrzt{IEkd_VOzAUSRUa?W+NvPZ!bcse z9I-qZc^in884lKs!t?P4p<{5NDAuXQ!l^_gmP)3IRba%609Z?^Fg*yU76lQ;qlIOc zSO@D@1p!+{_Nr>Ff@ByAbJ);DVt7a+r~<`7CkX2~v62%nb8+l6(nr9t}@rfF+d9BmtFAcR3n zxFwEG1G@vr+UAPVNU;XG0YJY(Ks^Yk0R<67cPWJ2Z2#vVU~9Y;KjW%_t91R#!e z%y2WjEc{*uk$_DhqoTEzpS`0*BAiHK?GRp!D8F!G=qX|SbPUr;x@n6fLWvZb!LXQL zr~svp_h|(0lu(-eXknp`fR)-<&J*QAdubf8k{fIAu@WM|zEw2`hy-j1IgqQh0?P-VLSnmC>qKrh9Z^v zD8B%p2GPlgpof_7D}TUdkVDnl%8$)hq6pn1bR5No2_dY|R~&4dfOY&BVMW8;yc&v6 zfYC=AiDfeASB-4eEHsvAV9~9_S{MClKn-$hh9q7(eiaa~5oGkf)(SwAjJ*=z+-UBS z7)-{okpTyj*ardq1C#<4fNdjE=sBW`gzYgBp5Bla#+VZ?Nhsj~sMJUK1t68gniTAs zfQQ1b`~h1)#v5uYe**h?piN>o4R;R)j?^4XFQ8|D@j~Ifn1D;bcj>(P@z7u+U>ivxs$Ucp{=LXc;h2 zVC%(~V9e78(&89OMX(u862od#K?MTppc{y)br7%xq)5Z?4p@ z>=OF4|L{Ry^Q%^0&Fx>h1sy!}aj>CP6!AJt`zj8WwPHwsF)!RV){=~);bQ+-f;pa$ zSfx6OPs9kT4xu)*AiVtofYuPJZ{u(jzv2gM{y14*>)lUd^DEx=7~)^peF?=E4m=mF zd6X@BMSs?N_eB_G!dMYORy^vJ`js7Gzv2gM`Iz@wTk*pPcVg&|o)5Ztm^t8ZSF;eT zKdZ^t66P+5^yRcm)6~i#8A%A?eruj|FT1nQ~Ec6(GEYZV5Ir zL-&SnI~0H{)Cu~&NcMm`nK1!35yS8{>FEG#X)ge)pd3Mu3OvIKA1}aA)VB!L+5l!T z*H{IJb1~9~CE|Fy;}#+Kr&)OGGZuijTD%3(3-nyjN|+vu?gJZHk9xD=p$WlT0FhQa z85#i(6?UA%R%^Z!0|6UBrq0w{0m(#?(-nAup)-sz5DFkHdIma2D6<(B;Vl3Uz)02; z3^dXn09HXcLgmQF&j$iFgv<}Bu?i5PU>_chHkvWM4M&DG3mv}{BIO8^Vr+nR4tw2U zdj;8M&JzgG(g>NM*=Hrsiu7$ZwjIDfNE0vzq%bkIhft%nRXtj|Uy|dFZI5kZOi~Vahm| zWyhch<2p>nW3n7uMHc%4mC}g&mIGi`NFiX%i7+#|9)3e%rsVq-plSuw-U?zWGs*^= zu}ltrQ2~mBy;8WsSIrIL(Uz`0!hr}GVz1IdFvN%>dcd1~dR(CJ|I1{9l5fg6Tm(6%c}3?jodwt$HH9KG1E` zQre1Ddk&abT5}bo5TQl%9@BXUcVl5Y3Pl#;IoRa~ks&1Kpa2N&giuQ{L_N@Z@brqc zI8-sA5RZ(mTjBrsM&w)ZL>hn3M0H|tyz_yUNoPO139s@M*80v&M z6B@^6bDSa<7Q$ZKDPv?NC)j^zr znbv;#rcpqu0A>q0LdF{atvpXL_kqX(A_Wmi7(thgi6sagpm*eX7__ueMq^N+&4)wO zqZl#cjezIDuj~OEMCOs#R`z%cH@n9qF-wYRyflWx!a?ELF~FFQZwR~=FpY}r3E4Nj z_&(6Wu^2m3Do|Fb&sT&1ARmKU>?i#C#$0;oXMVK@h>7xk`s&tWMg#2=x0pvGhqQyBYEVWAnsq&{qC}Md43m{3AVg9L zQS}}MYy`RBp~fnRwqTYQ-j1F;o_MTl8yVItbd(q!g%c!NkWR%v_<#i36cQ>tQzb^2 zi8kB;6RBFwhKJ}g!enLVtT922XV3_$-nr3C}{*!K9W&WdW!wu4-n<5z#G9So;h_y<4mcH-y=f4lAm~gc%XElAJ>E+b?P+KrTG0t?Uu>(D>{kRT3S3yzr12r&-9Z$A|#G zpgOQIEdGQC-+&y~rBmKz0 z-}fs-wMs-#*B?N4f;ecycpYE3INGp?W*}rNfqv`<0Q(aNpI{jQk|>g#T`M|)5l5H_ zS+Sg6Y&I+p0;@nEn4Qn8q=etAPubs#VnLj65O8#yZapBfIQ{3cXo z3!L4pAMace{$5^pMs-^O$b!L001G}46GLBC{yLvxVQnR|;Mv`UTX0b(29%f!LB}%g znMYtA4G|bozg3^bOwZwIkLv960IdVkKS5P z2*^iL9dAslbpwG~P#EYiA#n|<*S=i^F18Q$Ow`_GWHKH4F!(T{&X^JMY?v`wTqKB! z!GsXfsqyz9b)ckJ3rZUC6*Pe8S#fF(jbb?hDn=lHi&d~?6yy;|C6LAS(#XTYT1i#{C)XsN9O65~;|feoA^@kM@kC+3A(c>uz)BDZ z%-><9dtCn|)3QAcN*{=zoyOW1o?to{)~`w+BxsM?fVg2m~ZC#f)IJpCbfaeS#RFzbEN~$dSknFD8P~r(e*Px)=Q+q97@*I(HER@Aklr%cbyzjz7&7iHr!V%O09(K&dqpydD z8EX+euSp|~kRn3#Xc-VyF}xxIDnTF+s|E(s_bX_HImWL+ef1XpVlla+DE@x1&%Ryg1>Q$6>3;j&A;|6Z@I#pvqIod zTjJE{FLVO|p29$k4t*26fBkZDxj-zKL)5-B1u-%_@mO_$CQ>GXIm4(}=uTqUHYQ>C zoS6=ExhDi*y#OT*7G`aq%)CtNBK_@GomRP8zjU7Z34_OC_NKw>pDhRS%= zqg#wT5mdkCV20f!YopCa`-xr=LN@RX%uE&Q!02<*21$Hu7%Bny)*u4^IJWvzW&o&O z13~+Z+|%2y$E9i@f!o7nS6H9T2NkRPHHUxkkz;>AVH%EWbr5~Q!ezV%ynSb*kByB~ zz#0>5f{4U+B=#^k#T9xA0CkFGQ0RI2J_wlk@hw30Dy+H7m}15W8f%W45hKSNQF9ns zRm-X26>utq)zIQ0dk-Okq6=tYnU!NAC)xtd!Z-pQLoRuRQ;2>TQycRB@LQmcDWIU` zuerB~xd7xMqL+hLB>qM^o_o$P2n#QI@DNkr0tKvKK}QL}MTU>l-q&L#04Ep(0nI;p z7EEALt5g7isU6H>qjG%v2tk*r;EDFHMcq?E-~-`gPAD+vi1s4Ao-E{0;@(LT0u%HR zU`8(hQAWHvLmoHK(p~^2=nDcm6c}HlzlE@pfk65j+>YT|zs4ZwN)_C+nri_m5}0p* zr(;fmJp#CbW<@aBipX;mb$~7s+Cn61z_=7f59C;x&WuGn#|$AgVsh zaLHh;!EP*8LE;PpsECoujtd+|YZmSo!phve0kiP%YwWm!&LoFP-W+8k?Ez>uJk$Z2 zP;As8t9S(hGcU+ttsxl+A?=`*P;-+QhL>U@9(kBtkAl2h%(7?}S^+fTNFj=&nZ*1H zMKDA}l+?Rw*+_c;nhno`fR<7qurCIBiWq75J_|vcMQ;0F+lvv218DCVSw|sMxLvc* zX+*bCV&zzjizflu=x7Y^`jd@EOh%5@N8C&=?`f{o=W5;xfa;Gz&>kW;Ca$>#7$3n{ zS=}5gUPlSY!b}uqV$fZ}TpltExbYpM46?Av+a@Y$F97SH908Re5FC_tk7mgMwvP?GAi_| zxm!iD&MJrnVv-aQW9;C9A(3Jsx`qV{{DbJM z0q#GB*I|fhN{E`3)Id1^tAIQ&0<&@m!L=bw_>=Bcbteeg64t(GC5$EanEF5(CZ2kk z6B?;m935a_i%}8kfV+9<*#W)g#QxZ5DXe|b3U3*f+@KM_qJ4A# zn1G^KSi#CHH16C$Kfs(Bo)V1WhJ)JSeGxGJRG-IRIOO3WVxaum_#P zYA-z>wh69R)tZek6nCXs*SQ$We)BgF{TV6r6%kOH&RVr0xT)E$Y z#;;MD2%Y#5s_VKpkkgBZ4m{D%jgDxOq;!Fpi&m)Tl87Al#qvc0z)YIdmJTdT0AZtP; z<}eHjE|N)5r<_-kZLACmE`@v@$zAEj?@K+yr@i;B3%?aP-nzguk4XY#)q~%X9RGUoY4g4H zfc_jJHE8uYX~--@WR7CchXfN9%4DAqWxxx7d(tpWf)y5?4iLlz!R&2^zY>fxS3s~H z1OpS22+cF&(Kj%{KO0tiL)T4?g5UZaZ#{5go!LYP2y$Lkrp=IZ#cC-Gg)l#Y`EU%E z(VtIpx4x9;^@mr5K%k27L}5x^DuTJpm_SAi!-2TU2Nj_}P;Kg!;=62>YsmvvM9obm zqWOIC@hsz=hbcpLg!o5{ar+CMBQ}^A(KBBewT1K)WS_jHh2!REP z$Y+APAVy>$Fe3q$^A+-k#rb;RxP!9?NiyyepJmSl~)ey9q^jovztp<$T z&}%naSt7cEMRpj*;a0K_D+~Eh0t|N;96-p_#C^@sfI~k3aJdG%Pn=_~L|`RULR5Wk z`YqdG8L9)++(t4}2yaFt(V=u024E%G@ zgrEwB(unk-76bxOKeQLJRRU_E8;I(K2--sOZ_fBNu{wax1ZvD5v2!dF>PQnn1BQp3 zIYQ{_q8o_aK~6Te_rPl%6(NCCbOMlog_j08oS0C;^*Ar0a>Y-Jwvrfj0+7V3V`+k;|sL>$nP)N`BVd7 zm<^r&-e(Q2fh{=-9$AoLyD~g zLq#&lhU5{1k1;ij;SsY`OBORJ1T>kLoklMLDK{Dc-h^j_gHq`)bpuiTRt9Vtk!1gfDMjOx`8u+xZ`b*>w9wK?86P02PUp1e0?%ZCuzM9+ zV?GjC*vr-tyO?9uGM)#-qSRkMLZUTyazua7EL!x|fdFt8J`tr4BFCm&A2lEV$k@QZ zO7?~Kt%9H}qu)XvZxu+SD8@k(+64r~Pz4ff!fH+gO(hoxeju?X^q$bUmR0@UIuHbe zrtl8MKUl`55%564IS_S~F?Kfy)o)|ah7p5e-_Dk57_mtro&toExJ41d3TRTn;uaow zS(v>%Fk;3S5RCzr<{;?;?WMO46aZ7T5vW1N4CwS>|EARX}}&RQQTSW~=0z zmFu$#1OTrKG#pV3*LHlTeJKns5J{mMR3M-dx`C*A8~y%NjBlseZy8Uq5|B8_AOT+Vh^KQF zmARNmuHZ61v<`SZaA1w06S6TdtVGrYa#TElC8N*r1lkel8)^h39K!GU7qU2>5(vC~ zIcv@IWIspn`)e`&bx?D65j(kaa|dh$jx%g0_l&e>BGH326WE7C=%Bf@7!& z)B?tjOrb?A8u1Xs5>NnynD}x;T$TfhVuJu-QAdgal6n!JmpUj1U=>s#RDTwNwuyd! zHO5;5C_l?9O%)S1@Mn)O3yI`(bd*x48^&GH93TaS3sy13=#3*lnCf_HFl)^mRysks zJ}N)~ptFgE57-&W*9C&Mh`y_L@X}B(M!fgAh70Ki$c{shz_U;-R5a5wAL*Sbf@@cQ zd+|mTZ*@%m&}k`v&oH+XpmJ&f@vWd1__P`R7Wh1`r2yU4fln`{6rj60@OfTJ0lKrm zrw>sI(47T74qFP)jRn5TDM}ov8w-5bGL!&xXF*U;L}#LEXB2bMg@<8R&y(MBf|@XV z{IMnsAD65N!^bOe3EecDl05@A1g%Z6X;6PyTAeqI!jN~$Hy5^_+&*WP;36=}TH%f!XcC(oZjqmX2osCKOiZ7vII zTDYg$h;ao{$6}KpS4Xy00Cn!N97G+Fiy-QlOAexrW#9qS(Q62#j&696s|WKsE^ZBQ zb!6uRQV-^JnD`5Fb@cZFsR#2qjM;-+oqKx*xN%6N2&5j&>o~0&zHhKbY@f z%b#G^$E;r<`!PTcrXSG%Ft-rs`iR~K(+}u>oMaF1^dpQGP(PsmAtfe|{g`VFrXSG% z5Y-QKeXPX`rXSG%FxRjf*RL2QGIugnWjI$hQshM?QKWeMHX#=wr|vP(PUeVKzM2^|=f$ zNcoX&5KKRq{~@m+*!3}`6v%$eU@pMSVDfdAn2 z9Z)}@|1n`bi2e8@p275Y%l|6IlSp)lSDPLz8&A^Os>9E+@g)C5>2A#*LP4gO_jCpk z**?MaxoLWk`-vR=VESrWdXLM`KZYK}es0+pNFS>$0_k&aj6IJhAU!Fden9`jvV=hP zV_{1${eb?5?WqD?AAejWn0`S2L%wUU>j(2chKGY(AI)(<{b2rwWk$iS&rJyeJipiu zAecS^I)Sc_x$^RG{l~eNT|~gR4k`=wlm}VEO_54@+|bT_0th41VEV!QkINc^T%TL>2h-m@|Kp#rDor+p|5cell+kjj0v4;){=jylzgq!-ZuF6e z73li#_#pb20o#omR%t&Lxdo~}tUlO{07N&}M@B)Q@^iC~ng@K{Tpvr?1L)gS&ad=P!CzYbJ?{Hxx9uD@FeiIx73g~NgB51ZWv zt3ND&4pe^r!N&mo5A5F;$p5fBKT!Q))1*N4hri|%sQ$1qd$9V$W&}a%pMPL1kiKly zwde1D>>UuO{;)A!p!&n||6uipKgPEk^+#h%#&6tHs>*;5ds>z%U<0po)hR)~PP|u; zzmB(iSHL!JRTN~vQ*s3?3aB<{ttH~J@&N5#s zKL1Y*gRH)d)}SGcgL*a&8P;>i-aUuy)pPG2J@@L}W3OI4diUwodqA%~{dx@;*l$4p zegpUEKXAYP`|R6)zy0^!Z}7hRA24|Tp@R9?(|JOBLc^O6s53vE57 z-*1Ng_&fK#Hs|J@FJ16Ti}m)-8+u!@Wq*A2z;{BIoPOcVR~9|UOIsE$Y*{@TtbU(6 zq}L(6dgSB1#(t^)wk4Kz<&(es;=_ks_2MTtH(K|e_Ot7D9=7-U*X(@d^QRq7UZhvf zN_=+n@?}q6KJBGX9zOMyf$l3Ge_`LRzdi20hMg$*PS!cfJK(6r`!7AJ*Hyh9ntt=n zoja|Mb2}S`hx;FT!oE{4n7jUh1w*g0cI-U=8#}-F(YHU#^v_>-`a@gJd3p0Wf4FYT z&d>I7@?-lybmi$dfA!6Kcb<6MvSX6{m(Bl%Sk9^&ed}a5j&I6Z;vRGB>-NCD?y4h3 z^ZUfci!%LLypoSoa>f&9anf>jtjBS^{6^Zk6P0}@j`t=l_mq_I?YF_h$310(CG=4^ z-?GlKmL@FgkLow40msL1e&l+^r@|kB4L+~KkHW|A1^f-d7tF_iXLOH(OaUJ>b&1a- zY%St|2Rr$pt;#mYZ-E`OO)&90X?|d<;7A#@uGp+)q+D88Y3$fIql?svjWgQpl_R=V z>vPiXw#8i=wk>Y6u3NPE{d>2F97G+;zkTnPHqzu%_eOkIZ+uH+6g{JhGNdWLV&hv{ zMx7I%*dBb5BPMKUGrGWU^Wck25pzbD2d9g6@>17FUG|2(ig_{8JK5gDxu{EWeOfk6R- z34WIcr;B#-cU+ft&^GFJX?xnpH@dJ#XkA9pm9lFYT`tiTOz%H+zw-5~K~FV{FZ6z@ zIkRQqXI=gEIqBP{wB>G^(w5mVBGuJ)*-awH`^758Iq$JUK6MA++yAM1L`KogIm(cx zeBY<;(K70s__qPu;Ez^#6m?)j#^{po!51up34YFllcSvkpiRWlx;bqRF@>fK>=9a* zQFK{$Bf}%{&9$gg_|*N%*RQtfHiqrV$ty?X9+7jWgY>p-i*qk-Tb!}3UDVaMW{da? z>egZX;+*%`A)mTk_&&1nEs;_5j2vZ1Q@(5CTUv(a3ZK{pzo){Zr~?}^MwfgKzQ$6R zY;$O*#>vr60?;PnXx*H)hnPZB2KET8%P6`myOH6M_{M(f6h3vo^7X3+o?p&;V6A(8 zd1n9qXXG}@xzj=V^1JWIU3T{!nPC^++V$x6zlt109m+qn{ja>o4*AqwkMG9k2f6%B z(aUp`A+30WY|Y2H!Y8)De?;L?)PW5dqf5RA-&R-(6Z{ezU@*bYd2n*HlfTm@92~8i z)AkV4HM+1zXkA9pW!a4kkHk0f#4UX4e&y>|uI>}zm>ILO1N|%Zk(>_FFK+uZ_uRHm zGaoPe&#qo;#=5#*9UgnE8EfO1!VM`&F}(Pi1GOBr1*(IsZd zr|wt2el_r{MwfNg@2p09)k|Hu0dnqikpA=I1KmG8KF}U}aNpdUk4zRhh&uRMuRk)` z#=#+XB$`<1U>tT;VSPw!wcy;ZfAt03D-CzQIR78@dW#A6?q1aa`I-K6G6i&~F!ASJ@_*LQ@8P zexY?4MOWJ_d|j@BJar16x?lPDmDM?O+`%sEYx1~*?Qhw?%gvB;r-SrI4A*SGv+%Rresb<~kX|{Z&0R62&E7I1l{@aTn_OM54v%9lyUE4@W3HPp zuHsm)*~WOv1$;TJm_k!#Fl;4Xmr-=J&BE8^D#%l(@TvQiuU~b2akR_&dhm;*?Yp1v zJ&b8 zzw-5~{WE8|tgrntXW9GoIoKVl&O1q;__y=j6aIF-or+D*?f-eUMMb~DxeYakeCiIy zcSz=C$lx6VnmCjpt#~hM895jHlYnjThX|g+9|9etOTNJ$nt54cDNOKP+Np6|+9}r( zTP;WHy2>`#2)@T2p>-KWmo^(2U9N&WaSNZiU-|mgLptWf_|ow!N4O8G^G?z)Y+LL; zyKS-E``Sghz1D1Ty?%wcHyibg7||A&y8I&k0~r;oA`WH9ClB*+T1L(VAM<*)!S5}2 z%C8UyvyCqK2LEAT5X)fV=+aJ&-KWmo^(2U9N&W zaSNZiU-|mgxrqy0*4KH73+!*S#@xB;ypwd~l`GuPD_7X>%wLlGDE$KDitW|==@)FM zIpk9pIQG26pCDsdq=`cr(u(&dq35V`gKvBAA*b*uV|0OU8~nM6KWQw53BIfCB#uiv zc`fL=IM6ogy0k%K3Qd`FVJrE%jH0V;7QQZ5L7qB=Pu;J4{i=TsLE&l30(0qy6t+KhgcQI`1Uiwc#fB!3{Ur?vppvlJCJ6zcQG#UE4_Z83;h`?`VPM;Gn|z}S zd-9}p8AX?6H!`|h1$p8YK6StH@hiJ?`QTez*4MJZx7c4=^;K7&calE&rd96Pn^xJE zfBuKLSMKitpDFs)%lG%-J$A^a?zQ+XA3RL_O3}Btlp(F~hY1aQo(uk$fbGEtp2DY$ z(FK0igU@SPMa)}V+Np6|+R5LcOFL*AbzN-_G4n?ETG&cjmr-q_Ta;36h38)F7QQjk<1?%R0l+{@L~g?r3%1NqYN&b?!?G*4bZP zd|&RVR=(qke)UA_Al_q#eCnq09ev&5yq}h$SGklSt$2qE4Sb#(eA|N$JcUmgqYM13 z2cOpzd>(1Lwv#w6?Iizku~lrNuB+{_$v5_lf~}-=8AX?6H!`|hqD#z@Pu;J4{R;DT zF6(R{=HA|1_$`<7W;pF6y<$q2`-3T6wmV`&4*8StnWA5fxoimUG4n<9)ZGW)!A~_q z#CbbjkPN^O}OsBlxbilQ=HzBp*4Sw1fGg z)OEEzHu)ZVgw|ygU6$R*=yHiJF-tymzw-5~-}YJSvd-SghEA1p7y0n9~QP)+vf|)n=ya`)Lvy4Vp+bn!tF3}}s z$*1mD$?EF|?M}|Wvd%VPPIuMwSGj8L*zP3VVn6MUw4b(@EqN>#8+a)0Rne~^0}tgr zcF3phgZN^;nD-O&!K632lp(EnqlE?^=L)|W*dBb~DSXNpUEpUu_`Igz^9a66JBf1? zY^9y#Lzi~YHtM?C9%AM__6W@~8eMI(@O8OFmzX7=x?lPF)$*keyR0)D?S~Gz-n~)I z?M~7kwY=!Q-}0jUNy{_2pG+8mdsXzSjtL`pj~()<%kOuW9?SbFSj3?W`Q%-{^jM+4 zE9VOTLtuOGfv4~(V|0Npdc?UA7{oG|IJ&fxI3K`P+R5Kni>+cCbzRC6ll-FYu|l(q zMwd1l8C@>XC1%N|?pM3?tNI=k^*ty&&x+%r6x_Wh0-wf&PtNP}KSx>g% zDCeYC|9WU<)vt%k<#!xDkL{mBK6PKfcl)ZVA>(u?x^IRuq$!Wz zw2V5}_&J0BhQgz$Lp-BPz6T#z3SVLN&3JG!w3B@3!Vb&Px*2T`F@;vTR|~DnD7q}W zkoSV2wpsYPTm^aR6h3vo^7X5yF8u-T zf%WvIKgf;#{`AZ<`keF`SN|k4{_3CPR{wTY+lCpvZC$Spk85Z2c5!gXr|wpKpT6`! zoA;eGaVSF?a=<@OXv*@O_!EI`@YgFm{^U@`=#p>np8 zlx>1(d+ZTfmr-=J&BE8^5?x}JeCmGX>sK4kzEAw>p|kJHwS4Z<%rEpgX)BV?d=k#* zmcPES?UM(G*}85W9{>8_Fc$}heCqQ1$k`#A_nkCxC_@@@)S|1zG-Y6qqE#71SKBOnT`tk3e95Qo zSH6Dr_O$!Ouilz=f9~U(mt@}2=cJ!F@8Qg2=RKU;(0g;+{BQlUt?Sm|aqhSN*~P&j zpSo}0`@3looA;eGaVSF?a@JeZB0~R8pA-K{V0-Xg%HiWs#^?gyHTdrU!{Ad8{EP=D zLp#Zbu8jk2qi#moCYZLz9-(y^MOWJ_d|fWlC1%N|?pMBkHR`sN;#WB4Uj5G8%xHa1 z`lrdCW$sP>EN7p6Puq|+18iNl4v+h-8Q|jJkWXEHN8fg+&HJwCl^M#AhMYC(wnK#m zzMK>Peqej>UCQC(P{!y2U-UG-Yw#%uUdDryp`GMI*T#XiQ8%M>1=A)?8Q3GVE~DtO z?9`=VDZ+ly<}{znjXDF57A_#0^QsryTOUmSKfbe#@G ze<4E|(v-(D#%l(@TvQiuV2|GshH2#P8!^09sOeKm-RX6E%xv>e7oEppKE=8 zGWJqcABTq>lNWd4;E+$J&b8zw+@b zr{liJPPy+ZB0Jk={&Hj2YB_g0NDq6gUvBVY{W2@!dw2D2Jg3l}uzq_so+E7n`PBUh zzN;hOmi9!^JG&@Dn(}u=zAZHHajx)(0NaC4JboO?7+v6JJou1tIt(WGU9?l<#vWvlht`A=~cHbb$@*8QhUcSm*$qWJ_k9KQ$cy0+c-GnQ}=9q zr@Z^23!X)qIFuo+cpnOl>+xLh?*_KPzfSNJK4pw9`38UTyB}&Sg$ce(J2j3=J9(|E z#a7GFx-M-XCixzFgw|ygUD|A9bh!%h#4UX4e&y>|C#?Ok%lg969`J+t?pSr+Njh}J zTKDKH*4ndgUX%OXrTgT)e)ZO+`!FxZA)mVZj$L~gWE2*0C_}#D9VRsRJU95Z2OoIK zuP9@5fiHR*pVt&y_0iRK633;T?!R9(#n=WfWa)v+#AfM3~1)!f{3W4Kqv_Uim|W4y->`P5yE z@1+yQ@qSvQi9;FEiZ@Q^CF)%8Hv`+?&l5a_PZ^_2zQJEIVH~e1_&kE|(oW+19JbO< z@@I>!mZNoD+CWV5jXmFnt)y8-qf48Oj4qex60_t}_bVU2aylQlU9IomaQmO^v#)%> z-6-dFC+YNld*_q;?VTOg(daI_abk&IU3KF`@hkGFyB^;MZ@)nNiZpR3Lz?$w{p}YB z4L;5b_*sL0t>7uYqKwfc-{5ZohQd;q;Jez+Yy!5@PX2zi*lIai*VXpeq^7X6M=VX13HTtSpBJ?j-G`4$FTlby&9LS?pVR#}fEV(XYncv4r>7A)mUy$+kUr6J#ulG;t_H zTJdfY8ho4=@UtF#@D)B~j4trA20!!MO&ZH!4#{gfvx{LX?c}wfo5z8+@tS#U4>5(N z%xKt3KFerywavn3xr{F5OFnhK^7X6#n0N^9f%V?RL$ae2@44#S=_K8_DU`Q1g|h$a zKaX_3v*8-Z$$ei-`K24K;XPhUK6QVO@B0&fNSP6&i9;FEl>hz29|{dV&I|ZigMX#q zDSXNpUGfe7e*nYaE6hXk+Rp6G2Sa(z#eTl_EXCOLOHNpD^>D*xc3QP~I1iMcP#{4V7> z@pbUEo}Kw!++)ijpSt{RN_0ZT8KLMS^OPY?`HhKAp*PF9!rugJga5q36MV`TUGfe7 zW?&e6g?VINYzEFo*h)Lehc4{EoVe1>Q(t2WO&Qpu_|P-DEIV~6ugg`Cr%vHh_bXq& zTDd69dtm)=Q8@d|+YR}<S{5|bsvd8rs?T%V=E9H3KrM*h6xfS==T1!54 ze}wN{i+&0jXN01|dCHK6ob{tcKh-ikSNLmy?ZKy<;KPQj(FK0igHK(-SD4{E?bJAV z+DSfi^El8pUNf)lA*Rrj`5|m2UzbsIS#~4Cav5F9mwf7e+J5`w{OGq&&hChx z;GXgs`%Xo_`qF3Y>sSu?)a7@}fCnMtj37-M%8*w04{8~nEBp+w4gRSLPyA{Nbc`)UpbV|{aF0UA)mVcitqnAs0&!m2-3u%3~9>$ z>p@*YgOBq9e%6CeIccvbV|0O^HTY)%!{95-w!F48doOIIo#aC|j{|MvHS^jYVhT-} zGhr+FEThrYHVdESGP;y6`PBW&*RLLps`l!!Xlr)irG4{H$hp%=IzQ&L{N^#IW$(RY ztb6D7mAqHH?{U`g?b}z<58~ugcMHBxL{)pG=+-=CNK<}GbhDOG?G^D|U>p1u3QzE1 zL)Pe$@4*L_Gopyun)l%3X(zAs17&NRx{%Fld$Qyk-N#@nXBxj>^+cjgzOH zn z;<|rwZ@%aOdthI8)e)olePZK9nf@hD2~V6#&f+98xz}6H;`Qmx@z2Z~hkH7|>&nQ0%AHNsyHwa%a z9|NAzJqj`fe9+V-K98`qhyxz%ynD_W^t# zc}eoGEz-oH3~7abj?jHMW?t6kq<{3C ziJ9BKGcjjfdum(zGpkGdYRWURC#yp~b^i~(+unOfWJnW-GNgG=o_p^hEu+qf|3hFK z{OJmhqRuwx7+vxW{>#9iKoN6H#)Ffgo%|iTw8PQ58D*Pb3QZZ7@4?-iNt zyvGjt)O`)#-!^_CGNg$^8Pb&B(fEnbZ|QU59}8@Qzf9p#)S-;gCEwt`4GantF)zt@ za5A)$zeAUHI9fMDd5tMFWnhocx{RW$Z5F;RS3#aSg-_kDeEsT^A=ip8Gz`5qx8sIW zGrfkYbJ8=eyDc;2y4!MNFa2KIUnYGda;RH}_50DJk9dzA@~O*juc2z)x1z7jP=+++ z8-@;WHDAt&KONWx|E~&;UA969IDSrk3RGEOzOc; zx2+BRS>zzoc1tU7t(ccXivQpZ;3pAnH(l-A{kb`{R&L-AD0# z;`K%wJc~4OC_|dO$6jxAHDAt&?*iN4Z&r8|b)cIwy5t-DCxJnMBIc5e2PZ>2`8#xJ ztD|)@=DOq;bsKHcx{RW$Z5A0_u7W&q3!l1Q`TEsI%@cSJtiLo*$Ti*a&zYV2ob>w> zXJp=)I3suAqm$YO{$`!XLDZpq-`}jGe>mh*_fPnK*8H5vkR}dgNK^hV&Ch8Wbx!>M z0Jg#3N8wS_`3yQnmwbc26BraIVou0-a5A)$zeAUHI9fNOY!ghODFb_i)@2l3ZL{!o zxeD^sDSYaF1KP%4HACc3w+`#~ z)T?Ij9y{by_Z#?Lbk9YVtSfo<^5RCpA1E`pBHCEws*3=9es zF?(e^I2qc>-=Rx89IcyCwh5-tlz}}$>oSV2wpsYPTm^aR6h3vo^7X3~gWi#tk2C0< z%{#vQzgx{Y>1|P~ZEMu(viAOX^nDMUB=-z;>#%-t-bI>x>RyiT@E z(bYB!pBP4$m?fXOU-|mgl}9`!_sTiqskX5Tzt?rSJ}3RrUH{(o-d+FRwsqpR&GViP zNn3&Xby&wUpAJczKt6Ss;Ctl}CyNYe;!uV(<((r=78-mx*Z6H7eB$xrP{!y2KV$GO z2L=U-m``oSV2wpsYPT%t?Nl26^QeEsUCSH8B82=9-JKQt+b80Im&BH zp(z7-xL1*Y&rD zAJ{wh%}c&2au9X!wH93RRT~F~eCj@n?+XhY7pxA_#Gwpn$XQz#I9f)XYkb>-FLDrd zUVx6#1-@XB$ z`<1U>-P?4m%lf*n=~(-mmj}8()90jDJv7n1VDhiny4L$ReAx#|0kcJ%aduEl4 zI@kEN2On|@e{bj*UEm9b!t9wf_zLrK*MsBIPV%Aa;y~M|>zeD5Pa3~jJzy(oT}IK> zHj9idS3#aSg-_kDeEllivC3tAg*sN*BN`XFF*$cSNVngx&Yg6_I{WQg@5_B*;vn%E zh&q%%bfWq@lH^mD-&n`tBBSV4E@enlKHPD*(7?yJ!k-3g55D*eL>8ugKa*hkWWDg>UGj;~`^pD*6{L zWk?hMsFRKt8u&O@_zwfy;Qv_g6h38)F8LmO_?5yZCT*vk#CZ_5(oXX46k9Dv>$=(= zn|x!>k+79C%V>02b|a(9CA!2c`PBW&*RMvu@tVszYkT80`?k41a>vNI(?R;9eLr;H z+xJ6z%3DO`e5ko+cJ;cQxzj)8K1;>+ z>f}#lUnGZo>VAyxXQzLi_p?*cAGnkuP5i%{{&k^0mGc6A)`Jh9QTUWGy1>tR@FAn{ z73K%7wlf=st+bPT=+X|_mi-ILLmM<^-q`aoY$eSy8eNv1y5zH5Mwgf+pSoZ9`qef2 zHt-%;SMA%7ZTWbUd##*19i$Ue2jnAD2V_rpq_?~J+DVX;`z~v`e|YUA-s838Q_x(SK}Jm&TJI6(oXVMh^^LI z>QYA8){rINV~@}*qtT_!Muz1wy2LE`)cwlWuO2(9H+{jvF?+&SA9J6SbEkv!&La=V z|MkcNvVT5lko*4j^B`AjuYR}vJllC9wpbm|I}0wln)T*h)Lee_L#|9O_br`otvPV~@}*qtRvAjSS0W zbctE=sr!|$U#<`S6%+O?991C+>viCf?Tn^ zI_%9wyvJ+Fr!K$i|9ma6I!P0UGNcv$wL*iBbA^8$unm5*;3<5{7+vx`_{0)?g*hNk zJ2g(8c9MU%*lMlSx_NC+mVA#rLhCY$E^Rh4x?BZ$;ub!2zw-5~Qx^@UFIYHc_nPyf zJ6_J64$`mB9iD%6?(ppL@aNnw|70=bitW|uKUvIs?2u1ge#bAmkyxFI9-OBPX@!5I zmf?8;KWp&M5G^*v&BD*AvtWk?hM_Pf5PWq4k|&wB8MPfXa5HM+nTJ&jK+ z!B?0E| zw=5mXdtlwPbZGXSmtJ$fFXv7N>EHbAu>7z7c3Ad^>xa9Kr!J!$*Tzb}{THdrc#qeT zPu-jG{r=LMMMlv>^OPYCIpE(c^lfrpz|VT{DJS@pF}lFddhkW2h&eQ`?acl=Y^9yN z)}zW++D6?x<%vmtQTJw{Sw^GFvKtv)u7W&q3!l1Q`TEsy!-mlpEF7^1>aW}r<=p8Y zef{l+=dZc_@a#=T9^yW;zTj65<)2(He&vu)U4F+7yMfR!>E~DtuW+S7^ zRgfoc;Zyf3U%&dn*{Z#|BF*{rw(^dIiTQIvIoV9 z2Z&$A$*1m}_^v!#wO5KBnx_nD-j6%ZzFFuW$$0@kYw%B2c=W3{WsENQ2LDIE!0(+! z%%OR0XZF*l56ja|{BA)vk3(GR<|(f+g{BPb5t?N*x-2_&DX+^_kf%=JQ}-)hzgj(B z^{;TuZoG55`x80G-$?{L>br;L*c9s4Vf~IdUG=ZXr!K$$d%Wsj zktPmhNK=0G`0oh~KF$^XF~BzX$16N(uP9@5$@k!kUllPA$kR@Zlc$}$7If)Xj@Hd< zdx$ACWnhocx{RW$Z5F;RS3#aSg-_kDcIj81JtzhZXy{|@)oAtU-`J;TWB(qFJsTQ( z^lIp_cSEne8usqJ*WP{i>fL9rzWw_2?cb-L)v#A%gVoT(>eB-Y`S4Fek3Nl7V`Gm- ztD(W#C)r>(Sg$*YsI~pBuGoYiuVh+t~n3 z7&PE$8uX`@PrmiR(~ms)n}3^^i>!R;>-)U-e@=Nb7Jli2-~95-0q_oe zIR8GO`j)nX$urES?$lM6Lhwxp9^J9Vg2ynJWE$d2P499ocddt2E zyg#k~+P9*kt>O8!_0Wl%tzmaOXn(VRo0aPNxjnvTmoxFKO{8~R-?z*D-CM2qQGjpN+OYpB-gA^!R3H*g>1d zeRElx6>8f!Zv5q_x0g4Oe*gNbQExNa-p)VX`u;)pbnQ6)Z<|OvueNTo{E+wzNkDDpcFx~FZ&2cK&d-4)YYHw;_WMH%Ocn^13;bdf*kv5Q;Z z|EN=FYxWsk*0=vn(f`2yw)Kv^TCHu%M>(et?XnI#f7APGpKY^NUAJ-h#gBHStV1`G z-ulurUGM+lp0}w)@W8+(rJEU)a~eSp-ck(u{Eub#J0#=U28tH__%n7Q(zLo$@vaZqz+#|PhUCH?-2-?lz5tbdL&&J{y4 z%dh{Wi~M1a{jC)^IgvT<`L5pI-e2f{Li(Jy>-tmh~x7>Vm#@hJ% zjc-psEO+4x-`PxhYqUA%elRHWwa6uHw@m+X?yi16*i71<@cT{n{Sz}MgWh^_G~+D0 zqm}Yo_Bu2({N)oxe#P`JXU6^Ep;pS@`1wI?uO4)CjxxiK7@hga%LnGjpMCa$ZK?Yw z3O(=Pp1Cb|q=o)RuD7S|xT4kCKIoWvr{9d{^!J-SUOPTxtsMBEbMXnekhO9%>8&rF zmizb*&6)q(-r0vmRpoK~rpPmm#!fCKnIf4GDj@O_=nUtaP+DJzB?O^O4Xr>$jg(vp zwNX)tB}5*CeBs3;6BiN)Odak$Cp3Hs&Bq0SLKinPGea#j@}*~gzneYFw$J>rJGxCz zmw)Cnzx%!CGM~A3&N=s)xi|Hx0ys`r@Hr`UGBSI?Nj?;0rVD{}BVs8FRYKJK*73A8 zXpx!^Xjwr!E_@k+`90lU#MwQHW9HD|S+qPUgkwFf*+dQmnN^ma8p_{PX8y=_{P~vW zR2U-N@-$YyUJ3nxUiNKznMz3>7DG-VZyKq{$a~Tjal^&QbjRzJM3+{;2cP;>MlNyl zkmK_=&>~>BK56vwcc((syyY-H?&p+CyaMPw8pk9m(rxNyV)YHJ`MSroXyX&7XIzfX}ywux}+7 zOA<)63w)Oq+Jyd;X03zkqCnmGU>bpTRPIiS=KWsFQ`w%qd37ERk)C+k=yv@dO39~V zq^$T1TcTSoU8vN_hT7r#NaOcg56`FKG5Lix}Uk%vY2mC zPOEi$_V(_{`-$|`7Gu`ek8ml)EE~ekQuFFfmIHlSxOs!Gg1l$M8E#%sMjRe{e$dv`BqTDNC!c}_!!bZdvP{B`(!ZcL^e+;o+i=We(3%lQJv zAw)s0N&5!IAxB_b;Y%IU1`5|x&nU=DB@sF@H1=+J*mUUN0vcChDC;yIBRxBf!|0JmwgZU}Doo6sVCCJ~DoFla^ z{RC#x*F3I~%~H z{zoiJ3i^rj7ZMcYlfl0iO^MeiWa!DuL1O5#)e7?Yy@%!K(m-}&#xz=!=)xu(SVJ)X zX0D$3=8j^w^GvFGn;=VluM+x+v%t*7&Y|paFGqp(4?pNbp&gZLs?Tug;1HGV*_%)2 zBqD{i89lGh=9QmT$;mobCS7f|Y-)EFCUc5{eB#VQ!f$aeHvIZ*+E5=Vo{W7%LEcf& zESFAYY#^{Q^I=w5l?~(mW=quG{;a7iP|Y8x4`nXNy9nmj?7N44w0VfYOmyrBCL5dt z)^8TyN1+{+lfUoe-#9(0vORlq@rWT(?B~Yt{1-WsEwaOL4<@yqv51F?n#l=c z{))T6df7O43hk)en$TA?oC{Uip1n03T|z{IgDI*u6XscMvhaAEF}VAs&y_%NeBK5H z`N(P_;*y85$l6T0T)$BC73DC`%B0b2dnsoPNpR2lOnQD?7@L#$F2VfdXn&Tfo2llP z>KC${`6pqXl}SspUFp@WOkk#~JA&G z+%+bG9gp5kFt1B9GB>w5YJPruDytmTK`>vj-<_^{Zj!*v^jUFi)Y?FS^#{KTpwN!W zZ&tX79ZO_AZ1-YT+kK%HtH(T^n z0Uh14Ld;F6Q;?lsa8lqrEt>-@jfiD%zL%)^t>al^&>}VO)3O5Qr(Y7x@9y@Z_q#_4 zHFJ0t`)g8&!1~l?6Ri(2t9&hTsDSgmD%-O+Wn2~!XC5$_iwk+G<9D)o*)z4uO)2E2&_PQ7 zFEUv=uwmd_xZcY#f_ZjnD$DX;rRE2fWij2{TQINR2J?C&b>H!vz)aqz6jmJYB+TWv z(f#YgDYT<teUu&j7BKN=x4LtapA|mw?<>gr zPRtdJ<>T2F<4!uDf3CRNt4Tqw8RMqxBRMP=*wtwf%g~=BnEzqGbT*r2sCno9xy(7Q zH^ux%1);QR?tFono4uB^p%2CgtlxMsnnF7&KVbA1^YdR-*`B?@_bsH{3|&ZWMn*_` zV@MB3)WYpiW9RZiL!Sa>QbRdL!vP1^0}&)Jg7@Bno*t`2PE8>Ba}C z&#++>)}_qfpB}LoY1D)X6xyNB$HdUiQ#0tF6B6jR4uR@#IdQwd+VfwTk7-kms@MEV zcw&m8u_W2*0gr=!{h9HLT0Q=>=RITq+M$m~FNqccZhOeM!>GBv z!$NyB_e;6`rMBDSrT<@0d!2Vrv*uQFYpVfmAF|b;_4PHk*4@~;M00DaLF?;lZmqkq zb&2NIR)f~p|1G)wExlIj@A%zWqPe|0Ua?ipt>)HN1KK`ht3m7QYi_N(v2}^&)>ebo z*Vo)ycVp`k&8@8lt*`$}x&5WKYu&`%S)#qpyW?D!{EmpX8ybN zuWf^C%tV%t`(M{jf#1Jm7*>VA?}g!i`f2;-&Cs4Vw&@`C+YS%hLCS)A#HfEz&w~59 osIS3Xbz@h+_k8|3gWB!?|Npms4Q$`<38HzS;Da;`N0Joh0EPK3Hw1x=KM9)V0nP`DeOKvUqHBA16&P&XfHD#0<(P?8O;R13sfsxW(v)8#72+MuIsCiE7S25FR- zy!KbS<|VcSvzA)rDp;ABPuVQf?X8@>{txyghBVZr7S4!EBYIIfG+;YtJZ;cYTivx~ z)tlX0D4QO?R6bWm*^EsnY+eA(0jcF380asO!oa+m7>I%gqXTXG6%g5b1Za;f5s^JP zs3oG@_9@nBe+>Jm(E6pUob)}&=_=&Tm|{LoSD{kJ z6g$l6Dpa1Ch<2W^kw(1*g-$GyAjv$V#mIg^!8)eu*%*_KsV1B%$0ekWjd4rsF&Sxn zQwh$nuDragx`wi?YviiSFRR#Cy9pl;v(1Y#3V-o-A%rlNA)a@#i)6470N4})J_!K!!UB?zCkEW}a-<2@YbN|P z${exsqne2rzq^^O1pp?a-EDv}40mF9Y>iV;{yz4)-$*RE6@eAVY8_E>ujq%0=2Xjfl;JO+7foQf` zq3V(V7u!bQVtrYK*FI}yToh=%>yZkbDJ|z?OOt~-PYW@yLO`qEOuMM_0=3jIx+^4j zDjAIJf)_E;h-9+Tp3^KE({X8w0SF#ll+LbC&NO5Q{$Ynavs(1;c1SU+MgMnb`V9To z9rFBHhXCkkFb4PGb!cyVu)X13hv-2Ml;>|w)Po!-VJso`5RlJ@QKLgCMe6`}-4$mt zL~-U{x$e{>yes?>9@#7N$)j!s}ej&>7=vvTM z?NH1I-a!D4#3j9|T_;JC0pM{g2d%~VjyI0A6#eWtLaNa$W z#}rnDXW~dGnc3Zzl_{W!xXJ^(aN%%(4`hy-G;!EO2+PYKnKvwdIIaryZoMt@s_`Sn zGs-vL^=FEr`_pud+ZLE&r6igXLES$Hk;G$ zwcGrDKT!@lK9J<|+igAvsl0BN$KkR0-44GC|K|eA0~MTpzsKotxt)F?-edE*9ZnZS zx?EnTkBn}o)9&!$i_7M8I&4m$TyCG&<@EdfE-2^#3vf=K*X9O0wX)khBy-yRZoA)S z_xc=uyVGF@%Hj4poh}!YbGaODkB2Cm-R1Dwy&kt8mvlLRvO_+^aY4zJS+ z)zuiV16Q{DY;F;`p*KUD!{_EC;&(WN5h`YK#IXO#oQZIZ(CsdtDZO^gfi6rL9w4E< z&*$}EFeJe@ubWe*$Ig%~5SUTT-<&Q?R1O%}MA&fqTt1gmP$I-TeYm5TM`H-{2OEU> z{g{zpPs;Rqd^Qgz=h!#+2W}9I;4vR`_hEiO8em)i7lLMn5iqf0x_59MM;0OUb~1G^C^17hFl+iLLR`*)Y1mn=4IJNx zTmcVGOg-}om>Kbqc?^%C4tPFr8_l0>ur+2uq#v;n+FTVNk{HOX(9dSKJK%sOCEUT| z^DwV4jLHY$|JAfu?K%H{_MD0t?SIS6XD^=vdXLE~oH}gW@WQ(i<~<{TY-7sr7>)PAIC~ano7gOue1w=Puo7_L zVos-*m-QfuF?YvA=f>hjTvcG*h;od!SQhyN)|}!H*bu5Q;A}A+mKh`r~ zwR@Q)V0D01fZK-Y5$g~P+LgsIySzRh7CCk-60oY^brJ{XtQgvmNy7^#RZdrMFFa0U z30OOMVJA#cxS%7etG^pk0G^&<=;sME|qJGy!8SPLNN+A*^_?HI4amUW(iKw}?f z2rPU2Si*3%B<_<9Spn`lmP~G&&*yP@To}r^H^ddE^XTCP39iJvzKCYGmuH@(B1Xenl0F(>GiGvum5EQ==>=4Emv zJv@I5zOkHul!*D!@cjI|amJU4!^anl%R`|82_y`Bmr=mr+B>tmJ1etb_$1_xm6Edu z#p2vpxmT=|VsZ?jWAY0oqY#2g9!YQhq`bm{31()O+3(r`S6?+4_i@7HNiiz_gR#L> zQ7@<()9c>6F?WrgG%@o$It{Co<_)DvY?_qb5v7?PUnEew1G(6;94W!D###6pyCl^&UP_RH>M! ziwB`1ZA5u#!sJ2}e`2Pdc=wq6iMQQ00crYOd3IRl&T+%MH*WIyG5PS){JVe}kcXPs)%jEU z3klcWIj(r5gRe%*&u~%HiUU40J z#f9t@SF%@J%3g6Td&R}<6<2dqT+LB&HAltO92Hk{R9wwbaWzN9)f^R9b5vZ-QE@eA z#nqe@S94Ze%~^3ZXT{Z=?)Zllb5eiQA;@1)IA*+f_Kol~eA1-CF(W2V;w^k2bI`yc z*XCS1aDbSQ1`HhB|Ehk7F^D2p5A8W{;NV`vY?<91hyfKPa&jdpk24HRzVpt!!W+lr z-7BR2PcDeZ8Z*SGF(av^vm(L@f#bz&=`tr!V^|df!4Kv@+>8ztzj!Ks@mBr?6Q{}J zul$Q0fyeyGZcq3Pb58kh&V=9M)UYS$fwZ=QFF_O3s4IR;&;{93`EQN{U6629{Fa~# z(!Yw|5_ECI>EcMx1y%J5z64#Iak@AYbaBS%;!M!R8K;XgK^K&w%dh85(1m4W)7H)e zU0iXxxDs?h&8D2sm7t3&P8U~#E~rUW@FnQNJj>L@m7oiA8}m2hFqQldg{X?(5_ECL z>Ece%#T}=MJ3$wBoG$JJT|9BRcoKB+#OdNm(8Uv{izh)BY-p5^!IPkiCr%enf-c@T zUAzgpc;j^OI*pvlOf^~4#72bG|A~yZBHOB-uFQ$KVgk7UrYp{TRh+K8aXyLyVWkPn z>#;Cn(HSjIS*V|vuL{I`nqtnv9$xuVl?%4p5;Q{nDgM_4ov_^;|7)UFl@o?UtxzthxUM}>D{T43{hFv% zrL@7Gs8yxJ!Jep9eCmLrP~~|Eh4HxSIuf;tPajZlPvniaRbmE#?U{JViCV=c5vczp zNRCeoOPCyNY$+J7lmE{!Wi2qd38i_o7 z;)FsY(`GZwgnX10a;Bo#)*XdR*m~rI$*41Q$94?j-hB}2=w?SNh96rf*r;=J>&%H} z2AdySEKY7@p{U3H1{bSrAVPH)`<)(_7s{hB0Rbq_`Rv$ELABEDLk$&WK$aB!Xxl(N z6oSxU;`IZ^DzDwm?H&KDVJ&y=;PIqoP8mLKvatq?U#~g1 z@=CNuJb@TjatBDpj>qF%bw~wP2W7L_(M99+z@1#!7)Onm z_dn)B=i$IMuOS7+a5p-N&_I(#9JY$F&)`QX9nJ=KgOFt7fS;!tM>2LX;^bD0-T!WA zT|(g+yAs$lK#AWc+K$eH!&tE2;C6dZL`Q=Xw$kJ6aIO>#+CXBf1AR)^^~V+kdzHLC zVDKbj^BIM4?g%6s2@)MEhCm=r#cmn`gL3$>S?tBWuGpt$_&5*Fh7f>l6bE_?T-e+3 z+c<=Bhd7r5gEo-Z#YO`aVhOjS*xQ9Ye|!+WfcE-Q7y<>^R3k}dN2U#__)SZoO$0q5 z*r39$kps;mFoc1!VUr7S5&wWfIJIL7AEa*FNwif|dN9tBfe{NFTG`Nnf!-73ur!UG z{cMQXumiS}Tq&$zKX1IL{D3Dl17_E%ngPuQb`02yMilhuiRQcWploP=u%VGp^qSbw zfykYka(5sDCLVO)Vbc#ya2)bELV!c7oQIEvmwQ}ZZ%Q**43kU*t7-;x?Vx|ikNr2y zmUxnJ>(7J24RyFVRxkP~d=7L{#+$)lKwky>GF=`w&0yfLJL_R*1lC)?c`$iH60MFs z2uCVsuoxwo@K((V+#6>@Bs>9|#fW{_^fNFHWcPSR(AdF80*#G+JmxO6h+-eb3^w(U3`9+G2=gVqaA&pliv6DFDrv z@M&aO-1`(LwB4dB1_6P+Q1EjM1yiLP&pFy^d~v=IW5AxRk)%1{3#O1bxiAB^NL>)Z z4o@`e_)nC_;bVSu4HGA_Cnx#} z&{&N2GltltgRmGLxgxEq5tz=P#|uu57=XzURyYU6N5X^7Fs??B`e1P)ru*0|VKU&M zLPr{sQSnF!Aq*!jqxVik3v?tRp+uNr6I!akz{OIkQ6#nE?+B0Rq+@F()MZmPTHMih zN))3ey4VoOL|i~hjI@u>Gd`Y5(b13q5neE$ub<;JM4-nX0$hl(#Gz9Tj~GHstOYTZ zD_D$Kn8`GGKS&`6rm73tuz9(#|((v7jYD!f)8}e5ljgl z#D4VuqicjKQbQ_oMZbp~f?`F=rW{NWSld=9iFR0wjjW?o)d&t`#b{_yF_e6YK5+2*Z^6k2R5r@27>`jpFZ^M@B{(OVBpZ4fOHvIgzyi{MQCcm znjF2Qkek94oEAeP>qS+y0;VmrD>1T+HKY+O(A8OP0ycLjqUVIQr@ zc-Coxb5Qnf$jTv&IXE>7$b4}l1VHNu=sZ4e#Se2Ap)L+CSpVp zn!rHW=sZTki0K0>6g~!+fzYFAA|!$abp_=8ZXB=@?e^s%(U5@U5gIqqlr2J{A)=yVn)3o|%H=e|1tJ7|ELAYD z7!p~;t(qgCE{ReiQXHf}Zq8e*R1$*)AD(+R8vn)G0saq#_v36C0v*z6_<@OwD_!CFV0{U}1O~)2;z|_{V9S() zNcJqS9$!@>;LIK#Q6#!pDWmQP8wd=tIUY*E)X35sYR_yAMTTfYu59G{1Qy&LkKZL0kjNO|XjqlNp@2gZZt`Rq^Kr@{BsD>mL!z@AYCS0QAQ|%U1fvHg z5EvYFKar%9ilzj<$Y*F7Z{vYKz4v4n#hc>%5^h6u~>BBNCNI12JAqr!of6HKw!8(f+Lwo5`_iq@Mp33#a%>Tte6l@0oZ^* zRT67XVFE)0vPcAebZ)@{SV-ce0cK6qZV_Tqxq!uB$ZoN!8URNkaBp#T1_wzzXeQxd z3}6t%-Ke=EMhFAII7n?#PC`&eaUd=$iqRugKxTzH8>Yh;3K0N@LU0ZPHbK6LY6;3F zTyrDkN;Ml|jh=D@$sPjs#8uS-ShS*~hw2zkn!*aOfWWYtTyYkYuMt2=4WR)iNHFuo z6-{FFocNJVqVP@&2oV@9EQmq`CPbu)JadVs0PjFx#7X4@9*d!nt$$TD0r%Hf@yB`y zWgRa}Knx0fh}+^h5Ke%SyC|&~g^{>YL5v)`{wN>9j2Nyd0sH;PBf0E?1@LAAoVVrS zBvzvw45mqMqQywa2FI#dz>S0lZ;rrR$0JHCbr={dhA?gOtQw*_Lm?_cunS6RBIw6u zMKK8|2gMH9W_3M}2-pDLgIX;d3ogKjn#u+iV<8(kt7-%8ier;ltl)6Q7dA-5&;%%j zB3vN1MJt8~<*}?NMvYT`2pcH6a6XLT_+|^7$AxL=1&FnXBHU=iaj(={&xk-NN08Ku zsvHd6IFF2)7S0Uf95WIdCoCW^to+2z#=`(HZaMNEO3V&uM>d< zgaq7caA7%w*#N5rY&Ef}MsG^J+3K+v3)z!fRTp3w$4$Zd&MtOT+}#8QivX+$UFbUy zj{z)%Sqyg%&cfD>cncU3TxjaSni}~}OahLDn;5JXa8Q!Z08%1MD5wOeeM&3|a62A19CZbh&49y}5>B9VrxosnRKk0{959v2zjufg^r@SdxO$4wSFv}g z!iZ+Kk`V^XZxvTJTC?Jti;xy4y`hwyls`pWkJC*Y{^vV!Fq`9UATTkEBNstZk4hL` zo`A$hR6TIi9}yX^r$Agn?F-XXg;$dW8y#>I)Q6eEqn?gE!E@yhiF^l(XVen7$%Lz> z2=MG`{=K)pk}*>R_;_P5X7M!{vMW{nwfLDc}2!KiucUQ%P9h>pULMbp2`$bR*;HV8Tc+|ls-aH{p zf#w`;)pK^KLVX++6ib$1GkGefGTV%}Zo&En<#9BMAvu91uxr9h)(`!8+l;0P%u8&dGv8xW(q-y~bV* zMr}x8R}QzG@n$nx0_ilw&`Gc`a-VNXh=0y8m!=#@QbYWXpoxkP_D)gS#x4hPJ(hwH z9#GN8)5 z40HxO59~%jO&S>ycAru$jj+f}If$g*@H;{!6vNABum-}b8PG?=M*y3Je1j13c&wPP zq7_D9k(2wvT-+inj9VXqAyEd#e2x&{*rUQ13L!^wVU5LAcG6*3jFUX*Qq}0dPE4eQ z7%}UHbOr33v78~6%zO;z65g4!`1Nj1OK8ubbTEH@V zu@TyFSaK8_(#fmr6RIPaRM1GeWEf&w)N0 z?*5}Mkv%46|2FPE>H(;CU_~ryAaRexxgxMiFk~QC#qx`jFP#BZI6MxhOQC9nNjb#> zfkn498&o+sqG=LMg{*{#l`(E5jexx_&Sv-ln?ES}@QFZK%*S_M;(Z?GFNRbYT4rXEMKNdmb|Y5}GpQ2W8! z7gIR4O{g3Ufzjiz27B%Jwk)yW!h#4=@ucvCig7PvD=Ux-38Yp66qrg2mBunFL1w=alYImgbXaG5E0R| zh?^gi!4QjN3oi~8Q4%v{TvxlOO(wseR>NefBRv&W2egRs4R8p3C?Sc57Iwfs3mfsU z5G-G7akmtwAyHJsoPwub9LFiQgCPT^L!?E@h?^f10`Etp#Ol;oX;UmxQB-KlU!I!O z5UI}ea2&}6{EkS;8j@(8z_Jf32s(tQL!qr4b-MEX7Q|4jmf<%jr(%UvdD=8&u%8W` zDzUa?LkK(!H9wZ{X&h07f_)Kek&M|>m77ubwfJPDI@S~K5vYWqG|cP}IUZ&T7=i%< zuh+w|S_BFN4L%s`T*RXSS3oL+XCVH;FhsxvqKVCj5JCoK9!$O5ZKWA7dU^=9E{v`1 zRFM+>50;WBHWsB6U`!Zj7sG-Q@c?%bHyJAeV2~`~S%(xv3OKqj14<@_gD1|LrUbTq z^N0t+gDCN3<@l9%IKBEZkWQwI2Vl3=n$iQ(a zRC17>(F|Op@)ek{E|zntmR2}ZX7Pzgb*iV575H9qycr#BXt>XA7=eXjySY_vz` z9ee?WNuaPIfMtM-PaD{RM-iwjqF9ATf<_QBP`^SF&J$t68IVXJzhaj>YcHuMiBzY0 zQai)%h>i%2*nj1I0v-S+;y8qWD9N~hScWY|V_TMQKSe-5{fy~!{K;_8Lj=al#>ZH% znkfSY#bd(i9=(CvR%~j7g;C5A$6}JkH#|xygM4xUzav0m>j8B|+-km79zvI#|LXMDTU+ zDeYi2K&Cq06K@A7$%O=pBIr;>QUg1ng$D&_vyVrlkJxHMwBxaMEWokH5Lb5ry%2#k z97mv#Zi#8akinWOs@rIZgF7%yMRyb~g?>=6IiB>PNOi&|wKx2Z_=xC;MFd`k!JTQ8 zN7!wMyM_OH0&0|;97Wj$ODRnFJl@GyP>Y?%@|3}lfMONaUig{5V2D5}29vSeCX8UT z@$eL|piAisR-+?oNGZdskwc^J1PzynS#$*KJ+PGpPd6I)kw0Kfjmne}8E{wO;VdQ~ z-L8}}#6<9Lu+i8qx>+bg^nPLzW+4)*O*Vt0Ldi}s9Fs%w6;A|u z43W&Rbr}gXk|S*PVN_yigdAFwV~q_8q{HlZM8OWrp-S~wQv~uXBm!&!6=o1JkTPR2 z!G)->14fU%Is|08l!&s)hheoAnewcU+1P~Dp7CF2V%?PM!}7Rit8m%4PM`RVX1Gf7 z+l6I*@?oYZ6f!iJg+eQ8rdppO1eR<1AIF+1%2Y{6il-d*h#9Q^RXHy4^7sma8*ke( zzKi$Xj+i+ zft&}j%{SZgKTwwJTIXw{mr!J+Ux$^a@yFx8`-I;##>n>JOIKt$7{FhL$eRU0o~cV_9O2 z9|^go>!XFm8oxE)L-&-m>tk_hNq_X5SmU?oe`px9bbYLPtnpj)KlCVAx;|T`EQCHR z;4Si7^gmQbEa}hEjg|4EYHNufP5svRE&3nd#$#ptsBu~2x9ER-%ZeraE&3nomzJ)N z{YGp27X1&~_m-}Y?Lce%*8GnRPgbsvy%&r8*8GoWGJcQ#Y?X*FreFu#;Y(6Z!G=R3 z12*TY{=l4vAH`Wq{Mhoa!Y^K`Tjhe#x%y+X@pl;fJp9-ex1>Kd5iRkf6VDPqT74|> zVtoC4QcRvEV=0i?C!roZ+x$KkTPi(H~p5mh6X9$(HPg?LSNQ<8enz zvdC$8lmy_Cvm5$$pqVEZL7c;FiYE_pDmDf7qe4WIwd3Sh64A z6>CL*^e9@gA6m35*^ey_mh{I~sTF?i4O`+zvyml!oW8cik9HVK{J$&VJU4&AAunt8 z!>+y+{rOsBOZ=!9S>i|IktKed7qG;SR#8j*cpIh_e!O$glKs&9WyyYgsgEW7(Vl6E zpXUcH%pW-GV9kE`4^3IPK6{F-*pKf*vSL3RkF+#@pnKBN{DI~xOY;X_FKB80!1Be? z{DFG2rTK$L6|DFl-+^Gs|FC?vB!m zo~+viZ#FoG!IiA@2JeD6hXVzLBo(0ZaNvk+G7g*|tgIAYU~YR5?OaAXP^^zAu6c+j zW#hSc=p8cl1}xVTlVi|f{ERi{?n znzicGt68UZ&3g4~*K1U}euLVL8aHUvutDP{4I5w7ut~Fq7qw`1QS)Xk{?NQd%jSQ$ zxOvM~7q@KIG`)G#W*0YYp5CxogNEs84bp2jNUK>ptwznXS~Y7(Y3aCNT1}~bO-V|_ z|E1NeUqh-KTyj=B+XR|PMWenydsdM~w`$XS-&aqJZB@I$ z#{J*bk@g+k@cxp=d!213Nuhi%==x?#p|k%!du)E=N8al5Z0Pz%FXetT<@L|DF4{kS zi=;OHZH82O_TMvpz5K1cw$hFbzHE8L(BjYX7u$DF+22h%c=oA!l56gX15bTpi*{O= zza_sVFD*&9uq4$?lNwywzV=f!YF_WFwX)@m9+Fh=-Tf0D>2>Y?e_vNa-!yjJnzQX| z-?nu#As@2K<>PmLAd~XSc_E`hevAfk z_@S;9a-b{pH zjge5!3VaW(C0yj%5Lw{b5VTEsG*a52X%u8@OV?g6==BCoWy<2M1{N7|VDC6H~(-$vS)eA1Y_#K*}8jUnHVxgwGQJt>E}QcvQk6ZIso z7!P!a$&8x%6i`>-$!GGCmb}FCugOc9l|I#eg=a@R3;)5d^tGM#=g?oI1-S3IhrLn! z<@a@ji(H;)vCAX7rqqt^ZLk1%9e(vu?A|Sq7XT)HHh4pS=$pMDXNBN3;Ev=GctidQ z0WYF|#pF}ADgOXyP5GoTd5MpcFL){6kl8UxJt<=)bZr4Wi7$gr)RVj%59ukBc$0TF zbS2C&n!KbnX*e#Emoh7Ts{Ja3UuCRQmp?D=#kT2Fmq@=0Uz5+5fYG=_Xb=G5p)=oym}rJlrZgHDt~UXF)4P$u!FKHH!x;n)}j zFKJC0j?3hw%u1hXze?d(x$7G4-zDw^VvU@0cq5)s#+=-Bgo|ApqG8tt`Q+qB@f


    0CNJ@( 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

    #W~-L?Bu3 zfI%nI1#cchp}eg^b^K9OenuWBAy?cm^n>!Y3@8yly8*=%WG16aV=c7!EAc zumRyyyQ=JYfMUo|#w)%`^DPVWM&X4L zY%h#&tdeik`Dd=IQOdZeRp;W9{frC~l$An(mS(d#h($4+C~}aIV`#X@z_3JIy+tQl z&{~**!NH56C(_4Z+N$Y5$JT=!4Gj2gjLip97rP$txU+4)mf!_wz^gMlFfyFm;NAAh zw!gtnKH-i39_3~E@w>#8O?Xdy`K2Go`SUXq6KbeRL!7u#m>KTGZhc(|m)R#DY!F<; z)v&phg=3M;g40z`JC$a0sv1Zd3%~pUbOku<7VIvxJ#eMS_SWn?aM%HbB?TwiPY)Dg Ll$zdU!T1jVPA)=6 diff --git a/docs/base/@vl2/shapes.vl2/shapes/energy_bolt.glb b/docs/base/@vl2/shapes.vl2/shapes/energy_bolt.glb index c0fb0134a786922ff619e1d834b4d7e689c2f5e5..e812b33a0ecf1c43d14fd9ddeb1c769c8c01d918 100644 GIT binary patch literal 55620 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 delta 1413 zcmbW0e^69a6vxkfZ-2S(u`Ie_%FkJFmZ25*vCD$X3X6cL0n4l!wEPgzCFMst$tJiU zn>CV7f_l}mA;Od-NW(V6AF#U`V(ApvOjt4oQZg(}x>5u;C&iirhx#x4= z{ho7P&qs9Q63O#r%NJ1q&=?L75qM0pok219OD0^Rtx?+KYhPGzt&r=uhb|QBxa9L3 zAK#eq3%@3hEMq)V7Z|6MXBbWCNojK3e5HJOYId^GXi8bBB9sanWbr5(SIf+Q0Z9S6 zV2=BT;G+M9s2?I~f+Wx4G)j4SVTI+zwS{GJ9f>Sox7s4tX=-px@EjE9$PFH&9OY4B zL}@hm{rHnegAE~3-bqu)JbYH~k4ud#Hp|1XJw}Lcr|a>4udN8gs<3?ghH(w0)?$>Y zltpXEmx`(?EXLyE4HlwT6RpC#assETiMYr8S}pd=48#+wq%@~i5qmC=Q)}b!%gdBJ zE=H>&MgR`8`0=>dm}orT5+o+eBvqlI*&79*8rllfE1VG=KaC)c|!_K|?DOJ1Ww9gI@C*POM9Y>Fu<*+@|&{=fA|ru6Vor~rnq?+)7H z9LPiVdyVpXVDkkCUI=z>lyDHS=>T7jNX-*P|eI?9y$z^zFoo{=EN%je~ zZgfcPU1=iw(gV#mQ;JxNWU2xqjuqXzwLuA|mt1tVwwEV*`>Gb004o}yQiX*YVTEbb zDw~-{Q$H{I;&Xe0;ZXf=U0ZLnjfs7e3bDbc7u<=BR(w{{_$fQ%`s@od3xeOxxvrPy z=+eHMeDd09SBCmo+lQAA?Kn91R_}ebzk%C6xWBIM%p^Rx9-HgZE5sdz`a7#Kb81~I zwM#PC)fM2W{kwZfk$u8ag-FVYcLcL~Q`X1_bx;4)t4_piX6v_WvYJE?IStZJE!$Le zwB@h^?OXuH<~@C%s3xv_t)L)clhA%soZl1*efygF1%@%wMy7XiUamra0;V$3YXATM diff --git a/docs/base/@vl2/shapes.vl2/shapes/flag.glb b/docs/base/@vl2/shapes.vl2/shapes/flag.glb index 5d61b4a1ee6dbed538a525ef456c057e29ba89fa..2a753551272477d3bb1f58c62be3bc7164f114a1 100644 GIT binary patch literal 27220 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 ZtB!s3_B=pAa6D~xjp=3I9G3Bq5dheZ437W+ diff --git a/docs/base/@vl2/shapes.vl2/shapes/gravemarker_1.glb b/docs/base/@vl2/shapes.vl2/shapes/gravemarker_1.glb index 7105792df222d86db5fdedbb1bc2164d45ec90ea..aecb7f1adbf6bbfc895d4f1dc93d98b5f2662293 100644 GIT binary patch delta 17979 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 delta 1028 zcmZ9KOGs2v7{|}OcXWo)=9Pvr&wM1~9i98~&O=AdG*HwD8%?3|F>0wT6ou3f#Uvpy zojz(2p-52HB8-tTDl-bfjoY$KS`pTwT!g7m)0q*O(Z%6#&iDPk|Ns0s>nr5YJfXO7 z$#arK2uW%Y+RA&P_@O0*EZET|lY;1fp-Yf~%Bp~msjDEj#=%)Lt!D*GQn|aL?09LC zlg+Xud5Wq}xZM?nwG2MP80{h~z*-aGwbe|rHu%IOLVkJ<$kP<6{mmQ$<8(HxnF~pd z1sz>w;JEN;jz7>X1iMKwJUj%^;Ihzq4*S^i#EAz$=*Y|=Z4sOuWEoh@5oUO1Kf|*j zF?$%|IrxVm9=qBT;&Bj>kLR;OkRt*TF+_vWN*j1v1ZY11I)Wg@GGS6+FqsZ<3~dnD zFe%`GA|(ZWmt-SI0Y{!q3O2uvbw&B_mdNBV>ombTPZ9jaySdT`i`hp(Q?&@aRVrAo zGJ>&QLt^*!H99y|uc2&qJ51GR&OV<*l+ohy8<@smyIp>w^*yOTvDxZq7ehS>d?+%ZG-}O2u+^9HNU(m%Rgg2 zoI4RXl&?S(fnum7b$^Ur8WflQHA-(3*Ue^>4N$RLtx+4dBNNc?R(R8llKek*p AF#rGn diff --git a/docs/base/@vl2/shapes.vl2/shapes/grenade.glb b/docs/base/@vl2/shapes.vl2/shapes/grenade.glb index 64c8c3346c8210bfe8d897ba90423d2d73da32a3..ef4456d00a272d11a73afe63780ad1fbe048178d 100644 GIT binary patch delta 291 zcmcbRwIYu%JtxGCiGhJZ!<>PkM{y$`JCkr(W^sIWYGqncVs2`2d`U)8e);76jFN0n z<~cS+P6$)U%3uQyZs~7^A}G?} OW4N8fHZM@@5Cs5m3lmcS diff --git a/docs/base/@vl2/shapes.vl2/shapes/grenade_flare.glb b/docs/base/@vl2/shapes.vl2/shapes/grenade_flare.glb index 7aac23c621426b150a6ffc87981e44f02b63337f..f8d8ba225cbd472baf1771dad61acb8d90f6c204 100644 GIT binary patch delta 538 zcmZ2*i1ERBM!xi%5H}_U28IXe3=B6MHuAAC372IS$7iQjrWGaTrWVJSWEAC>PZs2q zWP>u#vMF*xm`YX#lmD|QY&K#tXCz%$J98Cjx;Fo3;U>d%8tnFD=xXI$&Mb}^5-F(# zIr)`JR?(Xox$iSh;?|h_fQO$w9wI#X0l$JNl&xfCsH23c7aWQ}tp<8V1`uFmX<=Yw yY-D6I`3#RT?y&XZz04$nY8J%8&C~fj8If&QB5eEQ`Fx_25Aw_7w$57MX#fEHY`+Hp delta 80 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 pJ1=`Wf`85MuQ~p;z`w)ruOIwLB-%g1{Ebf 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 diff --git a/docs/base/@vl2/shapes.vl2/shapes/light_male.glb b/docs/base/@vl2/shapes.vl2/shapes/light_male.glb index 2569d416e1734e8f83d0fcfd9b510ecea09ca870..6c7f2c9816c01b4a6b81e2d1fe8a198068eb0a46 100644 GIT binary patch delta 51253 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 F0{|rogsT7m delta 44619 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 delta 42435 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 delta 34 qcmaF!j`6`;M&9(C5H}_U28IV^3=9PudDkm!c2_*1y;;CFMhgJtYz!R$ diff --git a/docs/base/@vl2/shapes.vl2/shapes/mortar_explosion.glb b/docs/base/@vl2/shapes.vl2/shapes/mortar_explosion.glb index 6232629d2047204ebe1d13658c1359615b45ab6c..5a0b30b112824f63ac70fb1c1ef7d60938ef4032 100644 GIT binary patch literal 131228 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 E1A?B;`~Uy| delta 2035 zcmeHHeN0?l%l9>GY%uI0RVg;L*`O_Pl|GWUR%^2uv}FbBoGw>s{$^Hd zvl337jW~jquKx|6kZMz}yo1l2kI$OJ8}GtTugE6piBkD|97kAn4l+@k6LTgqVu(i# zq=D6A&Kl@u-#~#aB?=UHt5S@}qum0+wh99}Um_wSJrbfZrI1&83dncV-|R^uspe!7 zIBH|e#!Pbc=<+z~4caH_Yqz_0?5NpZtF=V}v2UvX9LTg-X&^Cy|= zG*YLs*Q#JJ1S!6oo>1n_q%~ckus`(N@g(dBP5AW+xOKi>lPcGwDsGH!T~eq}U#z*& zTcatIYu=}etxb_u0QlT?e;QJHfI%Qu+oSE#jBkbTY?r^UKbE+|0YQ&^+r=NSztJ(=pr9gRIAgM~fw#?$zue)(bj?X?lN1@_0JT z>_(y^s9tn(`Uz$8x6Ns>Xy}^u6>5FiFXmS>a^ul*Ofv?{CXJN?MO@l?-)S$ z;iAz~9u%1g6zWzcFm-`Qmkp51L9?|3#>0?^((jI<|{c(fP& E3O*2<^8f$< diff --git a/docs/base/@vl2/shapes.vl2/shapes/nexus_effect.glb b/docs/base/@vl2/shapes.vl2/shapes/nexus_effect.glb index bb93c04c1ff2107661b500ce13187b48c014c422..8ff6329f8fbc90f8352a1d2d69726ffc1b414aa5 100644 GIT binary patch delta 1823 zcmeH`y>1gh5XUbG9}$u*M1iO+8c-C?%+BoW<^fQ8=ptlUCIKrZk?erv%1ufd z0dyT5J@3E^@DTj>Y!W+>kf4i{>h69wGy5^~`*nQ!d9D3+`0B-aRaK|ERrMo(Z6Drw z@^LWk9_~*LM!om@SfK;+Zl|+#&aO4Ok$ReMzMu~w% ztU%U)9AeHwSyC>Hh!Wo2&65WU)}*tjFut?JjOV3^cNh1EOTj6KiGw&!#WIiUPg?!q zpnnlIJKy|NZ`?iGxNYFgY+!x9`Rytg zV+>#jiJr_%jJUjknL|8t&H*B(P@HrQVG6G-c!;n|!BUYM6P?smp(PLooKanh9fE~R zR56jE{bdxSy^5lgC<%!?qX6>Yz!fru?aPSDCa~>mj8}^_aS&=XPXAfI_T;*LKU>dl UJJ_`Trgm`lsD51UKKs)C4U`Pc6#xJL delta 60 zcmZpf$oM9oFFhy3jfsJQ;f*;1gNf!wzHFAwi#b$SCNJjb+FUKD2VsOsX#s_mY{i)r L6gEGwT*3zcIeZfV diff --git a/docs/base/@vl2/shapes.vl2/shapes/nexusbase.glb b/docs/base/@vl2/shapes.vl2/shapes/nexusbase.glb index f4ae26c0537022ada91863f4dbdde5534f9be7e9..0187fa25602566baa5a94ca7cc3123c81f7e22d2 100644 GIT binary patch delta 1080 zcmb`EO)mpM7{}LAEkY!9Xh^8WfoNo&XWko$h{Qo8E`ktg7DaouJ0X=i@3|KH5~=jPTue{AmB+MS#osQ>abYJ z?-Y(U%idn0lCPG%Ql(fe?w5i~cg2l2fdASubo^y8lVjP;_vGfTSJ}?wR$z=}*_e@r zaj8%+)F=@NX^^0eQbt%~Em}fSBS#P*tk9BKLr9<%N}yqiNe&7WF{BjJ#~>6c4u~>@ zAUI_hfJJ7}*pM;C42`vx+GsAhti=HZ0?n;dmcDhRur-DNMlmHdrMa&Cr@k5mos=>m zTmRUGuJsOyg%{CvT_YM2^Gy~K`>6_3tMvjm4$59wcfQu2{}fNR)rVBEKj{qyOR+mQ z`AgNoRjX}k{UeqRrV`1HA8+gJtrZKUD!q|^zu4o?EvJIn_PazP-&pYP`9R0}B$ET$ zJ{?q(r|nUAditLt@$`+nMB>Sc=SV!ciC82(ug+XV;^|ya|Mdiu-o$WIIygDI>3sum CD_Z0L delta 112 zcmbR6g89G+CcgBX5H}_U1_p;E3=BD)8~L?H^hejfJ$B5YO63K3b$QBGrXz|8|v06-`w3IG5A diff --git a/docs/base/@vl2/shapes.vl2/shapes/nexuscap.glb b/docs/base/@vl2/shapes.vl2/shapes/nexuscap.glb index 6c7659e8c218b0ad727eba79918014c4be608a9a..d149c7a73c07f7c08c998713737abd8de662daa3 100644 GIT binary patch delta 1416 zcmbW0ziU%b6vso7lA79Vis0ZQI5>oI&$&O&y%~$R2?eDfrG%KK8cZW3QONYb-JxW3 zba4_SyA(li?0?`t;OZg;{oW*P^C}L$>Am}T=X>rw-|v0jPKzf$OSNbH#}A5yLgD0B zq444Rr`qY-t=GL#>qU2RIBXwvN3HR&Js9=Iy_bX8c4@CzS%T?i^=`WIvEEdTdRBSZ zZ;zhWn|rjS8fwd1ue5b+6boBsAR$ZQo%1I65I6u?Va;U71S3`j4`etPXV@#JtR_be zjGi!_S>JWueX+~>2Y#r<9tzX(meWWH@{Z%ir@c8@^4&iT+c5yQqC{l g-EQU=e|&hHU%daMl3)Dh;LE*Ik|eYHZ_Bs;0G&CcB>(^b delta 151 zcmX@`mHEU4CcgBX5H}_U1_qB63=9Un8~HAweGMv0nLveG3qy!5Uj9D+cni|GbDiu+~7%uf`u>hU) BaEAZ@ delta 61 zcmZozz_g%~i7!1T#Epr8fnh-l1H+G$jeOpclbKEAHwVZ_uz(ry%Bvv^M(rX9Bg<%7 FEC40&5y$`l diff --git a/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_repair.glb b/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_repair.glb index de9e8935b3626490b7518afe94d6fc1fd7f7129c..8184c6d010ffc4d29cca71cc2a9b5c6c921f82ac 100644 GIT binary patch delta 225 zcmaEJg>l9`M!xi%5H}_U1_p_I1_qsgjeIo7@!6@BX+?>-sm1YWnMJ9SzY4!* qg|Hro$g_i4N>-B@1r#@1h&C{hrsJCUB@%TUlL}@g%?@)pQy&1JBvHu# delta 61 zcmbPnkMYeFM!xi%5H}_U28Nt028IUjjeIz4&2F<#fQKFc3AhY` diff --git a/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_sensorjammer.glb b/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_sensorjammer.glb index c9e9a48f76d408a82094ccc3b23de91efd880419..a403f1d241ffd954c1c9ef02f67f58ead605b15c 100644 GIT binary patch delta 189 zcmX@Hobkh2M!xi%5H}_U28It|3=BHf8~Gghg~~FE#| diff --git a/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_shield.glb b/docs/base/@vl2/shapes.vl2/shapes/pack_upgrade_shield.glb index eb6789abc5939d22de767d315a321a2b84a82004..208a64456077ce36de928ab0104e36df33f9ea0b 100644 GIT binary patch delta 76 zcmaE`j&Z^UM!xi%5H}_U1_pr$1_l=EjeJHTLS>o7@!6@BX+?>-sm1YWnMJ9SrwQk? YLRhRK3LIdTl9l1)MoxvzaUx940D3MLO8@`> delta 34 qcmbQRf$_mQM!xi%5H}_U28M)i28Ix;jeJHTlbbo^HuH%xIRgN&UI_32 diff --git a/docs/base/@vl2/shapes.vl2/shapes/repair_kit.glb b/docs/base/@vl2/shapes.vl2/shapes/repair_kit.glb index eb8efdceeda62097fca8d0730a81a1c0065c3cf1..a478376ec5dbd7f06489dca1327a147850a3e178 100644 GIT binary patch literal 63528 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 delta 49 zcmewm)f3K_o)hB6#K6GNqs_q3BDayRo@w%DZn@3#n72U~sqEsCObQB{YZSil004tl B4~_r; diff --git a/docs/base/@vl2/shapes.vl2/shapes/sensor_pulse_large.glb b/docs/base/@vl2/shapes.vl2/shapes/sensor_pulse_large.glb index 1a0fa8e8ee8ee31d396ae1123c195d2e09fe23fc..f2d688827ee3fb70c9802862e7294813d3cadad0 100644 GIT binary patch delta 783 zcmaFxg>l9|M!xi%5H}_U1_p_G28JH%jeI&x5@ngi@!6@BX+?>-sm1X?US?8ePG(8v z0oh#M0F0|QSo1H&5SjeI&x5@ngi@!6@BX+?>-sm1X?US?8ePG(8v z;g+{k=ARwX_pzLJ%}h#M0F14Bgu1A~O(Mm`;;$q#uYHXmSG%LrmjKETAb`6o*Vf^(CN W5zN_~z_A@6x|k~t!Rh6x4+8-FFHc!fwqJca8hH{_}4e98@3Byq?J06;C)lmGw# delta 97 zcmX@Jmhs6lM!xi%5H}_U28NVi1_l2z5ZDu8Y<|7!M@oLl|5#hpYgBxE*!? diff --git a/docs/base/@vl2/shapes.vl2/shapes/station_generator_large.glb b/docs/base/@vl2/shapes.vl2/shapes/station_generator_large.glb index 428dc0ff6625bc8c06d61a7256d5727ef3674074..fe150266f4d5867571f1f8e6f85d7946f0cf84e1 100644 GIT binary patch delta 1366 zcmX@IhI!9y7QXbH5H}_U28KPnj0`KTY~<5qk|@h8j?Yf5Oe;#vO)ZWG@-mY$b23XR zCo{53awGE{xE1-3_)1m=lLgfkHit6xFj8oU;wF~ml$xQi`6%mj$_=Sv-$S_}A)I=Y zhwB1vL&^<#&&$M2VdN-m<`;CJ+>l(6I#yxSv{sN`o?5hdp(sBKTRfOO*)c+%6T(!o zG6bhCPN`2=wM{N`m7MILBeOYAItZtB#m!O*KiRO_TIkx0UE5|sbt!hzv;ZBdxY$b% zt1cqlnQ6*MiS|yLBP4ngDmB`B2v0LNe9;Q#;t delta 205 zcmdlpo8`zFX1?^C5H}_U1_qaF3=9TyH}YvRO%_s;+kA+rhjFsgRQb)fSe7$_MR?e! zLl}CTdmxNbZas)%Jw8JS#2xD%&8$?Y=_Z-&EPE*f9oH1*-sm1X?US?8ePG(8v z(J~WTeOtTaNn8UBX`|3J-A1%oVF+6Gx5S#N?99vc!^9!_61;(ipko;rz+BWfXW3 zTv+5<$tvLq5k^I#Qb@JpBRnBOq#-rR9e6^7C_|JstElx-WXR_A8fPi>iqhseTJM-} n#mnSaowtOdMQQUY-7`2%ASz~+HcvCKGhtRxP}qDWWsMyGkoSrp delta 157 zcmX?ci>cu_6JL5xh#M0F14F}N28IJE8~Ku$CO_tt-~5NkgBi@Yz~;#`dA4ZnW@fHp z=FN|Jud#rIU4>sVZk{b#2vIacvW^Wb{8~{7B0p2@5hGZHU9$sXqO?vQgkh?`1|pSf W_#Ps%!}KhK5oKj>vUyJ48an_DPCRP> diff --git a/docs/base/@vl2/shapes.vl2/shapes/station_inv_mpb.glb b/docs/base/@vl2/shapes.vl2/shapes/station_inv_mpb.glb index 2c775e45e6bececb557f7c3a8a34f11f0eca4bf7..994279158f3c35a86d8904046bb3599b046c55fb 100644 GIT binary patch delta 220 zcmZojSdzh)o)hB6#K6FyV#2^+qqdQ+hefrxb#nc&-xZwJr?cO?9*{-$7Ve*!Zk`(2AeN%#z-(K KY}Qe_!V3T*WKI(R delta 55 zcmZ3I(U8EGo)hB6!~g^a3=9%V8~J)zCSPKd->k!y%mik<=9~^;i11lUYz|Pn!V3Ve CFc5A4 diff --git a/docs/base/@vl2/shapes.vl2/shapes/station_teleport.glb b/docs/base/@vl2/shapes.vl2/shapes/station_teleport.glb index aa6f0da015cc6be1139e86a65c55b8e62ca9b393..d77bfc638c1eb6f7e3af9fad5cdacb555635bce6 100644 GIT binary patch delta 727 zcmX?5b)tijFFhy3jfsJQ!NY}tfkSU2pDUA1S!Qv3c4}o>QDSataXgThnUtB6SyHKF z6>X?zpaaCQI!Yi#DWye;C7JnoNNOevGAZ&Q@s+F$HU}~l5H!?)L_;SBGD&Z~#iE7R zV4$HSyB2J)EcZ*Vy%nt!|aW)XEAF#sJ{{|5j7 delta 81 zcmX@n!FZsGFFhy3jfsJQ!NC?tsBh$RW!ijzDUWIL0Vc`KTUfOqj1-RD5QZx6EC}PU T;5-N;RcyOBqrzrsJzX&X_uLsa diff --git a/docs/base/@vl2/shapes.vl2/shapes/switch.glb b/docs/base/@vl2/shapes.vl2/shapes/switch.glb index 6ae1557b93ddfba3d070100a9bffb9af8b5c90a4..59f6f105140db56dc9c6e4d1b08c03c994f2f867 100644 GIT binary patch delta 155 zcmaE|lWEC8CcgBX5H}_U28JaI7#QZ{ZsdC_AX=7L9G{(9nO2mTn_3*7n46TDnpd(} pL1{W82aGp)zPRY*Gs;}tFaaei!^whdikqbbZwXOkfUwHN3IO47HsSyP delta 43 wcmZ2-km<=zCcgBX5H}_U28Jhd7#QwkZsdC_Fj<&Qe)BJ(TS8#QW%Y{{09r*5JOBUy diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_bd.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_bd.glb index fbbb83e0d0650941a563b65f85986c0c4d1d9269..697d050e0ee0271dfcd800202fb99cbed01cad0d 100644 GIT binary patch delta 96 zcmbQ?*$~E;o)hB6!~g`^3=9qu8~MJnOO$06$7iQjrWGaTrWVI1<|bvP=9MT}MNdv- nnlo9RY3Js@Oea}5U=ov$vCDJAI7(KAn;AJ?a&CSjxJC#7;npEA delta 36 scmZn&o8ifqo)hB6#K6EXLxq9ihTulNuk4$1`JQt!DJX0Xkys-H0L5<#(f|Me diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_be.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_be.glb index 0fbce2dfb51a327912ece2189b61799b8b0c2b8b..10e8fd2cfd7c729adc5fe094f22ecbb591d7eebe 100644 GIT binary patch delta 98 zcmZ4EG9!>LJtxGCiGhJ(h6V$}3Gt15U)d$fGK=H0Q!CSo5_40F;}dg}GE?(Pl&qpB rCo;{MEYGxa^IxWuEF3V2$;a5`xnUe7E5pr<9QmA#3Y+r<_X+?2gDxSb delta 33 pcmbOcxWo)hB6#K6G7qQ$@vAhD6}E4xHlW^sIWYGqncVs2`2d}3}=W@=uEl2!EN oM5Z~D<(YPF{>yZdg##ur`53!AH;kiXWw@D<<0t3lKY|Mc0qNHvS^xk5 delta 35 rcmZn(nd8ovo)hB6#K6EXN11`)h2TcMuk4$1`Mz^9Dr`=cSSSbpzIO`S diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_hb.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_hb.glb index 4b13f3df01c14447b71df2ad8ae5455b88bb6d5c..18e15b553158393c68aec5881670d7d6642752bc 100644 GIT binary patch delta 99 zcmX@&u_2T%JtxGCiGhJ(gBAmWg~Ud_uj~?KnZ@zhsg-F(iMgr8@rk)fnW=dtN>t0syS03NQcw diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_inf.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_inf.glb index 04f115ddc304b8224b1649b6b28262b4d567c42a..8b351a1c709b97c3f3f7d14f8403d13877d18c04 100644 GIT binary patch delta 96 zcmdlHxFC)%JtxGCiGhJZL7#!aM`9!2S9XcA%;Na$)XKD?#N5>4_{7|#%+$ORC9CMk piA-}Q%QNlV{Fmt@3kOVM@-cRKZWu?&%5XCy$5+nHKLihm0RRt?A>aT2 delta 35 rcmZ1ww?8Yy6#z1) B43hu= diff --git a/docs/base/@vl2/shapes.vl2/shapes/teamlogo_storm.glb b/docs/base/@vl2/shapes.vl2/shapes/teamlogo_storm.glb index d070091338d7e227cc2afee4a63efa90132b3bcb..3141f3cd11ed05ad6b5e91efc8759f306f3ef724 100644 GIT binary patch delta 99 zcmZ4B+7rZ=o)hB6#K6G7qshQ4_{7|#%+$ORC9CMk riA-}Q%QNlV{Fmt@3kOVM@-cRKZWu?&%5XCyM?NQ$g2LtkK?6YmYiA&w delta 33 pcmeAPTHwl;o)hB6#K6F?K#74NMsOqFSN6@he7T&P?}!@+0sx`93AO+L diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_aa_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_aa_large.glb index e439760684812e1c40ad2707a3b59008f6da718b..860d33f741a13b997c6b99837e516646570e6aba 100644 GIT binary patch delta 849 zcmeyfifP7HCcgBX5H}_U28J247#LOrY~)+dBvF=G9G{(9nO2mTn_3(Xu!#kU#8a@E8&&N|bk=ap_QG$YufF z5@w16b&-G?9#;?$pk~B@5xI+%xO_t#I$*`Dr+eKxMw8l diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_assaulttank_mortar.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_assaulttank_mortar.glb index fc920d21b8024d121ffc8aad9a0871707840c57f..aaf38662c1fc9df9f3a8ef9615f4fe646128006b 100644 GIT binary patch delta 261 zcmex!mvP5KM!xi%5H}_U28JC43=D64Hu8Po5G~6rj?Yf5Oe;#vO)ZX3%PdNbFUy=f rheL@I#wnh>k3$iOcYsZ4voz-!Ml!XsaDOLPs|4>kakAtS|xB(uz?%n(N-#m$OrDwKOCnWF@cA&Ejn zg~?a0xy-o3gh)d+@Hyjg3E|k;{88XEoNArtYMv>`FHbF+EFkO177t+t$|`U|m`YZLV5?WlE~ni61@d1hH>6qd z6Xk|XR(?mhA@fz=Q*Ou_bx|^++ztLv zc;_;MMeGEfAtF2?t0B6a#IhkG7Lp4fBFWNoAdD{Ag%HLz`OgqFKFZ4> zB6X@?A&h_OpCF8Ct#=T{7oGPIMxMSXM3IWB=P+?>Bb7$;nzYW}$YV%(hUbr2%F!Dn5>=7gnFf&oSXbb%wO^z4W hV1qK-#T7UqOeHJB%?HIVFp{KW@JtLUWA=Ob004Br@(*OVf diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_elf_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_elf_large.glb index fe0b1a0fc136756352ee7977a4284140bcc9f4e9..09c66c3b432bf6ab614adcb396dfaa714411cc56 100644 GIT binary patch delta 1677 zcmZpf!?I@s3txIph#M0F1A~nOBg39K8~JLPB+4?2a0V#A@^NXPXGX1ifgd| delta 233 zcmdn9fu&^*3txIph#M0F0|N^mBSXuijeNCClQ#*d`7VLSmWIg zU5m|BAdDbOGYCW2W(7ozo1Hd90Cjb^8PRalP diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_fusion_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_fusion_large.glb index 6c75f7d41f15e1fbb7df078fe4ce494edb25c5b1..fe3ca86bb1fc2ed0a2d5b2a7967b413807c53c43 100644 GIT binary patch delta 656 zcmX@{k8wjQ6JL5xh#M0F1H*Y|1i=r%BVT$>h#M0F1A|9B14D}KMm}ez$%{DUHs4_qgD`4YeVI3#b1s1Jl6Yhx Z3@-ky5Qdjf5`N_l!0_Z41H*^HjeKl;!eyDo@!6@BX+?>-sm1XH`Q@oaoA>ib lF|t9}lh<>JPJYMB#R=gmSs6}dN_lz|e7&fniF)Mm{#a$;_N`oBR1olQuIKJq!T=@J0-7 diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_indoor_deployf.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_indoor_deployf.glb index 05c1a83c78b5537e6f1e88785b9f096ce806ebdc..ab263d9a3b57dd148709fab3dce82130238398e4 100644 GIT binary patch delta 85 zcmbQy#r&m*nJ+yj#Epr8fuZCW1H+oajeLH5!eyDo@!6@BX+?>-sm1XH`Q@oao7s7# h7}+4~$%=gPoDimxmEq)rf(o0f_+BP%PAS+D0sz7K9lrno delta 41 xcmey;!#tylnJ+yj#Epr8fkEOZ14BT;Mm|5j$(v>6Hecs|naHTH`9R^85C9U~4o?68 diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_indoor_deployw.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_indoor_deployw.glb index f64255a7eff33da76442b1653ec2c54733545ca2..491a56d2e3a8041dbccd3ea3d35f118e9fc383b0 100644 GIT binary patch delta 89 zcmdn7nt94PX1?^C5H}_U1_qJq3=9U98~L21h08LFdlVAEE#N delta 39 vcmbQTj(NvwX1?^C5H}_U28JD185pjVZ{%~5p1hb{Zu4oG%9zd0l^0_H52X%- diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_missile_large.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_missile_large.glb index 59b0a24bc64cf7a8771b9d5d2e391635c61c53cf..b9b0808b4059b09569457e284fdff8264714750b 100644 GIT binary patch delta 718 zcmZ26m+8$?CcgBX5H}_U28K727#J*^H}csrOO$06$7iQjrWGaTrWVHod6`L>IhiGu zlRq*^awGE{SQYt@_)1m=lN(qSHfJ$QFi~R2<_1=L2K4a}<%(_W>nU;t*elIkUl=Lz z3fPdTJRx{oLZo-t`HLtwWV&D-9z%$XUSknyJcbbIogA@SlpB&FxkQywVKck^LVo~f CjRyz- delta 116 zcmaE}lxf9WCcgBX5H}_U28I=V3=CiFHuBjqPga(a+kBl_f(gv1V*9}eX8h$?4-qlv q`2rEy#uow+nJQQWVN4RKgD_@`OEYa&mihtVEt6fMy4lBhfjIhiGu zlNWMHawGE-nH2eu_)1m=n-?-YqRfCs)`xfum?%TY1(O#tDQs@wsKH|hVQ+v9k>XaO z+>j_<1w4ij>75z;jLek83fMc_g>>+^gm9Q_ekhVhxhrxd3@LI2*eiRa4Dc92M4&dZ zDsJYMjiJmtAVb;|DD)1Uns6k;$1sU={D~lqpfL)TQ zmq@vHUK(Ul?vg?iJ<46O&&-c9mw-w%Evr<@Tmmv=t<45Jh7gf&K!#M?e`KM!FzRwq z!{ZVnQY^?N=iJ2c7(%3Xm_6}DF_DJ&doRP|5+c1L>?e=M5F%X?5U_x9L->MU#Bctw HX-WnF2{{KK delta 295 zcmca`fu(0V3txIph#M0F14EBABg2zT8~LU(O>S0|+pNcY2*i-zT*Gz%B66Iw2EsVU zqXc18^D96YYC??6U|pL;bs!>{5`GX7CmBPC$Uiv)5JP_RF2xw;&CRL-5MI1SE=ZyL z<_I0IVe*?<^r4ImhFK7)Wu}P`#gi>EAtD_%dQ6*@?ZH~*HcLCFg5>2kbGvPTFx)&p yvVcVn`KdufiUY+V4ABrh2;*GXG6>^;q&$SNGG+mUaV7pmJd=XL<~{qTWB>s3yJkuN diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_outdoor_deploy.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_outdoor_deploy.glb index 84451d3db3fba83ab2439057542c833d195271a9..05b17620f809e02a7b0eb673c6eaf6070c1b2d75 100644 GIT binary patch delta 85 zcmX?do_WC~X1?^C5H}_U1_p(f3=Dg!H}dt!3zuaU$7iQjrWGaTrWVH+%wZFZHD hVq}A`C&$anb3&L(R)&)kWfV8>l;0J#xuhx}7Xbf|9*qD1 delta 39 vcmZ2*iTTKRX1?^C5H}_U28JWg85k0(HuCkzPfnJR-z=uMD{Axk>cCt87Q+r= diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_sentry.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_sentry.glb index e8db6747beb28fa9754aa82562acdaafe0834580..99d81f03eee5bed0d0d687a0eed5abe0b64cb816 100644 GIT binary patch delta 2669 zcmaDcllj6vX1?^C5H}_U28Mw93=9S{Hu6nl5-H0pj?Yf5Oe;#vO)ZX3Nz6@5Pn|rE z%a$F+Zj@GFgRmzXN(=MH12tqOW#(j-R4Q3T8%{3J6tzMTGte_I1_Bc!OG`^5LrV)w z6B8XJkS)oT$vK(HsA?w*vMX#p#PphRFu3D1i^o8R$7Vrx?tyj#I8LlM?+uDLG2>p& zJQ&i(Z$6em;SO0LmqFo$=)#e2FBlM6mKsbx$VPEl8m*j; zBVOq1jt80x2Ss?y*TGfC(KkGT^}pjNPwDH948w>)5ij?QmkbJbEHJAb6z;ILJUuAf kp<+{w!yRaCLM~|gP|3;w*kF*_yxmUKol#-)omL)q0F!Wm_W%F@ delta 198 zcmcbxkNL$+X1?^C5H}_U28I`B7#L2pZseQBG`U$sZu4g5*Nl^sZR9tvV{?ayuy6rI zKvMsB?m-x@`Ij?qZWd8u1`BVIaDgz`W$oF(BB3ffS-=cgtu7|8VcT`n*uV^3(*+Qb zyB1TKHYeMNLUO7x^H%w!Q&19kQhci diff --git a/docs/base/@vl2/shapes.vl2/shapes/turret_tank_barrelchain.glb b/docs/base/@vl2/shapes.vl2/shapes/turret_tank_barrelchain.glb index bda4fba990c2091bbd8db9b530377259956c1865..2b52820909dd22cc3383b9962c813f30dfc5f65c 100644 GIT binary patch delta 204 zcmZojJ(JFto)hB6#K6FC#+ZTOhT2BH0Cv%`%;Na$)XKD?#N5>4__WNT)cCT@$$!|C wIANUP$#U$9JaC?pmBHp1c13Fi++GPUmJej>Sff$9Su0MY$P@Bjb+ delta 51 zcmX?;-jK?do)hB6#K6GNV8p=Cqq>nVfPHc@m;B~8>>Ny+lexs1z&sA#Cz6|At3Bia E0D;sGtN;K2 diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_bomber.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_bomber.glb index ef5625c046810a4017375c8d37678e55f01e281d..b816fe4cd580b6c538af8c99ef85c1ad32e90ecb 100644 GIT binary patch literal 110848 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 delta 1737 zcmdT^|4$ob7=Q1sP@toLT6Cqftg=8xCwJGQcQ?p{QO1I7I2^;c2#k#~0|s%ZGYsa6 zB9m_`j|6@&jyYTmhQPcj8Xc)I!yhCXf6zpd!Gx+4jq5ZT8QJi;s|?mZz{LLW-t&Ck z=ks|#&vWnfrTIwzFO0Fae&0@-5aR!nkl}#~#u+P|OY2dtZ@NY+=hB*J_#@h;1RdXn zf`fdWPD6&|h7dBheJ_KIZpBqlLc^h|6s5Ar5JEnC^otOZw*QS#FnGXBD~GBYbd(H@ zHL0{L1LrA)vBS}@zs5|l5aZd5E9-d-7He!Y%Y(s_O0!O^dY)#5P?m++0oYP&rdd}A z5tR>*=*^IM%m`n%Ex?{G6C8il0n;xV;~n;W1&`;Kl$5$FS^G9u7Hsn7P%b#zoKL%4 zP~1^&b%_r9o|4ktdBwOdh1JVyJq$IwX_1A(Q{|BJO1P%z)HEecQxt%DJp-P8&0!U@ z)^tVJ-MXTvapd)!Bb~^>^H;ry^4%PXMNT%w!^u`REpfp0CSs>~$r8WDk(^;1@V$_O zlpCGyP`epW-Q%!I>#Rv()+E(hHqG;@H^}ULKpUsfhpctxq%d=`W{&2ap^ns9WdI8f ztIVyrlhNt=w;`*O!=nU^B&(w|zzM$fTFpN(%-~C<+uvg<@ za8877j8#lfRICu1@TulW7gLnazc(|q;Dm+1L$EWLKyxBg1#Iy1&3GLrVryK$0)guZ zI!@y5Bs3>MX21%jpo&X)`vb{P7>tkLWFD_K6-Y{S3iuAIUu>!=@pz8bG}*UtvcR(H z7F@fTfQ6!<6++Rnn#t=jp5>p%48a9)Yo_R$1WPP=*&v zRS)fnnvK;xk-MXZ8hF#yrce+?R&5|n-E#HeQ7EX!qE@ze>mDqVRPVPf23|l5El;+j zkP2nXZQ4Dc%cF8nq?MUQV;FVOUlc}qmTV{e^wKV6=~Q`^;`82kcJ#T?Jp1@FKc&u4 zLsRLk3wc`~u~gIzzGM1y*jh@+-y;Q)o%bhg{_DPDJ#WR5`r`Ra>&9>1pS?WQQ5M~` zXp6xAHT-BrdxOam{q8gc8=jqs8jSTsKOl!vCR^kZxgzC;Fm&`d) t?JWaW>ZqqCdOVah^1q%>to^9}e=#5Tz}8wSeImg}eZ)-c7^WsS`~zS3WK#eD diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_hapc.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_hapc.glb index 5aaef6fa90ba0e482a39d92146573d84f7dfcfe7..3f95ed5700d98572ed181169dc49f9bf93cfa9f2 100644 GIT binary patch literal 116352 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 diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_scout.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_air_scout.glb index 71dafea9c001dc9a4c7307acb4f59f812fad260f..7f68fefde5e1613a749b7d2fa8c344235ec4f036 100644 GIT binary patch delta 26016 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 Uw_heJNT18`Xt>J9JYN~{zvC=M5C8xG delta 1222 zcmZ8geQXnD9DeVvk=PIB3O9{T2`aXuUC~^O~>J4xDvGi+jkuxs5)Xbp!Wp_msjG)IG!0>|U6w4i`xOD`xJZT6)ik%y|@0L8({ zt`IE>a64WDb+OtCQM_*~N)PnNg`T79L-0?muR_F?@1+p^4~P|2Omn=JL-OJZ&$uM+ zeuKm>ZIECv9;7)z*NbrT+1?5X6Wm)s!Y%)Qo06}PW-=b4B|qFq1ZbZ(SG_f0$?e*o zU}4KHH_RPe4Q0FCuxZo{(ZXmQaziRz0)LE3uomYB4po9-Sgo}~2uBs)(Xbi3hk~HI zqSvnCm`a=BBG%k{^xCC8?wsTBH&0J+{!r1MIO&}DWk|L140%Je1cy!a6l$o zV&Hs|1l)U06&N``@71aAv&D$~S|$hF&e{!#e44O8p`+@76bcou8r}gqr)UBH;|k%C zLlZ5C3+6R{Mg3y2ZG56sHBoptJ>e|kIbPtCo0ES=a@QxO8=MsWd!=^TPRO#G)04B) zlXWf@qJJBlz&ph{IQ{z1@lHiT8C%i*XXft(=BY*r$%DzxSQL`p8DaGshX>y zx{_ndaD9C8jf5N=d;ZMIbMdeGUXRb%7ZXi3!cb(Nd3l;iGYn>s>W$sq8`gpFg#7ol z%)-KscjnJl9uF+ecCS(vXMa@sKe%i9@YV%399+B+8~A)-mdP{dj5{o%D2iB_o^ls! zMx!)i?kQ)-6RR@J7yI8lF)}hULQafWe8e=!Gzp{DjzNZeM$T!$O7q2poTlClkS`w% Wn%+(}TFBHdHmcq>b-9{4WBM24oS-ED diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_grav_scout.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_grav_scout.glb index ade196c2134752d409b7d57e3d9f525636933db6..80d328de2d18a2eec066a0166d2c2944c90534e4 100644 GIT binary patch delta 9740 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 delta 520 zcmexyhWW@dCcgBX5H}_U1_qbS3=B)sHuAkvocv$EWwW7bHq+!}1BK0HS~r+B|JP?` zXEL*x%xbR8W@cF%TdOm9qM6_1T61M4a|4hlleyvMa*MqZlQ+2XPj(M_G2LB5VYN>*m3I!Ym~5zhYpK`!wIK>p;7zP3zeI+HhgNKTG-(_}I;pL{6H zn#tT~Q@Ek%=IRuO46ed^JaZkQqYdyI%S7GvlI{C?4fOKV@`{bHD2!D5;!se6p z63k5I=93>c8BE^NCBSTEVKCXSNk+s%M=7bYB-KAHtvIzr$;!~&$iieYW0Q<9&|PQ} zmXkj=W6@x2Xa>?Cf}z3K2xOA%WY!)5WxnBvk=rUxEw?M-l_^gV#Le~2ttCioz6s?$wbVIfvkFw=vwF} z$ReBUWHtd`ArBz<4!(dJ&;7m$+KZ6Qxa)ylblvmSt*UeC^f$l$eBsse3)|n_|LW$} zWHNd6-nq%-_usZZz4qaw#nJR&|M9(tv%~$P>EUeg;257fv-!c!)!VC&_ugM^?;TuR zJ6JutetEeT*}2NQJL{Qd^W(*%+425qCb~kq|9-fboJ)zbSS4`enOR9qg1kz5sIrBb zh?6)+j|2|bGO3oPQmF$fiI^$5mAelxBOoOs+z5#WRJ4{7o~kTW2&EG@Yt9)II2m)P zHx4CD0~#TuDDr3|nW8zOB9&mh)R4ws_{=XSnx%<<@ z+416s2h(*@dOi4KYE(@cCOmLBe>}gxn6F`1=j4-pkabPuj!7#tx`qm@;&{wwY+wmWD7OKJ`nd>7aH5882ADD_p>D~(Ks;QFHiHE+ zGvR6D)B0M|a$r(Wyqu{(o__Z2)(7h@@LxY!eRTcF|Dg;f!N{wX2o{>HPecQQ#gc&v zOT_xxVk<4XGZ>ZH2c97?cmu>iC7pg`Gf)HRVF@w6euEf6GEoHe z!FO7x6<=8#4g%l8M(ebln4~dVHrQPm&Om*C z6!ipDin<`C9OQu7V59~<9i?RNKp>>VBk&ya$n4CcG_)F zU^Xm63-}z{jn-#Pi?#mle%0c(&}7XSbN delta 82 zcmX@Jlx0FI3txIph#M0F1H%L+MusD+HuCA(OlG!F*eqht#RO)2aE@o%%+bUQ+>USPZ{ZEp2mL6Lsn zfLRpjXAh;!{_~N)SjkVfN}FHCbCK)*%^#EN$khuD`~Hk}O7u6I<+hvUG6FFZ5HkZY L%XYI|)^D!?`G$`8 delta 185 zcmZo^m0Gh&k}o|c#Epr8fk7vdjX@`WBcGn~=_7&Arpwd#5o1F%u9o12N0?-f67gUjqP1Bu!ob diff --git a/docs/base/@vl2/shapes.vl2/shapes/vehicle_pad.glb b/docs/base/@vl2/shapes.vl2/shapes/vehicle_pad.glb index 91d9b9a236e440d7512350d4e1ce46270f26b1d7..adae310e503d67cdf91f11a6edac4d4946ee9397 100644 GIT binary patch delta 1465 zcmbQSp8do<4!-o95H}_U1_lp(Alb5!ubx%BEVDR1JGC;cC^0v+I6g7CB(p5BB-Lp1 zMw?z{E(CwFVy+xASHM$c^BUHp6zEsoJdt}BHzoFGiOaK5qJM=fKSlblDYI};V*gKV zMT+!Wnn+RLe$~yzR-6>+pX0zmk^UoYe|X6cKh@0-Lf9y>pDkLDhZ6hE(={ltUuAP$ z?mr6hkILrR#R?RqpIg;|6zTVBSwWHe1-p1D3P0Nk-`L5IKb6fvGrT$Eag={bR?&uf z20DhD@6E|(p6t3n3c2vZQWox6pou#ytrz965zx=FGQOEZXEg(ZlcyiU^aoCif!p`$ IFy3AT0I%g5Z~y=R delta 244 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 delta 2812 zcmeHJYj6|S6~1?Ojj-M_Hh$`1VOnEkENP|HN;Z~cD=yIZQ3@DRKXC-O@r&TrJT1wF zA#MwCbAbg1JEkoO3?$G|Qa@l^wUo4>*n!5=HXTZAlaLNh6S`h>KOmR}JtXEc)@t(7~BRm+$*vW${#v&dt=6yWqqMzZx!OV~FaQc+}2+t$U>E?mW^#&jF z`I-|vIF{eR1A2YmSGBLo;$f~_yuWFS49Bb%G*PllW~C44_Gzo@8ot-4wLSJ(zvPn} z^!hJ3F@qkBmg>>oQaf(Y8#zAqO`?nnJ&G#Z$6^!bQyBE-FXYa7*;UGat0FA{X_};{ z^1wYL-yMyn4(d=zvsA9rZg^^QZeihiSGitmvzXCnZ6;>aqlulln1w=J)hp4u7j!C% zMW-z&T%YfJnhm0#NV4)thHw(CN6wvT=wC1D(9LG4Y+)#koG-10>;Nn~Z9+rs#VXo7 z&rDNKgj;xKl24$~jUN}IEYFjyR^&XCg&EmB*qJM{8g<&*%0~C|)s;0`n+YkJlxXeo zbd{ByuVXbWtYe)U+srYz{SAR0q(5(<$t3TKtMmRlNV&J%shxqTv+5 zG&`XfZRlOf6gi-jG1*}bJ7eX0YDRB|1XJdKLgv05Mxj@GHBY#hWC-VdO7yGY`6MMe z)~9A(cEB|#qdx{UTop1GoKS`b+j(#m z^RNmkaGIu=Gv9zoF=lT3t$P~Xh1<66a2&S;r60gbuFNzNW)z9##2y%Q6vKkpz=S2u_eMya$y8Tn!k{RQzXyM zI6L4Hf->n%%$5$Q6w+4qxRo9lUJH6!JKz?L8nSn9S{xRKgUHVw4Se><;+eFBuv3l@ z7UCYJ=nVXtM}n&*cpF?Exi)GlN%G;H+Dj1+qoW*Xw6Nu(7RdY6%ZY;ErU@A8FBO5d zAG{(0)30uXATWAY>HVqr`@madUnkf?!iG8e zR1JUKyjuVs-mie({PHHyU3aoX)?4>g04gB=OrhU*9h9^5er!R1|%8UPCGQ$W$7mlePpQr`?T>Ec(A>{l2QgZn2beHwg&MsYb-gW==JrCnXlIS(M1F%jK9D0OHc0#v>r+U@w?6PVQkUFTfNJ z4&xw^2<1==7Yo22KY1p#%eyK8EY&Onn%|@b1UqhnX>S|^&ODgytq^+?u5JdDS00B4 z7I9yY;q&`#$~eH`GCVoZTDr{kV!ky(0454jMU6gM;&=}>Ok=l9pg;gN rC4duB@VB2qFIS%1hPJWXZ16c|J3QdAvqSgnD8qj*?)l(Tyf5o=*C|! delta 61 zcmdn6jOoWBCcgBX5H}_U28N1>3=9cT8~NB|Ctqfl+q^)QlL^c)Rp5m%&MEz61dD{L H-pmC6VcQhz diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_disc.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_disc.glb index 30402825ef8adc8f1847b6536279318fe48f1a04..ea256f18ab2ba6a1a85f86917c888e80a506769f 100644 GIT binary patch delta 296 zcmeyckMYhyM!xi%5H}_U28KHc3=9vfH}aKph?Qj)$7iQjrWGaTrWVJiWELkE7i8v5 zR^?FSfbk~Fv58NP;o!1`3FIkR8R{sZ>P$>7$t+7O$;<~zMjPrG=%C}t8XR(Q@yN;y z^o$LFz|g?d)WE>V$k50XVrX(@a!zJ4ic$>gic)j(6I0Nv0$HIS50f&`GXfcJU}<4y fVrph#ZfIbPVm?IO~sAcj5ww}!=c=s@oW)oN&pWrTXv;~PQvH$>H4N?05 delta 57 zcmdlopYh8~M!xi%5H}_U28J&_3=9#b8~Iw;HaoGeVVms4-nChSe-9IwAt$^G!VnT) GWB~vZ$P!cl diff --git a/docs/base/@vl2/shapes.vl2/shapes/weapon_grenade_launcher.glb b/docs/base/@vl2/shapes.vl2/shapes/weapon_grenade_launcher.glb index d3dd1b5b1c684286a29184959f909d1d76005f14..b0e58d36cfbcbd5f2aea6318f71dd1a89f949688 100644 GIT binary patch literal 53336 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 delta 1569 zcmZWpYfw{16h8OfAg=&H8s3l)3^P<7NyrOuAo2*HXpjOjSe2?!91t=Cc2JAC*cTQQ zWx-;lC@Qt37SJ$0ct#XPWI(EpMFj<=g1nSgY8w%{!FHz8{@8ENIs5I|@1A>h`%h5) z4TR-~8F5My01}e`6tZ)c5w@gQh??x&2{C$PCqO^g){tU9L%>Qb&hy&C+n%Z3nZpbC zCnot{j1)_?w0);3%5$+qv%F!X;4N9S3;15HeljoKT2<_tmC?KaKe-n#E<7<*rHT#P zEWo}$8gdRKg#u*l8cK=<=mQrAw8Mi(ie=iv9(S4OP$)zDFhoKSLUcmLMdC0eG7`I? zV__WhNNkJx!q$;OF{+YrP)Ilj2_&ZJOgSk{Is#|cX4FG8Y7Z*(xm znv{xBeuN8Zi(yeRfdCy=xu6$|wisPeIwS5n7AX^AimQzPi{7#;CqxxYl3w=s{)<<9Z6v9TB42_^79 z*quY>m=ZqTgy-|u^E)2QP5fHd-BdfFubpVz``|+BgnoAW>`w{t$7^aQzQ)sdV=b{j z)+iRpt|-GmRU7!4jY~NNd`iLyXXUebSqyDz3}i}y^sU6HxrP4vj=`J}9P->;%m zx;_ebA8a|OXgwL#;gmJ3Kp-2Xe~;h!}lnQKs|_FEyofo<+gOy|qTLCfTjKqCNy- z)V;>=usxN8^2ANQMfp39zjQ0V>>Lxn^qSeL(G<5AXg&}VTJ}3gJ@r8KW+0B5- zN-&1!`*KXdWTQu>&RtG(^#)yn|8k&95Tj3A>-OM-3BDI){(Z*iRwi&C*d!$zG1d%Dxifx;~8)tDQI*v0t1 zI|dU22e#N4a3L5VRh!;)d*y>>rpA7Mi|%nKYyKGk7VMY`F$-Mf=! zU*5E~ix+%k^z+-xT>6q)7IweeS}`ef+=2SptixbVKdxnqi zZwM%vOIZD7qXoeA>KeUoQGe^5FH8JNlEYzqmF}2XTYICF4Bv1Z7|kiWX}#(tvzP*ZMN>GyJ{SvvNC`ZHNHa(v`*;c;5FOA> zWCn)sVAtr`UF|bB&d)5Fd8#QRW8~~ix$P!7yS8Stu!21kZ$ylyynHg*R#Il`0!5Y^ zNQk27QK-*`m>s^#~|#!H_>pI^%|jqmpYu5CA14T?P#%hs^0{D!CXU<&LX% z@>5MAX&STYt$x&@hh4yF`W9<00ac&xk5;LD@=H2AfT}nwTguU@K2FlMt$R(lU!uC%5ngu*QQ~ lSNIfJK&;6LY$}`e_;0gOV&CMIEDf96#d!QSPf2;;2mtK}e)9kT delta 67 zcmV-J0KEUW)B^O(0uE%wZSGSQ zV`77_CpT&W1FRc8Fp>>9ocKbUjYE| C!B#8) delta 61 zcmeBq!!+k66JL5xh#M0F1H+s(3=A#B8~HA&PiE$m+Z>^_pBc>PH*jD9GyKiXAdJ7Z G{1pITbrS*r diff --git a/docs/base/@vl2/shapes.vl2/shapes/xorg2.glb b/docs/base/@vl2/shapes.vl2/shapes/xorg2.glb index 5323bb25d4c3a1ba4605b0fa0f9bf5d7ef18aeee..bb9fd2c4b6f5738047259bb771cd2d1f3d51801c 100644 GIT binary patch literal 105564 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 delta 3770 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 w_Ta!3M|vpFJx?y8r+H diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/buildStation.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/buildStation.glb index c32917a13bad6f39dd765f74dfa6a1b54c4486ba..4e9318891888a2e25abebd493b47e5705a93c1bf 100644 GIT binary patch delta 499 zcmbR9mZ@bqGhcd6h#M0F14GMY28M>_jePUC#mX{^Y8q09|4pT>t<8 diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1CMDStation.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1CMDStation.glb index fc8857ea191455b6e6605e904d914b05c495c18b..21154d3872ab47e18e5607a4c270b8d95413cbc3 100644 GIT binary patch delta 558 zcmZ3nfpN}$M!xi%5H}_U28KED3=9dL8~OB@B+4?2>nw=t7dJeaLyWvFMMqXbfw zT$!AcnG6?(2$E_4=7sE!2g+`+-xuBDax`gH@<3vp7CGwKA* bs@dWp%yK~mP6!j|w#^#_{h~JISR?=dVbN3p delta 59 zcmaE`n0dzxX1?^C5H}_U1_p~W3=D6wH}V;>Ox`acyZItpK0BCkN#Haqm{BRNAH}G! Jc}1Z`0sv;g6!8E6 diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1DepInvy.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1DepInvy.glb index f5f636d0a11fa15e3d3516e1bb2b760f542e0554..871658b3c6f5d71c9d760559f3de3adde68174bf 100644 GIT binary patch delta 147 zcmdn6l5xTYM!xi%5H}_U1_pr$1_l$$jeIF=Vr7}d@!6@BX+?>-sm1Y$$t9U(i6yC< z_p+2Ra>BWjeK-|(;5;QO!_5V363oJ=dJFQ)Q;Rl#We;a$iwCnox;PryE%yCCli>#%IhiGu zlNT^cawGFMvMQqRKk&#*HsEI4Y{Rslk#bWcSZ-6n6alusR4_%0;|v~C9&!^GF2Y=F Zl$o;GfSZRh6TtBk$x|%1`Lq^i5&%qM!JhyC delta 89 zcmcaGpXtg>CcgBX5H}_U28Js=3=BK8Hu4EFO+LseyLlzkenv3k6U%J~Bb@y&zLJ%}Xn{ diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1PowerGen.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1PowerGen.glb index 7287ec368f7d564a8c0a1f4a495c0fca34e706a5..1435de07eccf74e8b9c8e8ec627e55f58f083685 100644 GIT binary patch delta 550 zcmdnd!q_o~kuN0P3E}0{{R3 delta 104 zcmeB}!?>e`kuNi#>BwD;N!r+&|$ifFNjsBEVDR1JGC;cC^0v+I6f`2D0QWX=K{+B>mm+04j239It++*p-Qi#>BwDz+=h4;GwsXFNk&XX7+Zb$(z|_H%s#rF@hN-d<783X@O!0 SLsb~cs27z{*gVH{0~Y|Oni#hL diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1RepairPackGun.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1RepairPackGun.glb index 73ceed2a06cc5b50a8614751b951024fff81b297..caf9065c4f47c2c5b22ad26be11d1c7af629b4cb 100644 GIT binary patch delta 132 zcmewnyd;e;JtxGCiGhJZ#h8I1LUSYEBX*&(%;Na$)XKD?#N5>4__WNT)XnkCVJxg* k=H$J+3LIdTl9l1)1sw95c{yIQlB!3PPg7{KgTf9@0Am0v;s5{u delta 49 zcmZ3I_9K`tJtxGCiGhLPhb9Aqj>1O1N9>a=d1W^*;d#vpW;ly$3Na}tY|hc#!3h9> COb)sL diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1Sentry.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1Sentry.glb index 906da10c6cbdf4bf9a782d6564286ea83536b51d..8e1f87b7694314e166d1f7398aa945f74eed42b7 100644 GIT binary patch delta 317 zcmbQTit)r+M!xi%5H}_U28I)13=ASx8~H4mCCW03xsmyatcrX{d?hP`$qQNKH>WV$Gf`s5=7p?J7%4FT?21L~`D5bP0u_QA;56L@|ad@weYnm4TQ9X1l delta 61 zcmX@HmT}4|M!xi%5H}_U1_qH(28INSjeM5Olh5&pZ$8cJ$^>RiVLQzTW<2IN3K7xa Hnd1cjO)(T! diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1Solar.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1Solar.glb index d19b995d963b11fea249051e0000aaa7467ee736..43fb5de51c354410af51f6ab1425ec8d08f81a97 100644 GIT binary patch delta 949 zcmbO*f$_y6M!xi%5H}_U28N7428IBKjePt}5@ngi@!6@BX+?>-sm1X?US?8ePG(8v zWJgv>Ze;!h5k)>EzLJ%}YZ!AA-MpM>6(g8&n`JiR=ErQaA;P}g p^$^Bv{ssu+mGEi^BSpd)%vfwF4c57Mw+zGtS24__WNT)XhvR#!ReW V=44Yg1r`u%vOcr&=3cgBF#sS>76t$S delta 32 ncmaE2_ra1cJtxGCiGhLPgA4%wZ4MC@Vq%L2vnQvCDkwvkN>+wCN~p@oh>ZQBJydXdhNL44?kM$>C73WaACSFb N#H66Gc}hTl6aYg->n{KR delta 130 zcmZ4Tknzb?M!xi%5H}_U28JhD3=9nc8~ON{COfH!Z(hLE!3<(dUckh*c@vu+f|JGN mfZ&+$wIDc7LXE6&J&UD!5HdUE99iHpEz0MNHiv`-NC5y%Vko8n diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1VehStation.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1VehStation.glb index 03f57666081b3bbf93d053223fa05036f9073073..fd349759c19b6d85705cfc64c7076739e5635441 100644 GIT binary patch delta 813 zcmZ27m1)XyCcgBX5H}_U28Jn<85q{2Z{*Wrk|@h8j?Yf5Oe;#vO)ZWG@-mY$b23XR zCp$<>awGFEDk$gJ%}&apEMQ?p4K_wFW1}XN;iz3}v-v>!6>R_u_9QU? diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1ammopad.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1ammopad.glb index 28e09ed30ec9cbbde027565f92b8c99a782f19be..ace4463ebeffa68ec902fa467c2d4845b2f62383 100644 GIT binary patch delta 837 zcmezHjj^Ybi7!1T#Epr8fuW~`fnh=TMm{YjiL%V%`0Uimw4%h^)Z%y`FEc4KC$pq- zav!@SH!^>tfFd6fU&+c~@<##r&7n+-C^tle^(y6tuyMSg+z@W=CCn6u$r(N-Mv4u2 z&CfxRA)7x6sNykTw;)l`Yb?agER32)3i8WSi#Fd9GH0@i2eXx|4D}3jlt8MIE0c3F eli|V;K}wQWw5Z^K+TSU`Z^opcuz7~x4IKdFb2!QX delta 128 zcmeC_Wcu)pkuNzs1)LWFt|n7AdK0f+z>T$qy-_2#fto9>=$$x7@R!)Ci_SGY-W#W)d2v| Ci7Chc diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1blaster.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1blaster.glb index 424d9d4a876f58dac203eb62f9b6ddc50051352c..0eecacd76b0b0ad6f9031dfcd09537d29f4c9170 100644 GIT binary patch delta 356 zcmZ26lkv-3M!xi%5H}_U28J(w3=AAL8~N5Vih#M0F1A{;=14D<$Mm}dIiL%V%`0Uimw4%h^)Z%y`FEc4KC$pq- z@;o+4Ze%_`lOi7yU&+c~vp>^uiVT?S&m_OunDrPVC9VJ)BF1h&xl58cso)Yf?x%QM Va)Fmnpn|>Q!FSAjvw&NP3IK+YolgJ& delta 79 zcmbPmi?QV@BVT$>h#M0F14By|1H&KJjeO2blRvP^ZobX5f@$*y*2j#S9XNa;LgL)V Z7{PMsyiXw_*94B4Gbt!+p5sxX0svth9LoRz diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1inventorystation.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1inventorystation.glb index 2f8d625a932c311ad86a94ff7d2e20f1c1a5ef52..b641294d611aaa3d72603fd3f47b073b22a47628 100644 GIT binary patch delta 765 zcmaEHoN>xcM!xi%5H}_U28Jm)3=9>48~Kb`gv&CE{b25|R!Vp1(R-ls1q|BVmlFG^b0+QVENc;z^ihM|XB`br; z3T*P5<5-R`N}$@0q=~R0n-$n@Qe*(w6=EEVDL3RA=LP1049dg2>dce`B{(G51#Kxe gBvE8OK0_plN*S^eXYs`eafYx<-O$_oz=J~?0Clw)-v9sr delta 103 zcmbPolkvrIM!xi%5H}_U28I{O3=C&HHu4#>Ob(Ec-E7W&gb~bW<=h2foa9~%VSMAg lzzmk!Bcjf{IY1%`!ZVSX&%D_|;T1&D7Nr|{o4W%!r2z-hBMATi diff --git a/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1mSensor.glb b/docs/base/@vl2/z_mappacks/z_DMP2-V0.6.vl2/shapes/t1mSensor.glb index 59108fd8b335b9d4c36c3d0ba40228a47cd50f16..a34e6deb4816081a94722234c198d541e44ae792 100644 GIT binary patch delta 418 zcmexzlyS-_M!xi%5H}_U1_qH-28I;HjeLSkHf5Q`@!6@BX+?>-sm1X?US?8ePG(7^ zl2x>!o`H^moX;ETHW_})$n#mWL6}gf5`kXSG&6w^oQr}c97ET(t)r(D# gQ36*8Ok$Tr@fEWI@?j&XjRQDhSBoP4%_SId!1}d0RB~(Y5DVzDl=2K<@*f*yo1F2w& crR+8;n8Kr2z=At|6jcc(e6WvZsy5pI0M*4 delta 107 zcmca{iE+*mM!xi%5H}_U1_qfV1_mAPjeM(^HY>9@vrJZIk=^``Qxn3N&!5B$7U>pl kfH0~fEglW^_ M-QuzNLFkk&0Q0an0RR91 delta 51 zcmca`ocYTEX1?^C5H}_U28NOc3=C&NH}ZXFn{3P_yZI@{YgRC$Ltu*slY+u#o5(3$ E0OYz7SpWb4 diff --git a/docs/index.html b/docs/index.html index bffb32a7..53acfaf0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/src/components/EntityRenderer.tsx b/src/components/EntityRenderer.tsx index dfccbb11..c96214ec 100644 --- a/src/components/EntityRenderer.tsx +++ b/src/components/EntityRenderer.tsx @@ -5,6 +5,7 @@ import type { ShapeEntity as ShapeEntityType, } from "../state/gameEntityTypes"; import { ShapeRenderer, MountedShapeContent } from "./GenericShape"; +import type { ShapeLightConfig } from "./GenericShape"; import { ShapeInfoProvider } from "./ShapeInfoProvider"; import type { StaticShapeType } from "./ShapeInfoProvider"; import { DebugSuspense } from "./DebugSuspense"; @@ -186,6 +187,23 @@ function ShapeEntity({ return Object.keys(m).length > 0 ? m : undefined; }, [objectMounts, entity.imageSlots, entity.id]); + const shapeLightConfig = useMemo((): ShapeLightConfig | undefined => { + if (!entity.lightType) return undefined; + return { + type: entity.lightType, + color: (entity.lightColor ?? [1, 1, 1, 1]) as [ + number, + number, + number, + number, + ], + time: entity.lightTime ?? 1000, + radius: entity.lightRadius ?? 10, + onlyStatic: !!entity.lightOnlyStatic, + isStatic: !!entity.isStaticItem, + }; + }, [entity.lightType]); + return ( {flagLabel ? ( {flagLabel} diff --git a/src/components/EntityScene.tsx b/src/components/EntityScene.tsx index 1e8ab595..50befd05 100644 --- a/src/components/EntityScene.tsx +++ b/src/components/EntityScene.tsx @@ -170,6 +170,29 @@ function PositionedEntityWrapper({ return new Quaternion(...entity.rotation); }, [entity.rotation]); + // Build object mount content for entities mounted on this one (e.g. players + // sitting in a vehicle). Each mounted entity renders via EntityRenderer + // inside the target's mount bone (portaled by ShapeRenderer). + // This must be above early returns to satisfy React's hooks rules. + const objectMounts = useMemo(() => { + if (!mountChildren || mountChildren.size === 0) return undefined; + const mounts: Record = {}; + for (const [node, child] of mountChildren) { + // Object mounts (players in vehicles) need a counter-rotation because + // the mounted PlayerModel applies its own R90 Y which conflicts with + // the vehicle's bone chain. Image mounts (MountedShapeContent) handle + // their own orientation via the Mountpoint inverse, so no extra rotation. + mounts[node] = ( + + + + + + ); + } + return mounts; + }, [mountChildren]); + // Entities without a resolved shape get a wireframe placeholder. if (entity.renderType === "Shape" && !entity.shapeName) { return ( @@ -202,22 +225,6 @@ function PositionedEntityWrapper({ ); - // Build object mount content for entities mounted on this one (e.g. players - // sitting in a vehicle). Each mounted entity renders via EntityRenderer - // inside the target's mount bone (portaled by ShapeRenderer). - const objectMounts = useMemo(() => { - if (!mountChildren || mountChildren.size === 0) return undefined; - const mounts: Record = {}; - for (const [node, child] of mountChildren) { - mounts[node] = ( - - - - ); - } - return mounts; - }, [mountChildren]); - return ( {children} @@ -295,6 +306,8 @@ interface VisNode { interface ThreadState { sequence: string; action?: AnimationAction; + /** Morph target frame animation actions played alongside the main clip. */ + morphActions?: AnimationAction[]; visNodes?: VisNode[]; startTime: number; forward: boolean; @@ -315,6 +328,7 @@ export const ShapeModel = memo(function ShapeModel({ mounted, noRotation, skinName, + lightConfig: lightConfigProp, }: { gltf: ReturnType; /** Stable entity reference whose fields are mutated in-place. */ @@ -329,6 +343,8 @@ export const ShapeModel = memo(function ShapeModel({ noRotation?: boolean; /** Skin texture URL (Torque reSkin: replaces "base." textures). */ skinName?: string; + /** Item/ShapeBase built-in light config (from datablock). */ + lightConfig?: ShapeLightConfig; }) { const { object, shapeName } = useShapeInfo(); const { debugMode } = useDebug(); @@ -336,79 +352,94 @@ export const ShapeModel = memo(function ShapeModel({ const runtime = useEngineSelector((state) => state.runtime.runtime); const anisotropy = useAnisotropy(); - const { clonedScene, mixer, clipsByName, visNodesBySequence, iflMeshes } = - useMemo(() => { - const scene = SkeletonUtils.clone(gltf.scene) as Group; + const { + clonedScene, + mixer, + clipsByName, + morphClipsBySeq, + visNodesBySequence, + iflMeshes, + } = useMemo(() => { + const scene = SkeletonUtils.clone(gltf.scene) as Group; - // Detect IFL materials BEFORE processShapeScene replaces them, since the - // replacement materials lose the original userData (flag_names, resource_path). - const iflInfos: Array<{ - mesh: any; - iflPath: string; - hasVisSequence: boolean; - repeat: boolean; - iflSequence?: string; - iflDuration?: number; - iflCyclic?: boolean; - iflToolBegin?: number; - }> = []; - scene.traverse((node: any) => { - if (!node.isMesh || !node.material) return; - const mat = Array.isArray(node.material) - ? node.material[0] - : node.material; - if (!mat?.userData) return; - const flags = new Set(mat.userData.flag_names ?? []); - const rp: string | undefined = mat.userData.resource_path; - if (flags.has("IflMaterial") && rp) { - const ud = node.userData; - // ifl_sequence is set by the addon when ifl_matters links this IFL to - // a controlling sequence. vis_sequence is a separate system (opacity - // animation) and must NOT be used as a fallback — the two are independent. - const iflSeq = ud?.ifl_sequence - ? String(ud.ifl_sequence).toLowerCase() - : undefined; - const iflDur = ud?.ifl_duration ? Number(ud.ifl_duration) : undefined; - const iflCyclic = ud?.ifl_sequence ? !!ud.ifl_cyclic : undefined; - const iflToolBegin = - ud?.ifl_tool_begin != null ? Number(ud.ifl_tool_begin) : undefined; - iflInfos.push({ - mesh: node, - iflPath: `textures/${rp}.ifl`, - hasVisSequence: !!ud?.vis_sequence, - repeat: flags.has("SWrap") || flags.has("TWrap"), - iflSequence: iflSeq, - iflDuration: iflDur, - iflCyclic, - iflToolBegin, - }); - } - }); - - processShapeScene(scene, shapeName ?? undefined, { - anisotropy, - emap, - skinName, - }); - - // Un-hide IFL meshes that don't have a vis sequence — they should always - // be visible. IFL meshes WITH vis sequences stay hidden until their - // sequence is activated by playThread. - for (const { mesh, hasVisSequence } of iflInfos) { - if (!hasVisSequence) { - mesh.visible = true; - } - } - - // Collect ALL vis-animated nodes, grouped by sequence name. - const visBySeq = new Map(); - scene.traverse((node: any) => { - if (!node.isMesh) return; + // Detect IFL materials BEFORE processShapeScene replaces them, since the + // replacement materials lose the original userData (flag_names, resource_path). + const iflInfos: Array<{ + mesh: any; + iflPath: string; + hasVisSequence: boolean; + repeat: boolean; + iflSequence?: string; + iflDuration?: number; + iflCyclic?: boolean; + iflToolBegin?: number; + }> = []; + scene.traverse((node: any) => { + if (!node.isMesh || !node.material) return; + const mat = Array.isArray(node.material) + ? node.material[0] + : node.material; + if (!mat?.userData) return; + const flags = new Set(mat.userData.flag_names ?? []); + const rp: string | undefined = mat.userData.resource_path; + if (flags.has("IflMaterial") && rp) { const ud = node.userData; - if (!ud) return; - const kf = ud.vis_keyframes; - const dur = ud.vis_duration; - const seqName = (ud.vis_sequence ?? "").toLowerCase(); + // ifl_sequence is set by the addon when ifl_matters links this IFL to + // a controlling sequence. vis_sequence is a separate system (opacity + // animation) and must NOT be used as a fallback — the two are independent. + const iflSeq = ud?.ifl_sequence + ? String(ud.ifl_sequence).toLowerCase() + : undefined; + const iflDur = ud?.ifl_duration ? Number(ud.ifl_duration) : undefined; + const iflCyclic = ud?.ifl_sequence ? !!ud.ifl_cyclic : undefined; + const iflToolBegin = + ud?.ifl_tool_begin != null ? Number(ud.ifl_tool_begin) : undefined; + iflInfos.push({ + mesh: node, + iflPath: `textures/${rp}.ifl`, + hasVisSequence: !!ud?.vis_sequence, + repeat: flags.has("SWrap") || flags.has("TWrap"), + iflSequence: iflSeq, + iflDuration: iflDur, + iflCyclic, + iflToolBegin, + }); + } + }); + + processShapeScene(scene, shapeName ?? undefined, { + anisotropy, + emap, + skinName, + }); + + // Un-hide IFL meshes that don't have a vis sequence — they should always + // be visible. IFL meshes WITH vis sequences stay hidden until their + // sequence is activated by playThread. + for (const { mesh, hasVisSequence } of iflInfos) { + if (!hasVisSequence) { + mesh.visible = true; + } + } + + // Collect ALL vis-animated nodes, grouped by sequence name. + // Multiple sequences can animate the same mesh (e.g. station_inv_human + // has Activate1 + Activate with vis data). The addon exports both the + // primary vis_keyframes/vis_sequence AND per-sequence suffixed versions + // like vis_keyframes_activate, vis_duration_activate. + const visBySeq = new Map(); + scene.traverse((node: any) => { + if (!node.isMesh) return; + const ud = node.userData; + if (!ud) return; + + // Helper: register one vis entry + const addVis = ( + seqName: string, + kf: number[], + dur: number, + cyclic: boolean, + ) => { if ( !seqName || !Array.isArray(kf) || @@ -417,63 +448,121 @@ export const ShapeModel = memo(function ShapeModel({ dur <= 0 ) return; - let list = visBySeq.get(seqName); if (!list) { list = []; visBySeq.set(seqName, list); } - list.push({ - mesh: node, - keyframes: kf, - duration: dur, - cyclic: !!ud.vis_cyclic, - }); - }); - - // Build clips by name (case-insensitive). - // Blend sequences (DTS flag 0x8) store absolute transforms but must be - // played in additive mode. Clone and convert them here so the original - // cached clips from useGLTF are never mutated. - const blendNames = new Set(); - const rawNames = scene.userData?.dts_sequence_names; - const rawBlend = scene.userData?.dts_sequence_blend; - if (typeof rawNames === "string") { - try { - const names: string[] = JSON.parse(rawNames); - const blend: boolean[] = - typeof rawBlend === "string" ? JSON.parse(rawBlend) : []; - for (let i = 0; i < names.length; i++) { - if (blend[i]) blendNames.add(names[i].toLowerCase()); - } - } catch { - /* expected */ - } - } - const clips = new Map(); - for (const clip of gltf.animations) { - const lower = clip.name.toLowerCase(); - if (blendNames.has(lower)) { - const cloned = clip.clone(); - const restClip = buildRestPoseClip(scene, cloned); - AnimationUtils.makeClipAdditive(cloned, 0, restClip, 30); - clips.set(lower, cloned); - } else { - clips.set(lower, clip); - } - } - - // Only create a mixer if there are skeleton animation clips. - const mix = clips.size > 0 ? new AnimationMixer(scene) : null; - - return { - clonedScene: scene, - mixer: mix, - clipsByName: clips, - visNodesBySequence: visBySeq, - iflMeshes: iflInfos, + // Avoid duplicate mesh entries for the same sequence + if (list.some((v) => v.mesh === node)) return; + list.push({ mesh: node, keyframes: kf, duration: dur, cyclic }); }; - }, [gltf.scene, gltf.animations, shapeName, anisotropy, emap, skinName]); + + // Primary vis entry (backwards compatible) + addVis( + (ud.vis_sequence ?? "").toLowerCase(), + ud.vis_keyframes, + ud.vis_duration, + !!ud.vis_cyclic, + ); + + // Per-sequence suffixed entries (vis_keyframes_activate, etc.) + for (const key of Object.keys(ud)) { + const match = key.match(/^vis_keyframes_(.+)$/); + if (match) { + const suffix = match[1]; + addVis( + suffix, + ud[`vis_keyframes_${suffix}`], + ud[`vis_duration_${suffix}`], + !!ud[`vis_cyclic_${suffix}`], + ); + } + } + }); + + // Build clips by name (case-insensitive). + // Blend sequences (DTS flag 0x8) store absolute transforms but must be + // played in additive mode. Clone and convert them here so the original + // cached clips from useGLTF are never mutated. + const blendNames = new Set(); + const rawNames = scene.userData?.dts_sequence_names; + const rawBlend = scene.userData?.dts_sequence_blend; + if (typeof rawNames === "string") { + try { + const names: string[] = JSON.parse(rawNames); + const blend: boolean[] = + typeof rawBlend === "string" ? JSON.parse(rawBlend) : []; + for (let i = 0; i < names.length; i++) { + if (blend[i]) blendNames.add(names[i].toLowerCase()); + } + } catch { + /* expected */ + } + } + // Build a set of known sequence names (lowercase) from the DTS metadata + // so we can reliably identify morph target frame clips below. + const knownSeqNames = new Set(); + if (typeof rawNames === "string") { + try { + for (const n of JSON.parse(rawNames) as string[]) { + knownSeqNames.add(n.toLowerCase()); + } + } catch { + /* expected */ + } + } + + const clips = new Map(); + // Morph target frame animations are exported as separate clips named + // "{SeqName}_{MeshName}_frame". Collect them so they can be played + // alongside the main sequence clip. + const morphClipsBySeq = new Map(); + for (const clip of gltf.animations) { + const lower = clip.name.toLowerCase(); + // Check if this is a morph target frame clip by testing if it ends + // with "_frame" and starts with a known sequence name prefix. + if (lower.endsWith("_frame")) { + let matched = false; + for (const seqName of knownSeqNames) { + if ( + lower.startsWith(seqName + "_") && + lower.length > seqName.length + 1 + 5 + ) { + let list = morphClipsBySeq.get(seqName); + if (!list) { + list = []; + morphClipsBySeq.set(seqName, list); + } + list.push(clip); + matched = true; + break; + } + } + if (matched) continue; + } + if (blendNames.has(lower)) { + const cloned = clip.clone(); + const restClip = buildRestPoseClip(scene, cloned); + AnimationUtils.makeClipAdditive(cloned, 0, restClip, 30); + clips.set(lower, cloned); + } else { + clips.set(lower, clip); + } + } + + // Only create a mixer if there are skeleton animation clips. + const mix = clips.size > 0 ? new AnimationMixer(scene) : null; + + return { + clonedScene: scene, + mixer: mix, + clipsByName: clips, + morphClipsBySeq, + visNodesBySequence: visBySeq, + iflMeshes: iflInfos, + }; + }, [gltf.scene, gltf.animations, shapeName, anisotropy, emap, skinName]); // Dispose cloned geometries and materials when the scene is replaced or // the component unmounts, to prevent GPU memory from accumulating. @@ -511,7 +600,7 @@ export const ShapeModel = memo(function ShapeModel({ const streamEntityRef = useRef(streamEntity); streamEntityRef.current = streamEntity; const handlePlayThreadRef = useRef< - ((slot: number, seq: string) => void) | null + ((slot: number, seq: string, forward?: boolean) => void) | null >(null); const handleStopThreadRef = useRef<((slot: number) => void) | null>(null); const prevDemoThreadsRef = useRef(undefined); @@ -594,8 +683,14 @@ export const ShapeModel = memo(function ShapeModel({ v.mesh.material = result.material; } if (v.mesh.material && !Array.isArray(v.mesh.material)) { - v.mesh.material.transparent = true; - v.mesh.material.depthWrite = false; + // Save original transparent/depthWrite so they can be restored + // when the vis animation finishes or is stopped. + const ud = (v.mesh.material.userData ??= {}); + if (ud._visOrigTransparent == null) { + ud._visOrigTransparent = v.mesh.material.transparent; + ud._visOrigDepthWrite = v.mesh.material.depthWrite; + ud._visOrigAlphaTest = v.mesh.material.alphaTest; + } } const atlas = iflMeshAtlasRef.current.get(v.mesh); if (atlas && v.mesh.material && !Array.isArray(v.mesh.material)) { @@ -645,6 +740,22 @@ export const ShapeModel = memo(function ShapeModel({ } action.play(); thread.action = action; + + // Play associated morph target frame clips alongside the main clip. + const morphClips = morphClipsBySeq.get(seqLower); + if (morphClips) { + thread.morphActions = []; + for (const mc of morphClips) { + const ma = mixer.clipAction(mc); + ma.setLoop(cyclic ? LoopRepeat : LoopOnce, cyclic ? Infinity : 1); + if (!cyclic) ma.clampWhenFinished = true; + ma.timeScale = forward ? 1 : -1; + ma.reset(); + if (!forward) ma.time = mc.duration; + ma.play(); + thread.morphActions.push(ma); + } + } } if (vNodes) { @@ -659,12 +770,23 @@ export const ShapeModel = memo(function ShapeModel({ const thread = threads.get(slot); if (!thread) return; if (thread.action) thread.action.stop(); + if (thread.morphActions) { + for (const ma of thread.morphActions) ma.stop(); + } // Binary Stop: reset position to 0.0, freeze. Vis nodes go to frame 0. + // Restore original material properties saved by prepareVisNode. if (thread.visNodes) { for (const v of thread.visNodes) { if (v.mesh.material && !Array.isArray(v.mesh.material)) { - v.mesh.material.opacity = v.keyframes[0]; + const mat = v.mesh.material; + mat.opacity = v.keyframes[0]; v.mesh.visible = v.keyframes[0] > 0.01; + const ud = mat.userData; + if (ud?._visOrigTransparent != null) { + mat.transparent = ud._visOrigTransparent; + mat.depthWrite = ud._visOrigDepthWrite; + mat.alphaTest = ud._visOrigAlphaTest; + } } } } @@ -719,7 +841,7 @@ export const ShapeModel = memo(function ShapeModel({ wheelAnimsRef.current = null; } - // ── Demo/live mode: no auto-play, useFrame drives from ghost data ── + // ── Demo/live mode: ghost thread handler in useFrame drives everything ── if (!isMissionMode) { return () => { handlePlayThreadRef.current = null; @@ -761,6 +883,9 @@ export const ShapeModel = memo(function ShapeModel({ const thread = threads.get(Number(slot)); if (thread?.action) { thread.action.paused = true; + if (thread.morphActions) { + for (const ma of thread.morphActions) ma.paused = true; + } } }, ), @@ -769,12 +894,20 @@ export const ShapeModel = memo(function ShapeModel({ // Start default looping sequences immediately. Thread slots match // power.cs globals: $PowerThread=0, $AmbientThread=1. + // In Torque, these are ghosted script threads started by server scripts, + // but the non-script ambient thread (ShapeBaseImageData.ambientSequence) + // is client-only and not ghosted. Auto-play both here as they're + // typically active on spawned shapes. const defaults: Array<[number, string]> = [ [0, "power"], [1, "ambient"], ]; for (const [slot, seqName] of defaults) { - if (clipsByName.has(seqName) || visNodesBySequence.has(seqName)) { + if ( + clipsByName.has(seqName) || + visNodesBySequence.has(seqName) || + morphClipsBySeq.has(seqName) + ) { handlePlayThread(slot, seqName); } } @@ -874,6 +1007,9 @@ export const ShapeModel = memo(function ShapeModel({ const thread = threads.get(slot); if (thread?.action) { thread.action.paused = true; + if (thread.morphActions) { + for (const ma of thread.morphActions) ma.paused = true; + } } } else { // Play (state === 0) @@ -892,15 +1028,23 @@ export const ShapeModel = memo(function ShapeModel({ thread.action.setLoop(LoopOnce, 1); thread.action.clampWhenFinished = true; thread.action.paused = true; + if (thread.morphActions) { + for (const ma of thread.morphActions) { + const mc = ma.getClip(); + ma.time = t.forward ? mc.duration : 0; + ma.timeScale = 1; + ma.setLoop(LoopOnce, 1); + ma.clampWhenFinished = true; + ma.paused = true; + } + } } // Snap vis nodes to end pose. if (thread?.visNodes) { for (const v of thread.visNodes) { const mat = v.mesh.material; if (!mat || Array.isArray(mat)) continue; - const endIdx = t.forward - ? v.keyframes.length - 1 - : 0; + const endIdx = t.forward ? v.keyframes.length - 1 : 0; mat.opacity = v.keyframes[endIdx]; v.mesh.visible = mat.opacity > 0.01; } @@ -919,6 +1063,12 @@ export const ShapeModel = memo(function ShapeModel({ // Resume from pause with correct direction. thread.action.paused = false; thread.action.timeScale = t.forward ? 1 : -1; + if (thread.morphActions) { + for (const ma of thread.morphActions) { + ma.paused = false; + ma.timeScale = t.forward ? 1 : -1; + } + } } } } @@ -936,7 +1086,7 @@ export const ShapeModel = memo(function ShapeModel({ // Drive vis opacity animations for active threads. // Direction is handled by computing position forward or backward. - for (const [slot, thread] of threads) { + for (const [, thread] of threads) { if (!thread.visNodes) continue; for (const { mesh, keyframes, duration, cyclic } of thread.visNodes) { @@ -953,7 +1103,7 @@ export const ShapeModel = memo(function ShapeModel({ let t: number; if (cyclic) { // Cyclic: wrap position, ignoring direction (cyclic always advances). - t = ((elapsed % duration) + duration) % duration / duration; + t = (((elapsed % duration) + duration) % duration) / duration; } else if (thread.forward) { t = Math.min(elapsed / duration, 1); } else { @@ -968,6 +1118,27 @@ export const ShapeModel = memo(function ShapeModel({ const frac = pos - lo; mat.opacity = keyframes[lo] + (keyframes[hi] - keyframes[lo]) * frac; mesh.visible = mat.opacity > 0.01; + // Dynamically toggle transparent/depthWrite: only enable blending + // when partially transparent, restore originals at full opacity. + const ud = mat.userData; + // Toggle transparent/depthWrite based on current opacity. + // needsUpdate is required when changing transparent — Three.js + // uses different render lists for opaque vs transparent objects. + if (mat.opacity >= 0.99) { + if (ud?._visOrigTransparent != null) { + if (mat.transparent !== ud._visOrigTransparent) { + mat.transparent = ud._visOrigTransparent; + mat.needsUpdate = true; + } + mat.depthWrite = ud._visOrigDepthWrite; + mat.alphaTest = ud._visOrigAlphaTest; + } + } else if (!mat.transparent) { + mat.transparent = true; + mat.depthWrite = false; + mat.alphaTest = 0; + mat.needsUpdate = true; + } } } @@ -1221,9 +1392,69 @@ export const ShapeModel = memo(function ShapeModel({ eyePos.set(gz, gy, -gx); }); + // Item/ShapeBase built-in dynamic light (binary-verified pulsing formula). + // Torque places a GL point light at getBoxCenter() with: + // constant_attenuation = 0, linear_attenuation = 1/radius, quadratic = 0 + // This gives attenuation = radius/distance — surfaces at zero distance get + // infinite brightness, producing the characteristic "opaque glow" where the + // item's own mesh is massively overlit and goes pure white at peak pulse. + const lightRef = useRef(null); + const lightConfig = useMemo(() => { + const cfg = lightConfigProp; + if (!cfg) return null; + const box = new Box3().setFromObject(gltf.scene); + const center = new Vector3(); + box.getCenter(center); + return { + type: cfg.type, + color: new Color(cfg.color[0], cfg.color[1], cfg.color[2]), + time: cfg.time, + radius: cfg.radius, + onlyStatic: cfg.onlyStatic, + isStatic: cfg.isStatic, + center: [center.x, center.y, center.z] as [number, number, number], + }; + }, [gltf.scene, lightConfigProp]); + + useFrame(() => { + if (!lightRef.current || !lightConfig) return; + if (lightConfig.onlyStatic && !lightConfig.isStatic) { + lightRef.current.intensity = 0; + return; + } + const fadeVal = streamEntityRef.current?.fadeVal ?? 1; + const elapsed = shapeNowSec() * 1000; // ms + let intensity: number; + if (lightConfig.type === 2) { + // PulsingLight (binary-verified): sin(PI * t / lightTime), period = 2 * lightTime + const sinVal = Math.sin((Math.PI * elapsed) / lightConfig.time); + const raw = 0.5 + 0.5 * sinVal; + intensity = (0.15 + raw * 0.85) * fadeVal; + } else { + // ConstantLight + intensity = fadeVal; + } + // Torque uses GL attenuation = radius/d (linear, constant=0). With decay=1 + // in Three.js, the falloff is ~1/d within the distance window. Scale by + // radius² to approximate Torque's overbright behavior — surfaces near the + // light center get extremely bright (flag mesh goes pure white at peak pulse). + lightRef.current.intensity = + intensity * lightConfig.radius * lightConfig.radius; + }); + return ( + {lightConfig && ( + + )} {debugMode ? ( {entityId}: {shapeName} @@ -1241,10 +1472,7 @@ export const ShapeModel = memo(function ShapeModel({ const bone = mountBones[Number(slot)]; return bone ? ( - {createPortal( - {content}, - bone, - )} + {createPortal({content}, bone)} ) : null; })} @@ -1260,6 +1488,7 @@ function ShapeModelLoader({ mounted, noRotation, skinName, + lightConfig, }: { streamEntity?: StreamShapeEntity; emap?: boolean; @@ -1268,6 +1497,7 @@ function ShapeModelLoader({ mounted?: Record; noRotation?: boolean; skinName?: string; + lightConfig?: ShapeLightConfig; }) { const { shapeName } = useShapeInfo(); const gltf = useStaticShape(shapeName); @@ -1280,6 +1510,7 @@ function ShapeModelLoader({ mounted={mounted} noRotation={noRotation} skinName={skinName} + lightConfig={lightConfig} > {children} diff --git a/src/components/StreamingController.tsx b/src/components/StreamingController.tsx index 17b742a8..c78c23d8 100644 --- a/src/components/StreamingController.tsx +++ b/src/components/StreamingController.tsx @@ -42,39 +42,33 @@ function mutateRenderFields( renderEntity: GameEntity, stream: StreamEntity, ): void { - // Fields common to all positioned entities. + // Shared fields (on PositionedBase, used by both Player and Shape). const e = renderEntity as unknown as Record; e.mountObjectId = stream.mountObjectId; e.mountNode = stream.mountNode; e.imageSlots = stream.imageSlots; + e.threads = stream.threads; + e.armAction = stream.armAction; + e.targetRenderFlags = stream.targetRenderFlags; + e.iffColor = stream.iffColor; + e.soundSlots = stream.soundSlots; + // Type-specific fields. switch (renderEntity.renderType) { - case "Player": { - e.threads = stream.threads; - e.armAction = stream.armAction; + case "Player": e.falling = stream.falling; e.jetting = stream.jetting; e.weaponImageState = stream.weaponImageState; e.weaponImageStates = stream.weaponImageStates; e.playerName = stream.playerName; - e.iffColor = stream.iffColor; e.headPitch = stream.headPitch; e.headYaw = stream.headYaw; - e.targetRenderFlags = stream.targetRenderFlags; - e.soundSlots = stream.soundSlots; break; - } - case "Shape": { - e.threads = stream.threads; + case "Shape": e.damageState = stream.damageState; e.fadeVal = stream.fadeVal; e.cloakLevel = stream.cloakLevel; - e.armAction = stream.armAction; - e.targetRenderFlags = stream.targetRenderFlags; - e.iffColor = stream.iffColor; - e.soundSlots = stream.soundSlots; break; - } } } diff --git a/src/interiorMaterial.ts b/src/interiorMaterial.ts index 11e3944a..2322ee7d 100644 --- a/src/interiorMaterial.ts +++ b/src/interiorMaterial.ts @@ -1,4 +1,5 @@ import { Vector3 } from "three"; +import { glslColorSpace, glslDebugGrid } from "./shaderUtils"; /** * Interior material shader modifications for MeshLambertMaterial. @@ -30,30 +31,6 @@ export type InteriorLightingOptions = { surfaceOutsideVisible?: boolean; }; -// sRGB <-> Linear conversion functions (GLSL) -const colorSpaceFunctions = /* glsl */ ` -vec3 interiorLinearToSRGB(vec3 linear) { - vec3 higher = pow(linear, vec3(1.0/2.4)) * 1.055 - 0.055; - vec3 lower = linear * 12.92; - return mix(lower, higher, step(vec3(0.0031308), linear)); -} - -vec3 interiorSRGBToLinear(vec3 srgb) { - vec3 higher = pow((srgb + 0.055) / 1.055, vec3(2.4)); - vec3 lower = srgb / 12.92; - return mix(lower, higher, step(vec3(0.04045), srgb)); -} - -// Debug grid overlay function using screen-space derivatives for sharp, anti-aliased lines -// Returns 1.0 on grid lines, 0.0 elsewhere -float debugGrid(vec2 uv, float gridSize, float lineWidth) { - vec2 scaledUV = uv * gridSize; - vec2 grid = abs(fract(scaledUV - 0.5) - 0.5) / fwidth(scaledUV); - float line = min(grid.x, grid.y); - return 1.0 - min(line / lineWidth, 1.0); -} -`; - export function injectInteriorLighting( shader: any, options: InteriorLightingOptions, @@ -76,7 +53,8 @@ export function injectInteriorLighting( shader.fragmentShader = shader.fragmentShader.replace( "#include ", `#include -${colorSpaceFunctions} +${glslColorSpace} +${glslDebugGrid} uniform bool useSceneLighting; uniform vec3 interiorDebugColor; `, @@ -98,7 +76,11 @@ uniform vec3 interiorDebugColor; "#include ", `// Torque-style lighting: output = clamp(lighting × texture, 0, 1) in sRGB space // Get texture in sRGB space (undo Three.js linear decode) -vec3 textureSRGB = interiorLinearToSRGB(diffuseColor.rgb); +vec3 textureSRGB = torqueLinearToSRGB(diffuseColor.rgb); + +// Save Three.js computed direct lighting (includes sun + point/spot lights). +// We'll add it back for point/spot light contribution after our gamma-space calc. +vec3 interiorAllLightsLinear = reflectedLight.directDiffuse; // Compute lighting in sRGB space vec3 lightingSRGB = vec3(0.0); @@ -122,7 +104,7 @@ if (useSceneLighting) { // (stored in .ml files). Inside surfaces only have base lightmap. Both need lightmap here. #ifdef USE_LIGHTMAP // Lightmap is stored as linear in Three.js (decoded from sRGB texture), convert back - lightingSRGB += interiorLinearToSRGB(lightMapTexel.rgb); + lightingSRGB += torqueLinearToSRGB(lightMapTexel.rgb); #endif // Torque clamps the sum to [0,1] per channel (sceneLighting.cc lines 1817-1827) lightingSRGB = clamp(lightingSRGB, 0.0, 1.0); @@ -131,10 +113,14 @@ lightingSRGB = clamp(lightingSRGB, 0.0, 1.0); vec3 resultSRGB = clamp(lightingSRGB * textureSRGB, 0.0, 1.0); // Convert back to linear for Three.js output pipeline -vec3 resultLinear = interiorSRGBToLinear(resultSRGB); +vec3 resultLinear = torqueSRGBToLinear(resultSRGB); // Reassign outgoingLight before opaque_fragment consumes it +// Add dynamic point/spot lights when present (avoid sun double-count otherwise) outgoingLight = resultLinear + totalEmissiveRadiance; +#if ( NUM_POINT_LIGHTS > 0 || NUM_SPOT_LIGHTS > 0 ) + outgoingLight += interiorAllLightsLinear; +#endif #include `, ); @@ -148,7 +134,7 @@ outgoingLight = resultLinear + totalEmissiveRadiance; // Red grid = inside surface (no scene ambient light) #if DEBUG_MODE && defined(USE_MAP) // gridSize=4 creates 4x4 grid per UV tile, lineWidth=1.5 is ~1.5 pixels wide - float gridIntensity = debugGrid(vMapUv, 4.0, 1.5); + float gridIntensity = torqueDebugGrid(vMapUv, 4.0, 1.5); gl_FragColor.rgb = mix(gl_FragColor.rgb, interiorDebugColor, gridIntensity * 0.1); #endif diff --git a/src/shaderUtils.ts b/src/shaderUtils.ts new file mode 100644 index 00000000..ab6ce3d8 --- /dev/null +++ b/src/shaderUtils.ts @@ -0,0 +1,31 @@ +/** + * Shared GLSL utility functions for Torque-style gamma-space rendering. + * + * Used by terrain and interior materials which both need sRGB↔linear + * conversion and debug grid overlays. + */ + +/** sRGB ↔ Linear conversion functions. */ +export const glslColorSpace = /* glsl */ ` +vec3 torqueLinearToSRGB(vec3 linear) { + vec3 higher = pow(linear, vec3(1.0/2.4)) * 1.055 - 0.055; + vec3 lower = linear * 12.92; + return mix(lower, higher, step(vec3(0.0031308), linear)); +} + +vec3 torqueSRGBToLinear(vec3 srgb) { + vec3 higher = pow((srgb + 0.055) / 1.055, vec3(2.4)); + vec3 lower = srgb / 12.92; + return mix(lower, higher, step(vec3(0.04045), srgb)); +} +`; + +/** Debug grid overlay using screen-space derivatives. */ +export const glslDebugGrid = /* glsl */ ` +float torqueDebugGrid(vec2 uv, float gridSize, float lineWidth) { + vec2 scaledUV = uv * gridSize; + vec2 grid = abs(fract(scaledUV - 0.5) - 0.5) / fwidth(scaledUV); + float line = min(grid.x, grid.y); + return 1.0 - min(line / lineWidth, 1.0); +} +`; diff --git a/src/state/gameEntityTypes.ts b/src/state/gameEntityTypes.ts index d7d7a8d4..a5637be1 100644 --- a/src/state/gameEntityTypes.ts +++ b/src/state/gameEntityTypes.ts @@ -122,8 +122,25 @@ interface PositionedBase extends EntityBase { scale?: [number, number, number]; velocity?: [number, number, number]; keyframes?: Keyframe[]; + + // ── Shared gameplay fields (used by both Shape and Player) ── + dataBlock?: string; + skinName?: string; /** Mounted image slots (0-7). Mount bone from dataBlock->mountPoint. */ imageSlots?: (ImageSlot | undefined)[]; + threads?: ThreadState[]; + /** Arm blend animation action index from Player ghost (networked). */ + armAction?: number; + /** Torque DamageState: 0=Enabled, 1=Disabled, 2=Destroyed. */ + damageState?: number; + targetRenderFlags?: number; + iffColor?: { r: number; g: number; b: number }; + /** ShapeBase sound slots (from ghost SoundMask). */ + soundSlots?: Array<{ index: number; playing: boolean; profileId?: number }>; + health?: number; + energy?: number; + actionAnim?: number; + actionAtEnd?: boolean; } // ── Gameplay entities ── @@ -133,18 +150,8 @@ export interface ShapeEntity extends PositionedBase { renderType: "Shape"; shapeName?: string; shapeType?: string; - dataBlock?: string; - /** Skin name from TargetManager (e.g. "beagle" for flags, team skins). */ - skinName?: string; - threads?: ThreadState[]; - /** Torque DamageState: 0=Enabled, 1=Disabled, 2=Destroyed. */ - damageState?: number; rotate?: boolean; teamId?: number; - targetRenderFlags?: number; - iffColor?: { r: number; g: number; b: number }; - /** Arm blend animation action index from Player ghost (networked). */ - armAction?: number; /** WheeledVehicle per-wheel state (speed, slip). */ wheels?: Array<{ speed: number; @@ -157,41 +164,31 @@ export interface ShapeEntity extends PositionedBase { frozen?: boolean; /** Vehicle max steering angle (radians), from datablock. */ maxSteeringAngle?: number; - /** ShapeBase sound slots (from ghost SoundMask). */ - soundSlots?: Array<{ index: number; playing: boolean; profileId?: number }>; /** ShapeBase fade value (0=invisible, 1=fully visible). Matches mFadeVal. */ fadeVal?: number; /** Cloak level (0=visible, 1=fully cloaked). Used for cloak texture effect. */ cloakLevel?: number; + /** Item/ShapeBase built-in dynamic light from datablock. */ + lightType?: number; + lightColor?: [number, number, number, number]; + lightTime?: number; + lightRadius?: number; + lightOnlyStatic?: boolean; + isStaticItem?: boolean; } export interface PlayerEntity extends PositionedBase { renderType: "Player"; shapeName?: string; - dataBlock?: string; - /** Arm blend animation action index from Player ghost (networked). */ - armAction?: number; + /** Player preferred skin (chosen skin like "RandySavage"). */ + skinPrefName?: string; falling?: boolean; jetting?: boolean; playerName?: string; - /** Player skin (team skin like "base", "baseb"). */ - skinName?: string; - /** Player preferred skin (chosen skin like "RandySavage"). */ - skinPrefName?: string; - iffColor?: { r: number; g: number; b: number }; - threads?: ThreadState[]; weaponImageState?: WeaponImageState; weaponImageStates?: WeaponImageDataBlockState[]; headPitch?: number; headYaw?: number; - health?: number; - energy?: number; - actionAnim?: number; - actionAtEnd?: boolean; - damageState?: number; - targetRenderFlags?: number; - /** ShapeBase sound slots (from ghost SoundMask). */ - soundSlots?: Array<{ index: number; playing: boolean; profileId?: number }>; } export interface ForceFieldBareEntity extends PositionedBase { diff --git a/src/stream/StreamEngine.ts b/src/stream/StreamEngine.ts index 44cca8b0..cae03f78 100644 --- a/src/stream/StreamEngine.ts +++ b/src/stream/StreamEngine.ts @@ -147,6 +147,12 @@ export interface MutableEntity { /** Item mStatic flag (from InitialUpdateMask). Static items (flags at * flagstand) skip all physics in Item::processTick. */ isStaticItem?: boolean; + /** Item/ShapeBase built-in dynamic light from datablock. */ + lightType?: number; + lightColor?: [number, number, number, number]; + lightTime?: number; + lightRadius?: number; + lightOnlyStatic?: boolean; /** Item velocity interpolation state. The client simulates full physics * (gravity, collision, bounce) for non-static, non-at-rest items. */ @@ -1040,6 +1046,20 @@ export abstract class StreamEngine implements StreamingPlayback { entity.maxEnergy = blockData.maxEnergy; } + // Item/ShapeBase built-in dynamic light (binary-verified). + const lt = blockData?.lightType as number | undefined; + if (lt && lt > 0 && blockData) { + entity.lightType = lt; + const lc = blockData.lightColor as + | { r: number; g: number; b: number; a?: number } + | undefined; + entity.lightColor = lc ? [lc.r, lc.g, lc.b, lc.a ?? 1] : [1, 1, 1, 1]; + entity.lightTime = (blockData.lightTime as number | undefined) ?? 1000; + entity.lightRadius = + (blockData.lightRadius as number | undefined) ?? 10; + entity.lightOnlyStatic = !!(blockData.lightOnlyStatic as boolean); + } + // Classify projectile physics if (entity.type === "Projectile") { if (linearProjectileClassNames.has(entity.className)) { @@ -2464,6 +2484,12 @@ export abstract class StreamEngine implements StreamingPlayback { shapeHint: entity.shapeHint, dataBlock: entity.dataBlock, imageSlots: entity.imageSlots, + lightType: entity.lightType, + lightColor: entity.lightColor, + lightTime: entity.lightTime, + lightRadius: entity.lightRadius, + lightOnlyStatic: entity.lightOnlyStatic, + isStaticItem: entity.isStaticItem, mountObjectId: entity.mountObjectGhostIndex != null ? this.entityIdByGhostIndex.get(entity.mountObjectGhostIndex) diff --git a/src/stream/entityBridge.ts b/src/stream/entityBridge.ts index 93e6de96..f62fe081 100644 --- a/src/stream/entityBridge.ts +++ b/src/stream/entityBridge.ts @@ -22,6 +22,8 @@ function positionedBase(entity: StreamEntity, spawnTime?: number) { ghostIndex: entity.ghostIndex, dataBlockId: entity.dataBlockId, shapeHint: entity.shapeHint, + dataBlock: entity.dataBlock, + skinName: entity.skinName, spawnTime, position: entity.position, rotation: entity.rotation, @@ -29,6 +31,16 @@ function positionedBase(entity: StreamEntity, spawnTime?: number) { mountObjectId: entity.mountObjectId, mountNode: entity.mountNode, imageSlots: entity.imageSlots, + threads: entity.threads, + armAction: entity.armAction, + damageState: entity.damageState, + targetRenderFlags: entity.targetRenderFlags, + iffColor: entity.iffColor, + soundSlots: entity.soundSlots, + health: entity.health, + energy: entity.energy, + actionAnim: entity.actionAnim, + actionAtEnd: entity.actionAtEnd, keyframes: [ { time: spawnTime ?? 0, @@ -120,21 +132,14 @@ export function streamEntityToGameEntity( ...positionedBase(entity, spawnTime), renderType: "Player", shapeName: entity.dataBlock, - dataBlock: entity.dataBlock, - armAction: entity.armAction, + skinPrefName: entity.skinPrefName, falling: entity.falling, jetting: entity.jetting, playerName: entity.playerName, - skinName: entity.skinName, - skinPrefName: entity.skinPrefName, - iffColor: entity.iffColor, - threads: entity.threads, weaponImageState: entity.weaponImageState, weaponImageStates: entity.weaponImageStates, headPitch: entity.headPitch, headYaw: entity.headYaw, - targetRenderFlags: entity.targetRenderFlags, - soundSlots: entity.soundSlots, } satisfies PlayerEntity; case "Explosion": @@ -231,20 +236,18 @@ export function streamEntityToGameEntity( : entity.className === "Item" ? "Item" : "StaticShape", - dataBlock: entity.dataBlock, - skinName: entity.skinName, - damageState: entity.damageState, - armAction: entity.armAction, - threads: entity.threads, - targetRenderFlags: entity.targetRenderFlags, - iffColor: entity.iffColor, wheels: entity.wheels, steeringYaw: entity.steeringYaw, frozen: entity.frozen, maxSteeringAngle: entity.maxSteeringAngle, - soundSlots: entity.soundSlots, fadeVal: entity.fadeVal, cloakLevel: entity.cloakLevel, + lightType: entity.lightType, + lightColor: entity.lightColor, + lightTime: entity.lightTime, + lightRadius: entity.lightRadius, + lightOnlyStatic: entity.lightOnlyStatic, + isStaticItem: entity.isStaticItem, } satisfies ShapeEntity; } } diff --git a/src/stream/missionEntityBridge.ts b/src/stream/missionEntityBridge.ts index 1ea056ff..0e97d626 100644 --- a/src/stream/missionEntityBridge.ts +++ b/src/stream/missionEntityBridge.ts @@ -225,6 +225,38 @@ function buildShapeEntity( } } + // Item/ShapeBase built-in dynamic light from datablock. + const lightTypeStr = getProperty(datablock, "lightType"); + if (lightTypeStr) { + const ltMap: Record = { + constantlight: 1, + pulsinglight: 2, + }; + const lt = ltMap[lightTypeStr.toLowerCase()]; + if (lt) { + entity.lightType = lt; + const lcStr = getProperty(datablock, "lightColor"); + if (lcStr) { + const parts = lcStr.split(/\s+/).map(Number); + entity.lightColor = [ + parts[0] ?? 1, + parts[1] ?? 1, + parts[2] ?? 1, + parts[3] ?? 1, + ]; + } else { + entity.lightColor = [1, 1, 1, 1]; + } + entity.lightTime = Number(getProperty(datablock, "lightTime")) || 1000; + entity.lightRadius = Number(getProperty(datablock, "lightRadius")) || 10; + entity.lightOnlyStatic = isTruthy( + getProperty(datablock, "lightOnlyStatic"), + ); + // In mission mode, statically placed items are always "static". + entity.isStaticItem = className === "Item"; + } + } + if (className === "Turret") { const barrelName = getProperty(object, "initialBarrel"); if (barrelName) { diff --git a/src/stream/types.ts b/src/stream/types.ts index a8fcde6b..de8d6ffd 100644 --- a/src/stream/types.ts +++ b/src/stream/types.ts @@ -110,6 +110,13 @@ export interface StreamEntity { direction?: [number, number, number]; /** Mounted image slots (0-7). Mount bone from dataBlock->mountPoint. */ imageSlots?: (ImageSlot | undefined)[]; + /** Item/ShapeBase built-in dynamic light from datablock. */ + lightType?: number; + lightColor?: [number, number, number, number]; + lightTime?: number; + lightRadius?: number; + lightOnlyStatic?: boolean; + isStaticItem?: boolean; playerName?: string; /** IFF color resolved from the sensor group color table (sRGB 0-255). */ iffColor?: { r: number; g: number; b: number }; diff --git a/src/terrainMaterial.ts b/src/terrainMaterial.ts index a77aaddf..c5c605d1 100644 --- a/src/terrainMaterial.ts +++ b/src/terrainMaterial.ts @@ -18,6 +18,7 @@ */ import { globalSunUniforms } from "./globalSunUniforms"; +import { glslColorSpace, glslDebugGrid } from "./shaderUtils"; // Terrain and texture dimensions (must match TerrainBlock.tsx constants) const TERRAIN_SIZE = 256; // Terrain grid size in squares @@ -29,30 +30,6 @@ const DETAIL_TILING = 64.0; // Distance at which detail texture fully fades out (in world units) const DETAIL_FADE_DISTANCE = 150.0; -// sRGB <-> Linear conversion functions (GLSL) -const colorSpaceFunctions = /* glsl */ ` -vec3 terrainLinearToSRGB(vec3 linear) { - vec3 higher = pow(linear, vec3(1.0/2.4)) * 1.055 - 0.055; - vec3 lower = linear * 12.92; - return mix(lower, higher, step(vec3(0.0031308), linear)); -} - -vec3 terrainSRGBToLinear(vec3 srgb) { - vec3 higher = pow((srgb + 0.055) / 1.055, vec3(2.4)); - vec3 lower = srgb / 12.92; - return mix(lower, higher, step(vec3(0.04045), srgb)); -} - -// Debug grid overlay using screen-space derivatives for sharp, anti-aliased lines -// Returns 1.0 on grid lines, 0.0 elsewhere -float terrainDebugGrid(vec2 uv, float gridSize, float lineWidth) { - vec2 scaledUV = uv * gridSize; - vec2 grid = abs(fract(scaledUV - 0.5) - 0.5) / fwidth(scaledUV); - float line = min(grid.x, grid.y); - return 1.0 - min(line / lineWidth, 1.0); -} -`; - export function updateTerrainTextureShader({ shader, baseTextures, @@ -157,7 +134,8 @@ varying vec3 vTerrainWorldPos;` : "" } -${colorSpaceFunctions} +${glslColorSpace} +${glslDebugGrid} // Global variable to store shadow factor from RE_Direct for use in output calculation float terrainShadowFactor = 1.0; @@ -296,11 +274,12 @@ void RE_Direct_TerrainShadow( const in IncidentLight directLight, const in vec3 `, ); - // Override lights_fragment_begin to skip indirect diffuse calculation - // We'll handle ambient in gamma space + // Override lights_fragment_begin: save directDiffuse before lights run, + // then after lights_fragment_end we can extract the point/spot contribution. shader.fragmentShader = shader.fragmentShader.replace( "#include ", - `#include + `vec3 terrainPreLightDirect = reflectedLight.directDiffuse; +#include // Clear indirect diffuse - we'll compute ambient in gamma space #if defined( RE_IndirectDiffuse ) irradiance = vec3(0.0); @@ -308,11 +287,15 @@ void RE_Direct_TerrainShadow( const in IncidentLight directLight, const in vec3 `, ); - // Clear the indirect diffuse after lights_fragment_end shader.fragmentShader = shader.fragmentShader.replace( "#include ", `#include - // Clear Three.js lighting - we compute everything in gamma space + // Extract dynamic point/spot light contribution by subtracting what was + // there before lights ran. directDiffuse now has sun + point lights; + // terrainPreLightDirect was 0, so the difference is all lights. + // We'll subtract the sun part below and keep just the point/spot part. + vec3 terrainAllLightsLinear = reflectedLight.directDiffuse - terrainPreLightDirect; + // Clear Three.js lighting - we compute sun/ambient in gamma space reflectedLight.directDiffuse = vec3(0.0); reflectedLight.indirectDiffuse = vec3(0.0); `, @@ -325,7 +308,7 @@ void RE_Direct_TerrainShadow( const in IncidentLight directLight, const in vec3 `// Torque-style terrain lighting: output = clamp(lighting × texture, 0, 1) in sRGB space { // Get texture in sRGB space (undo Three.js linear decode) - vec3 textureSRGB = terrainLinearToSRGB(diffuseColor.rgb); + vec3 textureSRGB = torqueLinearToSRGB(diffuseColor.rgb); ${ lightmap @@ -358,7 +341,16 @@ void RE_Direct_TerrainShadow( const in IncidentLight directLight, const in vec3 vec3 resultSRGB = clamp(lightingSRGB * textureSRGB, 0.0, 1.0); // Convert back to linear for Three.js output pipeline - outgoingLight = terrainSRGBToLinear(resultSRGB) + totalEmissiveRadiance; + outgoingLight = torqueSRGBToLinear(resultSRGB) + totalEmissiveRadiance; + // Add dynamic point/spot light contributions when present. + // terrainAllLightsLinear includes both directional + point from Three.js. + // We only add it when point/spot lights exist to avoid double-counting + // the sun (already computed in gamma space above). The slight sun + // double-count when points are active is acceptable — point light + // intensity dominates near the source. + #if ( NUM_POINT_LIGHTS > 0 || NUM_SPOT_LIGHTS > 0 ) + outgoingLight += terrainAllLightsLinear; + #endif } #include `, ); @@ -369,7 +361,7 @@ void RE_Direct_TerrainShadow( const in IncidentLight directLight, const in vec3 "#include ", `#if DEBUG_MODE // Debug mode: overlay green grid matching terrain grid squares (256x256) - float gridIntensity = terrainDebugGrid(vTerrainUv, 256.0, 1.5); + float gridIntensity = torqueDebugGrid(vTerrainUv, 256.0, 1.5); vec3 gridColor = vec3(0.0, 0.8, 0.4); // Green gl_FragColor.rgb = mix(gl_FragColor.rgb, gridColor, gridIntensity * 0.1); #endif