local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_SoundService_0 = game:GetService("SoundService");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v4 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v4.Roact;
local l_t_0 = v4.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v8 = require(l_Parent_0.Components.DropDownSelection);
local v9 = require(l_Parent_0.Components.ThemedTextLabel);
local l_default_0 = require(l_RobloxGui_0.Modules.VoiceChat.VoiceChatServiceManager).default;
local v11 = require(l_RobloxGui_0.Modules.Logger):new(script.Name);
local v12 = l_Roact_0.PureComponent:extend("DeviceSelectionEntry");
local v13 = require(l_Parent_0.Flags.GetFFlagTruncateDeviceSelection);
local v14 = require(l_RobloxGui_0.Modules.Flags.GetFFlagVoiceChatUILogging);
v12.DeviceType = {
    Input = "Input",
    Output = "Output"
};
v12.validateProps = l_t_0.strictInterface({
    LayoutOrder = l_t_0.integer,
    deviceType = l_t_0.string,
    isMenuOpen = l_t_0.boolean,
    canOpen = l_t_0.optional(l_t_0.boolean),
    canCaptureFocus = l_t_0.optional(l_t_0.boolean)
});
v12.defaultProps = {
    canOpen = true
};
v12.init = function(v15)
    v15:setState({
        deviceNames = {},
        deviceGuids = {},
        selectedIndex = 0,
        ready = false
    });
    l_default_0:asyncInit():andThen(function()
        v15:setState({
            ready = true
        });
        l_default_0:SetupParticipantListeners();
        if l_SoundService_0.DeviceListChanged then
            l_SoundService_0.DeviceListChanged:Connect(function()
                if v15.props.isMenuOpen then
                    v15:pollDevices(v15.props.deviceType);
                end;
            end);
        end;
    end):catch(function()
        if v14() then
            v11:warning("Failed to init VoiceChatServiceManager");
        end;
    end);
end;
v12.render = function(v16)
    if not (v16.state.ready and v16.state.deviceNames ~= nil) or #v16.state.deviceNames == 0 then
        return nil;
    else
        return l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 120),
            BackgroundTransparency = 1,
            LayoutOrder = v16.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(v9, {
                fontKey = "Body",
                themeKey = "TextDefault",
                Size = UDim2.new(1, 0, 0, 56),
                Position = UDim2.new(0, 0, 0, 0),
                AnchorPoint = Vector2.new(0, 0),
                Text = v16.props.deviceType == v12.DeviceType.Input and "Input Device" or "Output Device",
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left
            }),
            Dropdown = l_Roact_0.createElement(v8, {
                Size = UDim2.new(1, 0, 0, 44),
                Position = UDim2.new(0, 0, 0, 56),
                truncate = v13(),
                selections = v16.state.deviceNames,
                selectedIndex = v16.state.selectedIndex,
                placeHolderText = "",
                enabled = true,
                localize = false,
                selectionParentName = v16.props.deviceType .. "DeviceSelectionEntryDropdown",
                canOpen = v16.props.canOpen,
                canCaptureFocus = v16.props.canCaptureFocus,
                selectionChanged = function(v17)
                    l_default_0:SwitchDevice(v16.props.deviceType, v16.state.deviceNames[v17], v16.state.deviceGuids[v17]);
                    v16:setState({
                        selectedIndex = v17
                    });
                end
            })
        });
    end;
end;
v12.pollDevices = function(v18, v19)
    spawn(function()
        local l_l_default_0_Devices_0, v21, v22, v23 = l_default_0:GetDevices(v19);
        if not l_l_default_0_Devices_0 then
            if v14() then
                v11:warning("Errors in get {} Device info", v19);
            end;
            v18:setState({
                deviceNames = {},
                deviceGuids = {},
                selectedIndex = 0
            });
            return ;
        else
            v18:setState({
                deviceNames = v21,
                deviceGuids = v22,
                selectedIndex = v23
            });
            return ;
        end;
    end);
end;
v12.willUpdate = function(v24, v25)
    if not (v24.props.isMenuOpen or not v25.isMenuOpen) then
        v24:pollDevices(v25.deviceType);
    end;
end;
return v12;


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_Rendering_0 = settings().Rendering;
local l_l_UserGameSettings_0_PropertyChangedSignal_0 = l_UserGameSettings_0:GetPropertyChangedSignal("SavedQualityLevel");
local l_Parent_0 = script.Parent.Parent.Parent;
local v7 = require(script.Parent.ToggleEntry);
local v8 = require(l_Parent_0.Utility.ExternalEventConnection);
local v9 = require(script.Parent.SliderEntry);
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v11 = require(l_RobloxGui_0.Modules.Flags.GetFixGraphicsQuality);
local v12 = nil;
local v13 = nil;
local v14 = nil;
if v11() then
    v13 = require(l_RobloxGui_0:WaitForChild("Modules"):WaitForChild("RobloxTranslator"));
    v14 = l_UserGameSettings_0:GetPropertyChangedSignal("GraphicsQualityLevel");
end;
local v15 = require(l_Parent_0.Utility.SendAnalytics);
local v16 = require(l_Parent_0.Resources.Constants);
local v17 = #Enum.SavedQualitySetting:GetEnumItems() - 1;
local v18 = 10;
if v11() then
    v18 = l_Rendering_0:GetMaxQualityLevel() - 1;
end;
local function _(v19, v20, v21, v22, v23)
    return (math.clamp(math.floor(v22 + ((v19 - v20) * (v23 - v22)) / (v21 - v20)), v22, v23));
end;
local _ = function(v25, _)
    if v12 == nil then
        v12 = l_RobloxGui_0:WaitForChild("SendNotificationInfo");
    end;
    v12:Fire({
        GroupName = "Graphics",
        Title = "Graphics Quality",
        Text = v25,
        DetailText = v25,
        Image = "",
        Duration = 2
    });
end;
local function v32(v28, v29)
    if v29 > 0 then
        local v30 = v13:FormatByKey("NotificationScrip2.onCurrentGraphicsQualityLevelChanged.Increased", {
            RBX_NUMBER = tostring(v28)
        });
        if v12 == nil then
            v12 = l_RobloxGui_0:WaitForChild("SendNotificationInfo");
        end;
        v12:Fire({
            GroupName = "Graphics",
            Title = "Graphics Quality",
            Text = v30,
            DetailText = v30,
            Image = "",
            Duration = 2
        });
        return ;
    else
        if v29 < 0 then
            local v31 = v13:FormatByKey("NotificationScrip2.onCurrentGraphicsQualityLevelChanged.Decreased", {
                RBX_NUMBER = tostring(v28)
            });
            if v12 == nil then
                v12 = l_RobloxGui_0:WaitForChild("SendNotificationInfo");
            end;
            v12:Fire({
                GroupName = "Graphics",
                Title = "Graphics Quality",
                Text = v31,
                DetailText = v31,
                Image = "",
                Duration = 2
            });
        end;
        return ;
    end;
end;
local v33 = l_Roact_0.PureComponent:extend("GraphicsQualityEntry");
v33.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)
});
v33.init = function(v34)
    local v35 = nil;
    if not v11() then
        v35 = l_UserGameSettings_0.SavedQualityLevel == Enum.SavedQualitySetting.Automatic;
        v34:setState({
            quality = if not v35 then l_UserGameSettings_0.SavedQualityLevel.Value else 5,
            automatic = v35
        });
        v34.onQualityChanged = function()
            local l_SavedQualityLevel_0 = l_UserGameSettings_0.SavedQualityLevel;
            v34:setState({
                quality = not (l_SavedQualityLevel_0 == Enum.SavedQualitySetting.Automatic) and l_SavedQualityLevel_0.Value or nil,
                automatic = l_SavedQualityLevel_0 == Enum.SavedQualitySetting.Automatic
            });
        end;
    else
        v35 = l_UserGameSettings_0.GraphicsQualityLevel == 0;
        v34:setState({
            quality = if not v35 then l_UserGameSettings_0.GraphicsQualityLevel else 5,
            automatic = v35
        });
        v34.onQualityChanged = function()
            local l_GraphicsQualityLevel_0 = l_UserGameSettings_0.GraphicsQualityLevel;
            v34:setState({
                quality = l_GraphicsQualityLevel_0 ~= 0 and l_GraphicsQualityLevel_0 or nil,
                automatic = l_GraphicsQualityLevel_0 == 0
            });
        end;
    end;
    if not v35 then
        v34:setManualQualityLevel(v34.state.quality);
    else
        v34:setAutomaticQualityLevel();
    end;
    if v11() then
        game.GraphicsQualityChangeRequest:Connect(function(v38)
            local l_GraphicsQualityLevel_1 = l_UserGameSettings_0.GraphicsQualityLevel;
            if l_GraphicsQualityLevel_1 ~= 0 then
                local v40, v41 = v34:setManualQualityLevel(l_GraphicsQualityLevel_1 + (not v38 and -1 or 1));
                v32(v40, v41);
            end;
        end);
    end;
end;
v33.setAutomaticQualityLevel = function(_)
    if not v11() then
        l_UserGameSettings_0.SavedQualityLevel = Enum.SavedQualitySetting.Automatic;
        l_Rendering_0.QualityLevel = 0;
        return ;
    else
        l_UserGameSettings_0.GraphicsQualityLevel = 0;
        l_Rendering_0.QualityLevel = 0;
        return ;
    end;
end;
v33.setManualQualityLevel = function(_, v44)
    if not v11() then
        local l_v17_0 = v17;
        local v46 = l_Rendering_0:GetMaxQualityLevel() - 1;
        local v47 = math.clamp(math.floor(1 + ((v44 - 1) * (v46 - 1)) / (l_v17_0 - 1)), 1, v46);
        l_UserGameSettings_0.SavedQualityLevel = v44;
        l_Rendering_0.QualityLevel = v47;
        return nil;
    else
        local v48 = math.clamp(v44, 1, v18);
        local l_GraphicsQualityLevel_2 = l_UserGameSettings_0.GraphicsQualityLevel;
        l_UserGameSettings_0.GraphicsQualityLevel = v48;
        l_Rendering_0.QualityLevel = v48;
        return v48, v48 - l_GraphicsQualityLevel_2;
    end;
end;
v33.render = function(v50)
    return l_Roact_0.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, 156),
        LayoutOrder = v50.props.LayoutOrder
    }, {
        Layout = l_Roact_0.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        AutoToggle = l_Roact_0.createElement(v7, {
            LayoutOrder = 1,
            labelKey = "CoreScripts.InGameMenu.GameSettings.AutoGraphicsQuality",
            checked = v50.state.automatic,
            onToggled = function()
                if not v50.state.automatic then
                    v50:setAutomaticQualityLevel();
                else
                    v50:setManualQualityLevel(v50.state.quality);
                end;
                v15(v16.AnalyticsSettingsChangeName, nil, {}, true);
            end
        }),
        Slider = l_Roact_0.createElement(v9, {
            LayoutOrder = 2,
            labelKey = "CoreScripts.InGameMenu.GameSettings.ManualGraphicsQuality",
            min = 1,
            max = v18,
            stepInterval = 1,
            value = v50.state.quality,
            disabled = v50.state.automatic,
            valueChanged = function(v51)
                v50:setManualQualityLevel(v51);
                v15(v16.AnalyticsSettingsChangeName, nil, {}, true);
            end,
            canCaptureFocus = v50.props.canCaptureFocus,
            isMenuOpen = v50.props.isMenuOpen
        }),
        QualityListener = l_Roact_0.createElement(v8, {
            event = not not v11() and v14 or l_l_UserGameSettings_0_PropertyChangedSignal_0,
            callback = v50.onQualityChanged
        })
    });
end;
return v33;


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({
    AnchorPoint = l_t_0.optional(l_t_0.Vector2),
    Position = l_t_0.optional(l_t_0.UDim2),
    Size = l_t_0.optional(l_t_0.UDim2),
    localizationKey = l_t_0.string,
    LayoutOrder = l_t_0.optional(l_t_0.number)
});
return function(v8)
    if v4.propValidation then
        assert(v7(v8));
    end;
    return v6({
        text = v8.localizationKey
    })(function(v9)
        return l_Roact_0.createElement(v5, {
            fontKey = "Body",
            themeKey = "TextDefault",
            LayoutOrder = v8.LayoutOrder,
            AnchorPoint = v8.AnchorPoint or Vector2.new(0, 0.5),
            Position = v8.Position or UDim2.new(0, 0, 0.5, 0),
            Size = v8.Size or UDim2.new(1, -72, 0.5, 0),
            Text = v9.text,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextXAlignment = Enum.TextXAlignment.Left
        });
    end);
end;


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("ComputerMovementMode");
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.ComputerMovementMode.KeyboardMouse] = "CoreScripts.InGameMenu.GameSettings.ComputerMoveModeKeyboardMouse",
    [Enum.ComputerMovementMode.ClickToMove] = "CoreScripts.InGameMenu.GameSettings.ComputerMoveModeClickToMove",
    [Enum.ComputerMovementMode.Default] = "CoreScripts.InGameMenu.GameSettings.Default"
};
local v20 = {
    [Enum.DevComputerMovementMode.KeyboardMouse] = "CoreScripts.InGameMenu.GameSettings.ComputerMoveModeKeyboardMouse",
    [Enum.DevComputerMovementMode.ClickToMove] = "CoreScripts.InGameMenu.GameSettings.ComputerMoveModeClickToMove"
};
local v21 = l_Roact_0.PureComponent:extend("MovementModeEntry");
v21.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)
});
v21.defaultProps = {
    canOpen = true
};
v21.init = function(v22)
    v22:setState({
        selectedComputerMode = l_UserGameSettings_0.ComputerMovementMode,
        computerOptions = not not v6 and v6:GetRegisteredComputerMovementModes() or {},
        developerComputerMode = l_LocalPlayer_0.DevComputerMovementMode
    });
end;
v21.render = function(v23)
    local v24 = {
        ComputerMovementModeListener = l_Roact_0.createElement(v13, {
            event = l_l_UserGameSettings_0_PropertyChangedSignal_0,
            callback = function()
                v23:setState({
                    selectedComputerMode = l_UserGameSettings_0.ComputerMovementMode
                });
            end
        }),
        ComputerMovementModeRegisteredListener = v6 and l_Roact_0.createElement(v13, {
            event = v6.ComputerMovementModeRegistered,
            callback = function()
                v23:setState({
                    computerOptions = v6:GetRegisteredComputerMovementModes()
                });
            end
        }),
        DevComputerMovementMode = l_Roact_0.createElement(v13, {
            event = l_l_LocalPlayer_0_PropertyChangedSignal_0,
            callback = function()
                v23:setState({
                    developerComputerMode = l_LocalPlayer_0.DevComputerMovementMode
                });
            end
        })
    };
    if #v23.state.computerOptions == 0 then
        return l_Roact_0.createFragment(v24);
    else
        local v25 = v23.state.developerComputerMode ~= Enum.DevComputerMovementMode.UserChoice;
        local v26 = {};
        local v27 = 0;
        if not v25 then
            for v28, v29 in ipairs(v23.state.computerOptions) do
                v26[v28] = v19[v29];
                assert(v26[v28] ~= nil, "Movement mode " .. v29.Name .. " has no localization key");
                if v23.state.selectedComputerMode.Value == v29.Value then
                    v27 = v28;
                end;
            end;
        end;
        v24.MovementModeEntrySelector = l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 120),
            BackgroundTransparency = 1,
            LayoutOrder = v23.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.MovementMode",
                Size = UDim2.new(1, 0, 0, 56),
                Position = UDim2.new(0, 0, 0, 0),
                AnchorPoint = Vector2.new(0, 0)
            }),
            Dropdown = v16({
                placeholder = not not v25 and v20[v23.state.developerComputerMode] or nil
            })(function(v30)
                return l_Roact_0.createElement(v12, {
                    Size = UDim2.new(1, 0, 0, 44),
                    Position = UDim2.new(0, 0, 0, 56),
                    selections = v26,
                    selectedIndex = v27,
                    placeHolderText = v30.placeholder,
                    enabled = not v25,
                    localize = true,
                    selectionParentName = "MovementModeEntryDropdown",
                    canOpen = v23.props.canOpen,
                    canCaptureFocus = v23.props.canCaptureFocus,
                    selectionChanged = function(v31)
                        l_UserGameSettings_0.ComputerMovementMode = v23.state.computerOptions[v31];
                        v17(v18.AnalyticsSettingsChangeName, nil, {}, true);
                    end
                });
            end),
            LockedLabel = v25 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(v24);
    end;
end;
return v21;


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_UIBlox_0 = v3.UIBlox;
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("VRSafetyBubbleMode");
local v10 = require(l_Parent_0.Utility.ExternalEventConnection);
local v11 = require(script.Parent.InputLabel);
local l_RadioButtonList_0 = l_UIBlox_0.App.InputButton.RadioButtonList;
local v13 = require(l_Parent_0.Localization.withLocalization);
local v14 = require(l_Parent_0.Utility.SendAnalytics);
local v15 = require(l_Parent_0.Resources.Constants);
local v16 = {
    Title = "CoreScripts.InGameMenu.GameSettings.SafetyBubbleModeTitle",
    Description = "CoreScripts.InGameMenu.GameSettings.SafetyBubbleModeDescription",
    ["Enum.VRSafetyBubbleMode.NoOne"] = "CoreScripts.InGameMenu.GameSettings.SafetyBubbleModeNoOne",
    ["Enum.VRSafetyBubbleMode.OnlyFriends"] = "CoreScripts.InGameMenu.GameSettings.SafetyBubbleModeOnlyFriends",
    ["Enum.VRSafetyBubbleMode.Anyone"] = "CoreScripts.InGameMenu.GameSettings.SafetyBubbleModeAnyone"
};
local l_EnumItems_0 = Enum.VRSafetyBubbleMode:GetEnumItems();
local function _(v18)
    return v2.Array.indexOf(l_EnumItems_0, v18);
end;
local function _(v20)
    local v21 = l_EnumItems_0[v20];
    l_GameSettings_0.VRSafetyBubbleMode = v21;
    v14(v15.AnalyticsSettingsChangeName, v15.AnalyticsSettingsSafetyBubbleModeChangeName, {
        mode = tostring(v21)
    });
end;
local v23 = v4.PureComponent:extend("SafetyBubbleModeEntry");
v23.validateProps = l_t_0.strictInterface({
    LayoutOrder = l_t_0.optional(l_t_0.integer)
});
v23.init = function(v24)
    v24:setState({
        selectedMode = v2.Array.indexOf(l_EnumItems_0, l_GameSettings_0.VRSafetyBubbleMode)
    });
end;
v23.render = function(v25)
    return v13(v16)(function(v26)
        return v4.createFragment({
            VRSafetyBubbleModeListener = v4.createElement(v10, {
                event = l_l_GameSettings_0_PropertyChangedSignal_0,
                callback = function()
                    v25:setState({
                        selectedMode = v2.Array.indexOf(l_EnumItems_0, l_GameSettings_0.VRSafetyBubbleMode)
                    });
                end
            }),
            SafetyBubbleModeEntrySelector = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1,
                LayoutOrder = v25.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)
                }),
                InputLabel = v4.createElement(v11, {
                    localizationKey = v16.Title,
                    Size = UDim2.new(1, 0, 0, 0),
                    Position = UDim2.new(0, 0, 0, 0),
                    AnchorPoint = Vector2.new(0, 0),
                    LayoutOrder = 1
                }),
                InputDescription = v4.createElement(v8, {
                    themeKey = "TextDefault",
                    fontKey = "CaptionHeader",
                    Text = v26.Description,
                    Size = UDim2.new(0.9, 0, 0, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    TextWrapped = true,
                    LayoutOrder = 2,
                    TextXAlignment = Enum.TextXAlignment.Left
                }),
                RadioList = v4.createElement(l_RadioButtonList_0, {
                    layoutOrder = 3,
                    radioButtons = v2.Array.map(l_EnumItems_0, function(v27, _)
                        return {
                            label = v26[tostring(v27)]
                        };
                    end),
                    onActivated = function(v29)
                        local v30 = l_EnumItems_0[v29];
                        l_GameSettings_0.VRSafetyBubbleMode = v30;
                        v14(v15.AnalyticsSettingsChangeName, v15.AnalyticsSettingsSafetyBubbleModeChangeName, {
                            mode = tostring(v30)
                        });
                    end,
                    currentValue = v25.state.selectedMode,
                    automaticSize = true,
                    padding = UDim.new(0, 20),
                    elementSize = UDim2.new(0, 0, 0, 20)
                })
            })
        });
    end);
end;
return v23;


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_t_0 = v2.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(script.Parent.InputLabel);
local v7 = require(l_Parent_0.Components.SliderWithInput);
local v8 = l_Roact_0.PureComponent:extend("SliderEntry");
v8.validateProps = l_t_0.strictInterface({
    LayoutOrder = l_t_0.integer,
    labelKey = l_t_0.string,
    min = l_t_0.number,
    max = l_t_0.number,
    stepInterval = l_t_0.number,
    keyboardInputStepInterval = l_t_0.optional(l_t_0.numberPositive),
    value = l_t_0.number,
    disabled = l_t_0.optional(l_t_0.boolean),
    valueChanged = l_t_0.callback,
    canCaptureFocus = l_t_0.optional(l_t_0.boolean),
    isMenuOpen = l_t_0.optional(l_t_0.boolean),
    buttonRef = l_t_0.optional(l_t_0.table)
});
v8.init = function(v9)
    v9.state = {
        isFrameSelectable = true
    };
end;
v8.render = function(v10)
    local v11 = v10.props.buttonRef or l_Roact_0.createRef();
    return l_Roact_0.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, 92),
        LayoutOrder = v10.props.LayoutOrder,
        Selectable = v10.state.isFrameSelectable,
        [l_Roact_0.Event.SelectionGained] = function()
            l_GuiService_0.SelectedCoreObject = v11:getValue();
            v10:setState({
                isFrameSelectable = false
            });
        end
    }, {
        Padding = l_Roact_0.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 24),
            PaddingTop = UDim.new(0, 12),
            PaddingRight = UDim.new(0, 30),
            PaddingBottom = UDim.new(0, 24)
        }),
        Label = l_Roact_0.createElement(v6, {
            Size = UDim2.new(1, 0, 0, 24),
            localizationKey = v10.props.labelKey,
            Position = UDim2.new(0, 0, 0, 0),
            AnchorPoint = Vector2.new(0, 0)
        }),
        Slider = l_Roact_0.createElement(v7, {
            min = v10.props.min,
            max = v10.props.max,
            stepInterval = v10.props.stepInterval,
            keyboardInputStepInterval = v10.props.keyboardInputStepInterval,
            value = v10.props.value,
            Position = UDim2.new(0, 0, 0, 32),
            disabled = v10.props.disabled,
            valueChanged = v10.props.valueChanged,
            canCaptureFocus = v10.props.canCaptureFocus,
            isMenuOpen = v10.props.isMenuOpen,
            sliderDotRef = v11,
            onSelectionLost = function()
                v10:setState({
                    isFrameSelectable = true
                });
            end,
            onSelectionGained = function()
                v10:setState({
                    isFrameSelectable = false
                });
            end
        })
    });
end;
return v8;


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_t_0 = v2.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Components.ToggleSwitch);
local v7 = require(script.Parent.InputLabel);
local v8 = require(script.Parent.DeveloperLockLabel);
local v9 = require(l_Parent_0.Components.ThemedTextLabel);
local v10 = require(l_Parent_0.Localization.withLocalization);
local v11 = l_Roact_0.PureComponent:extend("ToggleEntry");
v11.validateProps = l_t_0.strictInterface({
    LayoutOrder = l_t_0.integer,
    labelKey = l_t_0.string,
    lockedToOff = l_t_0.optional(l_t_0.boolean),
    isDisabled = l_t_0.optional(l_t_0.boolean),
    subtextEnabled = l_t_0.optional(l_t_0.boolean),
    subtextKey = l_t_0.optional(l_t_0.string),
    checked = l_t_0.boolean,
    onToggled = l_t_0.callback,
    buttonRef = l_t_0.optional(l_t_0.table),
    NextSelectionUp = l_t_0.optional(l_t_0.union(l_t_0.Instance, l_t_0.table))
});
v11.init = function(v12)
    v12.state = {
        isSelectable = true
    };
end;
v11.render = function(v13)
    local v14 = v13.props.buttonRef or l_Roact_0.createRef();
    return l_Roact_0.createElement("Frame", {
        BackgroundTransparency = 1,
        LayoutOrder = v13.props.LayoutOrder,
        Size = UDim2.new(1, 0, 0, 56),
        Selectable = v13.state.isSelectable,
        [l_Roact_0.Event.SelectionGained] = function()
            l_GuiService_0.SelectedCoreObject = v14:getValue();
            v13:setState({
                isSelectable = false
            });
        end
    }, {
        Padding = l_Roact_0.createElement("UIPadding", {
            PaddingRight = UDim.new(0, 30),
            PaddingLeft = UDim.new(0, 24)
        }),
        ControlLabel = l_Roact_0.createElement(v7, {
            localizationKey = v13.props.labelKey
        }),
        LockedLabel = v13.props.lockedToOff and l_Roact_0.createElement(v8, {
            Size = UDim2.new(1, -72, 0.25, 0),
            Position = UDim2.new(0, 0, 1, 0),
            AnchorPoint = Vector2.new(0, 1)
        }),
        SubtextLabel = v13.props.subtextEnabled and v10({
            text = v13.props.subtextKey
        })(function(v15)
            return l_Roact_0.createElement(v9, {
                Text = v15.text,
                themeKey = "TextDefault",
                fontKey = "CaptionBody",
                TextTransparency = 0.5,
                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),
        Toggle = l_Roact_0.createElement(v6, {
            Position = UDim2.new(1, 0, 0.5, 0),
            AnchorPoint = Vector2.new(1, 0.5),
            checked = v13.props.checked and not v13.props.lockedToOff,
            onToggled = v13.props.onToggled,
            disabled = v13.props.lockedToOff or v13.props.isDisabled,
            buttonRef = v14,
            onSelectionLost = function()
                v13:setState({
                    isSelectable = true
                });
            end,
            onSelectionGained = function()
                v13:setState({
                    isSelectable = false
                });
            end,
            NextSelectionUp = v13.props.NextSelectionUp
        })
    });
end;
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local v2 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v2.Roact;
local l_t_0 = v2.t;
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Utility.ExternalEventConnection);
local v7 = require(script.Parent.ToggleEntry);
local v8 = require(l_Parent_0.Utility.SendAnalytics);
local v9 = require(l_Parent_0.Resources.Constants);
local l_l_UserGameSettings_0_PropertyChangedSignal_0 = l_UserGameSettings_0:GetPropertyChangedSignal("VRComfortSetting");
local v11 = l_Roact_0.PureComponent:extend("VRComfortAutoToggleEntry");
v11.validateProps = l_t_0.strictInterface({
    customValueKey = l_t_0.string,
    derivedValueKey = l_t_0.string,
    labelKey = l_t_0.string,
    LayoutOrder = l_t_0.integer,
    checkedValue = l_t_0.optional(l_t_0.any)
});
v11.defaultProps = {
    checkedValue = true
};
v11.init = function(v12, v13)
    v12.derivedValueChangeEvent = l_UserGameSettings_0:GetPropertyChangedSignal(v13.derivedValueKey);
    v12:setState({
        checked = l_UserGameSettings_0[v13.derivedValueKey] == v13.checkedValue,
        vrComfortSetting = l_UserGameSettings_0.VRComfortSetting
    });
    v12.onExternalChange = function()
        v12:setState({
            checked = l_UserGameSettings_0[v13.derivedValueKey] == v13.checkedValue
        });
    end;
    v12.onToggled = function()
        if v12.state.vrComfortSetting == Enum.VRComfortSetting.Custom then
            if not (l_UserGameSettings_0[v13.customValueKey] == v13.checkedValue) then
                l_UserGameSettings_0[v13.customValueKey] = v13.checkedValue;
            else
                l_UserGameSettings_0[v13.customValueKey] = not v13.checkedValue;
            end;
            v8(v9.AnalyticsSettingsChangeName, nil, {}, true);
        end;
    end;
end;
v11.render = function(v14)
    local l_props_0 = v14.props;
    return l_Roact_0.createFragment({
        Toggle = l_Roact_0.createElement(v7, {
            checked = v14.state.checked,
            labelKey = l_props_0.labelKey,
            LayoutOrder = l_props_0.LayoutOrder,
            onToggled = v14.onToggled,
            isDisabled = v14.state.vrComfortSetting ~= Enum.VRComfortSetting.Custom
        }),
        DerivedValueListener = l_Roact_0.createElement(v6, {
            event = v14.derivedValueChangeEvent,
            callback = v14.onExternalChange
        }),
        VRComfortSettingListener = l_Roact_0.createElement(v6, {
            event = l_l_UserGameSettings_0_PropertyChangedSignal_0,
            callback = function()
                v14:setState({
                    vrComfortSetting = l_UserGameSettings_0.VRComfortSetting
                });
            end
        })
    });
end;
return v11;


local v0 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v0.Roact;
local l_RoactRodux_0 = v0.RoactRodux;
local l_t_0 = v0.t;
local l_withStyle_0 = v0.UIBlox.Core.Style.withStyle;
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(script.Parent.Parent.Page);
local v7 = require(l_Parent_0.Thunks.CloseMenu);
local v8 = nil;
local v9 = nil;
if game:GetEngineFeature("VRMoreComfortSettings") then
    v8 = require(script.Parent.VRComfortAutoToggleEntry);
    v9 = require(script.Parent.ComfortSettingsEntry);
end;
local v10 = l_Roact_0.PureComponent:extend("VRComfortSettingsPage");
v10.validateProps = l_t_0.strictInterface({
    closeMenu = l_t_0.callback,
    pageTitle = l_t_0.string
});
local function _()
    local v11 = 0;
    return function()
        v11 = v11 + 1;
        return v11;
    end;
end;
v10.render = function(v13)
    return l_withStyle_0(function(_)
        local v15 = 0;
        local v16;
        do
            local l_v15_0 = v15;
            v16 = function()
                l_v15_0 = l_v15_0 + 1;
                return l_v15_0;
            end;
        end;
        return l_Roact_0.createElement(v6, {
            pageTitle = v13.props.pageTitle,
            zIndex = 2,
            position = v13.props.position
        }, {
            Layout = l_Roact_0.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Right,
                VerticalAlignment = Enum.VerticalAlignment.Top
            }),
            VRComfortSettings = if not game:GetEngineFeature("VRMoreComfortSettings") then nil else l_Roact_0.createElement(v9, {
                LayoutOrder = v16()
            }),
            VignetteEnabled = if not game:GetEngineFeature("VRMoreComfortSettings") then nil else l_Roact_0.createElement(v8, {
                LayoutOrder = v16(),
                labelKey = "CoreScripts.InGameMenu.GameSettings.VignetteEnabled",
                customValueKey = "VignetteEnabledCustomOption",
                derivedValueKey = "VignetteEnabled"
            }),
            VRSteppedRotationEnabled = if not game:GetEngineFeature("VRMoreComfortSettings") then nil else l_Roact_0.createElement(v8, {
                LayoutOrder = v16(),
                labelKey = "CoreScripts.InGameMenu.GameSettings.VRSteppedRotationEnabled",
                customValueKey = "VRSmoothRotationEnabledCustomOption",
                derivedValueKey = "VRSmoothRotationEnabled",
                checkedValue = false
            }),
            VRThirdPersonFixedCamEnabled = if not game:GetEngineFeature("VRMoreComfortSettings") then nil else l_Roact_0.createElement(v8, {
                LayoutOrder = v16(),
                labelKey = "CoreScripts.InGameMenu.GameSettings.VRThirdPersonFixedCamEnabled",
                customValueKey = "VRThirdPersonFollowCamEnabledCustomOption",
                derivedValueKey = "VRThirdPersonFollowCamEnabled",
                checkedValue = false
            })
        });
    end);
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v18)
    return {
        closeMenu = function()
            v18(v7);
        end
    };
end)(v10);


local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_ContentProvider_0 = game:GetService("ContentProvider");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_HttpRbxApiService_0 = game:GetService("HttpRbxApiService");
local l_HttpService_0 = game:GetService("HttpService");
local l_Players_0 = game:GetService("Players");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_RunService_0 = game:GetService("RunService");
local l_StarterPlayer_0 = game:GetService("StarterPlayer");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v11 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v11.Roact;
local l_t_0 = v11.t;
local l_UIBlox_0 = v11.UIBlox;
local v15 = require(l_CoreGui_0.RobloxGui.Modules.PlayerPermissionsModule);
local l_Parent_0 = script.Parent.Parent.Parent;
local v17 = require(l_Parent_0.Resources.Constants);
local v18 = require(l_Parent_0.Components.Divider);
local v19 = require(l_Parent_0.Components.ThemedTextLabel);
local v20 = require(l_Parent_0.Utility.ExternalEventConnection);
local v21 = require(l_Parent_0.Localization.withLocalization);
local l_game_EngineFeature_0 = game:GetEngineFeature("CoreScriptVersionEnabled");
local v23 = require(l_RobloxGui_0.Modules.Flags.GetFFlagNewEventIngestPlayerScriptsDimensions);
local v24 = require(l_RobloxGui_0.Modules.Flags.GetFFlagRemoveAssetVersionEndpoint);
local v25 = l_Roact_0.PureComponent:extend("VersionReporter");
v25.validateProps = l_t_0.strictInterface({
    LayoutOrder = l_t_0.integer
});
local function v30(v26)
    local l_PlayerScriptsLoader_0 = v26:FindFirstChild("PlayerScriptsLoader");
    local l_PlayerModule_0 = v26:FindFirstChild("PlayerModule");
    local v29 = nil;
    v29 = if l_PlayerScriptsLoader_0 ~= nil and l_PlayerModule_0 ~= nil then if l_PlayerModule_0.Archivable or l_PlayerScriptsLoader_0.Archivable then v17.PlayerScriptStatusStrings.PossiblyCustom else v17.PlayerScriptStatusStrings.Default else if not (v26:FindFirstChild("CameraScript") == nil) or v26:FindFirstChild("ControlScript") ~= nil then v17.PlayerScriptStatusStrings.CustomOld else v17.PlayerScriptStatusStrings.Custom;
    l_RbxAnalyticsService_0:SetRBXEventStream(v17.AnalyticsTargetName, "player_scripts_status", "player_scripts_status_action", {
        defaultPlayerScripts = v29 == v17.PlayerScriptStatusStrings.Default,
        placeID = tostring(game.PlaceId),
        rawValue = if not v23() then nil else v29,
        context = if not v23() then nil else "IGMv2"
    });
    return v29;
end;
v25.init = function(v31)
    local v32 = "PlayerScript Status: Unknown";
    local l_StarterPlayerScripts_0 = l_StarterPlayer_0:FindFirstChild("StarterPlayerScripts");
    if not l_StarterPlayerScripts_0 then
        v31.playerScriptsAddedConnection = l_StarterPlayer_0.ChildAdded:Connect(function(v34)
            if v34.Name == "StarterPlayerScripts" then
                v31.playerScriptsAddedConnection:Disconnect();
                v31.playerScriptsAddedConnection = nil;
                v31:setState({
                    playerScriptStatus = v30(v34)
                });
            end;
        end);
    else
        v32 = v30(l_StarterPlayerScripts_0);
    end;
    v31:setState({
        baseUrl = l_ContentProvider_0.BaseUrl,
        clientVersion = l_RunService_0:GetRobloxVersion(),
        isAdmin = false,
        latestPlaceVersion = nil,
        placeVersion = game.PlaceVersion,
        serverVersion = nil,
        playerScriptStatus = v32,
        coreScriptVersion = not not l_game_EngineFeature_0 and l_RunService_0:GetCoreScriptVersion() or nil
    });
end;
v25.render = function(v35)
    local v36 = v35.state.serverVersion ~= nil;
    local v37 = v35.state.latestPlaceVersion ~= nil;
    local v38 = not v35.state.baseUrl:find("www.roblox.com");
    local v39 = v38 or v35.state.isAdmin;
    return v21({
        clientVersion = {
            "CoreScripts.InGameMenu.GameSettings.ClientVersion";
            CLIENT_VERSION = v35.state.clientVersion
        },
        serverVersion = {
            "CoreScripts.InGameMenu.GameSettings.ServerVersion";
            SERVER_VERSION = v35.state.serverVersion
        },
        placeVersion = {
            not v37 and "CoreScripts.InGameMenu.GameSettings.PlaceVersion" or "CoreScripts.InGameMenu.GameSettings.PlaceVersionWithLatest";
            PLACE_VERSION = v35.state.placeVersion,
            LATEST_PLACE_VERSION = v35.state.latestPlaceVersion
        },
        coreScriptVersion = not not l_game_EngineFeature_0 and {
            "CoreScripts.InGameMenu.GameSettings.ClientCoreScriptVersion";
            CLIENT_CORESCRIPT_VERSION = v35.state.coreScriptVersion
        } or nil
    })(function(v40)
        local l_clientVersion_0 = v40.clientVersion;
        local l_status_0, l_result_0 = pcall(function()
            return l_RunService_0.ClientGitHash;
        end);
        if l_status_0 then
            l_clientVersion_0 = string.format("%s (%.6s)", l_clientVersion_0, l_result_0);
        end;
        return l_Roact_0.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, 80),
            LayoutOrder = v35.props.LayoutOrder
        }, {
            Padding = l_Roact_0.createElement("UIPadding", {
                PaddingTop = UDim.new(0, 14),
                PaddingLeft = UDim.new(0, 24),
                PaddingBottom = UDim.new(0, 14)
            }),
            Layout = l_Roact_0.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 10)
            }),
            ClientVersion = l_Roact_0.createElement(v19, {
                themeKey = "TextDefault",
                fontKey = "Footer",
                Text = l_clientVersion_0,
                LayoutOrder = 1,
                Size = UDim2.new(1, -24, 0, 14)
            }),
            ServerVersion = l_Roact_0.createElement(v19, {
                themeKey = "TextDefault",
                fontKey = "Footer",
                Text = not not v36 and v40.serverVersion or "",
                LayoutOrder = 2,
                Size = UDim2.new(1, -24, 0, 14)
            }, {
                not v36 and l_Roact_0.createElement(l_UIBlox_0.App.Loading.ShimmerPanel, {
                    Size = UDim2.new(1, 0, 1, 0),
                    shimmerSpeed = 2
                })
            }),
            PlaceVersion = l_Roact_0.createElement(v19, {
                themeKey = "TextDefault",
                fontKey = "Footer",
                Text = v40.placeVersion,
                LayoutOrder = 3,
                Size = UDim2.new(1, -24, 0, 14)
            }),
            Divider = (v38 or v39) and l_Roact_0.createElement(v18, {
                Size = UDim2.new(1, 0, 0, 1),
                LayoutOrder = 4
            }),
            PlayerScriptStatus = v39 and l_Roact_0.createElement(v19, {
                themeKey = "TextDefault",
                fontKey = "Footer",
                Text = v35.state.playerScriptStatus,
                LayoutOrder = 5,
                Size = UDim2.new(1, -24, 0, 14)
            }),
            Environment = v38 and l_Roact_0.createElement(v19, {
                themeKey = "TextDefault",
                fontKey = "Footer",
                Text = ("Base URL: %s"):format(v35.state.baseUrl),
                LayoutOrder = 6,
                Size = UDim2.new(1, -24, 0, 14)
            }),
            Divider2 = l_game_EngineFeature_0 and l_Roact_0.createElement(v18, {
                Size = UDim2.new(1, 0, 0, 1),
                LayoutOrder = 7
            }),
            CoreScriptVersion = l_game_EngineFeature_0 and l_Roact_0.createElement(v19, {
                themeKey = "TextDefault",
                fontKey = "Footer",
                Text = v40.coreScriptVersion,
                LayoutOrder = 8,
                Size = UDim2.new(1, -24, 0, 14)
            }),
            VersionWatcher = l_Roact_0.createElement(v20, {
                event = game:GetPropertyChangedSignal("PlaceVersion"),
                callback = function()
                    v35:setState({
                        placeVersion = game.PlaceVersion
                    });
                end
            })
        });
    end);
end;
v25.didMount = function(v44)
    v44.mounted = true;
    coroutine.wrap(function()
        local v45 = l_RobloxReplicatedStorage_0:WaitForChild("GetServerVersion", math.huge):InvokeServer();
        if v44.mounted then
            v44:setState({
                serverVersion = v45
            });
        end;
    end)();
    if not v24() then
        coroutine.wrap(function()
            pcall(function()
                local l_VersionNumber_0 = l_HttpService_0:JSONDecode((l_HttpRbxApiService_0:GetAsync(string.format("assets/%d/versions", game.PlaceId))))[1].VersionNumber;
                if v44.mounted then
                    v44:setState({
                        latestPlaceVersion = l_VersionNumber_0
                    });
                end;
            end);
        end)();
    end;
    coroutine.wrap(function()
        local v47 = v15.IsPlayerAdminAsync(l_Players_0.LocalPlayer);
        if v44.mounted then
            v44:setState({
                isAdmin = v47
            });
        end;
    end)();
end;
v25.willUnmount = function(v48)
    v48.mounted = false;
    if v48.playerScriptsAddedConnection then
        v48.playerScriptsAddedConnection:Disconnect();
    end;
end;
return v25;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v1.Roact;
local l_t_0 = v1.t;
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_l_UserGameSettings_0_PropertyChangedSignal_0 = l_UserGameSettings_0:GetPropertyChangedSignal("MasterVolume");
local l_Parent_0 = script.Parent.Parent.Parent;
local v7 = require(l_Parent_0.Utility.ExternalEventConnection);
local v8 = require(script.Parent.SliderEntry);
local v9 = require(l_Parent_0.Utility.SendAnalytics);
local v10 = require(l_Parent_0.Resources.Constants);
if l_CoreGui_0.RobloxGui:FindFirstChild("Sounds") == nil then
    local l_Folder_0 = Instance.new("Folder");
    l_Folder_0.Name = "Sounds";
    l_Folder_0.Parent = l_CoreGui_0.RobloxGui;
end;
local v12 = Instance.new("Sound", l_CoreGui_0.RobloxGui.Sounds);
v12.Name = "VolumeChangeSound";
v12.Volume = 1;
v12.SoundId = "rbxasset://sounds/uuhhh.mp3";
local v13 = l_Roact_0.PureComponent:extend("VolumeEntry");
v13.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),
    buttonRef = l_t_0.optional(l_t_0.table)
});
v13.init = function(v14)
    v14.onVolumeChanged = function()
        v14:setState({
            volume = math.floor(l_UserGameSettings_0.MasterVolume * 10 + 0.5)
        });
    end;
    v14.onVolumeChanged();
end;
v13.render = function(v15)
    return l_Roact_0.createFragment({
        VolumeSlider = l_Roact_0.createElement(v8, {
            labelKey = "CoreScripts.InGameMenu.GameSettings.Volume",
            LayoutOrder = v15.props.LayoutOrder,
            min = 0,
            max = 10,
            stepInterval = 1,
            value = v15.state.volume,
            valueChanged = function(v16)
                l_UserGameSettings_0.MasterVolume = v16 / 10;
                v12:Play();
                v9(v10.AnalyticsSettingsChangeName, nil, {}, true);
            end,
            canCaptureFocus = v15.props.canCaptureFocus,
            isMenuOpen = v15.props.isMenuOpen,
            buttonRef = v15.props.buttonRef
        }),
        VolumeListener = l_Roact_0.createElement(v7, {
            event = l_l_UserGameSettings_0_PropertyChangedSignal_0,
            callback = v15.onVolumeChanged
        })
    });
end;
return v13;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.InGameMenuDependencies);
local l_ControllerBar_0 = v2.UIBlox.App.Bar.ControllerBar;
local l_Parent_0 = script.Parent.Parent;
local l_Roact_0 = v2.Roact;
local l_t_0 = v2.t;
local l_RoactRodux_0 = v2.RoactRodux;
local v8 = require(l_Parent_0.Resources.Constants);
local v9 = require(l_Parent_0.Actions.IncrementControllerBar);
local v10 = require(l_Parent_0.Actions.DecrementControllerBar);
local v11 = l_Roact_0.PureComponent:extend("IGMControllerBar2");
v11.validateProps = l_t_0.strictInterface({
    rightHints = l_t_0.table,
    leftHint = l_t_0.table,
    incrementControllerBar = l_t_0.callback,
    decrementControllerBar = l_t_0.callback
});
v11.init = function(v12)
    v12.props.incrementControllerBar();
end;
v11.willUnmount = function(v13)
    v13.props.decrementControllerBar();
end;
v11.render = function(v14)
    return l_Roact_0.createElement(l_Roact_0.Portal, {
        target = l_CoreGui_0
    }, {
        IGMControllerBar = l_Roact_0.createElement("ScreenGui", {
            DisplayOrder = v8.DisplayOrder.ControllerBar
        }, {
            ControllerBar = l_Roact_0.createElement(l_ControllerBar_0, {
                rightHints = v14.props.rightHints,
                leftHint = v14.props.leftHint
            })
        })
    });
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v15)
    return {
        incrementControllerBar = function()
            v15(v9());
        end,
        decrementControllerBar = function()
            v15(v10());
        end
    };
end)(v11);


local l_TextService_0 = game:GetService("TextService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_ContextActionService_0 = game:GetService("ContextActionService");
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_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local v10 = require(script.Parent.Parent.Resources.Assets);
local v11 = require(script.Parent.ThemedTextLabel);
local v12 = require(script.Parent.Divider);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v14 = l_Roact_0.PureComponent:extend("InfoDialog");
v14.validateProps = l_t_0.strictInterface({
    bodyText = l_t_0.string,
    dismissText = l_t_0.string,
    titleText = l_t_0.string,
    iconImage = l_t_0.union(l_t_0.string, l_t_0.table),
    onDismiss = l_t_0.callback,
    visible = l_t_0.boolean,
    buttonRef = l_t_0.optional(l_t_0.table)
});
v14.render = function(v15)
    local l_props_0 = v15.props;
    return l_withStyle_0(function(v17)
        local l_Font_0 = v17.Font.Body.Font;
        local v19 = v17.Font.Body.RelativeSize * v17.Font.BaseSize;
        local v20 = 48 + math.max(l_TextService_0:GetTextSize(l_props_0.bodyText, v19, l_Font_0, Vector2.new(264, math.huge)).Y, v19 * 2);
        return l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            ZIndex = 8,
            Visible = l_props_0.visible
        }, {
            Overlay = l_Roact_0.createElement("TextButton", {
                AutoButtonColor = false,
                BackgroundColor3 = v17.Theme.Overlay.Color,
                BackgroundTransparency = v17.Theme.Overlay.Transparency,
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 1, 0),
                Text = ""
            }),
            DialogMainFrame = l_Roact_0.createElement(l_ImageSetLabel_0, {
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1,
                Image = v10.Images.RoundedRect.Image,
                ImageColor3 = v17.Theme.BackgroundUIDefault.Color,
                ImageTransparency = v17.Theme.BackgroundUIDefault.Transparency,
                Position = UDim2.new(0.5, 0, 0.5, 0),
                ScaleType = v10.Images.RoundedRect.ScaleType,
                Size = UDim2.new(0, 312, 0, ((((49 + v20) + 36) + 36) + 24) + 10),
                SliceCenter = v10.Images.RoundedRect.SliceCenter
            }, {
                Padding = l_Roact_0.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, 10),
                    PaddingBottom = UDim.new(0, 24),
                    PaddingLeft = UDim.new(0, 24),
                    PaddingRight = UDim.new(0, 24)
                }),
                Layout = l_Roact_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                Icon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    Size = UDim2.new(0, 36, 0, 36),
                    BackgroundTransparency = 1,
                    Image = v15.props.iconImage,
                    LayoutOrder = 1
                }),
                Title = l_Roact_0.createElement(v11, {
                    fontKey = "Header1",
                    themeKey = "TextEmphasis",
                    LayoutOrder = 2,
                    Size = UDim2.new(1, 0, 0, 48),
                    Text = l_props_0.titleText
                }),
                Divider = l_Roact_0.createElement(v12, {
                    LayoutOrder = 3
                }),
                BodyTextContainer = l_Roact_0.createElement("Frame", {
                    BackgroundTransparency = 1,
                    LayoutOrder = 4,
                    Size = UDim2.new(1, 0, 0, v20)
                }, {
                    BodyText = l_Roact_0.createElement(v11, {
                        Size = UDim2.new(1, 0, 1, 0),
                        Text = l_props_0.bodyText,
                        TextWrapped = true
                    })
                }),
                ConfirmButton = l_Roact_0.createElement(l_Button_0, {
                    buttonType = l_ButtonType_0.PrimarySystem,
                    layoutOrder = 5,
                    size = UDim2.new(1, 0, 0, 36),
                    onActivated = l_props_0.onDismiss,
                    text = l_props_0.dismissText,
                    [l_Roact_0.Ref] = v15.props.buttonRef
                })
            })
        });
    end);
end;
v14.bindActions = function(v21)
    l_ContextActionService_0:BindCoreAction("InGameMenuModalDismiss", function(_, v23, _)
        if v23 == Enum.UserInputState.Begin then
            v21.props.onDismiss();
        end;
    end, false, Enum.KeyCode.Escape);
end;
v14.unbindActions = function(_)
    l_ContextActionService_0:UnbindCoreAction("InGameMenuModalDismiss");
end;
v14.didMount = function(v26)
    if v26.props.visible then
        v26:bindActions();
    end;
end;
v14.didUpdate = function(v27)
    if not v27.props.visible then
        v27:unbindActions();
        return ;
    else
        v27:bindActions();
        return ;
    end;
end;
v14.willUnmount = function(v28)
    v28:unbindActions();
end;
return v14;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_RunService_0 = game:GetService("RunService");
local l_TextService_0 = game:GetService("TextService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_GuiService_0 = game:GetService("GuiService");
local v6 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v6.Roact;
local l_UIBlox_0 = v6.UIBlox;
local l_t_0 = v6.t;
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local l_Parent_0 = script.Parent.Parent;
local v14 = require(l_Parent_0.Flags.GetFFlagIGMGamepadSelectionHistory);
local v15 = require(l_Parent_0.Resources.Constants);
local v16 = require(l_Parent_0.Resources.Assets);
local v17 = require(script.Parent.ThemedTextLabel);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v19 = require(script.Parent.Connection.FocusHandler);
local v20 = l_Roact_0.PureComponent:extend("InformationalDialog");
v20.validateProps = l_t_0.strictInterface({
    bodyText = l_t_0.string,
    confirmText = l_t_0.string,
    titleText = l_t_0.string,
    subBodyText = l_t_0.optional(l_t_0.string),
    iconImage = l_t_0.optional(l_t_0.union(l_t_0.table, l_t_0.string)),
    iconSize = l_t_0.number,
    onContinueFunc = l_t_0.optional(l_t_0.callback),
    bindReturnToConfirm = l_t_0.boolean,
    blurBackground = l_t_0.boolean,
    visible = l_t_0.boolean,
    inputType = l_t_0.optional(l_t_0.string)
});
v20.defaultProps = {
    subBodyText = nil,
    blurBackground = false,
    iconImage = nil,
    iconSize = 64
};
v20.init = function(v21)
    v21.state = {
        isRooted = false,
        show = true
    };
    v21.onAncestryChanged = function(v22)
        if v22:IsDescendantOf(game) then
            v21:setState({
                isRooted = true
            });
        end;
    end;
    v21.confirmButtonRef = l_Roact_0.createRef();
    v21.buttonContainerRef = l_Roact_0.createRef();
end;
v20.render = function(v23)
    local l_props_0 = v23.props;
    return l_withStyle_0(function(v25)
        local l_Font_0 = v25.Font.Body.Font;
        local v27 = v25.Font.Body.RelativeSize * v25.Font.BaseSize;
        local l_Y_0 = l_TextService_0:GetTextSize(l_props_0.bodyText, v27, l_Font_0, Vector2.new(295, math.huge)).Y;
        local l_Y_1 = l_TextService_0:GetTextSize(l_props_0.subBodyText, v27, l_Font_0, Vector2.new(295, math.huge)).Y;
        local v30 = 20 + math.max(l_Y_0, v27 * 2);
        local v31 = 20 + math.max(l_Y_1, v27 * 2);
        local v32 = nil;
        if v14() then
            v32 = not v23.props.visible;
        end;
        return l_Roact_0.createElement(l_Roact_0.Portal, {
            target = l_CoreGui_0
        }, {
            InGameMenuInformationalDialog = l_Roact_0.createElement("ScreenGui", {
                DisplayOrder = 8,
                IgnoreGuiInset = true,
                OnTopOfCoreBlur = l_props_0.blurBackground,
                Enabled = l_props_0.visible and v23.state.show,
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling
            }, {
                Overlay = l_Roact_0.createElement("TextButton", {
                    AutoButtonColor = false,
                    BackgroundColor3 = v25.Theme.Overlay.Color,
                    BackgroundTransparency = v25.Theme.Overlay.Transparency,
                    BorderSizePixel = 0,
                    Size = UDim2.new(1, 0, 1, 0),
                    Text = ""
                }),
                DialogMainFrame = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    BackgroundTransparency = 1,
                    Image = v16.Images.RoundedRect.Image,
                    ImageColor3 = v25.Theme.BackgroundUIDefault.Color,
                    ImageTransparency = v25.Theme.BackgroundUIDefault.Transparency,
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    ScaleType = v16.Images.RoundedRect.ScaleType,
                    Size = UDim2.new(0, 335, 0, ((((49 + v30) + v31) + 36) + 70) + l_props_0.iconSize),
                    SliceCenter = v16.Images.RoundedRect.SliceCenter
                }, {
                    Padding = l_Roact_0.createElement("UIPadding", {
                        PaddingTop = UDim.new(0, 20),
                        PaddingBottom = UDim.new(0, 20),
                        PaddingLeft = UDim.new(0, 20),
                        PaddingRight = UDim.new(0, 20)
                    }),
                    Layout = l_Roact_0.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Vertical,
                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                        SortOrder = Enum.SortOrder.LayoutOrder
                    }),
                    Icon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                        Position = UDim2.fromScale(0.5, 0.5),
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Image = l_props_0.iconImage,
                        Size = UDim2.new(0, l_props_0.iconSize, 0, l_props_0.iconSize),
                        LayoutOrder = 1,
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0
                    }),
                    Title = l_Roact_0.createElement(v17, {
                        fontKey = "Header1",
                        themeKey = "TextEmphasis",
                        LayoutOrder = 2,
                        Size = UDim2.new(1, 0, 0, 48),
                        Text = l_props_0.titleText
                    }),
                    Divider = l_Roact_0.createElement("Frame", {
                        BackgroundColor3 = v25.Theme.Divider.Color,
                        BackgroundTransparency = v25.Theme.Divider.Transparency,
                        BorderSizePixel = 0,
                        LayoutOrder = 3,
                        Size = UDim2.new(0.8, 0, 0, 1)
                    }),
                    SpaceContainer = l_Roact_0.createElement("Frame", {
                        BackgroundTransparency = 1,
                        LayoutOrder = 4,
                        Size = UDim2.new(1, 0, 0, 10)
                    }),
                    BodyTextContainer = l_Roact_0.createElement("Frame", {
                        BackgroundTransparency = 1,
                        LayoutOrder = 5,
                        Size = UDim2.new(1, 0, 0, v30)
                    }, {
                        BodyText = l_Roact_0.createElement(v17, {
                            Size = UDim2.new(1, 0, 1, 0),
                            Text = l_props_0.bodyText,
                            TextWrapped = true
                        })
                    }),
                    SubBodyTextContainer = l_Roact_0.createElement("Frame", {
                        BackgroundTransparency = 1,
                        LayoutOrder = 6,
                        Size = UDim2.new(1, 0, 0, v31)
                    }, {
                        BodyText = l_Roact_0.createElement(v17, {
                            Size = UDim2.new(1, 0, 1, 0),
                            Text = l_props_0.subBodyText,
                            TextWrapped = true
                        })
                    }),
                    SpaceContainer2 = l_Roact_0.createElement("Frame", {
                        BackgroundTransparency = 1,
                        LayoutOrder = 7,
                        Size = UDim2.new(1, 0, 0, 10)
                    }),
                    ButtonContainer = l_Roact_0.createElement("Frame", {
                        BackgroundTransparency = 1,
                        LayoutOrder = 8,
                        Size = UDim2.new(1, 0, 0, 36),
                        [l_Roact_0.Ref] = v23.buttonContainerRef,
                        [l_Roact_0.Event.AncestryChanged] = v23.onAncestryChanged
                    }, {
                        Layout = l_Roact_0.createElement("UIListLayout", {
                            FillDirection = Enum.FillDirection.Horizontal,
                            HorizontalAlignment = Enum.HorizontalAlignment.Center,
                            Padding = UDim.new(0, 20),
                            SortOrder = Enum.SortOrder.LayoutOrder,
                            VerticalAlignment = Enum.VerticalAlignment.Center
                        }),
                        ConfirmButton = l_Roact_0.createElement(l_Button_0, {
                            buttonType = l_ButtonType_0.PrimarySystem,
                            layoutOrder = 1,
                            size = UDim2.new(1, -5, 1, 0),
                            text = l_props_0.confirmText,
                            onActivated = function()
                                v23:setState({
                                    show = false
                                });
                                if v23.props.onContinueFunc then
                                    v23.props.onContinueFunc();
                                end;
                                l_RunService_0:SetRobloxGuiFocused(false);
                            end,
                            [l_Roact_0.Ref] = v23.confirmButtonRef
                        })
                    })
                })
            }),
            FocusHandler = l_Roact_0.createElement(v19, {
                isFocused = (v23.state.isRooted and v23.props.visible) and v23.props.inputType == v15.InputType.Gamepad,
                shouldForgetPreviousSelection = v32,
                didFocus = function()
                    l_GuiService_0:RemoveSelectionGroup("InGameMenuModalButtonsSelectionParent");
                    l_GuiService_0:AddSelectionParent("InGameMenuModalButtonsSelectionParent", v23.buttonContainerRef:getValue());
                    l_GuiService_0.SelectedCoreObject = v23.confirmButtonRef:getValue();
                end
            })
        });
    end);
end;
v20.updateBlur = function(v33)
    l_RunService_0:SetRobloxGuiFocused(v33.props.blurBackground and v33.props.visible);
end;
v20.bindActions = function(v34)
    local function v38(_, v36, _)
        if v36 == Enum.UserInputState.Begin then
            v34.props.onConfirm();
        end;
    end;
    if v34.props.bindReturnToConfirm then
        l_ContextActionService_0:BindCoreAction("InGameMenuModalConfirm", v38, false, Enum.KeyCode.Return);
    end;
end;
v20.unbindActions = function(_)
    l_ContextActionService_0:UnbindCoreAction("InGameMenuModalConfirm");
end;
v20.didMount = function(v40)
    v40:updateBlur();
    if v40.props.visible then
        v40:bindActions();
    end;
end;
v20.didUpdate = function(v41)
    v41:updateBlur();
    if not v41.props.visible then
        v41:unbindActions();
        return ;
    else
        v41:bindActions();
        return ;
    end;
end;
v20.willUnmount = function(v42)
    if v42.props.blurBackground then
        l_RunService_0:SetRobloxGuiFocused(false);
    end;
    v42:unbindActions();
end;
return v20;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_TextService_0 = game:GetService("TextService");
local l_GuiService_0 = game:GetService("GuiService");
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_UIBlox_0 = v3.UIBlox;
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local l_Parent_0 = script.Parent.Parent.Parent;
local v12 = require(l_Parent_0.Localization.withLocalization);
local v13 = require(l_Parent_0.Resources.Assets);
local v14 = require(l_Parent_0.Components.ThemedTextLabel);
local v15 = require(l_Parent_0.Components.Connection.FocusHandler);
local v16 = require(l_Parent_0.Components.Connection.RootedConnection);
local v17 = require(l_Parent_0.Actions.SetCurrentPage);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_ControlState_0 = l_UIBlox_0.Core.Control.Enum.ControlState;
local v20 = l_Roact_0.PureComponent:extend("AddFriendsNow");
v20.validateProps = l_t_0.strictInterface({
    switchToPlayers = l_t_0.callback,
    canCaptureFocus = l_t_0.boolean
});
v20.init = function(v21)
    v21.buttonRef = l_Roact_0.createRef();
    v21.state = {
        buttonIsInitialized = false
    };
end;
v20.render = function(v22)
    local l_props_0 = v22.props;
    return l_withStyle_0(function(v24)
        return v12({
            noFriendsText = "CoreScripts.InGameMenu.InviteFriends.NoFriends",
            makeFriendsNow = "CoreScripts.InGameMenu.InviteFriends.MakeFriendsNow"
        })(function(v25)
            return l_Roact_0.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(0, 304, 1, 0),
                Position = UDim2.new(0.5, 0, 0, 0),
                AnchorPoint = Vector2.new(0.5, 0)
            }, {
                Layout = l_Roact_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                Icon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Image = v13.Images.AddFriend,
                    Size = UDim2.new(0, 64, 0, 64),
                    ImageTransparency = 0.5,
                    LayoutOrder = 1
                }),
                TextContainer = l_Roact_0.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, l_TextService_0:GetTextSize(v25.noFriendsText, v24.Font.Body.RelativeSize * v24.Font.BaseSize, v24.Font.Body.Font, Vector2.new(304, math.huge)).Y + 20),
                    LayoutOrder = 2
                }, {
                    Text = l_Roact_0.createElement(v14, {
                        fontKey = "Body",
                        themeKey = "TextEmphasis",
                        Text = v25.noFriendsText,
                        Position = UDim2.new(0, 0, 0, 4),
                        Size = UDim2.new(1, 0, 1, -20),
                        TextXAlignment = Enum.TextXAlignment.Center,
                        TextWrapped = true
                    })
                }),
                RootedConnection = l_Roact_0.createElement(v16, {
                    render = function(v26)
                        return l_Roact_0.createElement(v15, {
                            isFocused = (l_props_0.canCaptureFocus and v22.state.buttonIsInitialized) and v26,
                            didFocus = function()
                                l_GuiService_0.SelectedCoreObject = v22.buttonRef:getValue();
                            end
                        }, {
                            MakeFriendsButton = not not v26 and l_Roact_0.createElement(l_Button_0, {
                                buttonType = l_ButtonType_0.Secondary,
                                layoutOrder = 3,
                                size = UDim2.new(1, 0, 0, 48),
                                text = v25.makeFriendsNow,
                                onActivated = l_props_0.switchToPlayers,
                                buttonRef = v22.buttonRef,
                                onStateChanged = function(_, v28)
                                    if not v22.state.buttonIsInitialized and v28 ~= l_ControlState_0.Initialize then
                                        v22:setState({
                                            buttonIsInitialized = true
                                        });
                                    end;
                                end
                            }) or nil
                        });
                    end
                }),
                MakeFriendsButton = l_Roact_0.createElement(l_Button_0, {
                    buttonType = l_ButtonType_0.Secondary,
                    layoutOrder = 3,
                    size = UDim2.new(1, 0, 0, 48),
                    text = v25.makeFriendsNow,
                    onActivated = l_props_0.switchToPlayers
                })
            });
        end);
    end);
end;
return l_RoactRodux_0.UNSTABLE_connect2(nil, function(v29)
    return {
        switchToPlayers = function()
            v29(v17("Players"));
        end
    };
end)(v20);


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 v6 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_Parent_0 = script.Parent.Parent.Parent;
local v8 = require(l_Parent_0.Components.PlayerLabelV2);
local v9 = require(l_Parent_0.Flags.GetFFlagIGMGamepadSelectionHistory);
local v10 = require(l_Parent_0.Components.Divider);
local v11 = require(script.Parent.SendInviteButton);
local v12 = require(script.Parent.SearchBox);
local v13 = require(l_Parent_0.Components.BarOnTopScrollingFrame);
local v14 = require(l_Parent_0.Utility.PlayerSearchPredicate);
local v15 = require(l_Parent_0.Components.Connection.FocusHandler);
local v16 = require(l_Parent_0.Components.Connection.RootedConnection);
local v17 = require(l_Parent_0.Resources.Constants);
local l_InviteStatus_0 = v17.InviteStatus;
local v19 = require(l_Parent_0.Thunks.InviteUserToPlaceId);
local v20 = tostring(game.PlaceId);
local v21 = l_Roact_0.PureComponent:extend("InviteFriendsList");
v21.validateProps = l_t_0.strictInterface({
    friends = l_t_0.array(l_t_0.strictInterface({
        IsOnline = l_t_0.boolean,
        Id = l_t_0.integer,
        Username = l_t_0.string,
        DisplayName = l_t_0.string
    })),
    invitesState = l_t_0.table,
    shouldForgetPreviousSelection = not not v9() and l_t_0.optional(l_t_0.boolean) or nil,
    dispatchInviteUserToPlaceId = l_t_0.callback,
    canCaptureFocus = l_t_0.boolean,
    searchBoxRef = l_t_0.table
});
v21.init = function(v22)
    v22.playerRefs = v6.createRefCache();
    v22.state = {
        searchText = ""
    };
    v22.inviteAnimationInProgress = {};
end;
v21.renderListEntries = function(v23)
    local l_friends_0 = v23.props.friends;
    local v25 = #l_friends_0;
    local v26 = 1;
    local v27 = {};
    local v28 = 0;
    v27.ListLayout = l_Roact_0.createElement("UIListLayout", {
        SortOrder = Enum.SortOrder.LayoutOrder,
        HorizontalAlignment = Enum.HorizontalAlignment.Right
    });
    for v29, v30 in pairs(l_friends_0) do
        local v31 = tostring(v30.Id);
        local v32 = v23.props.invitesState[v31];
        local v33 = v14(v23.state.searchText, v30.Username, v30.DisplayName);
        if v33 then
            v28 = v28 + 1;
        end;
        v27["friend_" .. v29] = l_Roact_0.createElement(v8, {
            username = v30.Username,
            displayName = v30.DisplayName,
            userId = v30.Id,
            isOnline = v30.IsOnline,
            isSelected = false,
            LayoutOrder = v26,
            Visible = v33,
            [l_Roact_0.Ref] = v23.playerRefs[v29],
            onActivated = function()
                local v34 = v32 == l_InviteStatus_0.Pending;
                local v35 = v32 == l_InviteStatus_0.Success;
                local v36 = v23.inviteAnimationInProgress[v30.Id];
                if not ((v34 or v35) or v36) then
                    v23.props.dispatchInviteUserToPlaceId(v31, v20);
                end;
            end
        }, {
            InviteButton = l_Roact_0.createElement(v11, {
                userInviteStatus = v32,
                onActivated = function()
                    v23.props.dispatchInviteUserToPlaceId(v31, v20);
                end,
                animationBegun = function()
                    v23.inviteAnimationInProgress[v30.Id] = true;
                end,
                animationEnded = function()
                    v23.inviteAnimationInProgress[v30.Id] = nil;
                end
            })
        });
        v26 = v26 + 1;
        if v29 < v25 then
            v27["divider_" .. v26] = l_Roact_0.createElement(v10, {
                LayoutOrder = v26,
                Size = UDim2.new(1, -104, 0, 1),
                Visible = v33
            });
            v26 = v26 + 1;
        end;
    end;
    return v27, v28;
end;
v21.render = function(v37)
    local v38, v39 = v37:renderListEntries();
    local v41 = l_Roact_0.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 1, 0)
    }, {
        SearchBox = l_Roact_0.createElement(v12, {
            Size = UDim2.new(1, -48, 0, 36),
            Position = UDim2.new(0.5, 0, 0, 8),
            AnchorPoint = Vector2.new(0.5, 0),
            searchUpdated = function(v40)
                v37:setState({
                    searchText = v40
                });
            end,
            searchCleared = function()
                v37:setState({
                    searchText = ""
                });
                if v37.props.canCaptureFocus then
                    l_GuiService_0.SelectedCoreObject = v37.props.searchBoxRef:getValue();
                end;
            end,
            itemRef = v37.props.searchBoxRef
        }),
        List = l_Roact_0.createElement(v13, {
            Position = UDim2.new(0, 0, 0, 64),
            Size = UDim2.new(1, 0, 1, -64),
            CanvasSize = UDim2.new(1, 0, 0, v39 * 72)
        }, v38)
    });
    local v42 = nil;
    if v9() then
        v42 = v37.props.shouldForgetPreviousSelection;
    end;
    return l_Roact_0.createElement(v16, {
        render = function(v43)
            return l_Roact_0.createElement(v15, {
                isFocused = v37.props.canCaptureFocus and v43,
                shouldForgetPreviousSelection = v42,
                didFocus = not not v9() and function(v44)
                    l_GuiService_0.SelectedCoreObject = (v44 or v37:getFirstVisiblePlayerRef()) or v37.props.searchBoxRef:getValue();
                end or function()
                    l_GuiService_0.SelectedCoreObject = v37:getFirstVisiblePlayerRef() or v37.props.searchBoxRef:getValue();
                end
            }, {
                FriendsList = v41
            });
        end
    });
end;
v21.getFirstVisiblePlayerRef = function(v45)
    for v46, v47 in pairs(v45.props.friends) do
        if v14(v45.state.searchText, v47.Username, v47.DisplayName) then
            return v45.playerRefs[v46]:getValue();
        end;
    end;
    return nil;
end;
return l_RoactRodux_0.UNSTABLE_connect2(function(v48, _)
    local v50 = nil;
    if v9() then
        local v51 = true;
        if v48.menuPage ~= v17.MainPagePageKey then
            v51 = v48.currentZone == 0;
        end;
        v50 = v51;
    end;
    return {
        invitesState = v48.invites,
        shouldForgetPreviousSelection = v50
    };
end, function(v52)
    return {
        dispatchInviteUserToPlaceId = function(v53, v54)
            v52(v19(v53, v54));
        end
    };
end)(v21);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_TextService_0 = game:GetService("TextService");
local l_GuiService_0 = game:GetService("GuiService");
local v3 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v3.Roact;
local l_t_0 = v3.t;
local l_UIBlox_0 = v3.UIBlox;
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local l_Parent_0 = script.Parent.Parent.Parent;
local v11 = require(l_Parent_0.Localization.withLocalization);
local v12 = require(l_Parent_0.Resources.Assets);
local v13 = require(l_Parent_0.Components.ThemedTextLabel);
local v14 = require(l_Parent_0.Components.Connection.FocusHandler);
local v15 = require(l_Parent_0.Components.Connection.RootedConnection);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_ControlState_0 = l_UIBlox_0.Core.Control.Enum.ControlState;
local v18 = l_Roact_0.PureComponent:extend("LoadingFriendsError");
v18.validateProps = l_t_0.strictInterface({
    onRetry = l_t_0.callback,
    canCaptureFocus = l_t_0.boolean
});
v18.init = function(v19)
    v19.buttonRef = l_Roact_0.createRef();
    v19.state = {
        buttonIsInitialized = false
    };
end;
v18.render = function(v20)
    local l_props_0 = v20.props;
    return l_withStyle_0(function(v22)
        return v11({
            errorOccured = "CoreScripts.InGameMenu.InviteFriends.ErrorOccured"
        })(function(v23)
            return l_Roact_0.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(0, 304, 1, 0),
                Position = UDim2.new(0.5, 0, 0, 0),
                AnchorPoint = Vector2.new(0.5, 0)
            }, {
                Layout = l_Roact_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                Icon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Image = v12.Images.Friends,
                    Size = UDim2.new(0, 64, 0, 64),
                    ImageTransparency = 0.5,
                    LayoutOrder = 1
                }),
                TextContainer = l_Roact_0.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, l_TextService_0:GetTextSize(v23.errorOccured, v22.Font.Body.RelativeSize * v22.Font.BaseSize, v22.Font.Body.Font, Vector2.new(304, math.huge)).Y + 36),
                    LayoutOrder = 2
                }, {
                    Text = l_Roact_0.createElement(v13, {
                        fontKey = "Body",
                        themeKey = "TextEmphasis",
                        Text = v23.errorOccured,
                        Position = UDim2.new(0, 0, 0, 10),
                        Size = UDim2.new(1, 0, 1, -36),
                        TextXAlignment = Enum.TextXAlignment.Center,
                        TextWrapped = true
                    })
                }),
                RootedConnection = l_Roact_0.createElement(v15, {
                    render = function(v24)
                        return l_Roact_0.createElement(v14, {
                            isFocused = (l_props_0.canCaptureFocus and v20.state.buttonIsInitialized) and v24,
                            didFocus = function()
                                l_GuiService_0.SelectedCoreObject = v20.buttonRef:getValue();
                            end
                        }, {
                            RetryButton = not not v24 and l_Roact_0.createElement(l_Button_0, {
                                buttonType = l_ButtonType_0.Secondary,
                                layoutOrder = 3,
                                size = UDim2.new(1, 0, 0, 48),
                                icon = v12.Images.RetryIcon,
                                onActivated = l_props_0.onRetry,
                                buttonRef = v20.buttonRef,
                                onStateChanged = function(_, v26)
                                    if not v20.state.buttonIsInitialized and v26 ~= l_ControlState_0.Initialize then
                                        v20:setState({
                                            buttonIsInitialized = true
                                        });
                                    end;
                                end
                            }) or nil
                        });
                    end
                })
            });
        end);
    end);
end;
return v18;


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_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 v8 = require(l_Parent_0.Resources.Assets);
local v9 = require(l_Parent_0.Localization.withLocalization);
local v10 = require(l_Parent_0.Components.ThemedTextLabel);
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v12 = l_Roact_0.PureComponent:extend("SearchBox");
v12.validateProps = l_t_0.strictInterface({
    Size = l_t_0.UDim2,
    Position = l_t_0.UDim2,
    AnchorPoint = l_t_0.Vector2,
    searchUpdated = l_t_0.callback,
    searchCleared = l_t_0.callback,
    itemRef = l_t_0.optional(l_t_0.table)
});
v12.init = function(v13)
    v13.state = {
        searchText = ""
    };
end;
v12.renderWithSelectionCursor = function(v14, v15)
    return v9({
        searchPlaceholder = "CoreScripts.InGameMenu.InviteFriends.Search"
    })(function(v16)
        return l_withStyle_0(function(v17)
            local l_TextEmphasis_0 = v17.Theme.TextEmphasis;
            local l_Body_0 = v17.Font.Body;
            local v20 = nil;
            local v21 = nil;
            v20 = v14.state.searchText ~= "";
            v21 = 49;
            if v20 then
                v21 = v21 + 46;
            end;
            return l_Roact_0.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Size = v14.props.Size,
                Position = v14.props.Position,
                AnchorPoint = v14.props.AnchorPoint,
                Image = v8.Images.RoundedRect.Image,
                ImageColor3 = v17.Theme.BackgroundUIContrast.Color,
                ImageTransparency = v17.Theme.BackgroundUIContrast.Transparency,
                ScaleType = v8.Images.RoundedRect.ScaleType,
                SliceCenter = v8.Images.RoundedRect.SliceCenter
            }, {
                Border = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    Size = UDim2.new(1, 0, 1, 0),
                    BackgroundTransparency = 1,
                    Image = v8.Images.RoundedRectBorder.Image,
                    SliceCenter = v8.Images.RoundedRectBorder.SliceCenter,
                    ScaleType = v8.Images.RoundedRectBorder.ScaleType,
                    ImageColor3 = v17.Theme.Divider.Color,
                    ImageTransparency = v17.Theme.Divider.Transparency
                }),
                SearchIcon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(0, 16, 0, 16),
                    Position = UDim2.new(0, 22, 0.5, 0),
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Image = v8.Images.SearchIcon,
                    ImageColor3 = v17.Theme.IconEmphasis.Color
                }),
                TextBox = l_Roact_0.createElement("TextBox", {
                    Size = UDim2.new(1, -v21, 1, 0),
                    Position = UDim2.new(0, 44, 0, 0),
                    PlaceholderText = "",
                    Text = v14.state.searchText,
                    ClearTextOnFocus = false,
                    BackgroundTransparency = 1,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    TextColor3 = l_TextEmphasis_0.Color,
                    TextTransparency = l_TextEmphasis_0.Transparency,
                    Font = l_Body_0.Font,
                    TextSize = l_Body_0.RelativeSize * v17.Font.BaseSize,
                    TextWrapped = false,
                    SelectionImageObject = v15(l_CursorKind_0.InputFields),
                    [l_Roact_0.Change.Text] = function(v22)
                        if v14.state.searchText ~= v22.Text then
                            v14:setState({
                                searchText = v22.Text
                            });
                            v14.props.searchUpdated(v22.Text);
                        end;
                    end,
                    [l_Roact_0.Ref] = v14.props.itemRef
                }),
                PlaceholderText = l_Roact_0.createElement(v10, {
                    themeKey = "TextEmphasis",
                    fontKey = "Body",
                    Text = v16.searchPlaceholder,
                    Size = UDim2.new(1, -44, 1, 0),
                    Position = UDim2.new(0, 44, 0, 0),
                    TextTransparency = 0.5,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    ZIndex = 2,
                    Visible = v14.state.searchText == ""
                }),
                ClearButton = l_Roact_0.createElement("TextButton", {
                    Size = UDim2.fromOffset(32, 32),
                    Position = UDim2.new(1, -7, 0.5, 0),
                    AnchorPoint = Vector2.new(1, 0.5),
                    BackgroundTransparency = 1,
                    Visible = v20,
                    SelectionImageObject = v15(l_CursorKind_0.SmallPill),
                    Selectable = true,
                    [l_Roact_0.Event.Activated] = function()
                        v14:setState({
                            searchText = ""
                        });
                        v14.props.searchCleared();
                    end
                }, {
                    UIPadding = l_Roact_0.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, 7),
                        PaddingRight = UDim.new(0, 7),
                        PaddingTop = UDim.new(0, 7),
                        PaddingBottom = UDim.new(0, 7)
                    }),
                    ClearImage = l_Roact_0.createElement(l_ImageSetLabel_0, {
                        Size = UDim2.fromScale(1, 1),
                        BackgroundTransparency = 1,
                        Image = v8.Images.ClearIcon,
                        ImageColor3 = v17.Theme.IconEmphasis.Color,
                        Selectable = false
                    })
                })
            });
        end);
    end);
end;
v12.render = function(v23)
    return l_withSelectionCursorProvider_0(function(v24)
        return v23:renderWithSelectionCursor(v24);
    end);
end;
return v12;


local l_RunService_0 = game:GetService("RunService");
local v1 = require(game:GetService("CorePackages").InGameMenuDependencies);
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_t_0 = v1.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_InviteStatus_0 = require(script.Parent.Parent.Parent.Resources.Constants).InviteStatus;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v11 = l_Roact_0.PureComponent:extend("SendInviteButton");
v11.validateProps = l_t_0.strictInterface({
    onActivated = l_t_0.callback,
    animationBegun = l_t_0.callback,
    animationEnded = l_t_0.callback,
    userInviteStatus = l_t_0.optional(l_t_0.string)
});
local function _(v12, v13, v14)
    return (v12 - v13 / 30) / ((v14 - v13) / 30);
end;
local function _(v16, v17, v18)
    local v19 = false;
    if v17 / 30 <= v16 then
        v19 = v16 <= v18 / 30;
    end;
    return v19;
end;
local v31 = {
    [l_InviteStatus_0.Pending] = function(v21, v22)
        v22.sendTransparency(0.375 + 0.375 * math.sin(6.283185307179586 * v21));
    end,
    [l_InviteStatus_0.Success] = function(v23, v24, v25)
        local v26 = false;
        if v23 >= 0 then
            v26 = v23 <= 0.13333333333333333;
        end;
        if not v26 then
            v26 = false;
            if v23 >= 0.13333333333333333 then
                v26 = v23 <= 0.3;
            end;
            if not v26 then
                v24.successSize(1);
                v25();
                return ;
            else
                v24.sendTransparency(1);
                v24.successTransparency(0);
                v24.successSize(0.75 + 0.25 * ((v23 - 0.13333333333333333) / 0.16666666666666666));
                return ;
            end;
        else
            v26 = (v23 - 0) / 0.13333333333333333;
            v24.sendTransparency(v26);
            v24.successTransparency(1 - v26);
            v24.successSize(0.75 + 0.75 * (1 - v26));
            return ;
        end;
    end,
    [l_InviteStatus_0.Failed] = function(v27, v28, v29)
        local v30 = false;
        if v27 >= 0 then
            v30 = v27 <= 0.06666666666666667;
        end;
        if not v30 then
            v30 = false;
            if v27 >= 0.06666666666666667 then
                v30 = v27 <= 1.7333333333333334;
            end;
            if not v30 then
                v30 = false;
                if v27 >= 1.7333333333333334 then
                    v30 = v27 <= 1.9;
                end;
                if not v30 then
                    v28.sendTransparency(0);
                    v29();
                else
                    v28.sendTransparency(1 - (v27 - 1.7333333333333334) / 0.16666666666666666);
                end;
            else
                v28.sendTransparency(1);
            end;
        else
            v28.sendTransparency((v27 - 0) / 0.13333333333333333);
        end;
        v30 = false;
        if v27 >= 0 then
            v30 = v27 <= 0.13333333333333333;
        end;
        if not v30 then
            v30 = false;
            if v27 >= 0.13333333333333333 then
                v30 = v27 <= 1.4;
            end;
            if not v30 then
                v30 = false;
                if v27 >= 1.4 then
                    v30 = v27 <= 1.5666666666666667;
                end;
                if not v30 then
                    v28.failTransparency(1);
                    return ;
                else
                    v28.failPos(0);
                    v28.failTransparency((v27 - 1.4) / 0.16666666666666666);
                    return ;
                end;
            else
                v28.failTransparency(0);
                v30 = v27 - 0.13333333333333333;
                v28.failPos((-0.4 * 2.71828182846 ^ (-v30 * 8)) * math.sin(v30 * 40));
                return ;
            end;
        else
            v28.failTransparency(1 - (v27 - 0) / 0.13333333333333333);
            return ;
        end;
    end
};
v11.init = function(v32, v33)
    local v34, v35 = l_Roact_0.createBinding(0);
    local v36, v37 = l_Roact_0.createBinding(1);
    local v38, v39 = l_Roact_0.createBinding(1);
    local v40, v41 = l_Roact_0.createBinding(1);
    local v42, v43 = l_Roact_0.createBinding(0);
    v32.bindings = {
        sendTransparency = v34,
        successTransparency = v36,
        failTransparency = v38,
        successSize = v40:map(function(v44)
            return UDim2.new(v44, 0, v44, 0);
        end),
        failPos = v42:map(function(v45)
            return UDim2.new(v45, 0, 0, 0);
        end)
    };
    v32.updateBindings = {
        sendTransparency = v35,
        successTransparency = v37,
        failTransparency = v39,
        successSize = v41,
        failPos = v43
    };
    if v33.userInviteStatus == l_InviteStatus_0.Success then
        v37(0);
        v35(1);
    end;
end;
v11.renderWithSelectionCursor = function(v46, v47)
    local l_props_0 = v46.props;
    return l_withStyle_0(function(v49)
        return l_Roact_0.createElement("TextButton", {
            Selectable = false,
            Size = UDim2.new(0, 36, 0, 36),
            BackgroundTransparency = 1,
            Text = "",
            SelectionImageObject = v47(l_CursorKind_0.InputFields),
            [l_Roact_0.Event.Activated] = function()
                local v50 = l_props_0.userInviteStatus == l_InviteStatus_0.Pending;
                local v51 = l_props_0.userInviteStatus == l_InviteStatus_0.Success;
                if not ((v46.renderSteppedConnection or v50) or v51) then
                    l_props_0.onActivated();
                end;
            end
        }, {
            SendLabel = l_Roact_0.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = l_Images_0["icons/actions/friends/friendInvite"],
                Size = UDim2.new(1, 0, 1, 0),
                ImageColor3 = v49.Theme.IconEmphasis.Color,
                ImageTransparency = v46.bindings.sendTransparency
            }),
            SuccessLabel = l_Roact_0.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = l_Images_0["icons/status/success"],
                Position = UDim2.new(0.5, 0, 0.5, 0),
                AnchorPoint = Vector2.new(0.5, 0.5),
                ImageColor3 = v49.Theme.IconEmphasis.Color,
                ImageTransparency = v46.bindings.successTransparency,
                Size = v46.bindings.successSize
            }),
            FailLabel = l_Roact_0.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = l_Images_0["icons/status/alert"],
                Size = UDim2.new(1, 0, 1, 0),
                ImageColor3 = v49.Theme.IconEmphasis.Color,
                ImageTransparency = v46.bindings.failTransparency,
                Position = v46.bindings.failPos
            })
        });
    end);
end;
v11.render = function(v52)
    return l_withSelectionCursorProvider_0(function(v53)
        return v52:renderWithSelectionCursor(v53);
    end);
end;
v11.didUpdate = function(v54, v55)
    if v54.props.userInviteStatus and v54.props.userInviteStatus ~= v55.userInviteStatus then
        v54:playAnimation(v31[v54.props.userInviteStatus]);
    end;
end;
v11.didMount = function(v56)
    if v56.props.userInviteStatus then
        v56:playAnimation(v31[v56.props.userInviteStatus]);
    end;
end;
v11.playAnimation = function(v57, v58)
    v57.animationStartTime = tick();
    v57.animationFunction = v58;
    if not v57.renderSteppedConnection then
        v57.renderSteppedConnection = l_RunService_0.RenderStepped:Connect(function()
            v57.animationFunction(tick() - v57.animationStartTime, v57.updateBindings, function()
                v57:stopAnimation();
            end);
        end);
        v57.props.animationBegun();
    end;
end;
v11.stopAnimation = function(v59)
    if v59.renderSteppedConnection then
        v59.renderSteppedConnection:Disconnect();
        v59.renderSteppedConnection = nil;
        v59.props.animationEnded();
    end;
end;
v11.willUnmount = function(v60)
    v60:stopAnimation();
end;
return v11;