local v0 = require(script.Parent.Parent.Immutable);
local v1 = require(script.Parent.Parent.Actions.SetActiveTab);
local v2 = require(script.Parent.Parent.Actions.SetTabList);
return function(v3, v4)
    local v5 = v3 or {
        isDeveloperView = false,
        isClientView = true,
        tabList = {},
        currTabIndex = nil
    };
    if v4.type == v1.name then
        if v5.tabList[v4.newTabIndex] then
            local v6 = {
                currTabIndex = v4.newTabIndex,
                isClientView = v4.isClientView
            };
            if v5.currTabIndex ~= v4.newTabIndex then
                v6.isClientView = true;
            end;
            local v7 = v0.JoinDictionaries(v5, v6);
            if v6.isClientView == nil then
                v7 = v0.RemoveFromDictionary(v7, "isClientView");
            end;
            return v7;
        end;
    elseif not (not (v4.type == v2.name) or not v4.tabList[v4.initIndex]) then
        return v0.JoinDictionaries(v5, {
            currTabIndex = v4.initIndex,
            tabList = v4.tabList,
            isDeveloperView = v4.isDeveloperView,
            isClientView = true
        });
    end;
    return v5;
end;


local v0 = require(script.Parent.Parent.Immutable);
local v1 = require(script.Parent.Parent.Actions.ClientMemoryUpdateSearchFilter);
local v2 = require(script.Parent.Parent.Actions.ServerMemoryUpdateSearchFilter);
return function(v3, v4)
    local v5 = v3 or {
        clientSearchTerm = "",
        serverSearchTerm = ""
    };
    if v4.type == v1.name then
        return (v0.Set(v5, "clientSearchTerm", v4.searchTerm));
    elseif v4.type == v2.name then
        return (v0.Set(v5, "serverSearchTerm", v4.searchTerm));
    else
        return v5;
    end;
end;


local v0 = require(script.Parent.Parent.Immutable);
local v1 = require(script.Parent.Parent.Actions.SetRCCProfilerState);
return function(v2, v3)
    local v4 = v2 or {
        waitingForRecording = false,
        lastFileOutputLocation = ""
    };
    if v3.type == v1.name then
        return (v0.JoinDictionaries(v4, {
            waitingForRecording = v3.waitingForRecording,
            lastFileOutputLocation = v3.lastFileOutputLocation
        }));
    else
        return v4;
    end;
end;


local v0 = require(script.Parent.Parent.Immutable);
local v1 = require(script.Parent.Parent.Actions.ClientNetworkUpdateSearchFilter);
local v2 = require(script.Parent.Parent.Actions.ServerNetworkUpdateSearchFilter);
return function(v3, v4)
    local v5 = v3 or {
        clientSearchTerm = "",
        serverSearchTerm = ""
    };
    if v4.type == v1.name then
        return (v0.Set(v5, "clientSearchTerm", v4.searchTerm));
    elseif v4.type == v2.name then
        return (v0.Set(v5, "serverSearchTerm", v4.searchTerm));
    else
        return v5;
    end;
end;


local v0 = require(script.Parent.Parent.Immutable);
local v1 = require(script.Parent.Parent.Actions.SetScriptProfilerState);
local v2 = require(script.Parent.Parent.Actions.SetScriptProfilerRoot);
local v3 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetIsProfiling);
local v4 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetData);
local v5 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetThreads);
local v6 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetTimerState);
local v7 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.ClearStateForNewProfilingSession);
local v8 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetAverage);
local v9 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetFrequency);
local v10 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetDataView);
local v11 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetLiveUpdate);
local v12 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetShowPlugins);
local v13 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetShowGC);
local v14 = require(script.Parent.Parent.Components.ScriptProfiler.Actions.SetSearchData);
local _ = require(script.Parent.Parent.Components.ScriptProfiler.ProfilerDataFormatV2);
local v16 = game:DefineFastFlag("ScriptProfilerSetRootFixSourceInfo", false);
local function _(v17, v18)
    if not v17 then
        return v18.server;
    else
        return v18.client;
    end;
end;
local function v24(v20, v21, v22)
    local v23 = v0.JoinDictionaries(if not v20 then v21.server else v21.client, v22);
    return v0.JoinDictionaries(v21, {
        client = if not v20 then nil else v23,
        server = if not v20 then v23 else nil
    });
end;
return function(v25, v26)
    local v27 = v25 or {
        isClientView = true,
        usePercentages = false,
        isExporting = false,
        isShowingMobileSettings = false,
        client = {
            isProfiling = false,
            data = nil,
            serializedData = nil,
            frequency = 1000,
            timedProfilingThread = nil,
            timedProfilingTimerThread = nil,
            timedProfilingDuration = 0,
            timedProfilingCountdown = 0,
            isFunctionsView = false,
            average = 0,
            searchTerm = "",
            searchFilterGraph = {},
            searchFilterFlat = {},
            rootNode = 0,
            rootFunc = 0,
            rootNodeName = nil,
            liveUpdate = false,
            liveUpdateThread = nil,
            showPlugins = false,
            pluginOffsets = {},
            showGC = false,
            gcFunctionOffsets = {},
            gcNodeOffsets = {},
            pluginGCOffsets = {},
            expandedNodes = {}
        },
        server = {
            isProfiling = false,
            data = nil,
            serializedData = nil,
            frequency = 1000,
            timedProfilingThread = nil,
            timedProfilingTimerThread = nil,
            timedProfilingDuration = 0,
            timedProfilingCountdown = 0,
            isFunctionsView = false,
            average = 0,
            searchTerm = "",
            searchFilterGraph = {},
            searchFilterFlat = {},
            rootNode = 0,
            rootFunc = 0,
            rootNodeName = nil,
            liveUpdate = false,
            liveUpdateThread = nil,
            showPlugins = false,
            pluginOffsets = {},
            showGC = false,
            gcFunctionOffsets = {},
            gcNodeOffsets = {},
            pluginGCOffsets = {},
            expandedNodes = {}
        }
    };
    if v26.type == v1.name then
        return (v0.JoinDictionaries(v27, {
            isClientView = v26.isClientView,
            usePercentages = v26.usePercentages,
            isExporting = v26.isExporting,
            isShowingMobileSettings = v26.isShowingMobileSettings,
            client = v26.clientSessionState,
            server = v26.serverSessionState
        }));
    elseif v26.type == v3.name then
        return v24(v26.isClient, v27, {
            isProfiling = v26.isProfiling
        });
    elseif v26.type == v8.name then
        return v24(v26.isClient, v27, {
            average = v26.average
        });
    elseif v26.type == v9.name then
        return v24(v26.isClient, v27, {
            frequency = v26.frequency
        });
    elseif v26.type == v10.name then
        return v24(v26.isClient, v27, {
            isFunctionsView = v26.isFunctionsView
        });
    elseif v26.type == v11.name then
        return v24(v26.isClient, v27, {
            liveUpdate = v26.liveUpdate
        });
    elseif v26.type == v12.name then
        return v24(v26.isClient, v27, {
            showPlugins = v26.showPlugins
        });
    elseif v26.type == v13.name then
        return v24(v26.isClient, v27, {
            showGC = v26.showGC
        });
    elseif v26.type == v14.name then
        return v24(v26.isClient, v27, {
            searchTerm = v26.state.searchTerm,
            searchFilterFlat = v26.state.searchFilterFlat,
            searchFilterGraph = v26.state.searchFilterGraph
        });
    elseif v26.type == v6.name then
        return v24(v26.isClient, v27, {
            timedProfilingDuration = v26.state.timedProfilingDuration,
            timedProfilingCountdown = v26.state.timedProfilingCountdown
        });
    elseif v26.type == v4.name then
        local v28 = table.clone(if not v26.isClient then v27.server else v27.client);
        v28.data = v26.state.data;
        v28.serializedData = v26.state.serializedData;
        v28.pluginOffsets = v26.state.pluginOffsets or {};
        v28.pluginGCOffsets = v26.state.pluginGCOffsets or {};
        v28.gcFunctionOffsets = v26.state.gcFunctionOffsets or {};
        v28.gcNodeOffsets = v26.state.gcNodeOffsets or {};
        v28.expandedNodes = v26.state.expandedNodes or {};
        local v29 = table.clone(v27);
        if not v26.isClient then
            v29.server = v28;
        else
            v29.client = v28;
        end;
        return v0.JoinDictionaries(v27, v29);
    elseif v26.type == v5.name then
        local v30 = table.clone(if not v26.isClient then v27.server else v27.client);
        v30.timedProfilingThread = v26.state.timedProfilingThread;
        v30.timedProfilingTimerThread = v26.state.timedProfilingTimerThread;
        v30.liveUpdateThread = v26.state.liveUpdateThread;
        local v31 = table.clone(v27);
        if not v26.isClient then
            v31.server = v30;
        else
            v31.client = v30;
        end;
        return v0.JoinDictionaries(v27, v31);
    elseif v26.type == v7.name then
        local v32 = table.clone(if not v26.isClient then v27.server else v27.client);
        v32.rootNode = 0;
        v32.rootFunc = 0;
        v32.rootNodeName = nil;
        v32.searchFilterFlat = {};
        v32.searchFilterGraph = {};
        v32.expandedNodes = {};
        local v33 = table.clone(v27);
        if not v26.isClient then
            v33.server = v32;
        else
            v33.client = v32;
        end;
        return v0.JoinDictionaries(v27, v33);
    elseif v26.type == v2.name then
        local v34 = {};
        local v35 = table.clone(if not v27.isClientView then v27.server else v27.client);
        if v35.rootNode ~= v26.rootNode then
            v35.rootNode = v26.rootNode;
            if v16 then
                v35.rootFunc = v26.rootFunc;
            end;
            v35.rootNodeName = v26.rootNodeName;
        else
            v35.rootNode = 0;
            v35.rootFunc = 0;
            v35.rootNodeName = nil;
        end;
        if not v27.isClientView then
            v34.server = v35;
        else
            v34.client = v35;
        end;
        return v0.JoinDictionaries(v27, v34);
    else
        return v27;
    end;
end;


local v0 = require(script.Parent.Parent.Immutable);
local v1 = require(script.Parent.Parent.Actions.ClientScriptsUpdateSearchFilter);
local v2 = require(script.Parent.Parent.Actions.ServerScriptsUpdateSearchFilter);
return function(v3, v4)
    local v5 = v3 or {
        clientSearchTerm = "",
        clientTypeFilters = {},
        serverSearchTerm = "",
        serverTypeFilters = {}
    };
    if v4.type == v1.name then
        return (v0.JoinDictionaries(v5, {
            clientSearchTerm = v4.searchTerm,
            clientTypeFilters = v0.JoinDictionaries(v5.clientTypeFilters, v4.filterTypes)
        }));
    elseif v4.type == v2.name then
        return (v0.JoinDictionaries(v5, {
            serverSearchTerm = v4.searchTerm,
            serverTypeFilters = v0.JoinDictionaries(v5.serverTypeFilters, v4.filterTypes)
        }));
    else
        return v5;
    end;
end;


local v0 = require(script.Parent.Parent.Immutable);
local v1 = require(script.Parent.Parent.Actions.ServerJobsUpdateSearchFilter);
return function(v2, v3)
    local v4 = v2 or {
        jobsSearchTerm = ""
    };
    if v3.type == v1.name then
        return (v0.Set(v4, "jobsSearchTerm", v3.searchTerm));
    else
        return v4;
    end;
end;


local v0 = require(script.Parent.Parent.Immutable);
local v1 = require(script.Parent.Parent.Actions.ServerStatsUpdateSearchFilter);
return function(v2, v3)
    local v4 = v2 or {
        statsSearchTerm = ""
    };
    if v3.type == v1.name then
        return (v0.Set(v4, "statsSearchTerm", v3.searchTerm));
    else
        return v4;
    end;
end;


local v0 = require(script.Parent.Immutable);
local v1 = {};
v1.__index = v1;
v1.new = function()
    local v2 = {
        _listeners = {}
    };
    setmetatable(v2, v1);
    return v2;
end;
v1.Connect = function(v3, v4)
    local v5 = {
        callback = v4,
        isConnected = true
    };
    v3._listeners = v0.Append(v3._listeners, v5);
    return {
        Disconnect = function()
            v5.isConnected = false;
            v3._listeners = v0.RemoveValueFromList(v3._listeners, v5);
        end
    };
end;
v1.Fire = function(v6, ...)
    for _, v8 in ipairs(v6._listeners) do
        if v8.isConnected then
            v8.callback(...);
        end;
    end;
end;
return v1;


local function _(v0)
    return (v0 < 10 and "0" or "") .. v0;
end;
return function(v2)
    local v3 = math.floor((v2 - os.time()) + tick()) % 86400;
    local v4 = math.floor(v3 / 3600);
    v3 = v3 - v4 * 3600;
    local v5 = math.floor(v3 / 60);
    v3 = v3 - v5 * 60;
    local v6 = (v4 < 10 and "0" or "") .. v4;
    local v7 = (v5 < 10 and "0" or "") .. v5;
    local l_v3_0 = v3;
    return string.format("%s:%s:%s", v6, v7, (l_v3_0 < 10 and "0" or "") .. l_v3_0);
end;


local v0 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.Flags.GetFFlagGetClientReplicatorCheck);
local v1 = nil;
return function()
    if v1 == nil then
        local l_game_Service_0 = game:FindService("NetworkClient");
        if l_game_Service_0 then
            v1 = l_game_Service_0:FindFirstChildOfClass("ClientReplicator");
        end;
    end;
    if not v0() then
        return v1;
    elseif not v1 or not v1:IsDescendantOf(game) then
        return nil;
    else
        return v1;
    end;
end;


return function(v0, v1)
    local v2 = {};
    for v3, v4 in pairs(v0) do
        if not v1[v3] then
            error("tables did not have matching indices");
            return ;
        else
            v2[v3] = v4 < v1[v3] and v1[v3] or v4;
        end;
    end;
    return v2;
end;


return function(v0, v1)
    local v2 = {};
    for v3, v4 in pairs(v0) do
        if not v1[v3] then
            error("tables did not have matching indices");
            return ;
        else
            v2[v3] = v4 < v1[v3] and v4 or v1[v3];
        end;
    end;
    return v2;
end;


local l_UserInputService_0 = game:GetService("UserInputService");
local l_VRService_0 = game:GetService("VRService");
return function(v2)
    if not v2 then
        if not l_VRService_0.VREnabled then
            l_UserInputService_0.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.None;
            return ;
        else
            l_UserInputService_0.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.ForceHide;
            return ;
        end;
    else
        l_UserInputService_0.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.ForceShow;
        return ;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_StarterGui_0 = game:GetService("StarterGui");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_RunService_0 = game:GetService("RunService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v6 = require(l_CorePackages_0.Roact);
local v7 = require(l_CorePackages_0.Rodux);
local v8 = require(l_CorePackages_0.RoactRodux);
local l_DevConsole_0 = script.Parent.DevConsole;
local v10 = require(l_DevConsole_0.Constants);
local l_Components_0 = l_DevConsole_0.Components;
local v12 = require(l_Components_0.DevConsoleWindow);
local v13 = require(l_Components_0.DataProvider);
local v14 = require(l_Components_0.Log.MainViewLog);
local v15 = require(l_Components_0.Memory.MainViewMemory);
local v16 = require(l_Components_0.Network.MainViewNetwork);
local v17 = require(l_Components_0.Scripts.MainViewScripts);
local v18 = require(l_Components_0.DataStores.MainViewDataStores);
local v19 = require(l_Components_0.ServerStats.MainViewServerStats);
local v20 = require(l_Components_0.ActionBindings.MainViewActionBindings);
local v21 = require(l_Components_0.ServerJobs.MainViewServerJobs);
local v22 = require(l_Components_0.MicroProfiler.MainViewMicroProfiler);
local v23 = require(l_Components_0.ScriptProfiler.MainViewScriptProfiler);
local v24 = require(l_Components_0.DebugVisualizations.MainViewDebugVisualizations);
local v25 = require(l_Components_0.LuauHeap.MainViewLuauHeap);
local v26 = require(l_Components_0.MicroProfiler.RCCProfilerDataCompleteListener);
local v27 = require(l_DevConsole_0.Util.getClientReplicator);
local v28 = require(l_DevConsole_0.Reducers.MainView);
local v29 = require(l_DevConsole_0.Reducers.DevConsoleReducer);
local l_Actions_0 = l_DevConsole_0.Actions;
local v31 = require(l_Actions_0.SetDevConsoleVisibility);
local v32 = require(l_Actions_0.SetTabList);
local v33 = require(l_DevConsole_0.MiddleWare.DevConsoleAnalytics);
local v34 = require(l_CoreGui_0.RobloxGui.Modules.PlayerPermissionsModule);
local l_game_EngineFeature_0 = game:GetEngineFeature("ScriptProfiler");
local v36 = require(l_CoreGui_0.RobloxGui.Modules.Flags.GetFFlagRequestServerStatsFix);
local v37 = {
    Log = {
        tab = v14,
        layoutOrder = 1,
        hasClientServer = true
    },
    Memory = {
        tab = v15,
        layoutOrder = 2,
        hasClientServer = true
    },
    Network = {
        tab = v16,
        layoutOrder = 3,
        hasClientServer = true
    },
    Scripts = {
        tab = v17,
        layoutOrder = 4
    },
    DataStores = {
        tab = v18,
        layoutOrder = 5
    },
    ServerStats = {
        tab = v19,
        layoutOrder = 6
    },
    ActionBindings = {
        tab = v20,
        layoutOrder = 7
    },
    ServerJobs = {
        tab = v21,
        layoutOrder = 8
    },
    MicroProfiler = {
        tab = v22,
        layoutOrder = 9
    },
    DebugVisualizations = {
        tab = v24,
        layoutOrder = 10
    },
    ScriptProfiler = if not l_game_EngineFeature_0 then nil else {
        tab = v23,
        layoutOrder = 11
    },
    LuauHeap = {
        tab = v25,
        layoutOrder = 12
    }
};
local v38 = {
    Log = {
        tab = v14,
        layoutOrder = 1
    },
    Memory = {
        tab = v15,
        layoutOrder = 2
    },
    ScriptProfiler = if not l_game_EngineFeature_0 then nil else {
        tab = v23,
        layoutOrder = 3
    },
    LuauHeap = {
        tab = v25,
        layoutOrder = 4
    }
};
local v39 = {
    Log = {
        tab = v14,
        layoutOrder = 1
    },
    Memory = {
        tab = v15,
        layoutOrder = 2
    }
};
local v40 = {};
v40.__index = v40;
local v41 = {
    [Enum.Platform.Windows] = v10.FormFactor.Large,
    [Enum.Platform.OSX] = v10.FormFactor.Large,
    [Enum.Platform.IOS] = v10.FormFactor.Small,
    [Enum.Platform.Android] = v10.FormFactor.Small,
    [Enum.Platform.XBoxOne] = v10.FormFactor.Console,
    [Enum.Platform.PS4] = v10.FormFactor.Console,
    [Enum.Platform.PS3] = v10.FormFactor.Console,
    [Enum.Platform.XBox360] = v10.FormFactor.Console,
    [Enum.Platform.WiiU] = v10.FormFactor.Console,
    [Enum.Platform.NX] = v10.FormFactor.Console,
    [Enum.Platform.Ouya] = v10.FormFactor.Console,
    [Enum.Platform.AndroidTV] = v10.FormFactor.Console,
    [Enum.Platform.Chromecast] = v10.FormFactor.Console,
    [Enum.Platform.Linux] = v10.FormFactor.Large,
    [Enum.Platform.SteamOS] = v10.FormFactor.Console,
    [Enum.Platform.WebOS] = v10.FormFactor.Large,
    [Enum.Platform.DOS] = v10.FormFactor.Large,
    [Enum.Platform.BeOS] = v10.FormFactor.Large,
    [Enum.Platform.UWP] = v10.FormFactor.Large,
    [Enum.Platform.None] = v10.FormFactor.Large
};
local function _()
    return v34.IsPlayerAdminAsync(l_Players_0.LocalPlayer);
end;
local function _()
    if not l_RunService_0:IsStudio() then
        if not v34.CanPlayerManagePlaceAsync(l_Players_0.LocalPlayer) then
            return false;
        else
            return true;
        end;
    else
        return true;
    end;
end;
v40.new = function()
    local v44 = {};
    setmetatable(v44, v40);
    v44.init = false;
    v44.isDeveloperTabListActive = false;
    v44.waitForStart = true;
    v44.waitForStartBindable = Instance.new("BindableEvent");
    coroutine.wrap(function()
        v44:SetupDevConsole();
    end)();
    return v44;
end;
v40.SetupDevConsole = function(v45)
    local v46 = v41[l_UserInputService_0:GetPlatform()];
    v45.store = v7.Store.new(v29, {
        MainView = v28(nil, v32(v39, "Log"))
    }, {
        v33
    });
    v45.root = v6.createElement(v8.StoreProvider, {
        store = v45.store
    }, {
        DataProvider = v6.createElement(v13, {
            isDeveloperView = false
        }, {
            App = v6.createElement("ScreenGui", {
                OnTopOfCoreBlur = true,
                DisplayOrder = 10
            }, {
                DevConsoleWindow = v6.createElement(v12, {
                    formFactor = v46,
                    isDeveloperView = false,
                    isVisible = v45.store:getState().DisplayOptions.isVisible,
                    isMinimized = false,
                    position = v10.MainWindowInit.Position,
                    size = v10.MainWindowInit.Size,
                    tabList = v39,
                    onCloseCallback = function(v47)
                        v45:SetServerStatsConnection(v47);
                    end
                }),
                RCCProfilerDataCompleteListener = v6.createElement(v26)
            })
        })
    });
    v45.waitForStart = false;
    v45.waitForStartBindable:Fire();
end;
local v48 = v40.new();
v40.Start = function(v49)
    if not v49.init then
        if v49.waitForStart then
            v49.waitForStartBindable.Event:Wait();
        end;
        v49.init = true;
        v49.element = v6.mount(v49.root, l_CoreGui_0, "DevConsoleMaster");
        local v50 = v27();
        task.spawn(function()
            if not (not v34.IsPlayerAdminAsync(l_Players_0.LocalPlayer) or v49.isDeveloperTabListActive) then
                v49.store:dispatch(v32(v38, "Log", false));
            end;
        end);
        if v50 then
            v49._statsConnector = v50.StatsReceived:connect(function(_)
                if v49._statsConnector then
                    v49._statsConnector:Disconnect();
                    v49._statsConnector = nil;
                    v49.isDeveloperTabListActive = true;
                    v49.store:dispatch(v32(v37, "Log", true));
                    return ;
                else
                    return ;
                end;
            end);
            if not v36() then
                v50:RequestServerStats(true);
            else
                v49:SetServerStatsConnection(true);
                return ;
            end;
        end;
    end;
end;
v40.ToggleVisibility = function(v52)
    if not v52.init then
        v48:Start();
    end;
    local v53 = not v52.store:getState().DisplayOptions.isVisible;
    if not v36() then
        v52.store:dispatch(v31(v53));
        return ;
    else
        v52:SetVisibility(v53);
        return ;
    end;
end;
v40.GetVisibility = function(v54)
    if v54.init then
        local v55 = v54.store:getState();
        if not v55 or not v55.DisplayOptions then
            return false;
        else
            return v55.DisplayOptions.isVisible and not v55.DisplayOptions.isMinimized;
        end;
    else
        return false;
    end;
end;
v40.SetServerStatsConnection = function(_, v57)
    local v58 = v27();
    if v58 then
        v58:RequestServerStats(v57);
    end;
end;
v40.SetVisibility = function(v59, v60)
    if type(v60) == "boolean" then
        if not (v59.init or not v60) then
            v48:Start();
        end;
        if v36() then
            v59:SetServerStatsConnection(v60);
        end;
        v59.store:dispatch(v31(v60));
    end;
end;
l_StarterGui_0:RegisterGetCore("DevConsoleVisible", function()
    return v48:GetVisibility();
end);
l_StarterGui_0:RegisterSetCore("DevConsoleVisible", function(v61)
    if type(v61) ~= "boolean" then
        error("DevConsoleVisible must be given a boolean value.");
    end;
    v48:SetVisibility(v61);
end);
return v48;


local v0 = {};
local v1 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.Logger):new(script.Name);
v0.EMOTE_LOOP_TRANSITION_WAIT_TIME = 0.3;
v0.EMOTE_LOOP_WAIT_TIMEOUT = 5;
v0.LegacyDefaultEmotes = {
    wave = true,
    point = true,
    dance = true,
    dance2 = true,
    dance3 = true,
    laugh = true,
    cheer = true
};
local function _(v2)
    if v2 then
        v2:Disconnect();
    end;
end;
v0.getAnyActiveDefaultChatTriggeredEmoteTrack = function(v4)
    if v4.Character then
        local l_Humanoid_0 = v4.Character:FindFirstChildOfClass("Humanoid");
        if l_Humanoid_0 then
            local l_Animator_0 = l_Humanoid_0:FindFirstChildOfClass("Animator");
            if l_Animator_0 then
                for _, v8 in pairs((l_Animator_0:GetPlayingAnimationTracks())) do
                    if not ((((not v8.Animation or not v8.Animation.Parent) or not v8:IsA("AnimationTrack")) or not v0.LegacyDefaultEmotes[v8.Animation.Parent.Name]) or not v8.IsPlaying) then
                        return v8;
                    end;
                end;
                return nil;
            else
                return nil;
            end;
        else
            return nil;
        end;
    else
        return nil;
    end;
end;
local function v9(v10, v11, v12, v13)
    local l_BindableEvent_0 = Instance.new("BindableEvent");
    local v15 = os.clock();
    local v16 = true;
    local function _()
        if not (not v16 or not l_BindableEvent_0) then
            v16 = false;
            l_BindableEvent_0:Fire();
        end;
    end;
    local v18 = v11.Stopped:Connect(function()
        v1:trace("EmoteHelper.waitForEmoteEventInternal: Stopped");
        if not (not v16 or not l_BindableEvent_0) then
            v16 = false;
            l_BindableEvent_0:Fire();
        end;
    end);
    local v20 = v11.KeyframeReached:Connect(function(v19)
        if not (v19 == "End") or v11.Looped and not v12 then
            v15 = os.clock();
        else
            v1:trace("EmoteHelper.waitForEmoteEventInternal: KeyframeReached");
            if not (not v16 or not l_BindableEvent_0) then
                v16 = false;
                l_BindableEvent_0:Fire();
                return ;
            end;
        end;
    end);
    task.spawn(function()
        local v21 = os.clock() - v15;
        while v16 and v21 < v0.EMOTE_LOOP_WAIT_TIMEOUT do
            wait(v0.EMOTE_LOOP_WAIT_TIMEOUT - v21);
            v21 = os.clock() - v15;
        end;
        if v16 then
            v1:trace("EmoteHelper.waitForEmoteEventInternal: Timeout");
            if not (not v16 or not l_BindableEvent_0) then
                v16 = false;
                l_BindableEvent_0:Fire();
            end;
        end;
    end);
    l_BindableEvent_0.Event:Wait();
    l_BindableEvent_0:Destroy();
    if v18 then
        v18:Disconnect();
    end;
    if v20 then
        v20:Disconnect();
    end;
    if not v12 then
        if v13 then
            v13();
        end;
    else
        wait(v0.EMOTE_LOOP_TRANSITION_WAIT_TIME);
        local v22 = v0.getAnyActiveDefaultChatTriggeredEmoteTrack(v10);
        if not v22 then
            if v13 then
                v13();
            end;
        else
            v9(v10, v22, v12, v13);
        end;
    end;
end;
v0.createEmoteFinishEvent = function(v23, v24, v25)
    local l_BindableEvent_1 = Instance.new("BindableEvent");
    task.spawn(v9, v23, v24, v25, function()
        l_BindableEvent_1:Fire();
        l_BindableEvent_1:Destroy();
    end);
    return l_BindableEvent_1.Event;
end;
return v0;


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        emotes = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        equippedEmotes = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        segmentIndex = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        numberEmotesLoaded = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        guiInset = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        layout = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        locale = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        errorText = v0
    };
end);


local l_Players_0 = game:GetService("Players");
local l_Stats_0 = game:GetService("Stats");
local v2 = {};
v2.__index = v2;
v2.EventName = {
    MenuOpened = "emoteMenuOpened",
    EmotePlayed = "emoteTriggered",
    EmoteFailed = "emoteTriggerFailed"
};
v2.new = function()
    local v3 = {
        eventStreamImpl = nil
    };
    setmetatable(v3, v2);
    return v3;
end;
v2.withEventStream = function(v4, v5)
    v4.eventStreamImpl = v5;
    return v4;
end;
v2.onMenuOpened = function(v6)
    v6:_getEventStream():setRBXEventStream("emoteMenu", v6.EventName.MenuOpened, {
        pid = tostring(game.PlaceId),
        uid = tostring(l_Players_0.LocalPlayer.UserId),
        btid = l_Stats_0:GetBrowserTrackerId()
    });
end;
v2.onEmotePlayed = function(v7, v8, v9)
    v7:_getEventStream():setRBXEventStream("emoteMenu", v7.EventName.EmotePlayed, {
        pid = tostring(game.PlaceId),
        uid = tostring(l_Players_0.LocalPlayer.UserId),
        btid = l_Stats_0:GetBrowserTrackerId(),
        slotNumber = v8,
        assetID = v9
    });
end;
v2.onEmoteFailed = function(v10, v11, v12, v13)
    v10:_getEventStream():setRBXEventStream("emoteMenu", v10.EventName.EmoteFailed, {
        pid = tostring(game.PlaceId),
        uid = tostring(l_Players_0.LocalPlayer.UserId),
        btid = l_Stats_0:GetBrowserTrackerId(),
        slotNumber = v11,
        assetID = v12,
        errorType = v13,
        invokedByCoreGui = true
    });
end;
v2._getEventStream = function(v14)
    assert(v14.eventStreamImpl, "EventStream implementation not found. Did you forget to construct withEventStream?");
    return v14.eventStreamImpl;
end;
return v2;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local l_Parent_0 = script.Parent.Parent;
local v4 = require(l_Parent_0.Actions.HideError);
local v5 = require(l_Parent_0.Constants);
local v6 = v1.PureComponent:extend("ErrorMessage");
v6.render = function(v7)
    local v8 = v5.Layouts[v7.props.layout];
    return v1.createElement("Frame", {
        Size = v8.ErrorFrameSize,
        Position = v8.ErrorFramePosition,
        BackgroundColor3 = v5.Colors.Black,
        BackgroundTransparency = v5.ErrorFrameBackgroundTransparency,
        BorderSizePixel = v5.ErrorFrameBorderSize,
        Selectable = false,
        Visible = v7.props.displayOptions.errorVisible,
        [v1.Event.TouchTap] = function()
            v7.props.close();
        end,
        [v1.Event.InputBegan] = function(_, v10)
            if v10.UserInputType == Enum.UserInputType.MouseButton1 then
                v7.props.close();
            end;
        end
    }, {
        AsspectRatioConstraint = v1.createElement("UIAspectRatioConstraint", {
            AspectRatio = v8.ErrorFrameAspectRatio
        }),
        SizeConstraint = v1.createElement("UISizeConstraint", {
            MinSize = v8.ErrorFrameMinSize,
            MaxSize = v8.ErrorFrameMaxSize
        }),
        ErrorIcon = v1.createElement("ImageLabel", {
            AnchorPoint = Vector2.new(0, 0.5),
            Position = UDim2.new(0, v8.ErrorIconOffset, 0.5, 0),
            Size = UDim2.new(0.2, -v8.ErrorIconOffset * 2, 1, -v8.ErrorIconOffset * 2),
            Image = v8.ErrorIcon,
            BackgroundTransparency = 1
        }, {
            AsspectRatioConstraint = v1.createElement("UIAspectRatioConstraint", {
                AspectRatio = 1
            })
        }),
        ErrorText = v1.createElement("TextLabel", {
            AnchorPoint = Vector2.new(0, 0.5),
            Position = UDim2.new(0.2, -v8.ErrorIconOffset, 0.5, 0),
            Size = UDim2.new(0.8, 0, 1, 0),
            Text = v7.props.displayOptions.errorText,
            TextScaled = true,
            TextSize = v8.ErrorTextSize,
            TextColor3 = v5.Colors.White,
            TextXAlignment = Enum.TextXAlignment.Left,
            Font = v8.ErrorTextFont,
            BackgroundTransparency = 1
        }, {
            SizeConstraint = v1.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(v8.ErrorFrameMaxSize.X, v8.ErrorTextSize + v5.TextPadding)
            }),
            TextSizeConstraint = v1.createElement("UITextSizeConstraint", {
                MaxTextSize = v8.ErrorTextSize
            })
        })
    });
end;
return v2.connect(function(v11)
    return {
        displayOptions = v11.displayOptions,
        layout = v11.layout
    };
end, function(v12)
    return {
        close = function()
            return v12(v4());
        end
    };
end)(v6);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local v3 = require(l_CorePackages_0.UIBlox);
local l_Colors_0 = v3.App.Style.Colors;
local l_withStyle_0 = v3.Style.withStyle;
local l_Parent_0 = script.Parent;
local v7 = require(l_Parent_0.Parent.Constants);
local v8 = require(l_Parent_0.SelectionGradient);
local v9 = require(l_Parent_0.SelectionEffect);
local v10 = require(l_Parent_0.WheelText);
local v11 = v1.PureComponent:extend("WheelBackground");
v11.renderContent = function(v12, v13)
    local v14 = v7.Layouts[v12.props.layout];
    return v1.createElement("Folder", {}, {
        BackgroundCircleOverlay = if not v13 then v1.createElement("ImageLabel", {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            BackgroundTransparency = 1,
            Image = v14.CircleBackground,
            ZIndex = 1
        }) else v1.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            BackgroundColor3 = l_Colors_0.Flint:Lerp(Color3.new(0, 0, 0), v13),
            BackgroundTransparency = v7.WheelBackgroundTransparency * v13
        }, {
            v1.createElement("UICorner", {
                CornerRadius = UDim.new(0.5, 0)
            })
        }),
        BackgroundGradient = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, 0),
            ZIndex = 2
        }, {
            SelectionGradient = v1.createElement(v8)
        }),
        BackgroundImage = v1.createElement("ImageLabel", {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            BackgroundTransparency = 1,
            Image = v14.SegmentedCircle,
            ZIndex = 3
        }),
        Selection = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, 0),
            ZIndex = 4
        }, {
            SelectionEffect = v1.createElement(v9)
        }),
        BackgroundText = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, 0),
            ZIndex = 5
        }, {
            MiddleText = v1.createElement(v10)
        })
    });
end;
v11.render = function(v15)
    return l_withStyle_0(function(v16)
        return v15:renderContent(v16.Settings.PreferredTransparency);
    end);
end;
return v2.connect(function(v17)
    return {
        layout = v17.layout
    };
end, nil)(v11);


local l_AppFonts_0 = require(game:GetService("CorePackages").Workspace.Packages.Style).AppFonts;
return {
    EmotesWheelMinSize = Vector2.new(200, 200),
    EmotesWheelMaxSize = Vector2.new(400, 400),
    ErrorFrameSize = UDim2.new(0.6, 0, 0.2, 0),
    ErrorFramePosition = UDim2.new(0, 0, 0.1, 0),
    ErrorFrameAspectRatio = 6,
    ErrorFrameMinSize = Vector2.new(336, 56),
    ErrorFrameMaxSize = Vector2.new(432, 72),
    ErrorTextFont = l_AppFonts_0.default:getDefault(),
    ErrorTextSize = 36,
    ErrorIcon = "rbxasset://textures/ui/Emotes/ErrorIcon.png",
    ErrorIconOffset = 10,
    MiddleTextSize = 28,
    MiddleTextFont = l_AppFonts_0.default:getDefault(),
    SlotNumberTextSize = 24,
    SlotNumberFont = l_AppFonts_0.default:getDefault(),
    CircleBackground = "rbxasset://textures/ui/Emotes/Large/CircleBackground.png",
    SegmentedCircle = "rbxasset://textures/ui/Emotes/Large/SegmentedCircle.png",
    SelectedLine = "rbxasset://textures/ui/Emotes/Large/SelectedLine.png",
    SelectedLineImageSize = Vector2.new(11, 67),
    SelectedLinePadding = 4,
    SelectedGradient = "rbxasset://textures/ui/Emotes/Large/SelectedGradient.png",
    SelectedGradientImageSize = Vector2.new(183, 141)
};


local l_AppFonts_0 = require(game:GetService("CorePackages").Workspace.Packages.Style).AppFonts;
return {
    EmotesWheelMinSize = Vector2.new(150, 150),
    EmotesWheelMaxSize = Vector2.new(300, 300),
    ErrorFrameSize = UDim2.new(0.6, 0, 0.2, 0),
    ErrorFramePosition = UDim2.new(0, 0, 0.1, 0),
    ErrorFrameAspectRatio = 6,
    ErrorFrameMinSize = Vector2.new(336, 56),
    ErrorFrameMaxSize = Vector2.new(432, 72),
    ErrorTextFont = l_AppFonts_0.default:getDefault(),
    ErrorTextSize = 24,
    ErrorIcon = "rbxasset://textures/ui/Emotes/ErrorIcon.png",
    ErrorIconOffset = 10,
    MiddleTextSize = 18,
    MiddleTextFont = l_AppFonts_0.default:getDefault(),
    SlotNumberTextSize = 16,
    SlotNumberFont = l_AppFonts_0.default:getDefault(),
    CircleBackground = "rbxasset://textures/ui/Emotes/Small/CircleBackground.png",
    SegmentedCircle = "rbxasset://textures/ui/Emotes/Small/SegmentedCircle.png",
    SelectedLine = "rbxasset://textures/ui/Emotes/Small/SelectedLine.png",
    SelectedLineImageSize = Vector2.new(8, 50),
    SelectedLinePadding = 2,
    SelectedGradient = "rbxasset://textures/ui/Emotes/Small/SelectedGradient.png",
    SelectedGradientImageSize = Vector2.new(138, 106),
    EmotesListPosition = UDim2.new(1, -119, 1, -114)
};


local l_AppFonts_0 = require(game:GetService("CorePackages").Workspace.Packages.Style).AppFonts;
return {
    EmotesWheelMinSize = Vector2.new(320, 320),
    EmotesWheelMaxSize = Vector2.new(640, 640),
    ErrorFrameSize = UDim2.new(0.6, 0, 0.2, 0),
    ErrorFramePosition = UDim2.new(0, 0, 0.1, 0),
    ErrorFrameAspectRatio = 6,
    ErrorFrameMinSize = Vector2.new(336, 56),
    ErrorFrameMaxSize = Vector2.new(432, 72),
    ErrorTextFont = l_AppFonts_0.default:getDefault(),
    ErrorTextSize = 48,
    ErrorIcon = "rbxasset://textures/ui/Emotes/ErrorIcon.png",
    ErrorIconOffset = 10,
    MiddleTextSize = 48,
    MiddleTextFont = l_AppFonts_0.default:getDefault(),
    SlotNumberTextSize = 48,
    SlotNumberFont = l_AppFonts_0.default:getDefault(),
    CircleBackground = "rbxasset://textures/ui/Emotes/TenFoot/CircleBackground.png",
    SegmentedCircle = "rbxasset://textures/ui/Emotes/TenFoot/SegmentedCircle.png",
    SelectedLine = "rbxasset://textures/ui/Emotes/TenFoot/SelectedLine.png",
    SelectedLineImageSize = Vector2.new(18, 107),
    SelectedLinePadding = 5,
    SelectedGradient = "rbxasset://textures/ui/Emotes/TenFoot/SelectedGradient.png",
    SelectedGradientImageSize = Vector2.new(292, 225),
    EmotesListPosition = UDim2.new(1, -194, 1, -234)
};


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Rodux);
local l_Actions_0 = script.Parent.Parent.Actions;
return v2.createReducer({
    menuVisible = false,
    guiInset = 0,
    errorVisible = false,
    errorText = ""
}, {
    [require(l_Actions_0.ShowMenu).name] = function(v4, _)
        return v1.Dictionary.join(v4, {
            menuVisible = true
        });
    end,
    [require(l_Actions_0.HideMenu).name] = function(v6, _)
        return v1.Dictionary.join(v6, {
            menuVisible = false
        });
    end,
    [require(l_Actions_0.ShowError).name] = function(v8, v9)
        return v1.Dictionary.join(v8, {
            errorVisible = true,
            errorText = v9.errorText
        });
    end,
    [require(l_Actions_0.HideError).name] = function(v10, _)
        return v1.Dictionary.join(v10, {
            errorVisible = false
        });
    end,
    [require(l_Actions_0.SetGuiInset).name] = function(v12, v13)
        return v1.Dictionary.join(v12, {
            guiInset = v13.guiInset
        });
    end
});


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Rodux);
local l_Actions_0 = script.Parent.Parent.Actions;
local v4 = require(l_Actions_0.EmotesChanged);
local v5 = require(l_Actions_0.EquippedEmotesChanged);
local v6 = require(l_Actions_0.NumberEmotesLoadedChanged);
local v7 = {
    emotesInfo = {},
    equippedEmotes = {},
    numberEmotesLoaded = -1,
    currentEmotes = {}
};
local function v15(v8, v9)
    local v10 = {};
    for _, v12 in ipairs(v9) do
        local l_Slot_0 = v12.Slot;
        local l_Name_0 = v12.Name;
        if not ((not l_Slot_0 or not l_Name_0) or not v8[l_Name_0]) then
            v10[l_Slot_0] = l_Name_0;
        end;
    end;
    return v10;
end;
return v2.createReducer(v7, {
    [v4.name] = function(v16, v17)
        return v1.Dictionary.join(v16, {
            emotesInfo = v17.emotes,
            currentEmotes = v15(v17.emotes, v16.equippedEmotes)
        });
    end,
    [v5.name] = function(v18, v19)
        return v1.Dictionary.join(v18, {
            equippedEmotes = v19.equippedEmotes,
            currentEmotes = v15(v18.emotesInfo, v19.equippedEmotes)
        });
    end,
    [v6.name] = function(v20, v21)
        return v1.Dictionary.join(v20, {
            numberEmotesLoaded = v21.numberEmotesLoaded
        });
    end
});


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Rodux);
local l_Actions_0 = script.Parent.Parent.Actions;
local v4 = require(l_Actions_0.FocusSegment);
local v5 = require(l_Actions_0.HideMenu);
local v6 = {
    focusedSegmentIndex = 0
};
return v2.createReducer(v6, {
    [v4.name] = function(v7, v8)
        return v1.Dictionary.join(v7, {
            focusedSegmentIndex = v8.segmentIndex
        });
    end,
    [v5.name] = function(v9, _)
        return v1.Dictionary.join(v9, v6);
    end
});


local v0 = require(game:GetService("CorePackages").Rodux);
local l_Parent_0 = script.Parent.Parent;
return v0.createReducer(require(l_Parent_0.Constants).Layout.Large, {
    [require(l_Parent_0.Actions.SetLayout).name] = function(_, v3)
        return v3.layout;
    end
});


local v0 = require(game:GetService("CorePackages").Rodux);
local l_Parent_0 = script.Parent.Parent;
return v0.createReducer(require(l_Parent_0.Constants).FallbackLocale, {
    [require(l_Parent_0.Actions.SetLocale).name] = function(_, v3)
        return v3.locale;
    end
});


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local l_VRService_0 = game:GetService("VRService");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_Parent_0 = script.Parent.Parent;
local l_Actions_0 = l_Parent_0.Actions;
local l_Parent_1 = l_Parent_0.Parent;
local l_EventStream_0 = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.EventStream;
local v8 = require(l_Parent_0.Analytics);
local v9 = require(l_Parent_1.BackpackScript);
local v10 = require(l_Actions_0.ShowMenu);
local v11 = v8.new():withEventStream(l_EventStream_0.new(l_RbxAnalyticsService_0));
return function(_)
    return function(v13)
        if l_GuiService_0.MenuIsOpen then
            if not l_VRService_0.VREnabled then
                return ;
            else
                l_GuiService_0:SetMenuIsOpen(false, "VRMenu");
            end;
        end;
        if v9.IsOpen then
            v9.OpenClose();
        end;
        if not v9.IsOpen then
            v11:onMenuOpened();
            v13:dispatch(v10());
            return ;
        else
            return ;
        end;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Actions_0 = l_Parent_0.Actions;
local v8 = require(l_Parent_0.Analytics);
local v9 = require(l_Parent_0.Constants);
local l_EventStream_0 = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.EventStream;
local v11 = require(l_Parent_1.RobloxTranslator);
local v12 = require(l_CoreGui_0.RobloxGui.Modules.EmotesMenu.Utility.MaybeSendEmoteFailureAnalyticsFromPlayer);
local v13 = require(l_Actions_0.HideMenu);
local v14 = require(l_Actions_0.HideError);
local v15 = require(l_Actions_0.ShowError);
local v16 = v8.new():withEventStream(l_EventStream_0.new(l_RbxAnalyticsService_0));
local function v21(v17, v18, v19, v20)
    if v18 then
        v16:onEmoteFailed(v19, v20, v18);
        v17:dispatch(v15((v11:FormatByKeyForLocale(v9.LocalizationKeys.ErrorMessages[v18], v17:getState().locale))));
        delay(v9.ErrorDisplayTimeSeconds, function()
            v17:dispatch(v14());
        end);
    end;
    v17:dispatch(v13());
end;
return function(_, v23, v24, _, _)
    return function(v27)
        local l_l_LocalPlayer_0_0 = l_LocalPlayer_0;
        if not v12(l_l_LocalPlayer_0_0, function(v29)
            v21(v27, v29, v23, v24);
        end) then
            v27:dispatch(v13());
            local l_Humanoid_0 = l_l_LocalPlayer_0_0.Character:FindFirstChildOfClass("Humanoid");
            local v31, v32, _ = pcall(function()
                return l_Humanoid_0:PlayEmoteAndGetAnimTrackById(v24);
            end);
            if not v31 or not v32 then
                v21(v27, v9.ErrorTypes.TemporarilyUnavailable, v23, v24);
                return ;
            else
                v16:onEmotePlayed(v23, v24);
                return ;
            end;
        else
            return ;
        end;
    end;
end;


local l_Players_0 = game:GetService("Players");
game:DefineFastFlag("EmoteMenuSupportScriptRunContext", false);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
if not l_LocalPlayer_0 then
    l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Wait();
    l_LocalPlayer_0 = l_Players_0.LocalPlayer;
end;
local v2 = {
    Value = false,
    ChangedEvent = Instance.new("BindableEvent")
};
local function v5(v3)
    if v3 then
        local l_Animate_0 = v3:FindFirstChild("Animate");
        if not l_Animate_0 or not l_Animate_0:IsA("LocalScript") then
            if not ((not game:GetFastFlag("EmoteMenuSupportScriptRunContext") or not l_Animate_0) or not l_Animate_0:IsA("Script")) and l_Animate_0.RunContext == Enum.RunContext.Client then
                return l_Animate_0;
            else
                return nil;
            end;
        else
            return l_Animate_0;
        end;
    else
        return nil;
    end;
end;
local function _(v6)
    local v7 = v5(v6);
    if v7 then
        local l_PlayEmote_0 = v7:FindFirstChild("PlayEmote");
        if not l_PlayEmote_0 or not l_PlayEmote_0:IsA("BindableFunction") then
            return nil;
        else
            return l_PlayEmote_0;
        end;
    else
        return nil;
    end;
end;
local function _(v10)
    local v11 = v5(v10);
    local v12;
    if v11 then
        local l_PlayEmote_1 = v11:FindFirstChild("PlayEmote");
        v12 = if not not l_PlayEmote_1 and l_PlayEmote_1:IsA("BindableFunction") then l_PlayEmote_1 else nil;
    else
        v12 = nil;
    end;
    return v12 ~= nil;
end;
local v15 = nil;
local v16 = nil;
local v17 = nil;
local function _()
    if v15 then
        v15:Disconnect();
        v15 = nil;
    end;
    if v16 then
        v16:Disconnect();
        v16 = nil;
    end;
    if v17 then
        v17:Disconnect();
        v17 = nil;
    end;
end;
local v19 = nil;
local function _(v20)
    local v21 = v5(v20);
    local v22;
    if v21 then
        local l_PlayEmote_2 = v21:FindFirstChild("PlayEmote");
        v22 = if not not l_PlayEmote_2 and l_PlayEmote_2:IsA("BindableFunction") then l_PlayEmote_2 else nil;
    else
        v22 = nil;
    end;
    local v24 = v22 ~= nil;
    if v2.Value ~= v24 then
        v2.Value = v24;
        v2.ChangedEvent:Fire(v24);
    end;
    v19(v24, v20);
end;
local function _(v26)
    if not v5(v26) then
        v15 = v26.ChildAdded:Connect(function(v27)
            if not game:GetFastFlag("EmoteMenuSupportScriptRunContext") then
                if v27:IsA("LocalScript") and v27.Name == "Animate" then
                    local l_v26_0 = v26;
                    local v29 = v5(l_v26_0);
                    local v30;
                    if v29 then
                        local l_PlayEmote_3 = v29:FindFirstChild("PlayEmote");
                        v30 = if not not l_PlayEmote_3 and l_PlayEmote_3:IsA("BindableFunction") then l_PlayEmote_3 else nil;
                    else
                        v30 = nil;
                    end;
                    local v32 = v30 ~= nil;
                    if v2.Value ~= v32 then
                        v2.Value = v32;
                        v2.ChangedEvent:Fire(v32);
                    end;
                    v19(v32, l_v26_0);
                end;
            elseif (v27:IsA("LocalScript") or v27:IsA("Script") and v27.RunContext == Enum.RunContext.Client) and v27.Name == "Animate" then
                local l_v26_1 = v26;
                local v34 = v5(l_v26_1);
                local v35;
                if v34 then
                    local l_PlayEmote_4 = v34:FindFirstChild("PlayEmote");
                    v35 = if not not l_PlayEmote_4 and l_PlayEmote_4:IsA("BindableFunction") then l_PlayEmote_4 else nil;
                else
                    v35 = nil;
                end;
                local v37 = v35 ~= nil;
                if v2.Value ~= v37 then
                    v2.Value = v37;
                    v2.ChangedEvent:Fire(v37);
                end;
                v19(v37, l_v26_1);
                return ;
            end;
        end);
        return ;
    else
        local v38 = v5(v26);
        local v39;
        if v38 then
            local l_PlayEmote_5 = v38:FindFirstChild("PlayEmote");
            v39 = if not not l_PlayEmote_5 and l_PlayEmote_5:IsA("BindableFunction") then l_PlayEmote_5 else nil;
        else
            v39 = nil;
        end;
        local v41 = v39 ~= nil;
        if v2.Value ~= v41 then
            v2.Value = v41;
            v2.ChangedEvent:Fire(v41);
        end;
        v19(v41, v26);
        return ;
    end;
end;
local function _(v43, v44)
    local v45 = v5(v43);
    local v46;
    if v45 then
        local l_PlayEmote_6 = v45:FindFirstChild("PlayEmote");
        v46 = if not not l_PlayEmote_6 and l_PlayEmote_6:IsA("BindableFunction") then l_PlayEmote_6 else nil;
    else
        v46 = nil;
    end;
    if not v46 then
        v16 = v44.ChildAdded:Connect(function(v48)
            if v48:IsA("BindableFunction") and v48.Name == "PlayEmote" then
                local l_v43_0 = v43;
                local v50 = v5(l_v43_0);
                local v51;
                if v50 then
                    local l_PlayEmote_7 = v50:FindFirstChild("PlayEmote");
                    v51 = if not not l_PlayEmote_7 and l_PlayEmote_7:IsA("BindableFunction") then l_PlayEmote_7 else nil;
                else
                    v51 = nil;
                end;
                local v53 = v51 ~= nil;
                if v2.Value ~= v53 then
                    v2.Value = v53;
                    v2.ChangedEvent:Fire(v53);
                end;
                v19(v53, l_v43_0);
            end;
        end);
        return ;
    else
        local v54 = v5(v43);
        local v55;
        if v54 then
            local l_PlayEmote_8 = v54:FindFirstChild("PlayEmote");
            v55 = if not not l_PlayEmote_8 and l_PlayEmote_8:IsA("BindableFunction") then l_PlayEmote_8 else nil;
        else
            v55 = nil;
        end;
        v45 = v55 ~= nil;
        if v2.Value ~= v45 then
            v2.Value = v45;
            v2.ChangedEvent:Fire(v45);
        end;
        v19(v45, v43);
        return ;
    end;
end;
local _ = function(v58)
    local v59 = v5(v58);
    local v60;
    if v59 then
        local l_PlayEmote_9 = v59:FindFirstChild("PlayEmote");
        v60 = if not not l_PlayEmote_9 and l_PlayEmote_9:IsA("BindableFunction") then l_PlayEmote_9 else nil;
    else
        v60 = nil;
    end;
    if v60 then
        v17 = v60.AncestryChanged:Connect(function(_, v63)
            if not (v63 and v60:IsDescendantOf(v58)) then
                local l_v58_0 = v58;
                local v65 = v5(l_v58_0);
                local v66;
                if v65 then
                    local l_PlayEmote_10 = v65:FindFirstChild("PlayEmote");
                    v66 = if not not l_PlayEmote_10 and l_PlayEmote_10:IsA("BindableFunction") then l_PlayEmote_10 else nil;
                else
                    v66 = nil;
                end;
                local v68 = v66 ~= nil;
                if v2.Value ~= v68 then
                    v2.Value = v68;
                    v2.ChangedEvent:Fire(v68);
                end;
                v19(v68, l_v58_0);
            end;
        end);
        return ;
    else
        local v69 = v5(v58);
        local v70;
        if v69 then
            local l_PlayEmote_11 = v69:FindFirstChild("PlayEmote");
            v70 = if not not l_PlayEmote_11 and l_PlayEmote_11:IsA("BindableFunction") then l_PlayEmote_11 else nil;
        else
            v70 = nil;
        end;
        v59 = v70 ~= nil;
        if v2.Value ~= v59 then
            v2.Value = v59;
            v2.ChangedEvent:Fire(v59);
        end;
        v19(v59, v58);
        return ;
    end;
end;
v19 = function(v73, v74)
    if v15 then
        v15:Disconnect();
        v15 = nil;
    end;
    if v16 then
        v16:Disconnect();
        v16 = nil;
    end;
    if v17 then
        v17:Disconnect();
        v17 = nil;
    end;
    if v74 then
        if not v73 then
            local v75 = v5(v74);
            if not v75 then
                if not v5(v74) then
                    v15 = v74.ChildAdded:Connect(function(v76)
                        if not game:GetFastFlag("EmoteMenuSupportScriptRunContext") then
                            if v76:IsA("LocalScript") and v76.Name == "Animate" then
                                local l_v74_0 = v74;
                                local v78 = v5(l_v74_0);
                                local v79;
                                if v78 then
                                    local l_PlayEmote_12 = v78:FindFirstChild("PlayEmote");
                                    v79 = if not not l_PlayEmote_12 and l_PlayEmote_12:IsA("BindableFunction") then l_PlayEmote_12 else nil;
                                else
                                    v79 = nil;
                                end;
                                local v81 = v79 ~= nil;
                                if v2.Value ~= v81 then
                                    v2.Value = v81;
                                    v2.ChangedEvent:Fire(v81);
                                end;
                                v19(v81, l_v74_0);
                            end;
                        elseif (v76:IsA("LocalScript") or v76:IsA("Script") and v76.RunContext == Enum.RunContext.Client) and v76.Name == "Animate" then
                            local l_v74_1 = v74;
                            local v83 = v5(l_v74_1);
                            local v84;
                            if v83 then
                                local l_PlayEmote_13 = v83:FindFirstChild("PlayEmote");
                                v84 = if not not l_PlayEmote_13 and l_PlayEmote_13:IsA("BindableFunction") then l_PlayEmote_13 else nil;
                            else
                                v84 = nil;
                            end;
                            local v86 = v84 ~= nil;
                            if v2.Value ~= v86 then
                                v2.Value = v86;
                                v2.ChangedEvent:Fire(v86);
                            end;
                            v19(v86, l_v74_1);
                            return ;
                        end;
                    end);
                    return ;
                else
                    local v87 = v5(v74);
                    local v88;
                    if v87 then
                        local l_PlayEmote_14 = v87:FindFirstChild("PlayEmote");
                        v88 = if not not l_PlayEmote_14 and l_PlayEmote_14:IsA("BindableFunction") then l_PlayEmote_14 else nil;
                    else
                        v88 = nil;
                    end;
                    local v90 = v88 ~= nil;
                    if v2.Value ~= v90 then
                        v2.Value = v90;
                        v2.ChangedEvent:Fire(v90);
                    end;
                    v19(v90, v74);
                    return ;
                end;
            else
                local v91 = v5(v74);
                local v92;
                if v91 then
                    local l_PlayEmote_15 = v91:FindFirstChild("PlayEmote");
                    v92 = if not not l_PlayEmote_15 and l_PlayEmote_15:IsA("BindableFunction") then l_PlayEmote_15 else nil;
                else
                    v92 = nil;
                end;
                if not v92 then
                    v16 = v75.ChildAdded:Connect(function(v94)
                        if v94:IsA("BindableFunction") and v94.Name == "PlayEmote" then
                            local l_v74_2 = v74;
                            local v96 = v5(l_v74_2);
                            local v97;
                            if v96 then
                                local l_PlayEmote_16 = v96:FindFirstChild("PlayEmote");
                                v97 = if not not l_PlayEmote_16 and l_PlayEmote_16:IsA("BindableFunction") then l_PlayEmote_16 else nil;
                            else
                                v97 = nil;
                            end;
                            local v99 = v97 ~= nil;
                            if v2.Value ~= v99 then
                                v2.Value = v99;
                                v2.ChangedEvent:Fire(v99);
                            end;
                            v19(v99, l_v74_2);
                        end;
                    end);
                    return ;
                else
                    local v100 = v5(v74);
                    local v101;
                    if v100 then
                        local l_PlayEmote_17 = v100:FindFirstChild("PlayEmote");
                        v101 = if not not l_PlayEmote_17 and l_PlayEmote_17:IsA("BindableFunction") then l_PlayEmote_17 else nil;
                    else
                        v101 = nil;
                    end;
                    v91 = v101 ~= nil;
                    if v2.Value ~= v91 then
                        v2.Value = v91;
                        v2.ChangedEvent:Fire(v91);
                    end;
                    v19(v91, v74);
                    return ;
                end;
            end;
        else
            local v103 = v5(v74);
            local v104;
            if v103 then
                local l_PlayEmote_18 = v103:FindFirstChild("PlayEmote");
                v104 = if not not l_PlayEmote_18 and l_PlayEmote_18:IsA("BindableFunction") then l_PlayEmote_18 else nil;
            else
                v104 = nil;
            end;
            if v104 then
                v17 = v104.AncestryChanged:Connect(function(_, v107)
                    if not (v107 and v104:IsDescendantOf(v74)) then
                        local l_v74_3 = v74;
                        local v109 = v5(l_v74_3);
                        local v110;
                        if v109 then
                            local l_PlayEmote_19 = v109:FindFirstChild("PlayEmote");
                            v110 = if not not l_PlayEmote_19 and l_PlayEmote_19:IsA("BindableFunction") then l_PlayEmote_19 else nil;
                        else
                            v110 = nil;
                        end;
                        local v112 = v110 ~= nil;
                        if v2.Value ~= v112 then
                            v2.Value = v112;
                            v2.ChangedEvent:Fire(v112);
                        end;
                        v19(v112, l_v74_3);
                    end;
                end);
                return ;
            else
                local v113 = v5(v74);
                local v114;
                if v113 then
                    local l_PlayEmote_20 = v113:FindFirstChild("PlayEmote");
                    v114 = if not not l_PlayEmote_20 and l_PlayEmote_20:IsA("BindableFunction") then l_PlayEmote_20 else nil;
                else
                    v114 = nil;
                end;
                v103 = v114 ~= nil;
                if v2.Value ~= v103 then
                    v2.Value = v103;
                    v2.ChangedEvent:Fire(v103);
                end;
                v19(v103, v74);
                return ;
            end;
        end;
    else
        return ;
    end;
end;
local function _(v116)
    if v15 then
        v15:Disconnect();
        v15 = nil;
    end;
    if v16 then
        v16:Disconnect();
        v16 = nil;
    end;
    if v17 then
        v17:Disconnect();
        v17 = nil;
    end;
    local v117 = v5(v116);
    local v118;
    if v117 then
        local l_PlayEmote_21 = v117:FindFirstChild("PlayEmote");
        v118 = if not not l_PlayEmote_21 and l_PlayEmote_21:IsA("BindableFunction") then l_PlayEmote_21 else nil;
    else
        v118 = nil;
    end;
    local v120 = v118 ~= nil;
    if v2.Value ~= v120 then
        v2.Value = v120;
        v2.ChangedEvent:Fire(v120);
    end;
    v19(v120, v116);
end;
l_LocalPlayer_0:GetPropertyChangedSignal("Character"):Connect(function()
    local l_Character_0 = l_LocalPlayer_0.Character;
    if v15 then
        v15:Disconnect();
        v15 = nil;
    end;
    if v16 then
        v16:Disconnect();
        v16 = nil;
    end;
    if v17 then
        v17:Disconnect();
        v17 = nil;
    end;
    local v123 = v5(l_Character_0);
    local v124;
    if v123 then
        local l_PlayEmote_22 = v123:FindFirstChild("PlayEmote");
        v124 = if not not l_PlayEmote_22 and l_PlayEmote_22:IsA("BindableFunction") then l_PlayEmote_22 else nil;
    else
        v124 = nil;
    end;
    local v126 = v124 ~= nil;
    if v2.Value ~= v126 then
        v2.Value = v126;
        v2.ChangedEvent:Fire(v126);
    end;
    v19(v126, l_Character_0);
end);
local l_Character_1 = l_LocalPlayer_0.Character;
if v15 then
    v15:Disconnect();
    v15 = nil;
end;
if v16 then
    v16:Disconnect();
    v16 = nil;
end;
if v17 then
    v17:Disconnect();
    v17 = nil;
end;
local v128 = v5(l_Character_1);
local v129;
if v128 then
    local l_PlayEmote_23 = v128:FindFirstChild("PlayEmote");
    v129 = if not not l_PlayEmote_23 and l_PlayEmote_23:IsA("BindableFunction") then l_PlayEmote_23 else nil;
else
    v129 = nil;
end;
local v131 = v129 ~= nil;
if v2.Value ~= v131 then
    v2.Value = v131;
    v2.ChangedEvent:Fire(v131);
end;
v19(v131, l_Character_1);
return v2;


local v0 = require(script.Parent.Parent.Constants);
return function(v1, v2)
    local l_Character_0 = v1.Character;
    if l_Character_0 then
        local v4 = not not l_Character_0 and l_Character_0:FindFirstChildOfClass("Humanoid") or nil;
        if v4 then
            if v4 and v4.RigType ~= Enum.HumanoidRigType.R15 then
                v2(v0.ErrorTypes.SwitchToR15);
                return true;
            else
                local v5 = not not l_Character_0 and l_Character_0:FindFirstChild("Animate") or nil;
                local v6 = not not v4 and v4:FindFirstChildOfClass("HumanoidDescription") or nil;
                if v5 and v6 then
                    local v7 = not not v5 and v5:FindFirstChild("PlayEmote") or nil;
                    if v7 and v7:IsA("BindableFunction") then
                        return false;
                    else
                        v2(v0.ErrorTypes.NotSupported);
                        return true;
                    end;
                else
                    v2(v0.ErrorTypes.NotSupported);
                    return true;
                end;
            end;
        else
            v2(v0.ErrorTypes.TemporarilyUnavailable);
            return true;
        end;
    else
        v2(v0.ErrorTypes.TemporarilyUnavailable);
        return true;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_TweenService_0 = game:GetService("TweenService");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_TextService_0 = game:GetService("TextService");
local l_GuiService_0 = game:GetService("GuiService");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_VRService_0 = game:GetService("VRService");
local v8 = require(l_RobloxGui_0.Modules.Common.Create);
local v9 = require(l_CorePackages_0.InGameServices.MouseIconOverrideService);
local v10 = require(l_RobloxGui_0.Modules.Common.Constants);
local v11 = require(l_RobloxGui_0.Modules.Shimmer);
local l_FFlag_0 = settings():GetFFlag("LocalizeErrorCodeString");
local v13 = game:DefineFastFlag("FixGamepadDisconnectHighlight2", false);
local v14 = require(l_RobloxGui_0.Modules.Flags.FFlagErrorPromptResizesHeight);
local v15 = TweenInfo.new(0.15, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, 0, false, 0);
local v16 = nil;
local function v17()
    v16 = l_CoreGui_0.CoreScriptLocalization:GetTranslator(l_LocalizationService_0.RobloxLocaleId);
end;
v16 = l_CoreGui_0.CoreScriptLocalization:GetTranslator(l_LocalizationService_0.RobloxLocaleId);
l_LocalizationService_0:GetPropertyChangedSignal("RobloxLocaleId"):connect(v17);
local function _(v18, v19, v20)
    if v16 then
        local l_status_0, l_result_0 = pcall(function()
            return v16:FormatByKey(v18, v20);
        end);
        return not not l_status_0 and l_result_0 or v19;
    else
        return v19;
    end;
end;
local v24 = {
    Default = function()
        return v8("Frame")({
            Name = "ErrorPrompt",
            BackgroundTransparency = 0,
            BorderSizePixel = 0,
            BackgroundColor3 = v10.COLORS.FLINT,
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            Size = UDim2.new(0, v10.ERROR_PROMPT_MAX_WIDTH.Default, 0, v10.ERROR_PROMPT_HEIGHT.Default),
            Visible = false,
            AutoLocalize = false,
            ZIndex = 8;
            v8("UIListLayout")({
                Name = "PromptLayout",
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Center
            }),
            v8("UIScale")({
                Name = "PromptScale",
                Scale = 0
            }),
            v8("Frame")({
                Name = "TitleFrame",
                LayoutOrder = 1,
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 0, v10.ERROR_TITLE_FRAME_HEIGHT.Default),
                BorderSizePixel = 0,
                ZIndex = 8;
                v8("UIPadding")({
                    Name = "TitleFramePadding",
                    PaddingBottom = UDim.new(0, 11),
                    PaddingTop = UDim.new(0, 11)
                }),
                v8("TextLabel")({
                    Name = "ErrorTitle",
                    TextColor3 = v10.COLORS.WHITE,
                    TextSize = 25,
                    Size = UDim2.new(1, 0, 0, 28),
                    BackgroundTransparency = 1,
                    Font = Enum.Font.SourceSansSemibold,
                    TextXAlignment = Enum.TextXAlignment.Center,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    ZIndex = 8
                })
            }),
            v8("Frame")({
                Name = "SplitLine",
                LayoutOrder = 2,
                Size = UDim2.new(1, -2 * v10.SIDE_PADDING, 0, v10.SPLIT_LINE_THICKNESS),
                BackgroundColor3 = v10.COLORS.PUMICE,
                BorderSizePixel = 0,
                ZIndex = 8
            }),
            v8("Frame")({
                Name = "MessageArea",
                LayoutOrder = 3,
                Size = UDim2.new(1, 0, 1, -v10.ERROR_TITLE_FRAME_HEIGHT.Default - v10.SPLIT_LINE_THICKNESS),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                ZIndex = 8;
                v8("UIPadding")({
                    Name = "MessageAreaPadding",
                    PaddingBottom = UDim.new(0, v10.SIDE_PADDING),
                    PaddingLeft = UDim.new(0, v10.SIDE_PADDING),
                    PaddingRight = UDim.new(0, v10.SIDE_PADDING),
                    PaddingTop = UDim.new(0, v10.SIDE_PADDING)
                }),
                v8("Frame")({
                    Name = "ErrorFrame",
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 1, 0),
                    ZIndex = 8;
                    v8("UIListLayout")({
                        Name = "ErrorFrameLayout",
                        Padding = UDim.new(0, v10.LAYOUT_PADDING),
                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                        SortOrder = Enum.SortOrder.LayoutOrder
                    }),
                    v8("TextLabel")({
                        Name = "ErrorMessage",
                        LayoutOrder = 1,
                        Size = UDim2.new(1, 0, 1, -v10.BUTTON_HEIGHT - v10.LAYOUT_PADDING),
                        TextSize = 20,
                        TextColor3 = v10.COLORS.PUMICE,
                        ZIndex = 8,
                        BackgroundTransparency = 1,
                        TextWrapped = true,
                        Font = Enum.Font.SourceSans
                    }),
                    v8("Frame")({
                        Name = "ButtonArea",
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 0, v10.BUTTON_HEIGHT),
                        ZIndex = 8,
                        LayoutOrder = 2,
                        SelectionGroup = true,
                        SelectionBehaviorUp = Enum.SelectionBehavior.Stop,
                        SelectionBehaviorDown = Enum.SelectionBehavior.Stop,
                        SelectionBehaviorLeft = Enum.SelectionBehavior.Stop,
                        SelectionBehaviorRight = Enum.SelectionBehavior.Stop;
                        v8("UIGridLayout")({
                            Name = "ButtonLayout",
                            CellPadding = UDim2.new(0, v10.BUTTON_CELL_PADDING, 0, 0),
                            CellSize = UDim2.new(1, 0, 0, v10.BUTTON_HEIGHT),
                            HorizontalAlignment = Enum.HorizontalAlignment.Center,
                            VerticalAlignment = Enum.VerticalAlignment.Center,
                            SortOrder = Enum.SortOrder.LayoutOrder
                        })
                    })
                })
            })
        });
    end
};
local v28 = {
    Default = function(v25, v26, v27)
        return v8("ImageButton")({
            Name = v25 .. "Button",
            BackgroundTransparency = 1,
            ImageColor3 = not not v27 and v10.COLORS.WHITE or v10.COLORS.PUMICE,
            AnchorPoint = Vector2.new(0.5, 0.5),
            Size = UDim2.new(1, 0, 1, 0),
            Image = not not v27 and v10.PRIMARY_BUTTON_TEXTURE or v10.SECONDARY_BUTTON_TEXTURE,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(8, 8, 9, 9),
            LayoutOrder = v26,
            ZIndex = 8;
            v8("TextLabel")({
                Name = "ButtonText",
                Text = v25,
                Size = UDim2.new(1, 0, 1, 0),
                TextColor3 = not not v27 and v10.COLORS.SLATE or v10.COLORS.PUMICE,
                BackgroundTransparency = 1,
                TextXAlignment = Enum.TextXAlignment.Center,
                TextYAlignment = Enum.TextYAlignment.Center,
                Font = Enum.Font.SourceSans,
                TextSize = 20,
                ZIndex = 8
            })
        });
    end
};
local v29 = {};
v29.__index = v29;
v29.new = function(v30, v31)
    local v32 = setmetatable({}, v29);
    v32._frame = not not v30 and v24[v30]() or v24.Default();
    v32._isOpen = false;
    v32._openAnimation = l_TweenService_0:Create(v32._frame.PromptScale, v15, {
        Scale = 1
    });
    v32._closeAnimation = l_TweenService_0:Create(v32._frame.PromptScale, v15, {
        Scale = 0
    });
    v32._buttonCount = 0;
    v32._playAnimation = true;
    v32._hideErrorCode = false;
    v32._menuIsOpenKey = "ErrorPrompt";
    if v31 then
        if v31.PlayAnimation ~= nil then
            v32._playAnimation = v31.PlayAnimation;
        end;
        if v31.HideErrorCode ~= nil then
            v32._hideErrorCode = v31.HideErrorCode;
        end;
        if v31.MenuIsOpenKey ~= nil then
            v32._menuIsOpenKey = v31.MenuIsOpenKey;
        end;
        v32._frame.MessageArea.ErrorFrame.ErrorMessage.TextScaled = v31.MessageTextScaled or false;
    end;
    return v32;
end;
v29._open = function(v33, v34, v35)
    v33:setErrorText(v34, v35);
    if not v14() then
        v33:resizeHeight();
    else
        v33:resizeHeight(l_RobloxGui_0.AbsoluteSize.Y);
    end;
    if not v33._isOpen then
        v9.push("ErrorPromptOverride", Enum.OverrideMouseIconBehavior.ForceShow);
        l_GuiService_0:SetMenuIsOpen(true, v33._menuIsOpenKey);
        v33._frame.Visible = true;
        v33._isOpen = true;
        if not v33._playAnimation then
            v33._frame.PromptScale.Scale = 1;
        else
            v33._openAnimation:Play();
            v33._openAnimation.Completed:wait();
            v33._frame.PromptScale.Scale = 1;
        end;
        if not (v13 or not l_VRService_0.VREnabled and not l_GuiService_0:IsTenFootInterface()) then
            l_GuiService_0:Select(v33._frame.MessageArea.ErrorFrame.ButtonArea);
        end;
    end;
    if not ((not v13 or not v33._isOpen) or not l_VRService_0.VREnabled and not l_GuiService_0:IsTenFootInterface()) then
        l_GuiService_0:Select(v33._frame.MessageArea.ErrorFrame.ButtonArea);
    end;
end;
v29._close = function(v36)
    if v36._isOpen then
        v9.pop("ErrorPromptOverride");
        l_GuiService_0:SetMenuIsOpen(false, v36._menuIsOpenKey);
        v36._isOpen = false;
        if not v36._playAnimation then
            v36._frame.PromptScale.Scale = 0;
        else
            v36._closeAnimation:Play();
            v36._closeAnimation.Completed:wait();
        end;
        v36._frame.Visible = false;
    end;
end;
v29.setParent = function(v37, v38)
    v37._frame.Parent = v38;
end;
v29.setErrorText = function(v39, v40, v41)
    local l_ErrorMessage_0 = v39._frame.MessageArea.ErrorFrame.ErrorMessage;
    if not v39._hideErrorCode then
        if not l_FFlag_0 then
            if v41 then
                l_ErrorMessage_0.Text = ("%s\n(Error Code: %d)"):format(v40, v41.Value);
                return ;
            else
                l_ErrorMessage_0.Text = ("%s\n(Error Code: -1)"):format(v40);
                return ;
            end;
        else
            local v43 = -1;
            if v41 then
                v43 = v41.Value;
            end;
            local v44 = ("Error Code: %d"):format(v43);
            local v45 = {
                ERROR_CODE = tostring(v43)
            };
            local v46;
            if v16 then
                local l_pcall_0 = pcall;
                local v48 = "InGame.ConnectionError.Message.ErrorCode";
                local v49;
                l_pcall_0, v49 = l_pcall_0(function()
                    return v16:FormatByKey(v48, v45);
                end);
                v46 = not not l_pcall_0 and v49 or v44;
            else
                v46 = v44;
            end;
            l_ErrorMessage_0.Text = ("%s\n(%s)"):format(v40, v46);
            return ;
        end;
    else
        l_ErrorMessage_0.Text = v40;
        return ;
    end;
end;
v29.setErrorTitle = function(v50, v51, v52)
    if v51 then
        local l_ErrorTitle_0 = v50._frame.TitleFrame.ErrorTitle;
        if not v52 then
            l_ErrorTitle_0.Text = v51;
            return ;
        else
            local v54;
            if v16 then
                local l_pcall_1 = pcall;
                local v56 = nil;
                local v57;
                l_pcall_1, v57 = l_pcall_1(function()
                    return v16:FormatByKey(v52, v56);
                end);
                v54 = not not l_pcall_1 and v57 or v51;
            else
                v54 = v51;
            end;
            l_ErrorTitle_0.Text = v54;
            return ;
        end;
    else
        return ;
    end;
end;
v29.onErrorChanged = function(v58, v59, v60)
    if v59 == "" then
        v58:_close();
        return ;
    else
        if v59 ~= "" then
            v58:_open(v59, v60);
        end;
        return ;
    end;
end;
v29._relayout = function(v61)
    local l_ButtonArea_0 = v61._frame.MessageArea.ErrorFrame.ButtonArea;
    if v61._buttonCount == 0 then
        l_ButtonArea_0.Visible = false;
        return ;
    else
        local v63 = ((v61._frame.Size.X.Offset - (v61._buttonCount - 1) * v10.BUTTON_CELL_PADDING) - 2 * v10.SIDE_PADDING) / v61._buttonCount;
        l_ButtonArea_0.Visible = true;
        l_ButtonArea_0.ButtonLayout.CellSize = UDim2.new(0, v63, 0, v10.BUTTON_HEIGHT);
        return ;
    end;
end;
v29.clearButtons = function(v64)
    local l_ButtonArea_1 = v64._frame.MessageArea.ErrorFrame.ButtonArea;
    if v64._primaryShimmer then
        v64._primaryShimmer = nil;
    end;
    for _, v67 in pairs((l_ButtonArea_1:GetChildren())) do
        if v67.name ~= "ButtonLayout" then
            v67:Destroy();
        end;
    end;
end;
v29.updateButtons = function(v68, v69, v70)
    if not v69 then
        v69 = {};
    end;
    if not v70 then
        v70 = "Default";
    end;
    v68:clearButtons();
    local l_ButtonArea_2 = v68._frame.MessageArea.ErrorFrame.ButtonArea;
    local v72 = 0;
    for _, v74 in pairs(v69) do
        local l_Text_0 = v74.Text;
        if v74.LocalizationKey then
            local l_LocalizationKey_0 = v74.LocalizationKey;
            local l_Text_1 = v74.Text;
            if v16 then
                local l_pcall_2 = pcall;
                local v79 = nil;
                local l_l_LocalizationKey_0_0 = l_LocalizationKey_0 --[[ copy: 11 -> 16 ]];
                local v81;
                l_pcall_2, v81 = l_pcall_2(function()
                    return v16:FormatByKey(l_l_LocalizationKey_0_0, v79);
                end);
                l_Text_0 = not not l_pcall_2 and v81 or l_Text_1;
            else
                l_Text_0 = l_Text_1;
            end;
        end;
        local v82 = v28[v70](l_Text_0, v74.LayoutOrder, v74.Primary);
        if v74.Primary then
            v68._primaryShimmer = v11.new(v82, "PrimaryButton");
        end;
        v82.Parent = l_ButtonArea_2;
        v82.Activated:connect(v74.Callback);
        v72 = v72 + 1;
    end;
    if v68._buttonCount ~= v72 then
        v68._buttonCount = v72;
        v68:_relayout();
    end;
end;
v29.primaryShimmerPlay = function(v83)
    if v83._primaryShimmer then
        v83._primaryShimmer:play();
    end;
end;
v29.primaryShimmerStop = function(v84)
    if v84._primaryShimmer then
        v84._primaryShimmer:stop();
    end;
end;
v29.resizeWidthAndHeight = function(v85, v86, v87)
    v85:resizeWidth(v86);
    v85:resizeHeight(v87);
    v85:_relayout();
end;
v29.resizeWidth = function(v88, v89)
    local l_Offset_0 = v88._frame.Size.X.Offset;
    local v91 = v89 - 2 * v10.SIDE_MARGIN;
    if v10.ERROR_PROMPT_MAX_WIDTH.Default < v91 then
        if l_Offset_0 == v10.ERROR_PROMPT_MAX_WIDTH.Default then
            return ;
        else
            v91 = v10.ERROR_PROMPT_MAX_WIDTH.Default;
        end;
    end;
    if v91 < v10.ERROR_PROMPT_MIN_WIDTH.Default then
        if l_Offset_0 == v10.ERROR_PROMPT_MIN_WIDTH.Default then
            return ;
        else
            v91 = v10.ERROR_PROMPT_MIN_WIDTH.Default;
        end;
    end;
    v88._frame.Size = UDim2.new(0, v91, 0, v88._frame.Size.Y.Offset);
    if not v14() then
        v88:resizeHeight();
        v88:_relayout();
    end;
end;
v29.resizeHeight = function(v92, v93)
    local l_ErrorMessage_1 = v92._frame.MessageArea.ErrorFrame.ErrorMessage;
    local v95 = (((((v10.ERROR_TITLE_FRAME_HEIGHT.Default + l_TextService_0:GetTextSize(l_ErrorMessage_1.Text, l_ErrorMessage_1.TextSize, l_ErrorMessage_1.Font, (Vector2.new(v92._frame.Size.X.Offset - 2 * v10.SIDE_PADDING, 1000))).Y) + v10.SPLIT_LINE_THICKNESS) + v10.BUTTON_HEIGHT) + v10.LAYOUT_PADDING) + 2 * v10.SIDE_PADDING) + 1;
    if v14() then
        v95 = math.max(math.min(v95, v93 - 2 * v10.VERTICAL_MARGIN), v10.ERROR_PROMPT_MIN_HEIGHT.Default);
    end;
    v92._frame.Size = UDim2.new(0, v92._frame.Size.X.Offset, 0, v95);
end;
return v29;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local _ = game:GetService("RunService");
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = v3.strictInterface({
    eraseTimeout = v3.number,
    testHarness = v3.optional(v3.strictInterface({
        players = v3.union(v3.instanceOf("Players"), v3.interface({
            GetPlayers = v3.callback,
            GetPlayerByUserId = v3.callback,
            PlayerAdded = v3.RBXScriptSignal,
            PlayerRemoving = v3.RBXScriptSignal
        })),
        wait = v3.callback
    }))
});
local v5 = {};
v5.__index = v5;
v5.new = function(v6)
    assert(v4(v6));
    return (setmetatable({
        _eraseTimeout = v6.eraseTimeout,
        _trackedPii = {},
        _playerCounter = 1,
        _disambiguationIdentifiers = {},
        _waitFn = if v6.testHarness == nil then wait else v6.testHarness.wait,
        _players = if v6.testHarness == nil then l_Players_0 else v6.testHarness.players
    }, v5));
end;
v5._addPlayerToEraseMap = function(v7, v8)
    local v9 = v7._disambiguationIdentifiers[v8.UserId];
    if v9 == nil then
        v9 = v7._playerCounter;
        v7._disambiguationIdentifiers[v8.UserId] = v7._playerCounter;
        v7._playerCounter = v7._playerCounter + 1;
    end;
    v7._trackedPii[tostring(v8.UserId)] = string.format("UserId(%d)", v9);
    v7._trackedPii[tostring(v8.Name)] = string.format("UserName(%d)", v9);
    v7._trackedPii[tostring(v8.DisplayName)] = string.format("DisplayName(%d)", v9);
end;
v5._removePlayerFromEraseMap = function(v10, v11)
    v10._trackedPii[tostring(v11.UserId)] = nil;
    v10._trackedPii[tostring(v11.Name)] = nil;
    v10._trackedPii[tostring(v11.DisplayName)] = nil;
end;
v5.startTracking = function(v12)
    for _, v14 in ipairs(v12._players:GetPlayers()) do
        v12:_addPlayerToEraseMap(v14);
    end;
    v12._playerAddedConnection = v12._players.PlayerAdded:Connect(function(v15)
        v12:_addPlayerToEraseMap(v15);
    end);
    v12._playerRemovingConnection = v12._players.PlayerRemoving:Connect(function(v16)
        v12._waitFn(v12._eraseTimeout);
        if v12._players:GetPlayerByUserId(v16.UserId) == nil then
            v12:_removePlayerFromEraseMap(v16);
        end;
    end);
end;
v5.stopTracking = function(v17)
    v17._playerAddedConnection:Disconnect();
    v17._playerRemovingConnection:Disconnect();
end;
v5.cleanPii = function(v18, v19)
    for v20, v21 in pairs(v18._trackedPii) do
        v19 = string.gsub(v19, v20, v21);
    end;
    return v19;
end;
return v5;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = v2.strictInterface({
    period = v2.number,
    threshold = v2.number,
    processInterval = v2.number
});
local v4 = {};
v4.__index = v4;
v4.new = function(v5)
    assert(v3(v5));
    return (setmetatable({
        _period = v5.period,
        _threshold = v5.threshold,
        _processInterval = v5.processInterval,
        _lastProcessed = 0,
        _counts = {},
        _lastOccurrences = {}
    }, v4));
end;
v4.increment = function(v6, v7, v8)
    v6._lastOccurrences[v7] = v8 or os.clock();
    if v6._counts[v7] == nil then
        v6._counts[v7] = 1;
        return ;
    else
        local l__counts_0 = v6._counts;
        l__counts_0[v7] = l__counts_0[v7] + 1;
        return ;
    end;
end;
v4.isRateLimited = function(v10, v11)
    local v12 = v10._counts[v11];
    local v13 = false;
    if v12 ~= nil then
        v13 = v10._threshold < v12;
    end;
    return v13;
end;
v4.startDecrementClock = function(v14)
    v14._decrementConnection = l_RunService_0.Heartbeat:Connect(function()
        v14:stepDecrementClock(os.clock());
    end);
end;
v4.stepDecrementClock = function(v15, v16)
    if v15._processInterval < v16 - v15._lastProcessed then
        for v17, v18 in pairs(v15._lastOccurrences) do
            if v15._period < v16 - v18 then
                local l__counts_1 = v15._counts;
                l__counts_1[v17] = l__counts_1[v17] - 1;
                if v15._counts[v17] <= 0 then
                    v15._counts[v17] = nil;
                    v15._lastOccurrences[v17] = nil;
                end;
            end;
        end;
        v15._lastProcessed = v16;
    end;
end;
return v4;


return {
    [Enum.ConnectionError.DisconnectErrors] = {
        Enum.ConnectionError.DisconnectBadhash,
        Enum.ConnectionError.DisconnectBlockedIP,
        Enum.ConnectionError.DisconnectBySecurityPolicy,
        Enum.ConnectionError.DisconnectCloudEditKick,
        Enum.ConnectionError.DisconnectConnectionLost,
        Enum.ConnectionError.DisconnectDevMaintenance,
        Enum.ConnectionError.DisconnectDuplicatePlayer,
        Enum.ConnectionError.DisconnectDuplicateTicket,
        Enum.ConnectionError.DisconnectEvicted,
        Enum.ConnectionError.DisconnectHashTimeout,
        Enum.ConnectionError.DisconnectIdle,
        Enum.ConnectionError.DisconnectIllegalTeleport,
        Enum.ConnectionError.DisconnectNewSecurityKeyMismatch,
        Enum.ConnectionError.DisconnectOnRemoteSysStats,
        Enum.ConnectionError.DisconnectPlayerless,
        Enum.ConnectionError.DisconnectPrivateServerKickout,
        Enum.ConnectionError.DisconnectProtocolMismatch,
        Enum.ConnectionError.DisconnectRaknetErrors,
        Enum.ConnectionError.DisconnectReceivePacketError,
        Enum.ConnectionError.DisconnectReceivePacketStreamError,
        Enum.ConnectionError.DisconnectRejoin,
        Enum.ConnectionError.DisconnectRobloxMaintenance,
        Enum.ConnectionError.DisconnectSecurityKeyMismatch,
        Enum.ConnectionError.DisconnectSendPacketError,
        Enum.ConnectionError.DisconnectTimeout,
        Enum.ConnectionError.DisconnectWrongVersion
    },
    [Enum.ConnectionError.PlacelaunchErrors] = {
        Enum.ConnectionError.PlacelaunchCustomMessage,
        Enum.ConnectionError.PlacelaunchDisabled,
        Enum.ConnectionError.PlacelaunchError,
        Enum.ConnectionError.PlacelaunchFlooded,
        Enum.ConnectionError.PlacelaunchGameEnded,
        Enum.ConnectionError.PlacelaunchGameFull,
        Enum.ConnectionError.PlacelaunchHashException,
        Enum.ConnectionError.PlacelaunchHashExpired,
        Enum.ConnectionError.PlacelaunchHttpError,
        Enum.ConnectionError.PlacelaunchOtherError,
        Enum.ConnectionError.PlacelaunchPartyCannotFit,
        Enum.ConnectionError.PlacelaunchRestricted,
        Enum.ConnectionError.PlacelaunchUnauthorized,
        Enum.ConnectionError.PlacelaunchUserLeft,
        Enum.ConnectionError.PlacelaunchUserPrivacyUnauthorized
    },
    [Enum.ConnectionError.TeleportErrors] = {
        Enum.ConnectionError.TeleportFailure,
        Enum.ConnectionError.TeleportFlooded,
        Enum.ConnectionError.TeleportGameEnded,
        Enum.ConnectionError.TeleportGameFull,
        Enum.ConnectionError.TeleportGameNotFound,
        Enum.ConnectionError.TeleportIsTeleporting,
        Enum.ConnectionError.TeleportUnauthorized
    }
};


local l_AppStorageService_0 = game:GetService("AppStorageService");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local _ = script.Parent.InGameMenu;
local v5 = require(l_RobloxGui_0.Modules.Common.IXPServiceWrapper);
local v6 = require(script.Parent.IsExperienceMenuABTestEnabled);
local v7 = require(script.Parent.Flags.GetFStringLuaAppExperienceMenuLayer);
local v8 = require(script.Parent.Flags.GetFStringLuaAppConsoleExperienceMenuLayer);
local v9 = require(script.Parent.Flags.GetFFlagDisableChromeUnibar)();
local v10 = require(script.Parent.Flags.GetFFlagDisableChromePinnedChat)();
local v11 = require(script.Parent.Flags.GetFFlagDisableChromeDefaultOpen)();
local v12 = require(script.Parent.Flags.GetFFlagDisableChromeFollowupUnibar)();
local v13 = require(script.Parent.Flags.GetFFlagDisableChromeFollowupFTUX)();
local v14 = require(script.Parent.Flags.GetFFlagDisableChromeFollowupOcclusion)();
local l_GetFFlagEnableNewExperienceMenuLayer_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagEnableNewExperienceMenuLayer;
local v16 = game:DefineFastInt("CSATV3MenuActionThreshold", 7);
local v17 = "v1" .. "t9";
local v18 = "v2" .. "t9";
local v19 = "v3" .. "t9";
local v20 = "ARv2" .. "art2";
local v21 = {
    BASELINE = "v4.1" .. "t9",
    OLD_LAYOUT = "v4.2" .. "t9",
    HOME_BUTTON = "v4.3" .. "t9"
};
local v22 = {
    MODERNIZED = "v5.1" .. "t9",
    BIG_TEXT = "v5.2" .. "t9",
    STICKY_BAR = "v5.3" .. "t9",
    CONSOLE = "v5.4" .. "m2"
};
local v23 = {
    UNIBAR = "v6.1" .. "t9",
    PINNED_CHAT = "v6.2" .. "t9",
    DEFAULT_OPEN = "v6.3" .. "t9"
};
local v24 = {
    UNIBAR = "v7.1.1" .. "t9",
    FTUX = "v7.2.1" .. "t9",
    OCCLUSION = "v7.3" .. "t9"
};
local v25 = {
    [v17] = true,
    [v18] = false,
    [v19] = false,
    [v21.BASELINE] = false,
    [v21.OLD_LAYOUT] = false,
    [v21.HOME_BUTTON] = false,
    [v22.MODERNIZED] = true,
    [v22.BIG_TEXT] = false,
    [v22.STICKY_BAR] = false,
    [v22.CONSOLE] = true,
    [v23.UNIBAR] = not v9,
    [v23.PINNED_CHAT] = not v10,
    [v23.DEFAULT_OPEN] = not v11,
    [v20] = false,
    [v24.UNIBAR] = not v12,
    [v24.FTUX] = not v13,
    [v24.OCCLUSION] = not v14
};
local v26 = {};
v26.__index = v26;
v26.getCachedVersion = function()
    local l_status_0, l_result_0 = pcall(function()
        return l_AppStorageService_0:GetItem("ExperienceMenuVersion");
    end);
    if not (l_status_0 and l_result_0 ~= "") or not v25[l_result_0] then
        return nil;
    else
        return l_result_0;
    end;
end;
v26.getCSATQualificationThreshold = function()
    return v16;
end;
v26.v1VersionId = function()
    return v17;
end;
v26.v2VersionId = function()
    return v18;
end;
v26.v3VersionId = function()
    return v19;
end;
v26.reportAbuseMenuV2VersionId = function()
    return v20;
end;
v26.controlsBaselineVersionId = function()
    return v21.BASELINE;
end;
v26.controlsOldLayoutVersionId = function()
    return v21.OLD_LAYOUT;
end;
v26.controlsHomeButtonVersionId = function()
    return v21.HOME_BUTTON;
end;
v26.modernizationModernizedVersionId = function()
    return v22.MODERNIZED;
end;
v26.modernizationBigTextVersionId = function()
    return v22.BIG_TEXT;
end;
v26.modernizationStickyBarVersionId = function()
    return v22.STICKY_BAR;
end;
v26.consoleModernizationVersionId = function()
    return v22.CONSOLE;
end;
v26.chromeVersionId = function()
    return v23.UNIBAR;
end;
v26.chromePinnedChatVersionId = function()
    return v23.PINNED_CHAT;
end;
v26.chromeDefaultOpenVersionId = function()
    return v23.DEFAULT_OPEN;
end;
v26.chromeFollowupVersionId = function()
    return v24.UNIBAR;
end;
v26.chromeFTUXVersionId = function()
    return v24.FTUX;
end;
v26.chromeOcclusionVersionId = function()
    return v24.OCCLUSION;
end;
parseCountData = function(v29)
    if not v29 or typeof(v29) ~= "string" then
        return nil, nil;
    else
        local v30 = v29:split(":");
        return v30[1], v30[2];
    end;
end;
v26.new = function(v31)
    local v32 = {
        _currentMenuVersion = nil,
        _currentMenuVersionIsDefault = false,
        _isCSATQualified = nil,
        _ixpServiceWrapper = v31 or v5
    };
    setmetatable(v32, v26);
    return v32;
end;
v26.getVersion = function(v33)
    if v6() then
        if not v33._currentMenuVersion then
            local v34 = v33.getCachedVersion();
            if v34 ~= nil and v34 ~= "" then
                v33._currentMenuVersion = v34;
            else
                v33._currentMenuVersionIsDefault = true;
                v33._currentMenuVersion = v17;
            end;
        end;
        return v33._currentMenuVersion;
    else
        return v17;
    end;
end;
v26.isV2MenuEnabled = function(v35)
    return v35:getVersion() == v18;
end;
v26.isV3MenuEnabled = function(v36)
    return v36:getVersion() == v19;
end;
v26.isReportAbuseMenuV2Enabled = function(v37)
    return v37:getVersion() == v20;
end;
v26.areMenuControlsEnabled = function(v38)
    for _, v40 in pairs(v21) do
        if v38:getVersion() == v40 then
            return true;
        end;
    end;
    return false;
end;
v26.shouldShowNewNavigationLayout = function(v41)
    local v42 = true;
    if v41:getVersion() ~= v21.BASELINE then
        v42 = v41:getVersion() == v21.HOME_BUTTON;
    end;
    return v42;
end;
v26.shouldShowHomeButton = function(v43)
    return v43:getVersion() == v21.HOME_BUTTON;
end;
v26.isMenuModernizationEnabled = function(v44)
    for _, v46 in pairs(v22) do
        if v44:getVersion() == v46 then
            return true;
        end;
    end;
    return false;
end;
v26.shouldShowBiggerText = function(v47)
    return v47:getVersion() == v22.BIG_TEXT;
end;
v26.shouldShowStickyBar = function(v48)
    return v48:getVersion() == v22.STICKY_BAR;
end;
v26.isChromeEnabled = function(v49)
    for _, v51 in v23, nil, nil do
        if v49:getVersion() == v51 then
            return true;
        end;
    end;
    for _, v53 in v24, nil, nil do
        if v49:getVersion() == v53 then
            return true;
        end;
    end;
    return false;
end;
v26.shouldPinChat = function(v54)
    for _, v56 in v24, nil, nil do
        if v54:getVersion() == v56 then
            return true;
        end;
    end;
    return v54:getVersion() == v23.PINNED_CHAT;
end;
v26.shouldDefaultOpen = function(v57)
    local v58 = true;
    if v57:getVersion() ~= v23.DEFAULT_OPEN then
        v58 = true;
        if v57:getVersion() ~= v24.UNIBAR then
            v58 = v57:getVersion() == v24.OCCLUSION;
        end;
    end;
    return v58;
end;
v26.shouldShowFTUX = function(v59)
    return v59:getVersion() == v24.FTUX;
end;
v26.initialize = function(v60)
    if v6() then
        local l_status_1, l_result_1 = pcall(function()
            return v60._ixpServiceWrapper:GetLayerData(v7());
        end);
        local v63 = nil;
        local v64 = nil;
        if l_GetFFlagEnableNewExperienceMenuLayer_0() then
            local l_status_2, l_result_2 = pcall(function()
                return v60._ixpServiceWrapper:GetLayerData(v8());
            end);
            v63 = l_status_2;
            v64 = l_result_2;
        end;
        if l_status_1 or v63 and l_GetFFlagEnableNewExperienceMenuLayer_0() then
            if not v60._currentMenuVersion then
                v60._currentMenuVersion = v60.getCachedVersion();
            end;
            if not l_GetFFlagEnableNewExperienceMenuLayer_0() then
                if not (not l_result_1 or l_result_1.menuVersion == v60._currentMenuVersion and not v60._currentMenuVersionIsDefault) then
                    pcall(function()
                        l_AppStorageService_0:SetItem("ExperienceMenuVersion", l_result_1.menuVersion or "");
                        l_AppStorageService_0:Flush();
                    end);
                end;
            elseif not (not l_result_1 or not v64) then
                if not v64.menuVersion or l_result_1.menuVersion then
                    if not (l_result_1.menuVersion == v60._currentMenuVersion and not v60._currentMenuVersionIsDefault) then
                        pcall(function()
                            l_AppStorageService_0:SetItem("ExperienceMenuVersion", l_result_1.menuVersion or "");
                            l_AppStorageService_0:Flush();
                        end);
                    end;
                elseif not (v64.menuVersion == v60._currentMenuVersion and not v60._currentMenuVersionIsDefault) then
                    pcall(function()
                        l_AppStorageService_0:SetItem("ExperienceMenuVersion", v64.menuVersion);
                        l_AppStorageService_0:Flush();
                    end);
                end;
            end;
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;
v26.default = v26.new();
return v26;