8:function load_local_env(string $path): void { 268: function prep(el){ 300: function q(id){ return document.getElementById(id); } 301: function qq(sel, root){ return Array.prototype.slice.call((root || document).querySelectorAll(sel)); } 307: function ensureStyle(){ 330: function ensureModal(){ 371: function findOverlayComposerRoot(){ 412: function ensurePlaceholder(panel){ 420: function showModal(){ 427: function hideModal(){ 434: function liftOverlayComposer(){ 492: function closeOverlayModal(){ 514: function suppressInlineOpeners(){ 549: function suppressLegacyInlineVisibility(){ 566: function removeDedicatedWorkspaceText(){ 576: function boot(){ 656: function prep(el){ 676: function q(id){ return document.getElementById(id); } 677: function qq(sel, root){ return Array.prototype.slice.call((root || document).querySelectorAll(sel)); } 683: function ensureStyle(){ 706: function ensureModal(){ 747: function findOverlayComposerRoot(){ 788: function ensurePlaceholder(panel){ 796: function showModal(){ 803: function hideModal(){ 810: function liftOverlayComposer(){ 868: function closeOverlayModal(){ 890: function suppressInlineOpeners(){ 925: function suppressLegacyInlineVisibility(){ 942: function removeDedicatedWorkspaceText(){ 952: function boot(){ 1272:function applyLayoutCaps(){ 1724:function projectAssetApiUrl(bucket){ 1730:function saveUiState(){ 1741:function loadUiState(){ 1750:function applyUiState(){ 1762:function readFileAsDataURL(file){ 1773:function saveMediaLibrary(){ 1850:function loadMediaSettings(){ 1858:function saveMediaSettings(){ 1861:function getMediaSettings(id){ 1886:function setMediaSettings(id, patch){ 1964:function getGuidesModalEls(){ 1999:function safeUid(u){ return (u === null || u === undefined) ? "" : String(u); } 2004:function encodeJSON(obj){ 2007:function sendCtrlTo(uid, msg){ 2021:function sendGuestCmd(uid, cmd, value){ 2034:function saveGuestVidSettings(){ 2037:function clampNum(v, min, max, fallback){ 2042:function getGuestVidCfg(slotIdx){ 2053:function setGuestVidCfg(slotIdx, cfg){ 2065:function applyVideoFramingToContainer(container, cfg){ 2078:function openGuestFramingModal(slotIdx){ 2127: function applyAndSave(){ 2149: function syncFromNumber(){ 2177:function slotConnState(s){ 2183:function slotIsMuted(s){ 2186:function hostConnState(){ 2191:function deriveOnAirBadgeState(){ 2200:function svgIcon(kind){ 2209:function setStatus(connected){ 2289:function openSkin(){ 2294:function closeSkin(){ 2369:function buildTuner(){ 2408:function collectSkinVars(){ 2415:function applySkinVars(obj){ 2423:function setSkinDirty(v){ 2432:function saveSkin(){ 2455:function applyFit(){ 2505:function syncDebugState(){ 2523:function clearReconnectTimer(){ 2529:function scheduleReconnect(delay=1200){ 2537:function stopStudioReturnWatchdog(){ 2543:function startStudioReturnWatchdog(){ 2847:function isHostUid(uid){ 2853:function findSlotByUid(uid){ 2857:function allocateSlotForUser(user){ 2874:function releaseSlot(uid){ 2918:function renderUI(){ 3077:function updateMixerStates(){ 3090:function updateFaderCap(idx){ 3107:function toggleCamPreview(idx){ 3114:function toggleMicMonitor(idx){ 3127:function toggleCue(idx){ 3134:function selectPreviewBySlot(idx){ 3143:function setPreviewSource(src){ 3161:function updatePreviewPanel(){ 3265:function updateOnAirPanel(){ 3384:function updateMediaButtons(){ 3453:function createStudioLaunchThumb(kind){ 3546:function renderMediaThumbs(){ 3589:function getActiveMediaAudio(){ 3596:function attachMediaAudio(mediaEl, item){ 3606:function detachMediaAudio(){ 3625:function resumeAudioContext(){ 3634:function ensureAudioNodes(){ 3677:function supportsCaptureStream(videoEl){ 3681:function getCaptureStream(videoEl){ 3690:function getVideoTrackFromVideoEl(videoEl){ 3707:function getCurrentProgramVideoSource(){ 3830:function getMediaStreamTrack(track){ 3841:function ensureHostAudioEl(){ 3851:function mountHostAudio(){ 3864:function unmountHostAudio(){ 3872:function mountVideoInto(container, track, muted=true){ 3915:function connectTrackToChannel(idx, track){ 3933:function disconnectChannel(idx){ 3944:function connectMediaElementToChannel6(el){ 3966:function setChannelVolume(idx, vol){ 3984:function startMeters(){ 3992: function tick(){ 4033:function bindRoomEvents(){ 4281:function getDefaultGuidesState(){ 4298:function loadGuides(){ 4307:function saveGuides(){ 4312:function loadMonitor(){ 4318:function saveMonitor(){ 4321:function applyMonitorUi(){ 4394:function loadFx(){ 4409:function saveFx(){ 4414:function makeThumb(def, active=false, pvText=""){ 4432:function wireClickAndDbl(el, onClick, onDbl){ 4489:function buildFxThumbs(){ 4595:function addRowTo(targetEl, label, inputEl){ 4604:function mkSelectSafe(name, options, value){ 4617:function mkInputSafe(name, type, value){ 4624:function mkRangeSafe(name, min, max, step, value, suffix){ 4636:function openMediaEditor(id) { 4643:function closeMediaModal() { 4716:function streamNow(){ 4720:function streamLogAdd(lvl, msg){ 4727:function summarizeStreamState(map){ 4734:function syncStreamGlobals(map, err){ 4752:function loadStream(){ 4795:function saveStream(){ 4800:function streamBase(){ 4920:function openStreamModal() { 4925:function closeStreamModal() { 4973:function renderStreamLog(){ 4980:function channelIsValid(ch){ 4984:function statusBadge(state){ 5035:function renderStreamList(statusMap){ 5212:function startStreamPolling(){ 5219:function stopStreamPolling(){ 5243:function mkSelect(name, options, value){ 5255:function mkInput(name, type, value){ 5266:function mkRange(name, min, max, step, value, suffix){ 5291:function addRow(label, inputEl){ 5301:function buildSourceOptions(){ 5318:function openFxSettings(kind, id, name) { 5327:function closeFxModal() { 5333:function readModalValues(){ 5419:function updateOverlaysAfterToggle(){ 5426:function applyGuidesPreset(preset){ 5438:function loadGuidesIntoPanel(){ 5452:function openGuidesSettings() { 5457:function closeGuidesSettings() { 5465:function saveGuidesFromPanel(){ 5490:function resetGuidesPanel(){ 5496:function toggleGuides(){ 5543:function ensureProgramRoot(){ 5555:function applyTransition(fromEl, toEl){ 5690:function takeToProgram(){ 5761:function clearContainerHard(el){ 5773:function resolveSourceEl(parent, src, isPreview){ 5986:function getAuxGuestSources(excludeUid, limit){ 5997:function renderVirtual(stage, baseSrc, isPreview, layoutId, layoutSettings){ 6117:function renderOverlays(layer, overlaysEnabled, overlaysSettings){ 6197:function escapeHtml(str){ 6206:function hexToRgba(hex, alpha){ 6218:function getAspectBox(w, h, standard){ 6235:function drawGuides(canvas, stageEl){ 6322:function updatePreviewGuides(){ 6332:function deepClone(obj){ 6336:function getPreviewSnapshot(includeOverlays=true){ 6346:function renderSnapshotInto(container, snap, isPreview, withGuides){ 6384:function updatePreviewOverlays(){ 6393:function updateProgramOverlays(){ 6403:function refreshProgramAudioRouting(){ 6418:function updatePreviewPanel(){ 6438:function updateOnAirPanel(){ 6669: function q(id){ return document.getElementById(id); } 6670: function show(id){ var el = typeof id === 'string' ? q(id) : id; if(!el) return false; if(window.__modalShow) return window.__modalShow(el); el.hidden=false; el.setAttribute('aria-hidden','false'); el.classList.add('show'); return true; } 6671: function hide(id){ var el = typeof id === 'string' ? q(id) : id; if(!el) return false; if(window.__modalHide) return window.__modalHide(el); el.classList.remove('show'); el.setAttribute('aria-hidden','true'); el.hidden=true; return true; } 6672: function bindBackdrop(id){ var el=q(id); if(!el || el.__lateBound) return; el.__lateBound=true; el.addEventListener('click', function(ev){ if(ev.target===el) hide(el); }); } 6673: function boot(){ 6701: function resolveFxThumb(target){ 6709: function inferInfo(info){ 6751: function dedupeGuidesSettingsButton(){ 6792:function __cpForceModalOpen(id){ 6808:function __cpForceModalClose(id){