local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_t_0 = v0.t;
local l_Roact_0 = v0.Roact;
local l_Cryo_0 = v0.Cryo;
local v4 = require(script.Parent.Parent.Parent.Flags.GetFFlagIGMGamepadSelectionHistory);
local v5 = require(script.Parent.FocusHandlerUtils.FocusHandlerContext);
local v6 = 1;
local v7 = l_Roact_0.PureComponent:extend("FocusHandler");
v7.validateProps = l_t_0.strictInterface({
    isFocused = l_t_0.boolean,
    didFocus = l_t_0.optional(l_t_0.callback),
    didBlur = l_t_0.optional(l_t_0.callback),
    shouldForgetPreviousSelection = not not v4() and l_t_0.optional(l_t_0.boolean) or nil,
    currentHandlerId = not not v4() and l_t_0.optional(l_t_0.number) or nil,
    candidateHandlerId = not not v4() and l_t_0.optional(l_t_0.number) or nil,
    previousSelections = not not v4() and l_t_0.table or nil,
    requestFocusForHandlerId = not not v4() and l_t_0.callback or nil,
    forgetLastSelectionForHandlerId = not not v4() and l_t_0.callback or nil,
    blurCurrentFocusHandler = not not v4() and l_t_0.callback or nil,
    [l_Roact_0.Children] = l_t_0.optional(l_t_0.table)
});
if v4() then
    v7.init = function(v8)
        v8.id = v6;
        v6 = v6 + 1;
    end;
end;
v7.render = function(v9)
    return l_Roact_0.createFragment(v9.props[l_Roact_0.Children]);
end;
if not v4() then
    v7.didMount = function(v10)
        if v10.props.isFocused then
            v10.props.didFocus();
        end;
    end;
else
    v7.didMount = function(v11)
        if v11.props.isFocused then
            v11.props.requestFocusForHandlerId(v11.id);
        end;
    end;
end;
if not v4() then
    v7.didUpdate = function(v12, v13)
        if (not v12.props.isFocused or v13.isFocused) or not v12.props.didFocus then
            if not ((v12.props.isFocused or not v13.isFocused) or not v12.props.didBlur) then
                v12.props.didBlur();
            end;
            return ;
        else
            v12.props.didFocus();
            return ;
        end;
    end;
else
    v7.didUpdate = function(v14, v15)
        local v16 = v14.props.shouldForgetPreviousSelection and not v15.shouldForgetPreviousSelection;
        local v17 = v14.props.previousSelections[v14.id];
        if not (not v16 and (not (v17 ~= nil) or v17:IsDescendantOf(game))) then
            v14.props.forgetLastSelectionForHandlerId(v14.id);
            v17 = nil;
        end;
        local v18 = false;
        if v14.props.candidateHandlerId ~= v14.id then
            v18 = v14.props.candidateHandlerId ~= nil;
        end;
        local v19 = false;
        if v15.candidateHandlerId ~= v14.id then
            v19 = v15.candidateHandlerId ~= nil;
        end;
        local v20 = false;
        if v14.props.currentHandlerId == v14.id then
            v20 = v15.currentHandlerId ~= v14.id;
        end;
        local v21 = false;
        if v14.props.currentHandlerId == nil then
            v21 = false;
            if v15.currentHandlerId ~= nil then
                v21 = v15.currentHandlerId ~= v14.id;
            end;
        end;
        local v22 = (v21 and not v18) and v14.props.isFocused;
        local v23 = not v15.isFocused and v14.props.isFocused;
        local v24 = not not v15.isFocused and not v14.props.isFocused or v18 and not v19;
        local v25 = false;
        if v15.currentHandlerId == v14.id then
            v25 = v14.props.currentHandlerId ~= v14.id;
        end;
        if not v23 and not v22 then
            if not (not v20 or not v14.props.didFocus) then
                v14.props.didFocus(v17);
            end;
        else
            v14.props.requestFocusForHandlerId(v14.id);
        end;
        if v24 and v14.props.currentHandlerId == v14.id then
            v14.props.blurCurrentFocusHandler(v14.id, v14.props.shouldForgetPreviousSelection);
        end;
        if not (not v25 or not v14.props.didBlur) then
            v14.props.didBlur();
        end;
    end;
end;
if not v4() then
    v7.willUnmount = function(v26)
        if not (not v26.props.isFocused or not v26.props.didBlur) then
            v26.props.didBlur();
        end;
    end;
else
    v7.willUnmount = function(v27)
        if not v27.props.isFocused then
            v27.props.forgetLastSelectionForHandlerId(v27.id);
        else
            v27.props.blurCurrentFocusHandler(v27.id, true);
            if v27.props.didBlur then
                v27.props.didBlur();
                return ;
            end;
        end;
    end;
end;
if not v4() then
    return v7;
else
    return function(v28)
        return l_Roact_0.createElement(v5.Consumer, {
            render = function(v29)
                return l_Roact_0.createElement(v7, l_Cryo_0.Dictionary.join(v28, {
                    currentHandlerId = v29.currentHandlerId,
                    previousSelections = v29.previousSelections,
                    requestFocusForHandlerId = v29.requestFocusForHandlerId,
                    forgetLastSelectionForHandlerId = v29.forgetLastSelectionForHandlerId,
                    blurCurrentFocusHandler = v29.blurCurrentFocusHandler,
                    candidateHandlerId = v29.candidateHandlerId
                }));
            end
        });
    end;
end;


return require(game:GetService("CorePackages").InGameMenuDependencies).Roact.createContext({
    currentHandlerId = nil,
    candidateHandlerId = nil,
    previousSelections = {},
    requestFocusForHandlerId = function()
    end,
    forgetLastSelectionForHandlerId = function()
    end,
    blurCurrentFocusHandler = function()
    end
});


local l_GuiService_0 = game:GetService("GuiService");
local l_Roact_0 = require(game:GetService("CorePackages").InGameMenuDependencies).Roact;
local v2 = require(script.Parent.FocusHandlerContext);
local v3 = l_Roact_0.PureComponent:extend("FocusHandlerContextProvider");
v3.init = function(v4)
    v4.state = {
        candidateHandlerId = nil,
        currentHandlerId = nil
    };
    v4.previousSelections = {};
end;
v3.requestFocusForHandlerId = function(v5, v6)
    v5:setState(function(v7)
        if v7.currentHandlerId == nil then
            return {
                currentHandlerId = v6
            };
        elseif v6 ~= v7.currentHandlerId then
            return {
                candidateHandlerId = v6
            };
        else
            return nil;
        end;
    end);
end;
v3.blurCurrentFocusHandler = function(v8, v9, v10)
    v8:setState(function(v11)
        if v11.currentHandlerId == v9 then
            local v12 = nil;
            if not v10 then
                v12 = l_GuiService_0.SelectedCoreObject;
            end;
            v8.previousSelections[v9] = v12;
            local _ = nil;
            if v11.candidateHandlerId ~= nil then
                return {
                    currentHandlerId = v11.candidateHandlerId,
                    candidateHandlerId = l_Roact_0.None
                };
            else
                return {
                    currentHandlerId = l_Roact_0.None
                };
            end;
        else
            return nil;
        end;
    end);
end;
v3.forgetLastSelectionForHandlerId = function(v14, v15)
    v14.previousSelections[v15] = nil;
end;
v3.render = function(v16)
    return l_Roact_0.createElement(v2.Provider, {
        value = {
            currentHandlerId = v16.state.currentHandlerId,
            candidateHandlerId = v16.state.candidateHandlerId,
            previousSelections = v16.previousSelections,
            requestFocusForHandlerId = function(v17)
                v16:requestFocusForHandlerId(v17);
            end,
            forgetLastSelectionForHandlerId = function(v18)
                v16:forgetLastSelectionForHandlerId(v18);
            end,
            blurCurrentFocusHandler = function(v19, v20)
                v16:blurCurrentFocusHandler(v19, v20);
            end
        }
    }, v16.props[l_Roact_0.Children]);
end;
return v3;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local v2 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v2.Roact;
local l_RoactRodux_0 = v2.RoactRodux;
local l_t_0 = v2.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local l_InputType_0 = require(l_Parent_0.Resources.Constants).InputType;
local v8 = require(l_Parent_0.Flags.GetFFlagIGMGamepadSelectionHistory);
local v9 = require(script.Parent.FocusHandler);
local v10 = l_Roact_0.PureComponent:extend("FocusHighlightManager");
v10.validateProps = l_t_0.strictInterface({
    menuOpen = l_t_0.boolean,
    inputType = l_t_0.string
});
v10.render = function(v11)
    if not v8() then
        return l_Roact_0.createElement(v9, {
            isFocused = v11.props.menuOpen and v11.props.inputType == l_InputType_0.Gamepad,
            didBlur = function()
                l_GuiService_0.SelectedCoreObject = nil;
            end
        });
    else
        return l_Roact_0.createElement(v9, {
            isFocused = not v11.props.menuOpen or v11.props.inputType ~= l_InputType_0.Gamepad,
            didFocus = function()
                l_GuiService_0.SelectedCoreObject = nil;
            end
        });
    end;
end;
return l_RoactRodux_0.UNSTABLE_connect2(function(v12)
    return {
        menuOpen = v12.isMenuOpen,
        inputType = v12.displayOptions.inputType
    };
end)(v10);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v2 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v2.Roact;
local l_RoactRodux_0 = v2.RoactRodux;
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Actions.SetFriendStatus);
local v7 = require(l_Parent_0.Utility.ExternalEventConnection);
local v8 = l_Roact_0.PureComponent:extend("FriendStatusConnector");
v8.init = function(v9)
    v9.state = {
        localPlayer = l_Players_0.LocalPlayer
    };
end;
v8.render = function(v10)
    local v13 = {
        PlayerAdded = l_Roact_0.createElement(v7, {
            event = l_Players_0.PlayerAdded,
            callback = function(v11)
                if v11 == l_Players_0.LocalPlayer then
                    v10:setState({
                        localPlayer = v11
                    });
                    return ;
                else
                    v10.props.setFriendStatus(v11.UserId, Enum.FriendStatus.Unknown);
                    return ;
                end;
            end
        }),
        PlayerRemoving = l_Roact_0.createElement(v7, {
            event = l_Players_0.PlayerRemoving,
            callback = function(v12)
                v10.props.setFriendStatus(v12.UserId, nil);
            end
        })
    };
    if v10.state.localPlayer then
        v13.FriendStatusChanged = l_Roact_0.createElement(v7, {
            event = l_Players_0.LocalPlayer.FriendStatusChanged,
            callback = function(v14, v15)
                v10.props.setFriendStatus(v14.UserId, v15);
            end
        });
    end;
    return l_Roact_0.createFragment(v13);
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v16)
    return {
        setFriendStatus = function(v17, v18)
            return v16(v6(v17, v18));
        end
    };
end)(v8);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_VRService_0 = game:GetService("VRService");
local l_UserInputService_0 = game:GetService("UserInputService");
local v3 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v3.Roact;
local l_RoactRodux_0 = v3.RoactRodux;
local l_Parent_0 = script.Parent.Parent.Parent;
local v7 = require(l_Parent_0.Actions.SetInputType);
local v8 = require(l_Parent_0.Utility.ExternalEventConnection);
local l_InputTypeMap_0 = require(l_Parent_0.Resources.Constants).InputTypeMap;
local v10 = l_Roact_0.PureComponent:extend("LastInputTypeConnector");
v10.updateInputType = function(v11, v12)
    if l_VRService_0.VREnabled then
        v12 = l_InputTypeMap_0[Enum.UserInputType.MouseMovement];
    end;
    if v12 then
        v11.props.setInputType(v12);
    end;
end;
v10.init = function(v13)
    v13:updateInputType(l_InputTypeMap_0[l_UserInputService_0:GetLastInputType()]);
end;
v10.render = function(v14)
    return l_Roact_0.createElement(v8, {
        event = l_UserInputService_0.LastInputTypeChanged,
        callback = function(v15)
            v14:updateInputType(l_InputTypeMap_0[v15]);
        end
    });
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v16)
    return {
        setInputType = function(v17)
            return v16(v7(v17));
        end
    };
end)(v10);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_VRService_0 = game:GetService("VRService");
local v3 = require(l_CorePackages_0.Symbol);
local v4 = require(l_CorePackages_0.InGameServices.MouseIconOverrideService);
local v5 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v5.Roact;
local l_RoactRodux_0 = v5.RoactRodux;
local l_t_0 = v5.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v10 = require(l_Parent_0.Resources.Constants);
local v11 = require(l_Parent_0.Utility.ExternalEventConnection);
local v12 = v3.named("InGameMenuCursorOverride");
local l_InputType_0 = v10.InputType;
local v14 = l_Roact_0.PureComponent:extend("MouseOverrideManager");
v14.validateProps = l_t_0.strictInterface({
    menuOpen = l_t_0.boolean,
    exitModalOpen = l_t_0.boolean,
    inputType = l_t_0.string
});
v14.render = function(v15)
    local l_exitModalOpen_0 = v15.props.exitModalOpen;
    return l_Roact_0.createElement(v11, {
        event = l_UserInputService_0:GetPropertyChangedSignal("OverrideMouseIconBehavior"),
        callback = function()
            if not (not v15.props.menuOpen and not l_exitModalOpen_0) and l_UserInputService_0.OverrideMouseIconBehavior == Enum.OverrideMouseIconBehavior.None then
                v15:updateMouseIconOverride();
            end;
        end
    });
end;
v14.init = function(v17)
    v17.didOverrideMouse = false;
end;
v14.updateMouseIconOverride = function(v18)
    local l_exitModalOpen_1 = v18.props.exitModalOpen;
    if not v18.props.menuOpen and not l_exitModalOpen_1 then
        if v18.didOverrideMouse then
            v18.didOverrideMouse = false;
            v4.pop(v12);
        end;
        return ;
    else
        v18.didOverrideMouse = true;
        if v18.props.inputType ~= l_InputType_0.Gamepad and not l_VRService_0.VREnabled then
            v4.push(v12, Enum.OverrideMouseIconBehavior.ForceShow);
            return ;
        else
            v4.push(v12, Enum.OverrideMouseIconBehavior.ForceHide);
            return ;
        end;
    end;
end;
v14.didMount = function(v20)
    v20:updateMouseIconOverride();
end;
v14.didUpdate = function(v21)
    v21:updateMouseIconOverride();
end;
return l_RoactRodux_0.UNSTABLE_connect2(function(v22)
    return {
        menuOpen = v22.isMenuOpen,
        exitModalOpen = v22.nativeClosePrompt.closingApp,
        inputType = v22.displayOptions.inputType
    };
end, nil)(v14);


local l_GuiService_0 = game:GetService("GuiService");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local v2 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v2.Roact;
local l_RoactRodux_0 = v2.RoactRodux;
local l_t_0 = v2.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v7 = require(l_Parent_0.Thunks.OpenEducationalPopup);
local v8 = require(l_Parent_0.Utility.ExternalEventConnection);
local v9 = require(l_Parent_0.InGameMenuPolicy);
local v10 = require(l_Parent_0.Utility.UserLocalStore);
local v11 = require(l_Parent_0.Utility.SendAnalytics);
local v12 = require(l_Parent_0.Resources.Constants);
local v13 = l_Roact_0.PureComponent:extend("NativeCloseEventConnector");
v13.validateProps = l_t_0.strictInterface({
    isEducationalPopupEnabled = l_t_0.boolean,
    maxDisplayCount = l_t_0.integer,
    openEducationalPopup = l_t_0.optional(l_t_0.callback)
});
v13.init = function(v14)
    v14.onNativeCloseConnect = function()
        if v14.props.isEducationalPopupEnabled then
            l_RbxAnalyticsService_0:ReportCounter("LeaveGame_NativeClose", 1);
            v14.props.openEducationalPopup(l_GuiService_0, v10.new(), v14.props.maxDisplayCount);
        end;
        v11(v12.AnalyticsInGameMenuName, "LeaveGame_NativeClose", {});
    end;
end;
v13.render = function(v15)
    return l_Roact_0.createElement(v8, {
        event = l_GuiService_0.NativeClose,
        callback = v15.onNativeCloseConnect
    });
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v16)
    return {
        openEducationalPopup = function(v17, v18, v19)
            return v16(v7(v17, v18, v19));
        end
    };
end)((v9.connect(function(v20, _)
    return {
        isEducationalPopupEnabled = v20.enableEducationalPopup(),
        maxDisplayCount = v20.educationalPopupMaxDisplayCount()
    };
end)(v13)));


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local v3 = l_Roact_0.PureComponent:extend("RootedConnection");
v3.validateProps = l_t_0.strictInterface({
    render = l_t_0.callback
});
v3.init = function(v4)
    v4.state = {
        isRooted = false
    };
    v4.rootRef = l_Roact_0.createRef();
    v4.onAncestryChanged = function(v5)
        if v5:IsDescendantOf(game) then
            v4:setState({
                isRooted = true
            });
        end;
    end;
end;
v3.render = function(v6)
    return l_Roact_0.createFragment({
        Content = v6.props.render(v6.state.isRooted),
        Folder = l_Roact_0.createElement("Folder", {
            [l_Roact_0.Event.AncestryChanged] = v6.onAncestryChanged,
            [l_Roact_0.Ref] = v6.rootRef
        })
    });
end;
v3.didMount = function(v7)
    if v7.rootRef:getValue():IsDescendantOf(game) then
        v7:setState({
            isRooted = true
        });
    end;
end;
return v3;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = settings():WaitForChild("Game Options");
local l_Parent_0 = script.Parent.Parent.Parent;
local v3 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v3.Roact;
local l_RoactRodux_0 = v3.RoactRodux;
local v6 = require(l_Parent_0.Actions.SetVideoRecording);
local v7 = require(l_Parent_0.Utility.ExternalEventConnection);
local v8 = l_Roact_0.PureComponent:extend("VideoRecordConnector");
v8.init = function(v9)
    v9.props.setVideoRecording(v1.VideoRecording);
end;
v8.render = function(v10)
    return l_Roact_0.createElement(v7, {
        event = v1:GetPropertyChangedSignal("VideoRecording"),
        callback = function()
            v10.props.setVideoRecording(v1.VideoRecording);
        end
    });
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v11)
    return {
        setVideoRecording = function(v12)
            return v11(v6(v12));
        end
    };
end)(v8);


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local v3 = require(script.FriendStatusConnector);
local v4 = require(script.LastInputTypeConnector);
local v5 = require(script.MouseOverrideManager);
local v6 = require(script.FocusHighlightManager);
local v7 = require(script.VideoRecordConnector);
local v8 = require(script.NativeCloseEventConnector);
local v9 = require(script.Parent.Parent.InGameMenuPolicy);
local v10 = l_t_0.strictInterface({
    isEducationalPopupEnabled = l_t_0.optional(l_t_0.boolean)
});
return v9.connect(function(v11, _)
    return {
        isEducationalPopupEnabled = v11.enableEducationalPopup()
    };
end)(function(v13)
    assert(v10);
    return l_Roact_0.createFragment({
        FriendStatusConnector = l_Roact_0.createElement(v3),
        LastInputTypeConnector = l_Roact_0.createElement(v4),
        MouseOverrideManager = l_Roact_0.createElement(v5),
        FocusHighlightManager = l_Roact_0.createElement(v6),
        VideoRecordConnector = l_Roact_0.createElement(v7),
        NativeCloseEventConnector = not not v13.isEducationalPopupEnabled and l_Roact_0.createElement(v8) or nil
    });
end);


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local l_UIBlox_0 = v0.UIBlox;
local l_Parent_0 = script.Parent.Parent.Parent;
local v5 = require(l_Parent_0.GlobalConfig);
local v6 = require(l_Parent_0.Components.ThemedTextLabel);
local l_KeyLabel_0 = l_UIBlox_0.App.Menu.KeyLabel;
local v8 = require(l_Parent_0.Components.PointerLabel);
local v9 = require(l_Parent_0.Components.Divider);
local v10 = require(l_Parent_0.Localization.withLocalization);
local v11 = l_t_0.strictInterface({
    actionDescription = l_t_0.string,
    inputs = l_t_0.table,
    isList = l_t_0.optional(l_t_0.boolean),
    hasDivider = l_t_0.boolean,
    LayoutOrder = l_t_0.integer
});
local function v15(v12, v13, v14)
    return l_Roact_0.createElement(v6, {
        themeKey = "TextEmphasis",
        fontKey = "Header1",
        Text = v12,
        Size = not not v14 and UDim2.new(0, 19, 0, 24) or UDim2.new(0, 19, 0, 16),
        TextYAlignment = v14 and Enum.TextYAlignment.Bottom,
        LayoutOrder = v13
    });
end;
local function v18(v16, v17)
    if v16.EnumType == Enum.KeyCode then
        return l_Roact_0.createElement(l_KeyLabel_0, {
            keyCode = v16,
            textThemeKey = "TextEmphasis",
            LayoutOrder = v17
        });
    else
        return l_Roact_0.createElement(v8, {
            input = v16,
            LayoutOrder = v17
        });
    end;
end;
local function v28(v19, v20)
    local v21 = {
        ListLayout = l_Roact_0.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, v20 and 0 or 7)
        })
    };
    local v22 = 1;
    for v23, v24 in ipairs(v19) do
        if typeof(v24) ~= "table" then
            v21["input" .. v23] = v18(v24, v22);
            v22 = v22 + 1;
            if v20 and v23 == #v19 then
                v21.Elipses = v15("...", v22, true);
            end;
        else
            for v25, v26 in ipairs(v24) do
                local v27 = string.format("%d_%d", v23, v25);
                v21["groupedInput" .. v27] = v18(v26, v22);
                v22 = v22 + 1;
                if v25 < #v24 then
                    v21["groupedDivider" .. v27] = v15("+", v22);
                    v22 = v22 + 1;
                end;
            end;
        end;
        if not v20 and v23 < #v19 then
            v21["divider" .. v23] = v15("/", v22);
            v22 = v22 + 1;
        end;
    end;
    return l_Roact_0.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.new(0, 0, 1, 0),
        Position = UDim2.new(1, 0, 0, 0)
    }, v21);
end;
return function(v29)
    if v5.propValidation then
        assert(v11(v29));
    end;
    return v10({
        actionDescription = v29.actionDescription
    })(function(v30)
        return l_Roact_0.createElement("Frame", {
            LayoutOrder = v29.LayoutOrder,
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, 50)
        }, {
            ActionLabel = l_Roact_0.createElement(v6, {
                fontKey = "Header2",
                themeKey = "TextEmphasis",
                TextXAlignment = Enum.TextXAlignment.Left,
                Size = UDim2.new(0, 200, 0, 22),
                AnchorPoint = Vector2.new(0, 0.5),
                Position = UDim2.new(0, 0, 0.5, 0),
                Text = v30.actionDescription
            }),
            Divider = v29.hasDivider and l_Roact_0.createElement(v9, {
                Size = UDim2.new(1, 0, 0, 1),
                Position = UDim2.new(0, 0, 1, -1)
            }),
            Inputs = v28(v29.inputs, v29.isList)
        });
    end);
end;


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v4 = require(l_Parent_0.GlobalConfig);
local v5 = require(l_Parent_0.Components.ThemedTextLabel);
local v6 = require(l_Parent_0.Localization.withLocalization);
local v7 = l_t_0.strictInterface({
    title = l_t_0.string,
    LayoutOrder = l_t_0.integer
});
return function(v8)
    if v4.propValidation then
        assert(v7(v8));
    end;
    return v6({
        title = v8.title
    })(function(v9)
        return l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 45),
            BackgroundTransparency = 1,
            LayoutOrder = v8.LayoutOrder
        }, {
            HeaderText = l_Roact_0.createElement(v5, {
                fontKey = "CaptionHeader",
                themeKey = "TextMuted",
                Text = v9.title,
                TextXAlignment = Enum.TextXAlignment.Left,
                Position = UDim2.new(0, 0, 0, 20),
                Size = UDim2.new(1, 0, 0, 17)
            })
        });
    end);
end;


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_RoactRodux_0 = v0.RoactRodux;
local l_UIBlox_0 = v0.UIBlox;
local l_t_0 = v0.t;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local l_withSelectionCursorProvider_0 = l_UIBlox_0.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = l_UIBlox_0.App.SelectionImage.CursorKind;
local l_Parent_0 = script.Parent.Parent.Parent;
local v9 = require(l_Parent_0.GlobalConfig);
local v10 = require(script.Parent.Parent.ThemedTextLabel);
local v11 = require(script.Parent.Parent.Divider);
local v12 = require(l_Parent_0.Actions.NavigateBack);
local v13 = require(l_Parent_0.Localization.withLocalization);
local v14 = require(l_Parent_0.Resources.Assets);
local l_ImageSetButton_0 = l_UIBlox_0.Core.ImageSet.ImageSetButton;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v17 = l_t_0.strictInterface({
    titleText = l_t_0.string,
    [l_Roact_0.Children] = l_t_0.optional(l_t_0.table),
    onClosed = l_t_0.callback,
    closeButtonRef = l_t_0.optional(l_t_0.table)
});
local function v22(v18, v19)
    if v9.propValidation then
        assert(v17(v18));
    end;
    return v13({
        titleText = v18.titleText
    })(function(v20)
        return l_withStyle_0(function(v21)
            return l_Roact_0.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundColor3 = v21.Theme.Overlay.Color,
                BackgroundTransparency = 0,
                Active = true
            }, {
                PageContent = l_Roact_0.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 1, -132),
                    Position = UDim2.new(0, 0, 0, 132),
                    ClipsDescendants = true
                }, v18[l_Roact_0.Children]),
                HeaderContainer = l_Roact_0.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 132),
                    BackgroundTransparency = 1
                }, {
                    Padding = l_Roact_0.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, 95),
                        PaddingRight = UDim.new(0, 95)
                    }),
                    CloseButton = l_Roact_0.createElement(l_ImageSetButton_0, {
                        AnchorPoint = Vector2.new(0, 0.5),
                        Position = UDim2.new(0, 0, 0, 100),
                        Size = UDim2.new(0, 36, 0, 36),
                        Image = v14.Images.CloseModal,
                        BackgroundTransparency = 1,
                        SelectionImageObject = v19(l_CursorKind_0.RoundedRect),
                        [l_Roact_0.Event.Activated] = v18.onClosed,
                        [l_Roact_0.Ref] = v18.closeButtonRef
                    }),
                    HeaderTextLabel = l_Roact_0.createElement(v10, {
                        fontKey = "Header1",
                        themeKey = "TextEmphasis",
                        Size = UDim2.new(0, 250, 0, 28),
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Position = UDim2.new(0.5, 0, 0, 100),
                        Text = v20.titleText
                    }),
                    HeaderDivider = l_Roact_0.createElement(v11, {
                        Size = UDim2.new(1, 0, 0, 2),
                        AnchorPoint = Vector2.new(0.5, 1),
                        Position = UDim2.new(0.5, 0, 1, 0)
                    })
                }),
                RadialGlowBig = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Image = v14.Images.RadialGlow,
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    SizeConstraint = Enum.SizeConstraint.RelativeXX,
                    Size = UDim2.new(1, 0, 1, 0)
                }),
                RadialGlowSquashed = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Image = v14.Images.RadialGlow,
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.new(0.5, 0, 1, 0),
                    SizeConstraint = Enum.SizeConstraint.RelativeXX,
                    Size = UDim2.new(1, 0, 0.6, 0)
                })
            });
        end);
    end);
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v23)
    return {
        onClosed = function()
            v23(v12());
        end
    };
end)(function(v24)
    return l_withSelectionCursorProvider_0(function(v25)
        return v22(v24, v25);
    end);
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local v2 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v2.Roact;
local l_RoactRodux_0 = v2.RoactRodux;
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Resources.Controls);
local v7 = require(l_Parent_0.Actions.SetControlLayout);
local v8 = l_Roact_0.PureComponent:extend("ControlLayoutSetter");
v8.init = function(v9)
    local v10 = v6.inputToControlTypeMap[l_UserInputService_0:GetLastInputType()];
    if v10 then
        v9.props.dispatchSetControlLayout(v10);
    end;
end;
v8.render = function(_)
    return nil;
end;
v8.didMount = function(v12)
    v12.inputChangedConnection = l_UserInputService_0.LastInputTypeChanged:Connect(function(v13)
        local v14 = v6.inputToControlTypeMap[v13];
        if v14 then
            v12.props.dispatchSetControlLayout(v14);
        end;
    end);
end;
v8.willUnmount = function(v15)
    if v15.inputChangedConnection then
        v15.inputChangedConnection:Disconnect();
    end;
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v16)
    return {
        dispatchSetControlLayout = function(v17)
            v16(v7(v17));
        end
    };
end)(v8);


local l_UserInputService_0 = game:GetService("UserInputService");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v2.Roact;
local l_UIBlox_0 = v2.UIBlox;
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v6 = require(script.Parent.Parent.ControlLayoutContainer);
local v7 = require(l_Parent_0.Components.ThemedTextLabel);
local v8 = require(l_Parent_0.Resources.Assets);
local v9 = require(l_Parent_0.Resources.Controls);
local v10 = require(l_CorePackages_0.Workspace.Packages.React);
local v11 = require(l_Parent_0.Localization.withLocalization);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v13 = #v9.gamepadLabels.right * 43 + 62;
local function v19(v14)
    return v11(v14.controls)(function(v15)
        local v16 = {
            ListLayout = l_Roact_0.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 21)
            })
        };
        for v17, v18 in ipairs(v15) do
            v16["controlLabel_" .. v17] = l_Roact_0.createElement(v7, {
                fontKey = "Header2",
                themeKey = "TextEmphasis",
                TextXAlignment = v14.TextXAlignment,
                Size = UDim2.new(0, 1, 0, 22),
                Text = v18,
                LayoutOrder = v17
            });
        end;
        return l_Roact_0.createElement("Frame", {
            Position = v14.Position,
            Size = UDim2.new(0, 0, 1, 0),
            BackgroundTransparency = 1
        }, v16);
    end);
end;
return function(v20)
    local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
    local v22 = true;
    if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.XBox360 then
        v22 = l_l_UserInputService_0_Platform_0 == Enum.Platform.XBoxOne;
    end;
    return l_Roact_0.createElement(v6, {
        titleText = "CoreScripts.InGameMenu.Controls.GamepadTitle",
        closeButtonRef = v20.closeButtonRef
    }, {
        GamepadImage = l_Roact_0.createElement(l_ImageSetLabel_0, {
            BackgroundTransparency = 1,
            Image = not not v22 and v8.Images.GamepadXbox or v8.Images.Gamepad,
            Size = UDim2.new(0, 473, 0, 465),
            Position = UDim2.new(0.5, 16.5, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            [v10.Tag] = "data-testid=GamepadInstructions"
        }, {
            LeftControlsList = l_Roact_0.createElement(v19, {
                TextXAlignment = Enum.TextXAlignment.Right,
                Position = UDim2.new(0, -26, 0, 62),
                controls = v9.gamepadLabels.left
            }),
            RightControlsList = l_Roact_0.createElement(v19, {
                TextXAlignment = Enum.TextXAlignment.Left,
                Position = UDim2.new(1, -7, 0, 62),
                controls = v9.gamepadLabels.right
            }),
            RightIconsControlslIst = l_Roact_0.createElement(v19, {
                TextXAlignment = Enum.TextXAlignment.Left,
                Position = UDim2.new(1, 26, 0, v13),
                controls = v9.gamepadLabels.camera
            })
        })
    });
end;


local l_Roact_0 = require(game:GetService("CorePackages").InGameMenuDependencies).Roact;
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Resources.Controls);
local v3 = require(script.Parent.Parent.ControlLayoutContainer);
local v4 = require(l_Parent_0.Components.PaddedScrollFrame);
local v5 = require(script.Parent.Parent.ControlEntry);
local v6 = require(script.Parent.Parent.ControlEntryHeader);
return function(_)
    local v8 = {
        ListLayout = l_Roact_0.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        Padding = l_Roact_0.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 95),
            PaddingRight = UDim.new(0, 95)
        }),
        SizeConstraint = l_Roact_0.createElement("UISizeConstraint", {
            MaxSize = Vector2.new(1090, math.huge),
            MinSize = Vector2.new(150, 0)
        })
    };
    local v9 = 0;
    local v10 = 0;
    local v11 = 1;
    for _, v13 in ipairs(v2.keybinds) do
        local l_title_0 = v13.title;
        v9 = v9 + 1;
        v8[l_title_0 .. "_header"] = l_Roact_0.createElement(v6, {
            title = l_title_0,
            LayoutOrder = v11
        });
        v11 = v11 + 1;
        for v15, v16 in ipairs(v13.controls) do
            v10 = v10 + 1;
            v8[l_title_0 .. "_" .. v15] = l_Roact_0.createElement(v5, {
                LayoutOrder = v11,
                actionDescription = v16.desc,
                inputs = v16.inputs,
                isList = v16.list,
                hasDivider = v15 ~= #v13.controls
            });
            v11 = v11 + 1;
        end;
    end;
    return l_Roact_0.createElement(v3, {
        titleText = "CoreScripts.InGameMenu.Controls.KeyboardAndMouseTitle"
    }, {
        ScrollContent = l_Roact_0.createElement(v4, {
            CanvasSize = UDim2.new(0, 0, 0, 45 * v9 + 50 * v10),
            ScrollingDirection = Enum.ScrollingDirection.Y,
            Size = UDim2.new(1, 0, 1, -130)
        }, {
            ListContainer = l_Roact_0.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                AnchorPoint = Vector2.new(0.5, 0),
                Position = UDim2.new(0.5, 0, 0, 0)
            }, v8)
        })
    });
end;


local l_Roact_0 = require(game:GetService("CorePackages").InGameMenuDependencies).Roact;
local v1 = require(script.Parent.KeyboardControls);
return function(v2)
    return l_Roact_0.createElement(v1, v2);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_script_FirstAncestor_0 = script:FindFirstAncestor("InGameMenu");
local l_Array_0 = require(l_CorePackages_0.Packages.LuauPolyfill).Array;
local v6 = require(script.Parent.Parent.ControlLayoutContainer);
local v7 = require(l_script_FirstAncestor_0.Components.ThemedTextLabel);
local v8 = require(l_script_FirstAncestor_0.Resources.Assets);
local v9 = require(l_script_FirstAncestor_0.Resources.Controls);
local v10 = require(l_CorePackages_0.Workspace.Packages.React);
local v11 = require(l_script_FirstAncestor_0.Localization.withLocalization);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
return function(_)
    return l_Roact_0.createElement(v6, {
        titleText = "CoreScripts.InGameMenu.Controls.GamepadTitle"
    }, {
        GamepadImage = l_Roact_0.createElement(l_ImageSetLabel_0, {
            BackgroundTransparency = 1,
            Image = v8.Images.GamepadQuest,
            Size = UDim2.new(1, 0, 0.6, 0),
            Position = UDim2.new(0.5, 16.5, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            SizeConstraint = Enum.SizeConstraint.RelativeXX,
            [v10.Tag] = "data-testid=VRGamepadInstructions"
        }, {
            l_Array_0.map(v9.questGamepadLabels, function(v14, v15)
                return v11({
                    "CoreScripts.InGameMenu.Controls." .. v14.labelKey
                })(function(v16)
                    return l_Roact_0.createElement(v7, {
                        key = v14.labelKey,
                        fontKey = "Header2",
                        themeKey = "TextEmphasis",
                        TextXAlignment = v14.xAlignment or Enum.TextXAlignment.Right,
                        Size = UDim2.new(v14.width, 0, 0.026, 0),
                        Text = v16[1],
                        LayoutOrder = v15,
                        Position = UDim2.new(v14.xPosition, 0, v14.yPosition, 0),
                        TextScaled = true
                    });
                end);
            end)
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local l_CoreGui_0 = game:GetService("CoreGui");
local v3 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v3.Roact;
local l_RoactRodux_0 = v3.RoactRodux;
local l_t_0 = v3.t;
local l_Parent_0 = script.Parent.Parent;
local v8 = require(l_Parent_0.Resources.Controls);
local v9 = require(script.ControlLayouts.KeyboardControls);
local v10 = require(script.ControlLayouts.GamepadControls);
local v11 = require(script.ControlLayouts.VRGamepadControls);
local l_RobloxGui_0 = l_CoreGui_0.RobloxGui;
local v13 = require(l_RobloxGui_0.Modules.VR.VRUtil);
local v14 = require(l_RobloxGui_0.Modules.VR.VRServiceWrapper);
local v15 = require(l_Parent_0.Components.Connection.FocusHandler);
local v16 = l_Roact_0.PureComponent:extend("ControlsPage");
v16.validateProps = l_t_0.strictInterface({
    pageTitle = l_t_0.string,
    controlLayout = l_t_0.optional(l_t_0.string),
    canCaptureFocus = l_t_0.optional(l_t_0.boolean)
});
v16.init = function(v17)
    v17.closeButtonRef = l_Roact_0.createRef();
end;
v16.render = function(v18)
    local l_controlLayout_0 = v18.props.controlLayout;
    if l_controlLayout_0 == v8.ControlLayouts.KEYBOARD then
        return l_Roact_0.createElement(v9);
    elseif l_controlLayout_0 == v8.ControlLayouts.GAMEPAD then
        if v14.VREnabled and v13.getCurrentControllerType() == "Touch" then
            return l_Roact_0.createElement(v11);
        else
            return l_Roact_0.createFragment({
                GamepadControls = l_Roact_0.createElement(v10, {
                    closeButtonRef = v18.closeButtonRef
                }),
                FocusHandler = l_Roact_0.createElement(v15, {
                    isFocused = v18.props.canCaptureFocus,
                    didFocus = function()
                        local v20 = v18.closeButtonRef:getValue();
                        l_GuiService_0:AddSelectionParent("IGMControlsPage_CloseButtonSelectionGroup", v20);
                        l_GuiService_0.SelectedCoreObject = v20;
                    end,
                    didBlur = function()
                        l_GuiService_0:RemoveSelectionGroup("IGMControlsPage_CloseButtonSelectionGroup");
                    end
                })
            });
        end;
    else
        return nil;
    end;
end;
return l_RoactRodux_0.UNSTABLE_connect2(function(v21)
    return {
        controlLayout = v21.controlLayout,
        canCaptureFocus = v21.menuPage == "Controls"
    };
end)(v16);


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_UIBlox_0 = v0.UIBlox;
local l_Cryo_0 = v0.Cryo;
local l_t_0 = v0.t;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local v6 = require(script.Parent.Parent.GlobalConfig);
local v7 = l_t_0.strictInterface({
    Size = l_t_0.optional(l_t_0.UDim2),
    Position = l_t_0.optional(l_t_0.UDim2),
    AnchorPoint = l_t_0.optional(l_t_0.Vector2),
    LayoutOrder = l_t_0.optional(l_t_0.integer),
    Visible = l_t_0.optional(l_t_0.boolean)
});
return function(v8)
    if v6.propValidation then
        assert(v7(v8));
    end;
    return l_withStyle_0(function(v9)
        return l_Roact_0.createElement("Frame", l_Cryo_0.Dictionary.join({
            Size = UDim2.new(1, 0, 0, 1)
        }, v8, {
            BorderSizePixel = 0,
            BackgroundColor3 = v9.Theme.Divider.Color,
            BackgroundTransparency = v9.Theme.Divider.Transparency
        }));
    end);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_GuiService_0 = game:GetService("GuiService");
local v3 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v3.Roact;
local l_UIBlox_0 = v3.UIBlox;
local l_t_0 = v3.t;
local l_Parent_0 = script.Parent.Parent;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local v9 = require(l_Parent_0.Resources.Assets);
local v10 = require(l_Parent_0.Utility.divideTransparency);
local v11 = require(script.Parent.ThemedButton);
local v12 = require(script.Parent.ThemedTextLabel);
local v13 = require(script.Parent.Divider);
local v14 = require(script.Parent.BarOnTopScrollingFrame);
local v15 = require(script.Parent.Connection.FocusHandler);
local v16 = require(l_Parent_0.Localization.withLocalization);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v18 = l_Roact_0.PureComponent:extend("DropDownSelection");
v18.validateProps = l_t_0.intersection(l_t_0.strictInterface({
    Size = l_t_0.UDim2,
    Position = l_t_0.optional(l_t_0.UDim2),
    LayoutOrder = l_t_0.optional(l_t_0.integer),
    placeHolderText = l_t_0.optional(l_t_0.string),
    selectedIndex = l_t_0.numberMin(0),
    selections = l_t_0.array(l_t_0.string),
    localize = l_t_0.boolean,
    enabled = l_t_0.boolean,
    truncate = l_t_0.optional(l_t_0.boolean),
    selectionChanged = l_t_0.callback,
    canOpen = l_t_0.optional(l_t_0.boolean),
    canCaptureFocus = l_t_0.optional(l_t_0.boolean),
    selectionParentName = l_t_0.optional(l_t_0.string),
    ButtonRef = l_t_0.optional(l_t_0.table)
}), function(v19)
    if #v19.selections < v19.selectedIndex then
        return false, "selectedIndex must not be greater than the number of selections";
    else
        return true;
    end;
end);
v18.defaultProps = {
    canOpen = true
};
v18.init = function(v20)
    v20.rootRef = l_Roact_0.createRef();
    v20.firstOptionRef = l_Roact_0.createRef();
    v20.openDropDownButtonRef = v20.props.ButtonRef or l_Roact_0.createRef();
    v20.state = {
        isOpen = false,
        dropDownItemHeight = 10,
        absolutePositionX = 0,
        absolutePositionY = 0,
        screenSizeX = 0,
        screenSizeY = 0
    };
    v20.ancestryConnection = nil;
    v20.sizeConnection = nil;
end;
v18.getDerivedStateFromProps = function(v21)
    if v21.canOpen then
        return nil;
    else
        return {
            isOpen = false
        };
    end;
end;
v18.renderDropDownList = function(v22, v23, v24)
    local v25 = {
        Layout = l_Roact_0.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder
        })
    };
    for v26, v27 in ipairs(v22.props.selections) do
        local l_v27_0 = v27;
        if v22.props.localize then
            l_v27_0 = v24[v26];
        end;
        local v29 = -25;
        if v22.props.truncate and v26 == 1 then
            v29 = -48;
        end;
        do
            local l_l_v27_0_0, l_v29_0 = l_v27_0, v29;
            v25["button" .. v26] = l_Roact_0.createElement(v11, {
                Size = UDim2.new(1, 0, 0, v22.state.dropDownItemHeight - 1),
                LayoutOrder = v26 * 2,
                onActivated = function()
                    v22:setState({
                        isOpen = false
                    });
                    v22.props.selectionChanged(v26);
                end,
                normalThemeKey = "BackgroundUIDefault",
                hoverThemeKey = "BackgroundOnHover",
                ButtonRef = v26 == 1 and v22.firstOptionRef or nil,
                imageProps = v9.Images.WhiteSquare,
                renderChildren = function(_, v33, v34)
                    local v35 = not not v33 and v23.Theme.IconOnHover or v23.Theme.IconDefault;
                    return {
                        SelectedIcon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                            BackgroundTransparency = 1,
                            AnchorPoint = Vector2.new(1, 0.5),
                            Size = UDim2.new(0, 15, 0, 12),
                            Position = UDim2.new(1, -25, 0.5, 0),
                            Image = v9.Images.SelectedCheck,
                            ImageColor3 = v35.Color,
                            ImageTransparency = v10(v35.Transparency, not v34 and 1 or 2),
                            Visible = v22.props.selectedIndex == v26
                        }),
                        TextLabel = l_Roact_0.createElement(v12, {
                            fontKey = "Header2",
                            themeKey = "TextEmphasis",
                            Position = UDim2.new(0, 25, 0, 0),
                            Size = UDim2.new(1, l_v29_0, 1, 0),
                            Text = l_l_v27_0_0,
                            TextTruncate = if not v22.props.truncate then Enum.TextTruncate.None else Enum.TextTruncate.AtEnd,
                            TextXAlignment = Enum.TextXAlignment.Left
                        })
                    };
                end
            });
            if v26 < #v22.props.selections then
                v25["divider" .. v26] = l_Roact_0.createElement(v13, {
                    LayoutOrder = v26 * 2 + 1
                });
            end;
        end;
    end;
    return v25;
end;
v18.renderFocusHandler = function(v36)
    return not not v36.props.selectionParentName and l_Roact_0.createElement(v15, {
        isFocused = v36.props.canOpen and v36.state.isOpen,
        didFocus = function()
            l_ContextActionService_0:BindCoreAction("settings_dropdown_close_action", function(_, v38)
                if v38 == Enum.UserInputState.End then
                    v36:setState({
                        isOpen = false
                    });
                    return Enum.ContextActionResult.Sink;
                else
                    return Enum.ContextActionResult.Pass;
                end;
            end, false, Enum.KeyCode.ButtonB);
            if v36.props.canCaptureFocus then
                l_GuiService_0:RemoveSelectionGroup(v36.props.selectionParentName);
                l_GuiService_0:AddSelectionParent(v36.props.selectionParentName, v36.rootRef.current);
                l_GuiService_0.SelectedCoreObject = v36.firstOptionRef.current;
            end;
        end,
        didBlur = function()
            l_ContextActionService_0:UnbindCoreAction("settings_dropdown_close_action");
            l_GuiService_0:RemoveSelectionGroup(v36.props.selectionParentName);
            if not ((not v36.props.canOpen or v36.state.isOpen) or not v36.props.canCaptureFocus) then
                l_GuiService_0.SelectedCoreObject = v36.openDropDownButtonRef.current;
            end;
        end
    }) or nil;
end;
v18.render = function(v39)
    return l_withStyle_0(function(v40)
        return v16(not not v39.props.localize and v39.props.selections or {})(function(v41)
            local l_placeHolderText_0 = v39.props.placeHolderText;
            if v39.props.selectedIndex > 0 then
                l_placeHolderText_0 = if not v39.props.localize then v39.props.selections[v39.props.selectedIndex] else v41[v39.props.selectedIndex];
            end;
            local l_Size_0 = v9.Images.Shadow.Size;
            return l_Roact_0.createElement("Frame", {
                Size = v39.props.Size,
                Position = v39.props.Position,
                LayoutOrder = v39.props.LayoutOrder,
                BackgroundTransparency = 1,
                [l_Roact_0.Ref] = v39.rootRef,
                [l_Roact_0.Change.AbsoluteSize] = function(v44)
                    v39:setState({
                        dropDownItemHeight = v44.AbsoluteSize.Y
                    });
                end,
                [l_Roact_0.Change.AbsolutePosition] = function(v45)
                    v39:setState({
                        absolutePositionX = v45.AbsolutePosition.X,
                        absolutePositionY = v45.AbsolutePosition.Y
                    });
                end
            }, {
                OpenDropDownButton = l_Roact_0.createElement(v11, {
                    Size = UDim2.new(1, 0, 1, 0),
                    Visible = not v39.state.isOpen,
                    enabled = v39.props.enabled,
                    onActivated = function()
                        v39:setState({
                            isOpen = true
                        });
                    end,
                    normalThemeKey = "SecondaryDefault",
                    hoverThemeKey = "SecondaryOnHover",
                    imageProps = v9.Images.RoundedRectBorder,
                    renderChildren = function(v46, v47, v48)
                        local v49 = not not v47 and v40.Theme.IconOnHover or v40.Theme.IconDefault;
                        return {
                            ButtonIcon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                                BackgroundTransparency = 1,
                                Size = UDim2.new(0, 36, 0, 36),
                                Position = UDim2.new(1, -16, 0.5, 0),
                                AnchorPoint = Vector2.new(1, 0.5),
                                Image = v9.Images.ExpandArrow,
                                ImageColor3 = v49.Color,
                                ImageTransparency = v10(v49.Transparency, not v48 and 1 or 2)
                            }),
                            ButtonText = l_Roact_0.createElement(v12, {
                                Text = l_placeHolderText_0,
                                themeKey = "SecondaryContent",
                                fontKey = "Header2",
                                Position = UDim2.new(0, 12, 0, 0),
                                Size = UDim2.new(1, not v39.props.truncate and -12 or -48, 1, 0),
                                TextTransparency = v46,
                                TextTruncate = if not v39.props.truncate then Enum.TextTruncate.None else Enum.TextTruncate.AtEnd,
                                TextXAlignment = Enum.TextXAlignment.Left
                            })
                        };
                    end,
                    ButtonRef = v39.openDropDownButtonRef
                }),
                CloseDropDownArea = l_Roact_0.createElement("TextButton", {
                    BackgroundTransparency = 1,
                    Text = "",
                    Position = UDim2.new(0, -v39.state.absolutePositionX, 0, -v39.state.absolutePositionY),
                    Size = UDim2.new(0, v39.state.screenSizeX, 0, v39.state.screenSizeY),
                    Visible = v39.state.isOpen,
                    Selectable = false,
                    [l_Roact_0.Event.Activated] = function()
                        v39:setState({
                            isOpen = false
                        });
                    end,
                    ZIndex = 2
                }),
                DropDownShadow = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Image = v9.Images.Shadow.Image,
                    Position = UDim2.new(0, -l_Size_0, 0, -l_Size_0),
                    Size = UDim2.new(1, l_Size_0 * 2, 0, (l_Size_0 * 2 + 8) + math.min(#v39.props.selections, 7.5) * 44),
                    ScaleType = v9.Images.Shadow.ScaleType,
                    SliceCenter = v9.Images.Shadow.SliceCenter,
                    Visible = v39.state.isOpen,
                    ZIndex = 3
                }, {
                    FocusHandler = v39:renderFocusHandler(),
                    DropDownBackground = l_Roact_0.createElement(l_ImageSetLabel_0, {
                        BackgroundTransparency = 1,
                        Image = v9.Images.RoundedRect.Image,
                        ImageColor3 = v40.Theme.BackgroundUIDefault.Color,
                        ImageTransparency = v40.Theme.BackgroundUIDefault.Transparency,
                        ScaleType = v9.Images.RoundedRect.ScaleType,
                        Size = UDim2.new(1, -(l_Size_0 * 2), 1, -(l_Size_0 * 2)),
                        Position = UDim2.new(0.5, 0, 0.5, 0),
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        SliceCenter = v9.Images.RoundedRect.SliceCenter,
                        SliceScale = 0.5
                    }, {
                        DropDownList = l_Roact_0.createElement(v14, {
                            Position = UDim2.new(0, 0, 0, 4),
                            Size = UDim2.new(1, 0, 1, -8),
                            CanvasSize = UDim2.new(1, 0, 0, #v39.props.selections * v39.state.dropDownItemHeight)
                        }, (v39:renderDropDownList(v40, v41)))
                    })
                })
            });
        end);
    end);
end;
v18.watchLayerCollector = function(v50, v51)
    v50:setState({
        screenSizeX = v51.AbsoluteSize.X,
        screenSizeY = v51.AbsoluteSize.Y
    });
    v50.sizeConnection = v51:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
        v50:setState({
            screenSizeX = v51.AbsoluteSize.X,
            screenSizeY = v51.AbsoluteSize.Y
        });
    end);
end;
v18.didMount = function(v52)
    local l_current_0 = v52.rootRef.current;
    local l_l_current_0_FirstAncestorWhichIsA_0 = l_current_0:FindFirstAncestorWhichIsA("LayerCollector");
    if l_l_current_0_FirstAncestorWhichIsA_0 == nil then
        v52.ancestryConnection = l_current_0.AncestryChanged:Connect(function()
            l_l_current_0_FirstAncestorWhichIsA_0 = l_current_0:FindFirstAncestorWhichIsA("LayerCollector");
            if l_l_current_0_FirstAncestorWhichIsA_0 ~= nil then
                v52.ancestryConnection:Disconnect();
                v52.ancestryConnection = nil;
                v52:watchLayerCollector(l_l_current_0_FirstAncestorWhichIsA_0);
            end;
        end);
    else
        v52:watchLayerCollector(l_l_current_0_FirstAncestorWhichIsA_0);
    end;
end;
v18.didUpdate = function(v55, v56)
    if v56.ButtonRef ~= v55.props.ButtonRef then
        v55.openDropDownButtonRef = v55.props.ButtonRef or l_Roact_0.createRef();
    end;
    if v55.state.isOpen and v56.canCaptureFocus ~= v55.props.canCaptureFocus then
        v55:setState({
            isOpen = false
        });
    end;
end;
v18.willUnmount = function(v57)
    if v57.ancestryConnection then
        v57.ancestryConnection:Disconnect();
    end;
    if v57.sizeConnection then
        v57.sizeConnection:Disconnect();
    end;
end;
return v18;


local l_GuiService_0 = game:GetService("GuiService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local v3 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v3.Roact;
local l_RoactRodux_0 = v3.RoactRodux;
local l_t_0 = v3.t;
local l_Images_0 = v3.UIBlox.App.ImageSet.Images;
local l_Parent_0 = script.Parent.Parent;
local v9 = require(l_Parent_0.Localization.withLocalization);
local v10 = require(l_Parent_0.Actions.CloseNativeClosePrompt);
local v11 = require(l_Parent_0.Utility.LeaveGame);
local v12 = require(script.Parent.EducationalPopupDialog);
local v13 = require(l_Parent_0.Utility.SendAnalytics);
local l_l_GuiService_0_NotificationTypeList_0 = l_GuiService_0:GetNotificationTypeList();
local v15 = {
    EventContext = "educational_popup",
    ConfirmName = "educational_confirmed",
    CancelName = "educational_close_app",
    DismissName = "educational_dismiss_prompt"
};
local v16 = l_Roact_0.PureComponent:extend("EducationalPopup");
v16.validateProps = l_t_0.strictInterface({
    screenSize = l_t_0.Vector2,
    onDismiss = l_t_0.callback,
    onConfirm = l_t_0.callback,
    isClosingApp = l_t_0.boolean
});
v16.init = function(v17)
    v17.onCancel = function()
        v13(v15.EventContext, v15.CancelName, {});
        l_GuiService_0:BroadcastNotification("", l_l_GuiService_0_NotificationTypeList_0.NATIVE_EXIT);
    end;
end;
v16.render = function(v18)
    return v9({
        title = "CoreScripts.InGameMenu.ExitModal.Title",
        subtitle = "CoreScripts.InGameMenu.ExitModal.Subtitle",
        bodyTextOpenMenu = "CoreScripts.InGameMenu.ExitModal.BodyTextOpenMenu",
        bodyTextClickHome = "CoreScripts.InGameMenu.ExitModal.BodyTextClickHome",
        actionExit = "CoreScripts.InGameMenu.ExitModal.ActionExit",
        actionHome = "CoreScripts.InGameMenu.ExitModal.ActionHome"
    })(function(v19)
        return l_Roact_0.createElement(v12, {
            bodyContents = {
                {
                    text = v19.bodyTextOpenMenu,
                    isSystemMenuIcon = true
                },
                {
                    icon = l_Images_0["icons/menu/home_off"],
                    text = v19.bodyTextClickHome
                }
            },
            cancelText = v19.actionExit,
            confirmText = v19.actionHome,
            titleBackgroundImageProps = {
                image = "rbxasset://textures/ui/LuaApp/graphic/Auth/GridBackground.jpg",
                imageHeight = 200,
                text = "" .. v19.title .. "

" .. v19.subtitle
            },
            screenSize = v18.props.screenSize,
            onDismiss = v18.props.onDismiss,
            onCancel = v18.onCancel,
            onConfirm = v18.props.onConfirm,
            blurBackground = true,
            visible = v18.props.isClosingApp
        });
    end);
end;
v16.didUpdate = function(v20)
    l_GuiService_0:SetMenuIsOpen(v20.props.isClosingApp, "EducationalPopup");
end;
return l_RoactRodux_0.UNSTABLE_connect2(function(v21, _)
    return {
        isClosingApp = v21.nativeClosePrompt.closingApp,
        screenSize = v21.screenSize
    };
end, function(v23)
    return {
        onDismiss = function()
            v23(v10());
            l_RbxAnalyticsService_0:ReportCounter("EducationalPopup_Dismiss", 1);
            v13(v15.EventContext, v15.DismissName, {});
        end,
        onConfirm = function()
            l_RbxAnalyticsService_0:ReportCounter("EducationalPopup_Confirm", 1);
            v13(v15.EventContext, v15.ConfirmName, {});
            v11();
        end
    };
end)(v16);


local l_CoreGui_0 = game:GetService("CoreGui");
local l_RunService_0 = game:GetService("RunService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local v4 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v4.Roact;
local l_t_0 = v4.t;
local l_UIBlox_0 = v4.UIBlox;
local l_EducationalModal_0 = l_UIBlox_0.App.Dialog.Modal.EducationalModal;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local v10 = require(script.Parent.Parent.Flags.FFlagFixExitDialogBlockVRView);
local v11 = l_Roact_0.PureComponent:extend("EducationalPopupDialog");
v11.validateProps = l_t_0.strictInterface({
    bodyContents = l_t_0.array(l_t_0.strictInterface({
        icon = l_t_0.optional(l_t_0.union(l_t_0.string, l_t_0.table)),
        text = l_t_0.string,
        layoutOrder = l_t_0.optional(l_t_0.integer),
        isSystemMenuIcon = l_t_0.optional(l_t_0.boolean)
    })),
    cancelText = l_t_0.string,
    confirmText = l_t_0.string,
    titleText = l_t_0.optional(l_t_0.string),
    titleBackgroundImageProps = l_t_0.strictInterface({
        image = l_t_0.string,
        imageHeight = l_t_0.number,
        text = l_t_0.optional(l_t_0.string)
    }),
    screenSize = l_t_0.Vector2,
    onDismiss = l_t_0.callback,
    onCancel = l_t_0.callback,
    onConfirm = l_t_0.callback,
    blurBackground = l_t_0.boolean,
    visible = l_t_0.boolean
});
v11.defaultProps = {
    blurBackground = false
};
v11.render = function(v12)
    return l_withStyle_0(function(v13)
        return l_Roact_0.createElement(l_Roact_0.Portal, {
            target = l_CoreGui_0
        }, {
            InGameMenuEducationalPopupDialog = l_Roact_0.createElement("ScreenGui", {
                IgnoreGuiInset = true,
                OnTopOfCoreBlur = v12.props.blurBackground,
                Enabled = v12.props.visible,
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling
            }, {
                Overlay = l_Roact_0.createElement("TextButton", {
                    AutoButtonColor = false,
                    BackgroundColor3 = v13.Theme.Overlay.Color,
                    BackgroundTransparency = v13.Theme.Overlay.Transparency,
                    BorderSizePixel = 0,
                    Size = UDim2.fromScale(1, 1),
                    Text = ""
                }),
                Popup = l_Roact_0.createElement(l_EducationalModal_0, {
                    bodyContents = v12.props.bodyContents,
                    cancelText = v12.props.cancelText,
                    confirmText = v12.props.confirmText,
                    titleText = v12.props.titleText,
                    titleBackgroundImageProps = v12.props.titleBackgroundImageProps,
                    screenSize = v12.props.screenSize,
                    onDismiss = v12.props.onDismiss,
                    onCancel = v12.props.onCancel,
                    onConfirm = v12.props.onConfirm
                })
            })
        });
    end);
end;
v11.bindActions = function(v14)
    l_ContextActionService_0:BindCoreAction("EducationalPopupConfirm", function(_, v16, _)
        if v16 == Enum.UserInputState.Begin then
            v14.props.onDismiss();
        end;
    end, false, Enum.KeyCode.Escape);
end;
v11.unbindActions = function(_)
    l_ContextActionService_0:UnbindCoreAction("EducationalPopupConfirm");
end;
v11.updateBlur = function(v19)
    local v20 = v19.props.blurBackground and v19.props.visible;
    if v10 then
        v20 = v20 and not game:GetService("VRService").VREnabled;
    end;
    l_RunService_0:SetRobloxGuiFocused(v20);
end;
v11.didMount = function(v21)
    v21:updateBlur();
    if v21.props.visible then
        v21:bindActions();
    end;
end;
v11.didUpdate = function(v22)
    v22:updateBlur();
    if not v22.props.visible then
        v22:unbindActions();
        return ;
    else
        v22:bindActions();
        return ;
    end;
end;
v11.willUnmount = function(v23)
    if v23.props.blurBackground then
        l_RunService_0:SetRobloxGuiFocused(false);
    end;
    v23:unbindActions();
end;
return v11;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_GuiService_0 = game:GetService("GuiService");
local l_AppStorageService_0 = game:GetService("AppStorageService");
local v5 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v5.Roact;
local l_RoactRodux_0 = v5.RoactRodux;
local l_t_0 = v5.t;
local l_UIBlox_0 = v5.UIBlox;
local l_Promise_0 = v5.Promise;
local l_FullscreenTitleBar_0 = l_UIBlox_0.App.Bar.FullscreenTitleBar;
local l_Parent_0 = script.Parent.Parent;
local v13 = require(l_Parent_0.InGameMenuPolicy);
local v14 = require(l_Parent_0.Thunks.OpenEducationalPopup);
local v15 = require(l_Parent_0.Actions.StartLeavingGame);
local v16 = require(l_Parent_0.Utility.ExternalEventConnection);
local v17 = require(l_Parent_0.Utility.UserLocalStore);
local v18 = require(l_Parent_0.Flags.GetFIntFullscreenTitleBarTriggerDelayMillis);
local v19 = require(l_Parent_0.Flags.GetFFlagCleanUpFullscreenTitleBarPromiseOnUnmount);
local v20 = require(l_Parent_0.Flags.GetFFlagFullscreenTitleBarInjectGameServices);
local v21 = require(l_Parent_0.Flags.GetFFlagFixFullscreenTitleBarPromiseCancel);
local v22 = l_Roact_0.PureComponent:extend("FullscreenTitleBar");
v22.validateProps = l_t_0.strictInterface({
    titleText = l_t_0.optional(l_t_0.string),
    displayOrder = l_t_0.integer,
    isMenuOpen = l_t_0.boolean,
    isEducationalPopupEnabled = l_t_0.boolean,
    maxDisplayCount = l_t_0.integer,
    openEducationalPopup = l_t_0.callback,
    startLeavingGame = l_t_0.callback,
    userGameSettings = l_t_0.optional(l_t_0.union(l_t_0.Instance, l_t_0.table)),
    guiService = l_t_0.optional(l_t_0.union(l_t_0.Instance, l_t_0.table)),
    appStorageService = l_t_0.optional(l_t_0.union(l_t_0.Instance, l_t_0.table))
});
v22.defaultProps = {
    titleText = "Roblox",
    userGameSettings = l_UserGameSettings_0,
    guiService = l_GuiService_0,
    appStorageService = l_AppStorageService_0
};
v22.init = function(v23)
    v23.userGameSettings = not not v20() and v23.props.userGameSettings or l_UserGameSettings_0;
    v23.guiService = not not v20() and v23.props.guiService or l_GuiService_0;
    v23.appStorageService = not not v20() and v23.props.appStorageService or l_AppStorageService_0;
    v23:setState({
        isTriggered = false,
        fullscreenEnabled = v23.userGameSettings:InFullScreen()
    });
    v23.onFullscreenChanged = function(v24)
        v23:setState({
            fullscreenEnabled = v24,
            isTriggered = false
        });
    end;
    v23.triggerTitleBar = function()
        local v25 = v18() / 1000;
        if v25 > 0 then
            v23.triggerTitleBarPromise = l_Promise_0.delay(v25):andThenCall(function()
                v23.triggerTitleBarPromise = nil;
                if not v23.state.isTriggered then
                    v23:setState({
                        isTriggered = true
                    });
                end;
            end);
            return ;
        else
            if not v23.state.isTriggered then
                v23:setState({
                    isTriggered = true
                });
            end;
            return ;
        end;
    end;
    v23.cancelTriggerTitleBar = function()
        if v23.triggerTitleBarPromise then
            v23.triggerTitleBarPromise:cancel();
            v23.triggerTitleBarPromise = nil;
        end;
    end;
    v23.hideTitleBar = function()
        if v23.state.isTriggered then
            v23:setState({
                isTriggered = false
            });
        end;
    end;
    v23.exitFullscreen = function()
        v23.hideTitleBar();
        v23.guiService:ToggleFullscreen();
    end;
    v23.closeRoblox = function()
        v23.hideTitleBar();
        if not v23.props.isEducationalPopupEnabled then
            v23.props.startLeavingGame();
            return ;
        else
            v23.props.openEducationalPopup(v23.guiService, v17.new(), v23.props.maxDisplayCount);
            return ;
        end;
    end;
    v23.onDisappear = function()
        if v23.hideTitleBarPromise then
            if not v21() then
                v23.hideTitleBarPromise.cancel();
            else
                v23.hideTitleBarPromise:cancel();
            end;
            v23.hideTitleBarPromise = nil;
        end;
        v23.hideTitleBarPromise = l_Promise_0.delay(0.5):andThenCall(function()
            v23.hideTitleBarPromise = nil;
            v23.hideTitleBar();
        end);
    end;
    v23.mouseReenter = function()
        if not (not v23.state.isTriggered or not v23.hideTitleBarPromise) then
            v23.hideTitleBarPromise:cancel();
            v23.hideTitleBarPromise = nil;
        end;
    end;
end;
v22.render = function(v26)
    return l_Roact_0.createFragment({
        FullscreenChangedEvent = l_Roact_0.createElement(v16, {
            event = v26.userGameSettings.FullscreenChanged,
            callback = v26.onFullscreenChanged
        }),
        FullscreenTitleBar = l_Roact_0.createElement(l_Roact_0.Portal, {
            target = l_CoreGui_0
        }, {
            InGameFullscreenTitleBarScreen = l_Roact_0.createElement("ScreenGui", {
                Enabled = v26.state.fullscreenEnabled,
                IgnoreGuiInset = true,
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                DisplayOrder = v26.props.displayOrder
            }, {
                TriggerArea = l_Roact_0.createElement("Frame", {
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Size = UDim2.new(1, 0, 0, 1),
                    [l_Roact_0.Event.MouseEnter] = v26.triggerTitleBar,
                    [l_Roact_0.Event.MouseLeave] = v26.cancelTriggerTitleBar
                }),
                Bar = l_Roact_0.createElement(l_FullscreenTitleBar_0, {
                    title = v26.props.titleText,
                    isTriggered = v26.state.isTriggered,
                    onDisappear = v26.onDisappear,
                    onHover = v26.mouseReenter,
                    exitFullscreen = v26.exitFullscreen,
                    closeRoblox = v26.closeRoblox
                })
            })
        })
    });
end;
v22.didUpdate = function(v27, v28)
    if not (v28.isMenuOpen or not v27.props.isMenuOpen) then
        v27.hideTitleBar();
    end;
end;
v22.willUnmount = function(v29)
    if v19() then
        if v29.hideTitleBarPromise then
            v29.hideTitleBarPromise:cancel();
        end;
        if v29.triggerTitleBarPromise then
            v29.triggerTitleBarPromise:cancel();
        end;
    end;
end;
return l_RoactRodux_0.UNSTABLE_connect2(function(v30, _)
    return {
        isMenuOpen = v30.isMenuOpen
    };
end, function(v32)
    return {
        openEducationalPopup = function(v33, v34, v35)
            return v32(v14(v33, v34, v35));
        end,
        startLeavingGame = function()
            v32(v15());
        end
    };
end)((v13.connect(function(v36, _)
    return {
        isEducationalPopupEnabled = v36.enableEducationalPopup(),
        maxDisplayCount = v36.educationalPopupMaxDisplayCount()
    };
end)(v22)));


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_UIBlox_0 = v0.UIBlox;
local l_t_0 = v0.t;
local l_Parent_0 = script.Parent.Parent;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local v7 = require(l_Parent_0.Components.AssetImage);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v9 = require(l_Parent_0.Components.getGameIconRequestSize);
local v10 = l_Roact_0.PureComponent:extend("GameIcon");
v10.validateProps = l_t_0.strictInterface({
    gameId = l_t_0.number,
    iconSize = l_t_0.numberMin(0),
    layoutOrder = l_t_0.optional(l_t_0.number),
    cornerRadius = l_t_0.optional(l_t_0.UDim),
    Position = l_t_0.optional(l_t_0.UDim2),
    AnchorPoint = l_t_0.optional(l_t_0.Vector2)
});
v10.render = function(v11)
    local l_iconSize_0 = v11.props.iconSize;
    local v13 = v9(l_iconSize_0);
    local l_gameId_0 = v11.props.gameId;
    local l_cornerRadius_0 = v11.props.cornerRadius;
    local v16 = ("rbxthumb://type=GameIcon&id=%d&w=%d&h=%d"):format(l_gameId_0, v13, v13);
    if not (l_gameId_0 == 0) then
        return l_Roact_0.createElement("ImageLabel", {
            Image = v16,
            Size = UDim2.fromOffset(l_iconSize_0, l_iconSize_0),
            BackgroundTransparency = 1,
            LayoutOrder = v11.props.layoutOrder,
            Position = v11.props.Position,
            AnchorPoint = v11.props.AnchorPoint
        }, {
            UICorner = (not not l_cornerRadius_0 and l_cornerRadius_0 ~= UDim.new(0, 0)) and l_Roact_0.createElement("UICorner", {
                CornerRadius = l_cornerRadius_0
            }) or nil
        });
    else
        local v17 = 44;
        if l_iconSize_0 <= 44 then
            v17 = l_iconSize_0;
        end;
        return l_withStyle_0(function(v18)
            return l_Roact_0.createElement(v7.Label, {
                imageKey = "RoundedRect",
                Size = UDim2.fromOffset(l_iconSize_0, l_iconSize_0),
                ImageColor3 = v18.Theme.PlaceHolder.Color,
                ImageTransparency = v18.Theme.PlaceHolder.Transparency,
                LayoutOrder = v11.props.layoutOrder,
                Position = v11.props.Position,
                AnchorPoint = v11.props.AnchorPoint
            }, {
                PlaceholderIcon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Size = UDim2.fromOffset(v17, v17),
                    Position = UDim2.fromScale(0.5, 0.5),
                    Image = l_Images_0["icons/imageUnavailable"],
                    ImageColor3 = v18.Theme.UIDefault.Color,
                    ImageTransparency = v18.Theme.UIDefault.Transparency,
                    AnchorPoint = Vector2.new(0.5, 0.5)
                }, {
                    UICorner = (not not l_cornerRadius_0 and l_cornerRadius_0 ~= UDim.new(0, 0)) and l_Roact_0.createElement("UICorner", {
                        CornerRadius = l_cornerRadius_0
                    }) or nil
                })
            });
        end);
    end;
end;
return v10;


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_RoactRodux_0 = v0.RoactRodux;
local l_Parent_0 = script.Parent.Parent;
local v4 = require(l_Parent_0.Components.ThemedTextLabel);
local v5 = require(l_Parent_0.Components.GameIcon);
return l_RoactRodux_0.UNSTABLE_connect2(function(v6)
    return {
        gameName = v6.gameInfo.name
    };
end)(function(v7)
    return l_Roact_0.createElement("ImageLabel", {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, 148)
    }, {
        Padding = l_Roact_0.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, 24),
            PaddingLeft = UDim.new(0, 24),
            PaddingRight = UDim.new(0, 24),
            PaddingTop = UDim.new(0, 24)
        }),
        GameIcon = l_Roact_0.createElement(v5, {
            gameId = game.GameId,
            iconSize = 100
        }),
        GameName = l_Roact_0.createElement(v4, {
            fontKey = "Title",
            themeKey = "TextEmphasis",
            Position = UDim2.new(0, 112, 0, 0),
            Size = UDim2.new(1, -112, 1, 0),
            Text = v7.gameName,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top
        })
    });
end);


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v4 = require(l_Parent_0.Utility.ExternalEventConnection);
local v5 = require(script.Parent.ToggleEntry);
local v6 = require(l_Parent_0.Utility.SendAnalytics);
local v7 = require(l_Parent_0.Resources.Constants);
local v8 = l_Roact_0.PureComponent:extend("AutoPropertyToggleEntry");
v8.validateProps = l_t_0.strictInterface({
    instance = l_t_0.Instance,
    valueKey = l_t_0.string,
    lockedToOff = l_t_0.optional(l_t_0.boolean),
    onValue = l_t_0.optional(l_t_0.any),
    offValue = l_t_0.optional(l_t_0.any),
    labelKey = l_t_0.string,
    LayoutOrder = l_t_0.integer,
    subtextEnabled = l_t_0.optional(l_t_0.boolean),
    subtextKey = l_t_0.optional(l_t_0.string)
});
v8.defaultProps = {
    onValue = true,
    offValue = false,
    lockedToOff = false,
    subtextEnabled = false,
    subtextKey = ""
};
v8.init = function(v9, v10)
    local v11 = v10.instance[v10.valueKey];
    v9.changeEvent = v10.instance:GetPropertyChangedSignal(v10.valueKey);
    v9:setState({
        checked = not v10.lockedToOff and v11 == v10.onValue
    });
    v9.onExternalChange = function()
        v9:setState({
            checked = v10.instance[v10.valueKey] == v10.onValue
        });
    end;
    v9.onToggled = function()
        if not v9.props.lockedToOff then
            if not (v10.instance[v10.valueKey] == v10.onValue) then
                v10.instance[v10.valueKey] = v10.onValue;
            else
                v10.instance[v10.valueKey] = v10.offValue;
            end;
            v6(v7.AnalyticsSettingsChangeName, nil, {}, true);
            return ;
        else
            return ;
        end;
    end;
end;
v8.render = function(v12)
    local l_props_0 = v12.props;
    return l_Roact_0.createFragment({
        Toggle = l_Roact_0.createElement(v5, {
            checked = v12.state.checked,
            lockedToOff = l_props_0.lockedToOff,
            labelKey = l_props_0.labelKey,
            LayoutOrder = l_props_0.LayoutOrder,
            onToggled = v12.onToggled,
            subtextEnabled = l_props_0.subtextEnabled,
            subtextKey = l_props_0.subtextKey
        }),
        Listener = l_Roact_0.createElement(v4, {
            event = v12.changeEvent,
            callback = v12.onExternalChange
        })
    });
end;
return v8;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_l_UserGameSettings_0_PropertyChangedSignal_0 = l_UserGameSettings_0:GetPropertyChangedSignal("ComputerCameraMovementMode");
local v4 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.CoreUtility);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local v6 = v4.waitForChildOfClass(l_LocalPlayer_0, "PlayerScripts");
local l_l_LocalPlayer_0_PropertyChangedSignal_0 = l_LocalPlayer_0:GetPropertyChangedSignal("DevComputerMovementMode");
local v8 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v8.Roact;
local l_t_0 = v8.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v12 = require(l_Parent_0.Components.DropDownSelection);
local v13 = require(l_Parent_0.Utility.ExternalEventConnection);
local v14 = require(script.Parent.InputLabel);
local v15 = require(script.Parent.DeveloperLockLabel);
local v16 = require(l_Parent_0.Localization.withLocalization);
local v17 = require(l_Parent_0.Utility.SendAnalytics);
local v18 = require(l_Parent_0.Resources.Constants);
local v19 = {
    [Enum.ComputerCameraMovementMode.Classic] = "CoreScripts.InGameMenu.GameSettings.CameraModeClassic",
    [Enum.ComputerCameraMovementMode.Follow] = "CoreScripts.InGameMenu.GameSettings.CameraModeFollow",
    [Enum.ComputerCameraMovementMode.Default] = "CoreScripts.InGameMenu.GameSettings.Default",
    [Enum.ComputerCameraMovementMode.CameraToggle] = "CoreScripts.InGameMenu.GameSettings.CameraModeCameraToggle"
};
local v20 = l_Roact_0.PureComponent:extend("CameraModeEntry");
v20.validateProps = l_t_0.strictInterface({
    LayoutOrder = l_t_0.integer,
    canOpen = l_t_0.optional(l_t_0.boolean),
    canCaptureFocus = l_t_0.optional(l_t_0.boolean),
    ButtonRef = l_t_0.optional(l_t_0.union(l_t_0.callback, l_t_0.table))
});
v20.defaultProps = {
    canOpen = true
};
v20.init = function(v21)
    v21:setState({
        selectedComputerMode = l_UserGameSettings_0.ComputerCameraMovementMode,
        computerOptions = not not v6 and v6:GetRegisteredComputerCameraMovementModes() or {},
        developerComputerMode = l_LocalPlayer_0.DevComputerCameraMode
    });
end;
v20.render = function(v22)
    local v23 = {
        ComputerCameraMovementModeListener = l_Roact_0.createElement(v13, {
            event = l_l_UserGameSettings_0_PropertyChangedSignal_0,
            callback = function()
                v22:setState({
                    selectedComputerMode = l_UserGameSettings_0.ComputerCameraMovementMode
                });
            end
        }),
        ComputerCameraMovementModeRegisteredListener = v6 and l_Roact_0.createElement(v13, {
            event = v6.ComputerCameraMovementModeRegistered,
            callback = function()
                v22:setState({
                    computerOptions = v6:GetRegisteredComputerCameraMovementModes()
                });
            end
        }),
        LocalPlayerComputerMovementMode = l_Roact_0.createElement(v13, {
            event = l_l_LocalPlayer_0_PropertyChangedSignal_0,
            callback = function()
                v22:setState({
                    developerComputerMode = l_LocalPlayer_0.DevComputerCameraMode
                });
            end
        })
    };
    if #v22.state.computerOptions == 0 then
        return l_Roact_0.createFragment(v23);
    else
        local v24 = v22.state.developerComputerMode ~= Enum.DevComputerCameraMovementMode.UserChoice;
        local v25 = {};
        local v26 = 0;
        if not v24 then
            for v27, v28 in ipairs(v22.state.computerOptions) do
                v25[v27] = v19[v28];
                assert(v25[v27] ~= nil, "Camera movement mode " .. v28.Name .. " has no localization key");
                if v22.state.selectedComputerMode.Value == v28.Value then
                    v26 = v27;
                end;
            end;
        end;
        v23.CameraModeEntrySelector = l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 120),
            BackgroundTransparency = 1,
            LayoutOrder = v22.props.LayoutOrder,
            ZIndex = 2
        }, {
            Padding = l_Roact_0.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 24),
                PaddingRight = UDim.new(0, 24)
            }),
            InputLabel = l_Roact_0.createElement(v14, {
                localizationKey = "CoreScripts.InGameMenu.GameSettings.CameraMode",
                Size = UDim2.new(1, 0, 0, 56),
                Position = UDim2.new(0, 0, 0, 0),
                AnchorPoint = Vector2.new(0, 0)
            }),
            Dropdown = v16({
                placeholder = not not v24 and v19[v22.state.developerComputerMode] or nil
            })(function(_)
                return l_Roact_0.createElement(v12, {
                    Size = UDim2.new(1, 0, 0, 44),
                    Position = UDim2.new(0, 0, 0, 56),
                    selections = v25,
                    selectedIndex = v26,
                    placeHolderText = v22.state.developerComputerMode.Name,
                    enabled = not v24,
                    localize = true,
                    selectionChanged = function(v30)
                        l_UserGameSettings_0.ComputerCameraMovementMode = v22.state.computerOptions[v30];
                        v17(v18.AnalyticsSettingsChangeName, nil, {}, true);
                    end,
                    selectionParentName = "cameraModeDropdown",
                    canOpen = v22.props.canOpen,
                    canCaptureFocus = v22.props.canCaptureFocus,
                    ButtonRef = v22.props.ButtonRef
                });
            end),
            LockedLabel = v24 and l_Roact_0.createElement(v15, {
                AnchorPoint = Vector2.new(0, 1),
                Position = UDim2.new(0, 0, 1, 0),
                Size = UDim2.new(1, -72, 0.25, 0)
            })
        });
        return l_Roact_0.createFragment(v23);
    end;
end;
return v20;


local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local v1 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v1.Roact;
local l_t_0 = v1.t;
local v4 = {
    l_UserGameSettings_0:GetPropertyChangedSignal("GamepadCameraSensitivity"),
    l_UserGameSettings_0:GetPropertyChangedSignal("MouseSensitivity"),
    l_UserGameSettings_0:GetPropertyChangedSignal("MouseSensitivityFirstPerson"),
    l_UserGameSettings_0:GetPropertyChangedSignal("MouseSensitivityThirdPerson")
};
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Utility.ExternalEventConnection);
local v7 = require(script.Parent.SliderEntry);
local v8 = require(l_Parent_0.Utility.SendAnalytics);
local v9 = require(l_Parent_0.Resources.Constants);
local _ = function(v10)
    local _ = nil;
    return (math.clamp(if v10 <= 5 then 0.198 * v10 + 0.01 else 0.6 * v10 - 2, 0, 10));
end;
local _ = function(v13)
    local _ = nil;
    return (math.clamp(math.floor(if v13 <= 1 then (v13 - 0.01) / 0.198 else (v13 + 2) / 0.6 / 0.01 + 0.5) * 0.01, 0, 10));
end;
local v16 = l_Roact_0.PureComponent:extend("CameraSensitivityEntry");
v16.validateProps = l_t_0.strictInterface({
    LayoutOrder = l_t_0.integer,
    canCaptureFocus = l_t_0.optional(l_t_0.boolean),
    isMenuOpen = l_t_0.optional(l_t_0.boolean)
});
v16.init = function(v17)
    v17.onSensitivityChanged = function()
        v17:setState({
            engineSensitivity = l_UserGameSettings_0.MouseSensitivityFirstPerson.X
        });
    end;
    v17.onSensitivityChanged();
end;
v16.render = function(v18)
    local v19 = {};
    local l_createElement_0 = l_Roact_0.createElement;
    local l_v7_0 = v7;
    local v22 = {
        LayoutOrder = v18.props.LayoutOrder,
        labelKey = "CoreScripts.InGameMenu.GameSettings.CameraSensitivity"
    };
    local l_engineSensitivity_0 = v18.state.engineSensitivity;
    local _ = nil;
    v22.value = math.clamp(math.floor(if l_engineSensitivity_0 <= 1 then (l_engineSensitivity_0 - 0.01) / 0.198 else (l_engineSensitivity_0 + 2) / 0.6 / 0.01 + 0.5) * 0.01, 0, 10);
    v22.min = 0;
    v22.max = 10;
    v22.stepInterval = 1;
    v22.keyboardInputStepInterval = 0.01;
    v22.valueChanged = function(v25)
        local v26 = nil;
        local v27 = math.clamp(if v25 <= 5 then 0.198 * v25 + 0.01 else 0.6 * v25 - 2, 0, 10);
        v26 = Vector2.new(v27, v27);
        l_UserGameSettings_0.MouseSensitivityFirstPerson = v26;
        l_UserGameSettings_0.MouseSensitivityThirdPerson = v26;
        v8(v9.AnalyticsSettingsChangeName, nil, {}, true);
    end;
    v22.canCaptureFocus = v18.props.canCaptureFocus;
    v22.isMenuOpen = v18.props.isMenuOpen;
    v19.CameraSensitivityMouseSlider = l_createElement_0(l_v7_0, v22);
    for _, v29 in ipairs(v4) do
        v19[tostring(v29) .. "CameraSensitivityControlConnection"] = l_Roact_0.createElement(v6, {
            event = v29,
            callback = v18.onSensitivityChanged
        });
    end;
    return l_Roact_0.createFragment(v19);
end;
return v16;


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v4 = require(l_Parent_0.GlobalConfig);
local v5 = require(script.Parent.Parent.ThemedTextLabel);
local v6 = require(l_Parent_0.Localization.withLocalization);
local v7 = l_t_0.strictInterface({
    LayoutOrder = l_t_0.integer,
    localizationKey = l_t_0.string
});
return function(v8)
    if v4.propValidation then
        assert(v7(v8));
    end;
    return l_Roact_0.createElement("Frame", {
        BackgroundTransparency = 1,
        LayoutOrder = v8.LayoutOrder,
        Size = UDim2.new(1, 0, 0, 36)
    }, {
        Label = v6({
            text = v8.localizationKey
        })(function(v9)
            return l_Roact_0.createElement(v5, {
                fontKey = "Footer",
                themeKey = "TextEmphasis",
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.new(0.5, 0, 0.5, 0),
                Size = UDim2.new(1, -48, 0, 14),
                Text = v9.text,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left
            });
        end)
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GameSettings_0 = UserSettings().GameSettings;
local v2 = require(l_CorePackages_0.Packages.LuauPolyfill);
local v3 = require(l_CorePackages_0.InGameMenuDependencies);
local v4 = require(l_CorePackages_0.Packages.Roact);
local l_t_0 = v3.t;
local l_SegmentedControl_0 = v3.UIBlox.App.Control.SegmentedControl;
local l_Parent_0 = script.Parent.Parent.Parent;
local v8 = require(l_Parent_0.Components.ThemedTextLabel);
local l_l_GameSettings_0_PropertyChangedSignal_0 = l_GameSettings_0:GetPropertyChangedSignal("VRComfortSetting");
local v10 = require(l_Parent_0.Utility.ExternalEventConnection);
local v11 = require(l_Parent_0.Localization.withLocalization);
local v12 = require(l_Parent_0.Utility.SendAnalytics);
local v13 = require(l_Parent_0.Resources.Constants);
local v14 = {
    Description = "CoreScripts.InGameMenu.GameSettings.ComfortSettingsDescription",
    ["Enum.VRComfortSetting.Comfort"] = "CoreScripts.InGameMenu.GameSettings.ComfortSettingComfort",
    ["Enum.VRComfortSetting.Normal"] = "CoreScripts.InGameMenu.GameSettings.ComfortSettingNormal",
    ["Enum.VRComfortSetting.Expert"] = "CoreScripts.InGameMenu.GameSettings.ComfortSettingExpert",
    ["Enum.VRComfortSetting.Custom"] = "CoreScripts.InGameMenu.GameSettings.ComfortSettingCustom"
};
local l_EnumItems_0 = Enum.VRComfortSetting:GetEnumItems();
local function _(v16)
    return v2.Array.indexOf(l_EnumItems_0, v16);
end;
local function _(v18)
    local v19 = l_EnumItems_0[v18];
    l_GameSettings_0.VRComfortSetting = v19;
    v12(v13.AnalyticsSettingsChangeName, v13.AnalyticsSettingsVRComfortSettingChangeName, {
        mode = tostring(v19)
    });
end;
local v21 = v4.PureComponent:extend("ComfortSettingsEntry");
v21.validateProps = l_t_0.strictInterface({
    LayoutOrder = l_t_0.optional(l_t_0.integer)
});
v21.init = function(v22)
    v22:setState({
        selectedMode = v2.Array.indexOf(l_EnumItems_0, l_GameSettings_0.VRComfortSetting)
    });
end;
v21.render = function(v23)
    return v11(v14)(function(v24)
        return v4.createFragment({
            VRComfortSettingListener = v4.createElement(v10, {
                event = l_l_GameSettings_0_PropertyChangedSignal_0,
                callback = function()
                    v23:setState({
                        selectedMode = v2.Array.indexOf(l_EnumItems_0, l_GameSettings_0.VRComfortSetting)
                    });
                end
            }),
            ComfortSettingEntrySelector = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1,
                LayoutOrder = v23.props.LayoutOrder,
                ZIndex = 2
            }, {
                Padding = v4.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 24),
                    PaddingRight = UDim.new(0, 24),
                    PaddingBottom = UDim.new(0, 15),
                    PaddingTop = UDim.new(0, 15)
                }),
                ListLayout = v4.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 20)
                }),
                InputDescription = v4.createElement(v8, {
                    themeKey = "TextDefault",
                    fontKey = "CaptionHeader",
                    Text = v24.Description,
                    Size = UDim2.new(0.9, 0, 0, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    TextWrapped = true,
                    LayoutOrder = 1,
                    TextXAlignment = Enum.TextXAlignment.Left
                }),
                Frame = v4.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    BackgroundTransparency = 1,
                    LayoutOrder = 2
                }, {
                    SegmentedControl = v4.createElement(l_SegmentedControl_0, {
                        width = UDim.new(1, 0),
                        selectedTabIndex = v23.state.selectedMode,
                        onTabActivated = function(v25)
                            local v26 = l_EnumItems_0[v25];
                            l_GameSettings_0.VRComfortSetting = v26;
                            v12(v13.AnalyticsSettingsChangeName, v13.AnalyticsSettingsVRComfortSettingChangeName, {
                                mode = tostring(v26)
                            });
                        end,
                        tabs = v2.Array.map(l_EnumItems_0, function(v27, _)
                            return {
                                tabName = v24[tostring(v27)]
                            };
                        end)
                    })
                })
            })
        });
    end);
end;
return v21;


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v4 = require(l_Parent_0.GlobalConfig);
local v5 = require(l_Parent_0.Localization.withLocalization);
local v6 = require(l_Parent_0.Components.ThemedTextLabel);
local v7 = l_t_0.strictInterface({
    Position = l_t_0.UDim2,
    Size = l_t_0.UDim2,
    AnchorPoint = l_t_0.Vector2
});
return function(v8)
    if v4.propValidation then
        assert(v7(v8));
    end;
    return v5({
        lockedText = "CoreScripts.InGameMenu.GameSettings.LockedByDeveloper"
    })(function(v9)
        return l_Roact_0.createElement(v6, {
            themeKey = "TextDefault",
            fontKey = "CaptionBody",
            TextTransparency = 0.5,
            Text = v9.lockedText,
            Size = UDim2.new(1, -72, 0.25, 0),
            Position = UDim2.new(0, 0, 1, 0),
            AnchorPoint = Vector2.new(0, 1),
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Bottom
        });
    end);
end;