local l_CorePackages_0 = game:GetService("CorePackages");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_CorePackages_0.Packages.t);
local l_Parent_0 = script.Parent.Parent;
local v6 = require(l_Parent_0.Resources.Assets);
local v7 = require(l_Parent_0.Components.PortedComponents.Divider);
local l_ImageSetButton_0 = v3.Core.ImageSet.ImageSetButton;
local l_withStyle_0 = v3.Core.Style.withStyle;
local l_IconButton_0 = v3.App.Button.IconButton;
local l_HeaderBar_0 = v3.App.Bar.HeaderBar;
local l_IconSize_0 = v3.App.ImageSet.Enum.IconSize;
local l_Images_0 = v3.App.ImageSet.Images;
local l_makeBackButton_0 = require(l_CorePackages_0.Workspace.Packages.AppHeaderBar).makeBackButton;
local v15 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.Flags.GetFFlagEnableFeedbackReportDialogAdjustments);
local l_GetFFlagUIBloxUseNewHeaderBar_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).UIBlox.GetFFlagUIBloxUseNewHeaderBar;
local v17 = not v15() and 48 or 60;
local v18 = v2.Component:extend("ModalDialog");
v18.validateProps = v4.strictInterface({
    visible = v4.boolean,
    screenSize = v4.Vector2,
    titleText = v4.optional(v4.string),
    showCloseButton = v4.optional(v4.boolean),
    headerBar = v4.optional(v4.table),
    contents = v4.optional(v4.table),
    actionButtons = v4.optional(v4.table),
    onDismiss = v4.optional(v4.callback),
    onBackButtonActivated = v4.optional(v4.callback),
    maxHeight = v4.optional(v4.number),
    maxWidth = v4.optional(v4.number)
});
v18.init = function(v19)
    v19.onOverlayActivated = function()
        v19.props.onDismiss();
    end;
end;
v18.renderHeaderBarLeft = function(v20)
    local l_props_0 = v20.props;
    if not l_props_0.showCloseButton then
        if l_props_0.onBackButtonActivated ~= nil then
            if not l_GetFFlagUIBloxUseNewHeaderBar_0() then
                return (l_HeaderBar_0.renderLeft.backButton(l_props_0.onBackButtonActivated));
            else
                return (l_makeBackButton_0(l_props_0.onBackButtonActivated));
            end;
        else
            return function()
                return nil;
            end;
        end;
    else
        return function()
            return v2.createElement(l_IconButton_0, {
                iconSize = l_IconSize_0.Medium,
                icon = l_Images_0["icons/navigation/close"],
                onActivated = l_props_0.onDismiss
            });
        end;
    end;
end;
v18.renderHeaderBarRight = function(_)
    return function()
        return nil;
    end;
end;
v18.render = function(v23)
    local l_props_1 = v23.props;
    local v25 = math.min(l_props_1.screenSize.Y, 645);
    if l_props_1.maxHeight then
        v25 = math.min(v25, l_props_1.maxHeight);
    end;
    local v26 = math.min(l_props_1.screenSize.X, 540);
    if l_props_1.maxWidth then
        v26 = math.min(v26, l_props_1.maxWidth);
    end;
    local v27 = Vector2.new(v26, v25);
    local v28 = nil;
    local v29 = nil;
    if l_props_1.screenSize.X < 540 then
        v28 = Vector2.new(0.5, 1);
        v29 = UDim2.fromScale(0.5, 1);
    else
        v28 = Vector2.new(0.5, 0.5);
        v29 = UDim2.fromScale(0.5, 0.5);
    end;
    local v30 = math.min(600, (v27.Y - 49) - v17);
    if not l_props_1.actionButtons then
        v30 = v30 + v17;
    end;
    return l_withStyle_0(function(v31)
        return v2.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.fromScale(1, 1),
            Visible = l_props_1.visible
        }, {
            Overlay = v2.createElement("TextButton", {
                AutoButtonColor = false,
                BackgroundColor3 = v31.Theme.Overlay.Color,
                BackgroundTransparency = v31.Theme.Overlay.Transparency,
                BorderSizePixel = 0,
                Size = UDim2.fromScale(1, 1),
                Text = "",
                [v2.Event.Activated] = v23.onOverlayActivated
            }),
            Dialog = v2.createElement(l_ImageSetButton_0, {
                Active = true,
                AnchorPoint = v28,
                BackgroundTransparency = 1,
                Image = v6.Images.RoundedRect.Image,
                ImageColor3 = v31.Theme.BackgroundUIDefault.Color,
                ImageTransparency = v31.Theme.BackgroundUIDefault.Transparency,
                Position = v29,
                ScaleType = v6.Images.RoundedRect.ScaleType,
                Size = UDim2.fromOffset(v27.X, v27.Y),
                SliceCenter = v6.Images.RoundedRect.SliceCenter
            }, {
                Layout = v2.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                HeaderBar = v2.createElement("Frame", {
                    BackgroundTransparency = 1,
                    LayoutOrder = 1,
                    Size = UDim2.new(1, 0, 0, 48)
                }, {
                    Bar = (l_props_1.headerBar or v2.createElement(l_HeaderBar_0, {
                        backgroundTransparency = 1,
                        barHeight = 48,
                        renderLeft = v23:renderHeaderBarLeft(),
                        renderRight = v23:renderHeaderBarRight(),
                        title = l_props_1.titleText
                    })) or nil
                }),
                Divider = v2.createElement(v7, {
                    LayoutOrder = 2
                }),
                Content = v2.createElement("Frame", {
                    BackgroundTransparency = 1,
                    LayoutOrder = 3,
                    Size = UDim2.new(1, 0, 0, v30),
                    ZIndex = 10
                }, {
                    Contents = l_props_1.contents
                }),
                ActionBar = not not l_props_1.actionButtons and v2.createElement("Frame", {
                    BackgroundTransparency = 1,
                    LayoutOrder = 4,
                    Size = UDim2.new(1, 0, 0, v17)
                }, {
                    Padding = v2.createElement("UIPadding", {
                        PaddingTop = UDim.new(0, 8),
                        PaddingBottom = UDim.new(0, 2),
                        PaddingLeft = UDim.new(0, 24),
                        PaddingRight = UDim.new(0, 24)
                    }),
                    ActionButtons = l_props_1.actionButtons
                }) or nil
            })
        });
    end);
end;
v18.bindActions = function(v32)
    l_ContextActionService_0:BindCoreAction("ModalDialogDismiss", function(v33)
        if v33 == Enum.UserInputState.Begin then
            v32.props.onDismiss();
        end;
    end, false, Enum.KeyCode.Escape);
end;
v18.unbindActions = function(_)
    l_ContextActionService_0:UnbindCoreAction("ModalDialogDismiss");
end;
v18.didMount = function(v35)
    if v35.props.visible then
        v35:bindActions();
    end;
end;
v18.didUpdate = function(v36)
    if not v36.props.visible then
        v36:unbindActions();
        return ;
    else
        v36:bindActions();
        return ;
    end;
end;
v18.willUnmount = function(v37)
    v37:unbindActions();
end;
return v18;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.UIBlox);
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_ExperienceStateCaptureService_0 = game:GetService("ExperienceStateCaptureService");
local l_Parent_0 = script.Parent.Parent;
local v6 = require(l_Parent_0.Components.PortedComponents.ThemedTextLabel);
local v7 = require(l_Parent_0.Components.ModalDialog);
local l_ButtonStack_0 = v1.App.Button.ButtonStack;
local l_ButtonType_0 = v1.App.Button.Enum.ButtonType;
local v10 = require(l_Parent_0.Thunks.ShowOnboardingModalThunk);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v12 = v2.PureComponent:extend("OnboardingModal");
v12.init = function(v13)
    v13.onDismiss = function()
        v13.props.showOnboardingModal(false);
    end;
    v13.onCancel = function()
        l_ExperienceStateCaptureService_0:ToggleCaptureMode();
    end;
end;
v12.render = function(v14)
    return l_withLocalization_0({
        mainHeader = "CoreScripts.Feedback.Onboarding.MainHeader",
        instructionLabel = "CoreScripts.Feedback.Onboarding.Instructions",
        cancel = "CoreScripts.Feedback.Onboarding.Cancel",
        start = "CoreScripts.Feedback.Onboarding.Start"
    })(function(v15)
        return v2.createElement(v7, {
            visible = v14.props.visible,
            screenSize = v14.props.screenSize,
            titleText = v15.mainHeader,
            maxHeight = 200,
            maxWidth = 540,
            showCloseButton = true,
            actionButtons = v2.createElement(l_ButtonStack_0, {
                buttonHeight = 36,
                buttons = {
                    {
                        buttonType = l_ButtonType_0.Secondary,
                        props = {
                            onActivated = v14.onCancel,
                            text = v15.cancel
                        }
                    },
                    {
                        buttonType = l_ButtonType_0.PrimarySystem,
                        props = {
                            isDisabled = false,
                            onActivated = v14.onDismiss,
                            text = v15.start
                        }
                    }
                }
            }),
            contents = v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.fromScale(1, 1)
            }, {
                Padding = v2.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 24),
                    PaddingRight = UDim.new(0, 24),
                    PaddingBottom = UDim.new(0, 24)
                }),
                Layout = v2.createElement("UIListLayout", {
                    HorizontalAlignment = Enum.HorizontalAlignment.Right,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    VerticalAlignment = Enum.VerticalAlignment.Top
                }),
                InstructionLabel = v2.createElement(v6, {
                    LayoutOrder = 1,
                    fontKey = "Body",
                    themeKey = "TextDefault",
                    AnchorPoint = Vector2.new(0, 0.5),
                    Position = UDim2.new(0, 76, 0.5, 0),
                    Size = UDim2.new(1, 0, 0.4, 36),
                    Text = v15.instructionLabel,
                    TextWrapped = true,
                    TextXAlignment = Enum.TextXAlignment.Left
                })
            }),
            onDismiss = v14.onDismiss
        });
    end);
end;
return v3.connect(function(v16)
    return {
        screenSize = v16.displayOptions.screenSize,
        visible = v16.common.showOnboardingModal
    };
end, function(v17)
    return {
        showOnboardingModal = function(v18)
            v17(v10(v18));
        end
    };
end)(v12);


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


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.InGameMenuDependencies);
local l_Roact_0 = v1.Roact;
local l_Cryo_0 = v1.Cryo;
local v4 = require(l_CorePackages_0.UIBlox);
local l_t_0 = v1.t;
local l_withStyle_0 = v4.Core.Style.withStyle;
local v7 = require(script.Parent.Parent.Parent.GlobalConfig);
local v8 = l_t_0.strictInterface({
    themeKey = l_t_0.optional(l_t_0.string),
    fontKey = l_t_0.optional(l_t_0.string),
    AnchorPoint = l_t_0.optional(l_t_0.Vector2),
    LayoutOrder = l_t_0.optional(l_t_0.integer),
    Position = l_t_0.optional(l_t_0.UDim2),
    Size = l_t_0.optional(l_t_0.UDim2),
    Text = l_t_0.string,
    TextColor3 = l_t_0.optional(l_t_0.Color3),
    TextTransparency = l_t_0.optional(l_t_0.numberConstrained(0, 1)),
    TextWrapped = l_t_0.optional(l_t_0.boolean),
    TextXAlignment = l_t_0.optional(l_t_0.enum(Enum.TextXAlignment)),
    TextYAlignment = l_t_0.optional(l_t_0.enum(Enum.TextYAlignment)),
    TextTruncate = l_t_0.optional(l_t_0.enum(Enum.TextTruncate)),
    Visible = l_t_0.optional(l_t_0.boolean),
    ZIndex = l_t_0.optional(l_t_0.integer),
    AutomaticSize = l_t_0.optional(l_t_0.enum(Enum.AutomaticSize)),
    [l_Roact_0.Children] = l_t_0.optional(l_t_0.table)
});
return function(v9)
    if v7.propValidation then
        assert(v8(v9));
    end;
    return l_withStyle_0(function(v10)
        local v11 = v10.Theme[v9.themeKey or "TextDefault"];
        local v12 = v10.Font[v9.fontKey or "Body"];
        return l_Roact_0.createElement("TextLabel", (l_Cryo_0.Dictionary.join({
            TextColor3 = v11.Color,
            TextTransparency = v11.Transparency
        }, v9, {
            fontKey = l_Cryo_0.None,
            themeKey = l_Cryo_0.None,
            BackgroundTransparency = 1,
            Font = v12.Font,
            TextSize = v12.RelativeSize * v10.Font.BaseSize
        })));
    end);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_TextService_0 = game:GetService("TextService");
local l_ExperienceStateCaptureService_0 = game:GetService("ExperienceStateCaptureService");
local v3 = require(script.Parent.Parent.Thunks.ShowHelpModalThunk);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v5 = require(script.Parent.FeedbackBarHint);
local v6 = require(l_CorePackages_0.Roact);
local v7 = require(l_CorePackages_0.RoactRodux);
local v8 = require(l_CorePackages_0.UIBlox);
local v9 = require(l_CorePackages_0.Packages.t);
local v10 = require(l_CorePackages_0.Cryo);
local l_withStyle_0 = v8.Core.Style.withStyle;
local l_ButtonStack_0 = v8.App.Button.ButtonStack;
local l_ButtonType_0 = v8.App.Button.Enum.ButtonType;
local v14 = v6.PureComponent:extend("RefinedFeedbackBar");
local function v15(...)
    return l_TextService_0:GetTextSize(...) + Vector2.new(2, 2);
end;
v14.validateProps = v9.strictInterface({
    leftHint = v9.strictInterface({
        text = v9.string
    })
});
v14.init = function(v16)
    v16.state = {
        barWidth = 0,
        hintStringsConcat = nil,
        requiredSpace = nil,
        hintRatios = nil
    };
    v16.onExitFeedbackMode = function()
        l_ExperienceStateCaptureService_0:ToggleCaptureMode();
    end;
    v16.openHelpModal = function()
        v16.props.showHelpModal(true);
    end;
end;
v14.calculateHintRatios = function(v17)
    local v18 = 84;
    local v19 = "";
    local v20 = {};
    local v21 = 0;
    local v22 = v10.List.join({
        v17
    }, {});
    for _, v24 in ipairs(v22) do
        v20[v24.text] = v15(v24.text, 17, 2, Vector2.new(10000, 10000)).X;
        v21 = v21 + v20[v24.text];
        v18 = (v18 + 36) + 8;
        v19 = v19 .. v24.text;
    end;
    for v25, v26 in pairs(v20) do
        v20[v25] = v26 / v21;
    end;
    return v20, v18 + math.max(#v22 - 2, 0) * 40, v19;
end;
v14.getDerivedStateFromProps = function(v27)
    local v28, v29, v30 = v14.calculateHintRatios(v27.leftHint);
    return {
        hintRatios = v28,
        requiredSpace = v29,
        hintStringsConcat = v30
    };
end;
v14.calculateHintSize = function(v31, v32, v33)
    local v34 = v32 - v31.state.requiredSpace;
    local v35 = v33.Header2.RelativeSize * v33.BaseSize;
    local v36 = v33.Header2.RelativeMinSize * v33.BaseSize;
    local l_X_0 = v15(v31.state.hintStringsConcat, v36, v33.Header2.Font, Vector2.new(10000, 10000)).X;
    if l_X_0 <= v34 then
        local l_X_1 = v15(v31.state.hintStringsConcat, v35, v33.Header2.Font, Vector2.new(10000, 10000)).X;
        local v39 = (v35 - v36) / (l_X_1 - l_X_0);
        return nil, (math.clamp(v34 * v39 + (v35 - v39 * l_X_1), v36, v35));
    else
        local v40 = {};
        for v41, v42 in pairs(v31.state.hintRatios) do
            v40[v41] = v42 * v34;
        end;
        return v40;
    end;
end;
v14.render = function(v43)
    return l_withStyle_0(function(v44)
        local l_Theme_0 = v44.Theme;
        return v6.createElement("Frame", {
            BorderSizePixel = 0,
            BackgroundTransparency = l_Theme_0.BackgroundUIContrast.Transparency,
            BackgroundColor3 = l_Theme_0.BackgroundUIContrast.Color,
            Size = UDim2.new(1, 0, 0, 72),
            Position = UDim2.fromScale(0, 1),
            AnchorPoint = Vector2.new(0, 1),
            [v6.Change.AbsoluteSize] = function(v46)
                v43:setState({
                    barWidth = v46.AbsoluteSize.X
                });
            end,
            [v6.Event.AncestryChanged] = function(v47)
                v43:setState({
                    barWidth = v47.AbsoluteSize.X
                });
            end
        }, {
            Padding = v6.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 24),
                PaddingRight = UDim.new(0, 24)
            }),
            LeftFrame = v6.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.fromScale(0.5, 1)
            }, {
                v6.createElement("UIListLayout", {
                    key = "Layout",
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    Padding = UDim.new(0, 40)
                }),
                (function(v48)
                    return v6.createElement(v5, v48);
                end)(v43.props.leftHint)
            }),
            RightFrame = v6.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.fromScale(0.35, 1),
                Position = UDim2.fromScale(1, 0),
                AnchorPoint = Vector2.new(1, 0)
            }, {
                Layout = v6.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = Enum.HorizontalAlignment.Right,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    Padding = UDim.new(0, 40)
                }),
                Buttons = l_withLocalization_0({
                    helpButtonText = "CoreScripts.Feedback.FeedbackBar.HelpButton",
                    exitFeedbackButtonText = "CoreScripts.Feedback.FeedbackBar.ExitFeedbackButton"
                })(function(v49)
                    return v6.createElement(l_ButtonStack_0, {
                        buttonHeight = 50,
                        buttons = {
                            {
                                buttonType = l_ButtonType_0.Secondary,
                                props = {
                                    onActivated = v43.openHelpModal,
                                    text = v49.helpButtonText
                                }
                            },
                            {
                                buttonType = l_ButtonType_0.PrimarySystem,
                                props = {
                                    isDisabled = false,
                                    onActivated = v43.onExitFeedbackMode,
                                    text = v49.exitFeedbackButtonText
                                }
                            }
                        },
                        forcedFillDirection = Enum.FillDirection.Horizontal
                    });
                end)
            })
        });
    end);
end;
return v7.connect(function()
    return {};
end, function(v50)
    return {
        showHelpModal = function(v51)
            v50(v3(v51));
        end
    };
end)(v14);


local l_TextService_0 = game:GetService("TextService");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_CorePackages_0.Packages.t);
local l_Parent_0 = script.Parent.Parent;
local v7 = require(l_Parent_0.Resources.Assets);
local v8 = require(l_Parent_0.Components.PortedComponents.ThemedTextLabel);
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local l_withStyle_0 = v4.Core.Style.withStyle;
local l_CursorKind_0 = v4.App.SelectionImage.CursorKind;
local l_withSelectionCursorProvider_0 = v4.App.SelectionImage.withSelectionCursorProvider;
local v13 = v3.PureComponent:extend("TextEntryField");
v13.validateProps = v5.strictInterface({
    enabled = v5.boolean,
    text = v5.string,
    textChanged = v5.callback,
    maxTextLength = v5.integer,
    autoFocusOnEnabled = v5.boolean,
    PlaceholderText = v5.string,
    LayoutOrder = v5.optional(v5.integer),
    Size = v5.UDim2,
    Position = v5.optional(v5.UDim2),
    textBoxRef = v5.optional(v5.table)
});
v13.init = function(v14)
    v14.textBoxRef = v14.props.textBoxRef or v3.createRef();
    v14.state = {
        textBoxWidth = 100,
        scrollingFrameHeight = 100,
        canvasPosition = 0,
        cursorPosition = 0
    };
end;
v13.calculateNeedsRescroll = function(v15, v16, v17)
    v15:setState(function(v18, v19)
        if v18.cursorPosition == -1 then
            return nil;
        else
            local v20 = v19.text:sub(1, v18.cursorPosition - 1);
            local v21 = v17.RelativeSize * v16.Font.BaseSize;
            local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v20, v21, v17.Font, (Vector2.new(v19.textBoxWidth, 10000)));
            if v18.scrollingFrameHeight + v18.canvasPosition < l_l_TextService_0_TextSize_0.Y then
                return {
                    canvasPosition = l_l_TextService_0_TextSize_0.Y - v18.scrollingFrameHeight
                };
            elseif l_l_TextService_0_TextSize_0.Y - v21 < v18.canvasPosition then
                return {
                    canvasPosition = l_l_TextService_0_TextSize_0.Y - v21
                };
            else
                return nil;
            end;
        end;
    end);
end;
v13.renderWithSelectionCursor = function(v23, v24)
    return l_withStyle_0(function(v25)
        local l_TextDefault_0 = v25.Theme.TextDefault;
        local l_Body_0 = v25.Font.Body;
        return v3.createElement(l_ImageSetLabel_0, {
            BackgroundTransparency = 1,
            Image = v7.Images.RoundedRect.Image,
            ImageColor3 = v25.Theme.BackgroundMuted.Color,
            ImageTransparency = v25.Theme.BackgroundMuted.Transparency,
            Position = v23.props.Position,
            ScaleType = v7.Images.RoundedRect.ScaleType,
            Size = v23.props.Size,
            SliceCenter = v7.Images.RoundedRect.SliceCenter,
            LayoutOrder = v23.props.LayoutOrder
        }, {
            ScrollingFrame = v3.createElement("ScrollingFrame", {
                Size = UDim2.new(1, -24, 1, -14),
                AnchorPoint = Vector2.new(0.5, 0),
                Position = UDim2.new(0.5, 0, 0, 7),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                CanvasSize = UDim2.new(1, -24, 0, l_TextService_0:GetTextSize(v23.props.text, l_Body_0.RelativeSize * v25.Font.BaseSize, l_Body_0.Font, Vector2.new(v23.state.textBoxWidth, 10000)).Y),
                ScrollBarThickness = 8,
                VerticalScrollBarInset = Enum.ScrollBarInset.Always,
                CanvasPosition = Vector2.new(0, v23.state.canvasPosition),
                Selectable = false,
                [v3.Change.CanvasPosition] = function(v28)
                    v23:setState({
                        canvasPosition = v28.CanvasPosition.Y
                    });
                end,
                [v3.Change.AbsoluteSize] = function(v29)
                    v23:setState({
                        scrollingFrameHeight = v29.AbsoluteSize.Y
                    }, function()
                        v23:calculateNeedsRescroll(v25, l_Body_0);
                    end);
                end
            }, {
                TextBox = v3.createElement("TextBox", {
                    Size = UDim2.new(1, -2, 1, 0),
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    Text = v23.props.text,
                    ClearTextOnFocus = false,
                    TextEditable = v23.props.enabled,
                    BackgroundTransparency = 1,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Top,
                    TextColor3 = l_TextDefault_0.Color,
                    TextTransparency = l_TextDefault_0.Transparency,
                    Font = l_Body_0.Font,
                    TextSize = l_Body_0.RelativeSize * v25.Font.BaseSize,
                    TextWrapped = true,
                    MultiLine = true,
                    SelectionImageObject = v24(l_CursorKind_0.InputFields),
                    [v3.Ref] = v23.textBoxRef,
                    [v3.Change.Text] = function(v30)
                        local l_status_0, l_result_0 = pcall(function()
                            return utf8.len(utf8.nfcnormalize(v30.Text));
                        end);
                        if not l_status_0 or v23.props.maxTextLength < l_result_0 then
                            v30.Text = v23.props.text;
                            return ;
                        else
                            v23.props.textChanged(v30.Text);
                            v23:setState({
                                cursorPosition = v30.CursorPosition
                            }, function()
                                v23:calculateNeedsRescroll(v25, l_Body_0);
                            end);
                            return ;
                        end;
                    end,
                    [v3.Change.AbsoluteSize] = function(v33)
                        v23:setState({
                            textBoxWidth = v33.AbsoluteSize.X
                        }, function()
                            v23:calculateNeedsRescroll(v25, l_Body_0);
                        end);
                    end,
                    [v3.Change.CursorPosition] = function(v34)
                        v23:setState({
                            cursorPosition = v34.CursorPosition
                        }, function()
                            v23:calculateNeedsRescroll(v25, l_Body_0);
                        end);
                    end
                }, {
                    PlaceholderText = v3.createElement(v8, {
                        themeKey = "TextDefault",
                        fontKey = "Body",
                        Text = v23.props.PlaceholderText,
                        Size = UDim2.new(1, 0, 1, 0),
                        Position = UDim2.new(0, 0, 0, 0),
                        TextTransparency = 0.5,
                        TextWrapped = true,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Top,
                        Visible = v23.props.text == ""
                    })
                })
            })
        });
    end);
end;
v13.render = function(v35)
    return l_withSelectionCursorProvider_0(function(v36)
        return v35:renderWithSelectionCursor(v36);
    end);
end;
v13.didUpdate = function(v37, v38)
    if v37.props.enabled or not v38.enabled then
        if not (((not v37.props.enabled or v38.enabled) or not v37.props.autoFocusOnEnabled) or not v37.textBoxRef.current) then
            v37.textBoxRef.current:CaptureFocus();
        end;
    elseif not (not v37.textBoxRef.current or not v37.textBoxRef.current:IsFocused()) then
        v37.textBoxRef.current:ReleaseFocus();
        return ;
    end;
end;
return v3.forwardRef(function(v39, v40)
    return v3.createElement(v13, v2.Dictionary.join(v39, {
        textBoxRef = v40
    }));
end);


return {
    propValidation = true,
    elementTracing = false,
    logStore = false
};


local v0 = require(script.Parent.Parent.Parent.InGameMenu.Network.Url);
local l_HttpService_0 = game:GetService("HttpService");
local l_Players_0 = game:GetService("Players");
local l_Promise_0 = require(game:GetService("CorePackages").InGameMenuDependencies).Promise;
local function _(v4, v5, v6)
    return l_HttpService_0:RequestInternal(v4):Start(function(v7, v8)
        if not v7 then
            v6((tostring(v8.StatusMessage)));
            return ;
        else
            v5();
            return ;
        end;
    end);
end;
return function(v10, v11, v12, v13, v14, v15)
    local v16 = 1;
    if not (v12 ~= "") or v12 == nil then
        v12 = "UID_" .. game.GameId;
        v16 = 2;
    end;
    local v17 = {
        Url = string.format("%sfeedback-api/v1/feedback/create-localization", v0.APIS_URL),
        Method = "POST",
        Body = l_HttpService_0:JSONEncode({
            LocalizationFeedback = {
                FeedbackTarget = {
                    ServiceSource = {
                        Type = v16,
                        ExternalId = v12
                    },
                    Source = {
                        ContentType = 1,
                        Value = v10
                    },
                    Translation = {
                        ContentType = 1,
                        Value = v11
                    }
                },
                Locale = not l_Players_0.LocalPlayer.LocaleId and "" or l_Players_0.LocalPlayer.LocaleId:gsub("-", "_"),
                ReasonType = v15,
                Suggestion = {
                    ContentType = 1,
                    Value = v13
                },
                Comments = v14
            }
        }),
        Headers = {
            ["Content-Type"] = "application/json",
            Accept = "application/json"
        }
    };
    return l_Promise_0.new(function(v18, v19)
        spawn(function()
            local l_v17_0 = v17;
            local l_v18_0 = v18;
            local l_v19_0 = v19;
            local _ = l_HttpService_0:RequestInternal(l_v17_0):Start(function(v23, v24)
                if not v23 then
                    l_v19_0((tostring(v24.StatusMessage)));
                    return ;
                else
                    l_v18_0();
                    return ;
                end;
            end);
        end);
    end);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Rodux);
local l_Parent_0 = script.Parent.Parent;
local v5 = require(l_RobloxGui_0.Modules.Flags.GetFFlagEnableFeedbackOnboardingModal);
local v6 = require(l_Parent_0.Actions.IncrementFeedbackSubmissionAttempts);
local v7 = require(l_Parent_0.Actions.ShowHelpModal);
local v8 = nil;
if v5 then
    v8 = require(l_Parent_0.Actions.ShowOnboardingModal);
end;
if not v5() then
    return v3.createReducer({
        numFeedbackSubmissionAttempts = nil,
        showHelpModal = true
    }, {
        [v6.name] = function(v9, v10)
            return v2.Dictionary.join(v9, {
                numFeedbackSubmissionAttempts = v10.numFeedbackSubmissionAttempts
            });
        end,
        [v7.name] = function(v11, v12)
            return v2.Dictionary.join(v11, {
                showHelpModal = v12.helpModalVisible
            });
        end
    });
else
    return v3.createReducer({
        numFeedbackSubmissionAttempts = nil,
        showHelpModal = false,
        showOnboardingModal = true
    }, {
        [v6.name] = function(v13, v14)
            return v2.Dictionary.join(v13, {
                numFeedbackSubmissionAttempts = v14.numFeedbackSubmissionAttempts
            });
        end,
        [v7.name] = function(v15, v16)
            return v2.Dictionary.join(v15, {
                showHelpModal = v16.helpModalVisible
            });
        end,
        [v8.name] = function(v17, v18)
            return v2.Dictionary.join(v17, {
                showOnboardingModal = v18.onboardingModalVisible
            });
        end
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Cryo);
return v1.createReducer({
    inputType = nil,
    screenSize = Vector2.new(0, 0)
}, {
    [require(script.Parent.Parent.Actions.SetScreenSize).name] = function(v3, v4)
        return v2.Dictionary.join(v3, {
            screenSize = v4.screenSize
        });
    end
});


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Rodux);
local l_Parent_0 = script.Parent.Parent;
return v2.createReducer({
    feedbackFlowState = require(l_Parent_0.Resources.Constants).State.Default,
    feedbackReason = 0
}, {
    [require(l_Parent_0.Actions.SetFeedbackFlowState).name] = function(v4, v5)
        return v1.Dictionary.join(v4, {
            feedbackFlowState = v5.feedbackFlowState
        });
    end,
    [require(l_Parent_0.Actions.SetFeedbackReason).name] = function(v6, v7)
        return v1.Dictionary.join(v6, {
            feedbackReason = v7.feedbackReason
        });
    end
});


local l_CorePackages_0 = game:GetService("CorePackages");
return (require(l_CorePackages_0.Rodux).combineReducers({
    common = require(script.common),
    displayOptions = require(script.displayOptions),
    feedbackFlowState = require(script.feedbackFlowState),
    FetchingStatus = require(l_CorePackages_0.Workspace.Packages.Http).Reducers.FetchingStatus
}));


local v0 = require(game:GetService("CorePackages").UIBlox);
local l_Images_0 = v0.App.ImageSet.Images;
local l_getIconSize_0 = v0.App.ImageSet.getIconSize;
local l_IconSize_0 = v0.App.ImageSet.Enum.IconSize;
return {
    Images = {
        RoundedRect = {
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(8, 8, 9, 9),
            Image = l_Images_0["component_assets/circle_17"]
        },
        BiometricIcon = {
            Size = UDim2.fromOffset(l_getIconSize_0(l_IconSize_0.Medium), l_getIconSize_0(l_IconSize_0.Medium)),
            Image = l_Images_0["icons/menu/biometric"]
        },
        FeedbackBarHintIcon = {
            Size = UDim2.fromOffset(l_getIconSize_0(l_IconSize_0.Medium), l_getIconSize_0(l_IconSize_0.Medium)),
            Image = l_Images_0["icons/actions/edit/add"]
        }
    }
};


return {
    State = {
        CurrentlyLeavingFeedback = "CurrentlyLeavingFeedback",
        Default = "Default",
        Disabled = "Disabled"
    }
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Promise_0 = require(l_CorePackages_0.InGameMenuDependencies).Promise;
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local l_Parent_0 = script.Parent.Parent;
local v4 = require(l_Parent_0.Network.PostFeedback);
local v5 = require(l_Parent_0.Actions.IncrementFeedbackSubmissionAttempts);
return function(v6, v7, v8, v9, v10, v11, v12)
    return l_PerformFetch_0.Single("PostFeedbackRequest", function(v13)
        return v4(v6, v7, v8, v9, v10, v11):andThen(function(v14)
            v13:dispatch(v5(v12));
            return l_Promise_0.resolve(v14);
        end, function(v15)
            return l_Promise_0.reject(v15);
        end);
    end);
end;


local v0 = require(script.Parent.Parent.Actions.ShowHelpModal);
return function(v1)
    return function(v2)
        v2:dispatch(v0(v1));
    end;
end;


local v0 = require(script.Parent.Parent.Actions.ShowOnboardingModal);
return function(v1)
    return function(v2)
        v2:dispatch(v0(v1));
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Rodux);
local v5 = require(l_CorePackages_0.RoactRodux);
local l_Localization_0 = require(l_CorePackages_0.Workspace.Packages.InExperienceLocales).Localization;
local l_LocalizationProvider_0 = require(l_CorePackages_0.Workspace.Packages.Localization).LocalizationProvider;
local v8 = require(script.GlobalConfig);
local v9 = require(script.Reducers);
local v10 = require(script.Components.FeedbackApp);
return {
    initialize = function()
        if v8.propValidation then
            v3.setGlobalConfig({
                propValidation = true
            });
        end;
        if v8.elementTracing then
            v3.setGlobalConfig({
                elementTracing = true
            });
        end;
        local v11 = {
            v4.thunkMiddleware
        };
        if v8.logStore then
            table.insert(v11, v4.loggerMiddleware);
        end;
        v3.mount(v3.createElement(v5.StoreProvider, {
            store = v4.Store.new(v9, nil, v11)
        }, {
            LocalizationProvider = v3.createElement(l_LocalizationProvider_0, {
                localization = l_Localization_0.new(l_LocalizationService_0.RobloxLocaleId)
            }, {
                Feedback = v3.createElement(v10)
            })
        }), l_CoreGui_0, "Feedback");
    end
};


return game:GetEngineFeature("FacialAnimationStreaming2") and not require(script.Parent.Parent.SelfieView.Flags.GetFFlagSelfieViewEnabled)();


game:DefineFastFlag("CoreScriptShowTeleportPrompt", false);
return game:GetFastFlag("CoreScriptShowTeleportPrompt");


game:DefineFastFlag("EnableVoiceChatStorybookFix", false);
return function()
    return game:GetFastFlag("EnableVoiceChatStorybookFix");
end;


game:DefineFastFlag("ErrorPromptResizesHeight", false);
return function()
    return game:GetFastFlag("ErrorPromptResizesHeight");
end;


game:DefineFastFlag("VRBottomBarDebugPositionConfig", false);
return game:GetFastFlag("VRBottomBarDebugPositionConfig");


game:DefineFastFlag("VRMoveVoiceIndicatorToBottomBar", false);
return game:GetEngineFeature("EnableMaquettesSupport") or game:GetFastFlag("VRMoveVoiceIndicatorToBottomBar");


game:DefineFastInt("VRTouchControllerTransparency", 0);
return game:GetFastInt("VRTouchControllerTransparency");


game:DefineFastFlag("FFlagAbuseReportEnableReportSentPage", false);
return function()
    return game:GetFastFlag("FFlagAbuseReportEnableReportSentPage");
end;


game:DefineFastFlag("AddOver12TopBarBadge", false);
return function()
    return game:GetFastFlag("AddOver12TopBarBadge");
end;


game:DefineFastFlag("AddPhoneVerificationLayers", false);
return function()
    return game:GetFastFlag("AddPhoneVerificationLayers");
end;


game:DefineFastFlag("AddVoiceExposureLayer", false);
return function()
    return game:GetFastFlag("AddVoiceExposureLayer");
end;


game:DefineFastFlag("AddVoiceTagsToAllARSubmissionsEnabled", false);
return function()
    return game:GetFastFlag("AddVoiceTagsToAllARSubmissionsEnabled");
end;


game:DefineFastFlag("AllowUsernameOverlayInScreenshotHud", false);
return function()
    return game:GetFastFlag("AllowUsernameOverlayInScreenshotHud");
end;


game:DefineFastFlag("AlwaysMountVoicePrompt", false);
return function()
    return game:GetFastFlag("AlwaysMountVoicePrompt");
end;


game:DefineFastFlag("AlwaysShowVRToggleV3", false);
return function()
    return game:GetFastFlag("AlwaysShowVRToggleV3");
end;


return function()
    return game:GetEngineFeature("AvatarChatServiceEnabled");
end;


game:DefineFastFlag("BatchVoiceParticipantsUpdates", false);
return function()
    return game:GetFastFlag("BatchVoiceParticipantsUpdates");
end;


game:DefineFastFlag("VoiceBetaBadge", true);
return function()
    return game:GetFastFlag("VoiceBetaBadge");
end;


game:DefineFastFlag("BetaBadgeLearnMoreLinkFormview", true);
return function()
    return game:GetFastFlag("BetaBadgeLearnMoreLinkFormview");
end;


game:DefineFastFlag("BubbleChatInexistantAdorneeFix", false);
return function()
    return game:GetFastFlag("BubbleChatInexistantAdorneeFix");
end;


game:DefineFastFlag("BubbleVoiceIndicatorSetting", false);
return function()
    return game:GetFastFlag("BubbleVoiceIndicatorSetting");
end;


game:DefineFastFlag("ChatTranslationHoldoutEnabled", false);
return function()
    return game:GetFastFlag("ChatTranslationHoldoutEnabled");
end;


game:DefineFastFlag("ChatTranslationLaunchEnabled", false);
return function()
    return game:GetFastFlag("ChatTranslationLaunchEnabled");
end;


game:DefineFastFlag("ChatTranslationSettingEnabled3", false);
return function()
    return game:GetFastFlag("ChatTranslationSettingEnabled3");
end;


game:DefineFastFlag("ClearUserFromRecentVoiceDataOnLeave", false);
return function()
    return game:GetFastFlag("ClearUserFromRecentVoiceDataOnLeave");
end;


game:DefineFastFlag("ClearVoiceStateOnRejoin", false);
return function()
    return game:GetFastFlag("ClearVoiceStateOnRejoin");
end;


local l_Players_0 = game:GetService("Players");
game:DefineFastFlag("ConsolidateBubbleChat5", false);
game:DefineFastInt("ConsolidateBubbleChatRollout4", 0);
return function()
    if not game:GetFastFlag("ConsolidateBubbleChat5") then
        local l_game_FastInt_0 = game:GetFastInt("ConsolidateBubbleChatRollout4");
        if l_game_FastInt_0 <= 0 then
            return false;
        elseif l_Players_0.LocalPlayer and l_Players_0.LocalPlayer.UserId then
            return (l_Players_0.LocalPlayer.UserId + 21) % 100 < l_game_FastInt_0;
        else
            return false;
        end;
    else
        return true;
    end;
end;


game:DefineFastFlag("EnableDeferredBlockStatusChange", false);
return function()
    return game:GetFastFlag("EnableDeferredBlockStatusChange");
end;


game:DefineFastFlag("DisableChromeDefaultOpen", false);
return function()
    return game:GetFastFlag("DisableChromeDefaultOpen");
end;


game:DefineFastFlag("DisableChromeFollowupFTUX", false);
return function()
    return game:GetFastFlag("DisableChromeFollowupFTUX");
end;


game:DefineFastFlag("DisableChromeFollowupOcclusion", false);
return function()
    return game:GetFastFlag("DisableChromeFollowupOcclusion");
end;


game:DefineFastFlag("DisableChromeFollowupUnibar", false);
return function()
    return game:GetFastFlag("DisableChromeFollowupUnibar");
end;


game:DefineFastFlag("DisableChromePinnedChat", false);
return function()
    return game:GetFastFlag("DisableChromePinnedChat");
end;


game:DefineFastFlag("DisableChromeUnibar", false);
return function()
    return game:GetFastFlag("DisableChromeUnibar");
end;


game:DefineFastFlag("EnableConfigurableReportAbuseIXP", false);
return function()
    return game:GetFastFlag("EnableConfigurableReportAbuseIXP");
end;


game:DefineFastFlag("EnableErrorIconFixV2", false);
return function()
    return game:GetFastFlag("EnableErrorIconFixV2");
end;


game:DefineFastFlag("EnableFeedbackOnboardingModal", false);
return function()
    return game:GetFastFlag("EnableFeedbackOnboardingModal");
end;


game:DefineFastFlag("EnableFeedbackReportDialogAdjustments", false);
return function()
    return game:GetFastFlag("EnableFeedbackReportDialogAdjustments");
end;


game:DefineFastFlag("EnableInExpVoiceUpsell4", false);
return function()
    return game:GetFastFlag("EnableInExpVoiceUpsell4");
end;


local l_Players_0 = game:GetService("Players");
local v1 = require(script.Parent.Parent.IsExperienceMenuABTestEnabled);
local v2 = require(script.Parent.Parent.ExperienceMenuABTestManager);
game:DefineFastFlag("EnableInGameMenuControls", false);
game:DefineFastString("InGameMenuControlsForcedUserIds", "");
return function()
    local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    while not l_LocalPlayer_0 do
        l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Wait();
        l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    end;
    for v4 in game:GetFastString("InGameMenuControlsForcedUserIds"):gmatch("%d+") do
        if tonumber(v4) == l_LocalPlayer_0.UserId then
            return true;
        end;
    end;
    if not v1() or not v2.default:areMenuControlsEnabled() then
        return game:GetFastFlag("EnableInGameMenuControls");
    else
        return true;
    end;
end;


local l_Players_0 = game:GetService("Players");
local v1 = require(script.Parent.Parent.IsExperienceMenuABTestEnabled);
local v2 = require(script.Parent.Parent.ExperienceMenuABTestManager);
local v3 = require(script.Parent.GetFStringInGameMenuModernizationBigTextForcedUserIds);
local v4 = require(script.Parent.GetFStringInGameMenuModernizationStickyBarForcedUserIds);
game:DefineFastFlag("EnableInGameMenuModernization", false);
game:DefineFastString("InGameMenuModernizationForcedUserIds", "");
return function()
    local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    while not l_LocalPlayer_0 do
        l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Wait();
        l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    end;
    for v6 in game:GetFastString("InGameMenuModernizationForcedUserIds"):gmatch("%d+") do
        if tonumber(v6) == l_LocalPlayer_0.UserId then
            return true;
        end;
    end;
    for v7 in v3():gmatch("%d+") do
        if tonumber(v7) == l_LocalPlayer_0.UserId then
            return true;
        end;
    end;
    for v8 in v4():gmatch("%d+") do
        if tonumber(v8) == l_LocalPlayer_0.UserId then
            return true;
        end;
    end;
    if not v1() or not v2.default:isMenuModernizationEnabled() then
        return game:GetFastFlag("EnableInGameMenuModernization");
    else
        return true;
    end;
end;


local l_Players_0 = game:GetService("Players");
local v1 = require(script.Parent.Parent.IsExperienceMenuABTestEnabled);
local v2 = require(script.Parent.Parent.ExperienceMenuABTestManager);
local v3 = require(script.Parent.GetFStringInGameMenuModernizationBigTextForcedUserIds);
return function()
    local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    while not l_LocalPlayer_0 do
        l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Wait();
        l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    end;
    for v5 in v3():gmatch("%d+") do
        if tonumber(v5) == l_LocalPlayer_0.UserId then
            return true;
        end;
    end;
    if not v1() or not v2.default:shouldShowBiggerText() then
        return false;
    else
        return true;
    end;
end;


local l_Players_0 = game:GetService("Players");
local v1 = require(script.Parent.Parent.IsExperienceMenuABTestEnabled);
local v2 = require(script.Parent.Parent.ExperienceMenuABTestManager);
local v3 = require(script.Parent.GetFStringInGameMenuModernizationStickyBarForcedUserIds);
return function()
    local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    while not l_LocalPlayer_0 do
        l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Wait();
        l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    end;
    for v5 in v3():gmatch("%d+") do
        if tonumber(v5) == l_LocalPlayer_0.UserId then
            return true;
        end;
    end;
    if not v1() or not v2.default:shouldShowStickyBar() then
        return false;
    else
        return true;
    end;
end;


game:DefineFastFlag("EnableInvitePromptLoadingState2", false);
return function()
    return game:GetFastFlag("EnableInvitePromptLoadingState2");
end;


game:DefineFastFlag("EnableLuaVoiceChatAnalyticsV2", false);
return function()
    return game:GetFastFlag("EnableLuaVoiceChatAnalyticsV2");
end;


game:DefineFastFlag("EnableMenuControlsABTest", false);
return function()
    return game:GetFastFlag("EnableMenuControlsABTest");
end;


local l_Players_0 = game:GetService("Players");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.Settings.Pages.ShareGame.NewInviteMenuExperimentManager);
game:DefineFastInt("EnableNewInviteMenuStyleRollout", 0);
game:DefineFastFlag("EnableNewInviteMenuStyle", false);
return function()
    if l_Players_0.LocalPlayer then
        if not game:GetFastFlag("EnableNewInviteMenuStyle") then
            if l_Players_0.LocalPlayer.UserId % 100 < game:GetFastInt("EnableNewInviteMenuStyleRollout") then
                return true;
            else
                return v1.default:getStyleEnabled();
            end;
        else
            return true;
        end;
    else
        return false;
    end;
end;


local _ = game:GetService("Players");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.Settings.Pages.ShareGame.NewInviteMenuExperimentManager);
game:DefineFastFlag("EnableNewInviteMenuCustomization2", false);
game:DefineFastFlag("EnableNewInviteMenuCustomizationIXP2", false);
return function()
    return game:GetFastFlag("EnableNewInviteMenuCustomization2") or game:GetFastFlag("EnableNewInviteMenuCustomizationIXP2") and v1.default:getCustomizationEnabled();
end;


game:DefineFastFlag("EnableNewInviteMenuIXP2", false);
return function()
    return game:GetFastFlag("EnableNewInviteMenuIXP2");
end;


local _ = game:GetService("Players");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.Settings.Pages.ShareGame.NewInviteMenuExperimentManager);
game:DefineFastFlag("EnableNewInviteSendEndpoint", false);
game:DefineFastFlag("EnableNewInviteSendEndpointIXP", false);
return function()
    return game:GetFastFlag("EnableNewInviteSendEndpoint") or game:GetFastFlag("EnableNewInviteSendEndpointIXP") and v1.default:getCustomizationEnabled();
end;


game:DefineFastFlag("EnableNudgeAnalyticsV2", false);
return function()
    return game:GetFastFlag("EnableNudgeAnalyticsV2");
end;


game:DefineFastFlag("EnableSharedInviteStore", false);
return function()
    return game:GetFastFlag("EnableSharedInviteStore");
end;


game:DefineFastFlag("EnableSoundSessionTelemetry5", false);
return function()
    return game:GetFastFlag("EnableSoundSessionTelemetry5");
end;


game:DefineFastFlag("EnableTeleportBackButton", false);
return function()
    return game:GetFastFlag("EnableTeleportBackButton");
end;


game:DefineFastFlag("EnableUniveralVoiceToasts", false);
return function()
    return game:GetFastFlag("EnableUniveralVoiceToasts");
end;


game:DefineFastFlag("EnableV3MenuABTest3", false);
return function()
    return game:GetFastFlag("EnableV3MenuABTest3");
end;


game:DefineFastFlag("EnableVoiceChatManualReconnectV2", false);
return function()
    return game:GetFastFlag("EnableVoiceChatManualReconnectV2");
end;


game:DefineFastFlag("EnableVoiceChatMuteOnBlockV2", true);
return function()
    return game:GetFastFlag("EnableVoiceChatMuteOnBlockV2");
end;


game:DefineFastFlag("EnableVoiceChatSpeakerIcons", false);
return function()
    return game:GetFastFlag("EnableVoiceChatSpeakerIcons");
end;


game:DefineFastFlag("EnableVoiceChatVoiceUISync", false);
return function()
    return game:GetFastFlag("EnableVoiceChatVoiceUISync");
end;


game:DefineFastFlag("EnableVoiceDefaultChannel", false);
return function()
    return game:GetFastFlag("EnableVoiceDefaultChannel");
end;


game:DefineFastFlag("EnableVoiceMicPromptToastFix", false);
return function()
    return game:GetFastFlag("EnableVoiceMicPromptToastFix");
end;


game:DefineFastFlag("EnableVoiceMuteAnalytics", false);
return function()
    return game:GetFastFlag("EnableVoiceMuteAnalytics");
end;


game:DefineFastFlag("EnableVoiceNudge", false);
return function()
    return game:GetFastFlag("EnableVoiceNudge");
end;


game:DefineFastFlag("EnableVoicePromptReasonText", false);
return function()
    return game:GetFastFlag("EnableVoicePromptReasonText");
end;


game:DefineFastFlag("EnableVoiceRccCheck", false);
return function()
    return game:GetFastFlag("EnableVoiceRccCheck");
end;


game:DefineFastFlag("LuaAppExtraInviteModalStringValidation", false);
return function()
    return game:GetFastFlag("LuaAppExtraInviteModalStringValidation");
end;


game:DefineFastFlag("FixChromeAllowlistWait", false);
return function()
    return game:GetFastFlag("FixChromeAllowlistWait");
end;


game:DefineFastFlag("FixMissingPlayerGuiCrash", false);
return function()
    return game:GetFastFlag("FixMissingPlayerGuiCrash");
end;


game:DefineFastFlag("FlashingDotUseAsyncInit", false);
return function()
    return game:GetFastFlag("FlashingDotUseAsyncInit");
end;


game:DefineFastFlag("ForceChatBubbleColorCS", true);
return function()
    return game:GetFastFlag("ForceChatBubbleColorCS");
end;


game:DefineFastFlag("GetClientReplicatorCheck", false);
return function()
    return game:GetFastFlag("GetClientReplicatorCheck");
end;


game:DefineFastFlag("InvertMuteAllPermissionButton", true);
return function()
    return game:GetFastFlag("InvertMuteAllPermissionButton");
end;


game:DefineFastFlag("LuaAppInviteListStyleFixes", false);
return function()
    return game:GetFastFlag("LuaAppInviteListStyleFixes");
end;


game:DefineFastFlag("InviteTextTruncateFix", false);
return function()
    return game:GetFastFlag("InviteTextTruncateFix");
end;


game:DefineFastFlag("JoinWithoutMicPermissions", false);
return function()
    return game:GetFastFlag("JoinWithoutMicPermissions");
end;


game:DefineFastFlag("VoiceChatLocalMutedNilFix", false);
return function()
    return game:GetFastFlag("VoiceChatLocalMutedNilFix");
end;


game:DefineFastFlag("LuaConsumePlayerModerated", false);
return function()
    return game:GetFastFlag("LuaConsumePlayerModerated");
end;


game:DefineFastFlag("LuaInExperienceCoreScriptsGameInviteUnificationV3", false);
return function()
    return game:GetFastFlag("LuaInExperienceCoreScriptsGameInviteUnificationV3");
end;


game:DefineFastFlag("MicConnectingToast", false);
return function()
    return game:GetFastFlag("MicConnectingToast");
end;


game:DefineFastFlag("MicStatesFix", false);
return function()
    return game:GetFastFlag("MicStatesFix");
end;


game:DefineFastFlag("MuteButtonRaceConditionFix", false);
return function()
    return game:GetFastFlag("MuteButtonRaceConditionFix");
end;


game:DefineFastFlag("NewEventIngestPlayerScriptsDimensions", false);
return function()
    return game:GetFastFlag("NewEventIngestPlayerScriptsDimensions");
end;


game:DefineFastFlag("OldMenuNewIcons", false);
return function()
    return game:GetFastFlag("OldMenuNewIcons");
end;


game:DefineFastFlag("OptimizeHelpMenuInputEvent", false);
return function()
    return game:GetFastFlag("OptimizeHelpMenuInputEvent");
end;


local v0 = require(script.Parent.GetFFlagOldMenuNewIcons);
game:DefineFastFlag("PauseMuteFixV2", false);
return function()
    return v0() and game:GetFastFlag("PauseMuteFixV2");
end;


local v0 = require(script.Parent.GetFFlagOldMenuNewIcons);
game:DefineFastFlag("PlayerListAnimateMic", false);
return function()
    return v0() and game:GetFastFlag("PlayerListAnimateMic");
end;


game:DefineFastFlag("PlayerViewRemoteEventTimeoutEnabled", false);
return function()
    return game:GetFastFlag("PlayerViewRemoteEventTimeoutEnabled");
end;


game:DefineFastFlag("RemoveAssetVersionEndpoint", false);
return function()
    return game:GetFastFlag("RemoveAssetVersionEndpoint");
end;


game:DefineFastFlag("RemoveInGameChatBubbleChatReferences", false);
return function()
    return game:GetFastFlag("RemoveInGameChatBubbleChatReferences");
end;


game:DefineFastFlag("ReportAbuseThankYouPageSizeFixV2", false);
return function()
    return game:GetFastFlag("ReportAbuseThankYouPageSizeFixV2");
end;


game:DefineFastFlag("ReportFirstExperienceCancelled", false);
return function()
    return game:GetFastFlag("ReportFirstExperienceCancelled");
end;


game:DefineFastFlag("ReportMenuCellToUseAutomaticSize", false);
return function()
    return game:GetFastFlag("ReportMenuCellToUseAutomaticSize");
end;


game:DefineFastFlag("ReportSentPageV2Enabled", false);
return function()
    return game:GetFastFlag("ReportSentPageV2Enabled");
end;


game:DefineFastFlag("RequestServerStats", false);
return function()
    return game:GetFastFlag("RequestServerStats");
end;


game:DefineFastFlag("RtMessaging", false);
return function()
    return game:GetFastFlag("RtMessaging");
end;


return function()
    return game:GetEngineFeature("ScreenshotHudApi");
end;


local v0 = require(script.Parent.GetFFlagShareInviteLinkContextMenuV1ABTestEnabled);
local v1 = require(script.Parent.GetFFlagShareInviteLinkContextMenuV3ABTestEnabled);
return function()
    return v0() or v1();
end;


game:DefineFastFlag("ShareInviteLinkContextMenuV1ABTestEnabled_v5", false);
return function()
    return game:GetFastFlag("ShareInviteLinkContextMenuV1ABTestEnabled_v5");
end;


game:DefineFastFlag("ShareInviteLinkContextMenuV3ABTestEnabled", false);
return function()
    return game:GetFastFlag("ShareInviteLinkContextMenuV3ABTestEnabled");
end;


game:DefineFastFlag("ShowMicConnectingIconAndToast", false);
return function()
    return game:GetFastFlag("ShowMicConnectingIconAndToast");
end;


game:DefineFastFlag("SubscriptionFailureUX", false);
return function()
    return game:GetFastFlag("SubscriptionFailureUX");
end;


game:DefineFastFlag("SwitchInExpTranslationsPackage2", false);
return function()
    return game:GetFastFlag("SwitchInExpTranslationsPackage2");
end;


game:DefineFastFlag("LuaAppThrottleInviteSendEndpoint", false);
return function()
    return game:GetFastFlag("LuaAppThrottleInviteSendEndpoint");
end;


game:DefineFastFlag("UXForCameraPerformanceIXPEnabled", false);
return function()
    return game:GetFastFlag("UXForCameraPerformanceIXPEnabled");
end;


game:DefineFastFlag("UpdateNudgeV3VoiceBanUI2", false);
return function()
    return game:GetFastFlag("UpdateNudgeV3VoiceBanUI2");
end;


game:DefineFastFlag("UpdateSelfieViewOnBan", false);
return function()
    return game:GetFastFlag("UpdateSelfieViewOnBan");
end;


game:DefineFastFlag("UseLuaSignalrConsumer", false);
return function()
    return game:GetFastFlag("UseLuaSignalrConsumer");
end;


local l_status_0, l_result_0 = pcall(function()
    return UserSettings():IsUserFeatureEnabled("UserIsChatTranslationEnabled2");
end);
return function()
    return l_status_0 and l_result_0;
end;


game:DefineFastFlag("VoiceARRemoveOffsiteLinksForVoice", false);
return function()
    return game:GetFastFlag("VoiceARRemoveOffsiteLinksForVoice");
end;


game:DefineFastFlag("VoiceARUnblockingUnmutingEnabled", false);
return function()
    return game:GetFastFlag("VoiceARUnblockingUnmutingEnabled");
end;


game:DefineFastFlag("VoiceAbuseReportsEnabledV3", false);
return function()
    return game:GetFastFlag("VoiceAbuseReportsEnabledV3");
end;


game:DefineFastFlag("VoiceBanShowToastOnSubsequentJoins", false);
return function()
    return game:GetFastFlag("VoiceBanShowToastOnSubsequentJoins");
end;


game:DefineFastFlag("VoiceChatServiceManagerUseAvatarChat", false);
return function()
    return game:GetFastFlag("VoiceChatServiceManagerUseAvatarChat");
end;


game:DefineFastFlag("VoiceChatUILogging", false);
return function()
    return game:GetFastFlag("VoiceChatUILogging");
end;


game:DefineFastFlag("VoiceChatUseSoundServiceInputApi", false);
return function()
    return game:GetFastFlag("VoiceChatUseSoundServiceInputApi");
end;


game:DefineFastFlag("VoiceChatWatchForMissedSignalROnEventReceived", false);
return function()
    return game:GetFastFlag("VoiceChatWatchForMissedSignalROnEventReceived");
end;


game:DefineFastFlag("VoiceRecordingIndicatorsEnabled", false);
return function()
    return game:GetFastFlag("VoiceRecordingIndicatorsEnabled");
end;


local l_VoiceChatService_0 = game:GetService("VoiceChatService");
game:DefineFastFlag("VoiceUseAudioRoutingAPIV3", false);
return function()
    return game:GetFastFlag("VoiceUseAudioRoutingAPIV3") and l_VoiceChatService_0.UseNewAudioApi;
end;


game:DefineFastFlag("VoiceUserAgency3", false);
return function()
    return game:GetFastFlag("VoiceUserAgency3");
end;


game:DefineFastFlag("VoiceUserAgencyEnableIXP", false);
return function()
    return game:GetFastFlag("VoiceUserAgencyEnableIXP");
end;


game:DefineFastFlag("WrapBlockModalScreenInProvider", false);
return function()
    return game:GetFastFlag("WrapBlockModalScreenInProvider");
end;


return function()
    local l_status_0, l_result_0 = pcall(function()
        return game:GetFastInt("CanHideGuiGroupId");
    end);
    return l_status_0 and l_result_0;
end;


game:DefineFastInt("EducationalPopupDisplayMaxCount", 0);
return function()
    return game:GetFastInt("EducationalPopupDisplayMaxCount");
end;


game:DefineFastInt("FacialAnimationStreamingHeartbeatStatsIntervalSec", 0);
return function()
    return game:GetFastInt("FacialAnimationStreamingHeartbeatStatsIntervalSec");
end;


game:DefineFastInt("PlayerViewRemoteEventTimeout", 5);
return function()
    return game:GetFastInt("PlayerViewRemoteEventTimeout");
end;


game:DefineFastInt("SoundSessionTelemetryThrottle", 0);
return function()
    return game:GetFastInt("SoundSessionTelemetryThrottle");
end;


game:DefineFastInt("LuaAppThrottleInviteSendEndpointDelay", 0.5);
return function()
    return game:GetFastInt("LuaAppThrottleInviteSendEndpointDelay");
end;


game:DefineFastInt("ThrottleParticipantsUpdateMs", 0);
return function()
    return game:GetFastInt("ThrottleParticipantsUpdateMs");
end;


game:DefineFastInt("VRScaleGuiDistance", 100);
return function()
    return game:GetFastInt("VRScaleGuiDistance");
end;


game:DefineFastInt("VoiceChatDeviceChangeDebounceDelay", 0.5);
return function()
    return game:GetFastInt("VoiceChatDeviceChangeDebounceDelay");
end;


game:DefineFastInt("VoiceToxicityToastDurationSeconds", 5);
return function()
    return game:GetFastInt("VoiceToxicityToastDurationSeconds");
end;


game:DefineFastInt("VoiceUsersInteractionExpiryTimeSeconds", 600);
return function()
    return game:GetFastInt("VoiceUsersInteractionExpiryTimeSeconds");
end;


game:DefineFastString("ChatTranslationEnabledLocales", "");
return function()
    return game:GetFastString("ChatTranslationEnabledLocales");
end;


game:DefineFastString("ChatTranslationLayerName", "");
return function()
    return game:GetFastString("ChatTranslationLayerName");
end;


game:DefineFastString("InExperienceNotificationsLayer", "Experience.Menu");
return function()
    return game:GetFastString("InExperienceNotificationsLayer");
end;


game:DefineFastString("InGameMenuModernizationBigTextForcedUserIds", "");
return function()
    return game:GetFastString("InGameMenuModernizationBigTextForcedUserIds");
end;


game:DefineFastString("InGameMenuModernizationStickyBarForcedUserIds", "");
return function()
    return game:GetFastString("InGameMenuModernizationStickyBarForcedUserIds");
end;


game:DefineFastString("LuaAppConsoleExperienceMenuLayer", "Experience.Menu.Console");
return function()
    return game:GetFastString("LuaAppConsoleExperienceMenuLayer");
end;


game:DefineFastString("LuaAppExperienceMenuLayer", "Experience.Menu");
return function()
    return game:GetFastString("LuaAppExperienceMenuLayer");
end;


game:DefineFastString("ReportAbuseIXPLayer", "Experience.Menu");
return function()
    return game:GetFastString("ReportAbuseIXPLayer");
end;


game:DefineFastString("TeleportBackButtonIXPCustomLayerName", "Ads.ImmersiveAdsBlock");
return function()
    return game:GetFastString("TeleportBackButtonIXPCustomLayerName");
end;


game:DefineFastString("TeleportBackButtonTopBarIXPCustomFieldName", "top_bar");
return function()
    return game:GetFastString("TeleportBackButtonTopBarIXPCustomFieldName");
end;


game:DefineFastString("UXForCameraPerformanceIXPLayerName", "");
return function()
    return game:GetFastString("UXForCameraPerformanceIXPLayerName");
end;


game:DefineFastString("VoiceBetaBadgeLearnMoreLink", "https://roblox.com/info/community-guidelines");
return function()
    return game:GetFastString("VoiceBetaBadgeLearnMoreLink");
end;


game:DefineFastString("VoiceExposureIXPLayerName", "Voice.Exposure");
return function()
    return game:GetFastString("VoiceExposureIXPLayerName");
end;


game:DefineFastString("VoiceUserAgencyIXPLayerName", "");
return function()
    return game:GetFastString("VoiceUserAgencyIXPLayerName");
end;


game:DefineFastFlag("FixGraphicsQuality", false);
return function()
    return game:GetFastFlag("FixGraphicsQuality") and game:GetEngineFeature("MatchingGraphicsQualityLevels");
end;


game:DefineFastFlag("AddApolloClientToExperienceChat", false);
return function()
    return game:GetFastFlag("AddApolloClientToExperienceChat");
end;


game:DefineFastFlag("DecoupleHasAndRequestPermissions", false);
return function()
    return game:GetFastFlag("DecoupleHasAndRequestPermissions");
end;


local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v1 = require(l_RobloxGui_0.Modules.Flags.getFFlagDecoupleHasAndRequestPermissions);
local v2 = require(l_RobloxGui_0.Modules.Flags.getFFlagPermissionsEarlyOutStallsQueue);
local v3 = require(l_RobloxGui_0.Modules.Flags.getFFlagUseCameraDeviceGrantedSignal);
game:DefineFastFlag("DoNotPromptCameraPermissionsOnMount", false);
return function()
    return ((game:GetFastFlag("DoNotPromptCameraPermissionsOnMount") and v1()) and v2()) and v3();
end;


local v0 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.Flags.getFFlagDoNotPromptCameraPermissionsOnMount);
game:DefineFastFlag("EnableAlwaysAvailableCamera", false);
return function()
    return game:GetFastFlag("EnableAlwaysAvailableCamera") and v0();
end;


game:DefineFastFlag("EnableAnalyticsForCameraDevicePermissions", false);
return function()
    return game:GetFastFlag("EnableAnalyticsForCameraDevicePermissions");
end;


game:DefineFastFlag("EnableShimmeringIconLegacyChatService", false);
return function()
    return game:GetFastFlag("EnableShimmeringIconLegacyChatService");
end;


game:DefineFastFlag("LegacyConnectingMicStateFix", false);
return function()
    return game:GetFastFlag("LegacyConnectingMicStateFix");
end;


game:DefineFastFlag("MicrophoneDevicePermissionsPromptLogging", false);
return function()
    return game:GetFastFlag("MicrophoneDevicePermissionsPromptLogging");
end;


game:DefineFastFlag("PermissionsEarlyOutStallsQueue", false);
return function()
    return game:GetFastFlag("PermissionsEarlyOutStallsQueue");
end;


game:DefineFastFlag("RenderVoiceBubbleAfterAsyncInit", false);
return function()
    return game:GetFastFlag("RenderVoiceBubbleAfterAsyncInit");
end;


game:DefineFastFlag("UseCameraDeviceGrantedSignal", false);
return function()
    return game:GetFastFlag("UseCameraDeviceGrantedSignal");
end;


game:DefineFastFlag("UseCameraDevicesListener", false);
return function()
    return game:GetFastFlag("UseCameraDevicesListener");
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_rolloutByApplicationId_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).rolloutByApplicationId;
local l_isCharacterNameHandlerEnabled_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).isCharacterNameHandlerEnabled;
game:DefineFastInt("LeaderboardUserProfileApiRollout", 0);
game:DefineFastFlag("LeaderboardUserProfileApiEnabledForAll", false);
local function v3()
    return game:GetFastInt("LeaderboardUserProfileApiRollout");
end;
local function _()
    return game:GetFastFlag("LeaderboardUserProfileApiEnabledForAll");
end;
local v5 = nil;
return function()
    if l_isCharacterNameHandlerEnabled_0() then
        if not v5 then
            v5 = l_rolloutByApplicationId_0(v3);
        end;
        return game:GetFastFlag("LeaderboardUserProfileApiEnabledForAll") or v5();
    else
        return false;
    end;
end;


game:DefineFastFlag("EngineTruncationEnabledForIngameSettingsV2", false);
return function()
    return game:GetFastFlag("EngineTruncationEnabledForIngameSettingsV2");
end;


local l_HttpService_0 = game:GetService("HttpService");
local l_HttpRbxApiService_0 = game:GetService("HttpRbxApiService");
local l_StarterGui_0 = game:GetService("StarterGui");
local l_Players_0 = game:GetService("Players");
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
while not l_LocalPlayer_0 do
    l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Wait();
    l_LocalPlayer_0 = l_Players_0.LocalPlayer;
end;
local v5 = {};
v5.__index = v5;
local v6 = string.gsub(string.gsub(game:GetService("ContentProvider").BaseUrl:lower(), "http:", "https:"), "www", "friends") .. "v1/users/{userId}/friends/count";
v5.GetFriendCountAsync = function(_, v8)
    local v9 = nil;
    local l_status_0, l_result_0 = pcall(function()
        return l_HttpRbxApiService_0:GetAsyncFullUrl((string.gsub(v6, "{userId}", (tostring(v8)))));
    end);
    if l_status_0 then
        l_result_0 = l_HttpService_0:JSONDecode(l_result_0);
        if l_result_0.count then
            v9 = l_result_0.count;
        end;
        return v9;
    else
        print(v6, "failed because", l_result_0);
        return nil;
    end;
end;
v5.MaxFriendCount = function(_)
    return 200;
end;
local l_BindableEvent_0 = Instance.new("BindableEvent");
local l_BindableEvent_1 = Instance.new("BindableEvent");
l_LocalPlayer_0.FriendStatusChanged:connect(function(v15, v16)
    if v16 == Enum.FriendStatus.Friend then
        l_BindableEvent_0:Fire(v15);
        return ;
    else
        if v16 == Enum.FriendStatus.NotFriend then
            l_BindableEvent_1:Fire(v15);
        end;
        return ;
    end;
end);
l_StarterGui_0:RegisterGetCore("PlayerFriendedEvent", function()
    return l_BindableEvent_0;
end);
l_StarterGui_0:RegisterGetCore("PlayerUnfriendedEvent", function()
    return l_BindableEvent_1;
end);
return v5;


local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_Players_0 = game:GetService("Players");
local _ = game:GetService("CoreGui");
local v3 = nil;
local v4 = nil;
local v5 = nil;
local v6 = nil;
local l_BindableEvent_0 = Instance.new("BindableEvent");
local function v8()
    if v4 and v4.LocaleId ~= v5 then
        v5 = v4.LocaleId;
        l_BindableEvent_0:Fire(v5);
    end;
end;
local function _()
    v3 = nil;
    v4 = nil;
    if v6 then
        v6:Disconnect();
        v6 = nil;
    end;
end;
local function _()
    if not v3 then
        v4 = l_Players_0.LocalPlayer;
        if v4 then
            v3 = l_LocalizationService_0:GetTranslatorForPlayer(v4);
            if v4 and v4.LocaleId ~= v5 then
                v5 = v4.LocaleId;
                l_BindableEvent_0:Fire(v5);
            end;
            v6 = v4:GetPropertyChangedSignal("LocaleId"):Connect(v8);
        end;
    end;
    return v3;
end;
local v11 = {};
local function _(v12)
    local v13 = v11[v12];
    if v13 then
        v13.connection:Disconnect();
        v11[v12] = nil;
        return ;
    else
        return ;
    end;
end;
local _ = function(v15, v16)
    return function(_, _)
        if game:IsAncestorOf(v15) then
            v16.hasBeenAdded = true;
        elseif v16.hasBeenAdded then
            local l_v15_0 = v15;
            local v20 = v11[l_v15_0];
            if v20 then
                v20.connection:Disconnect();
                v11[l_v15_0] = nil;
                return ;
            else
                return ;
            end;
        end;
    end;
end;
local function _(v22, v23, v24)
    v22.context = v23;
    v22.text = v24;
end;
local function v34(v26, v27, v28)
    local v29 = {
        hasBeenAdded = game:IsAncestorOf(v26),
        context = v27,
        text = v28
    };
    v29.connection = v26.AncestryChanged:Connect(function(_, _)
        if game:IsAncestorOf(v26) then
            v29.hasBeenAdded = true;
        elseif v29.hasBeenAdded then
            local l_v26_0 = v26;
            local v33 = v11[l_v26_0];
            if v33 then
                v33.connection:Disconnect();
                v11[l_v26_0] = nil;
                return ;
            else
                return ;
            end;
        end;
    end);
    return v29;
end;
local function _(v35, v36, v37)
    if v11[v35] == nil then
        v11[v35] = v34(v35, v36, v37);
        return ;
    else
        local v38 = v11[v35];
        v38.context = v36;
        v38.text = v37;
        return ;
    end;
end;
l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Connect(function()
    v3 = nil;
    v4 = nil;
    if v6 then
        v6:Disconnect();
        v6 = nil;
    end;
    if not v3 then
        v4 = l_Players_0.LocalPlayer;
        if v4 then
            v3 = l_LocalizationService_0:GetTranslatorForPlayer(v4);
            if v4 and v4.LocaleId ~= v5 then
                v5 = v4.LocaleId;
                l_BindableEvent_0:Fire(v5);
            end;
            v6 = v4:GetPropertyChangedSignal("LocaleId"):Connect(v8);
        end;
    end;
end);
local v44 = {
    LocaleChanged = l_BindableEvent_0.Event,
    TranslateGameText = function(_, v41, v42)
        if not v3 then
            v4 = l_Players_0.LocalPlayer;
            if v4 then
                v3 = l_LocalizationService_0:GetTranslatorForPlayer(v4);
                if v4 and v4.LocaleId ~= v5 then
                    v5 = v4.LocaleId;
                    l_BindableEvent_0:Fire(v5);
                end;
                v6 = v4:GetPropertyChangedSignal("LocaleId"):Connect(v8);
            end;
        end;
        local l_v3_0 = v3;
        if not l_v3_0 then
            return v42;
        else
            return l_v3_0:RobloxOnlyTranslate(v41, v42);
        end;
    end
};
l_LocalizationService_0.AutoTranslateWillRun:Connect(function()
    for v45, v46 in pairs(v11) do
        v45.Text = v44:TranslateGameText(v46.context, v46.text);
    end;
end);
v44.TranslateAndRegister = function(v47, v48, v49, v50)
    v48.Text = v47:TranslateGameText(v49, v50);
    if v11[v48] == nil then
        v11[v48] = v34(v48, v49, v50);
        return v50;
    else
        local v51 = v11[v48];
        v51.context = v49;
        v51.text = v50;
        return v50;
    end;
end;
return v44;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_EventIngestService_0 = game:GetService("EventIngestService");
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.Workspace.Packages.InputUi);
local l_GamepadDisconnectedModal_0 = v4.Gamepad.GamepadDisconnectedModal;
local l_useGamepadDisconnectOverlayEffect_0 = v4.Gamepad.useGamepadDisconnectOverlayEffect;
local v7 = require(l_CoreGui_0.RobloxGui.Modules.InGameMenuConstants);
local v8 = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.EventIngest.new(l_EventIngestService_0);
local l_GetFFlagGamepadAnalytics_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagGamepadAnalytics;
return function()
    local v10, v11 = v3.useState(false);
    local v12 = v3.useCallback(function()
        v11(false);
    end, {
        v11
    });
    local v13 = v3.useCallback(function()
        v11(true);
    end, {
        v11
    });
    if not l_GetFFlagGamepadAnalytics_0() then
        l_useGamepadDisconnectOverlayEffect_0(v13, v12);
    else
        l_useGamepadDisconnectOverlayEffect_0(v13, v12, v8, "InExperience");
    end;
    if not v10 then
        return nil;
    else
        return v3.createElement("ScreenGui", {
            DisplayOrder = v7.DisplayOrder.HeadsetDisconnectedDialog,
            IgnoreGuiInset = true,
            OnTopOfCoreBlur = true,
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling
        }, {
            GamepadDisconnectedModal = v3.createElement(l_GamepadDisconnectedModal_0)
        });
    end;
end;


local l_makeActionCreator_0 = require(game:GetService("CorePackages").Rodux).makeActionCreator;
local v1 = require(script.Parent.Parent.Helpers.maybeAssert);
local v2 = require(script.Parent.Parent.Types);
return l_makeActionCreator_0(script.Name, function(v3)
    v1(v2.IMessage(v3));
    return {
        message = v3
    };
end);


local l_Players_0 = game:GetService("Players");
local v1 = require(game:GetService("CorePackages").ExperienceChat);
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v3 = require(script.Parent.Parent.Types);
local v4 = require(script.Parent.Parent.Helpers.maybeAssert);
local v5 = require(script.Parent.AddMessageWithTimeout);
local v6 = require(l_RobloxGui_0.Modules.Flags.GetFFlagConsolidateBubbleChat);
return function(v7)
    v4(v3.IMessageData(v7));
    return function(v8)
        local l_status_0, l_result_0 = pcall(function()
            return l_Players_0:GetPlayerByUserId(v7.SpeakerUserId);
        end);
        if not (not l_status_0 or not l_result_0) then
            local l_Character_0 = l_result_0.Character;
            if l_Character_0 then
                local v12 = {
                    id = tostring(v7.ID),
                    userId = tostring(v7.SpeakerUserId),
                    name = v7.FromSpeaker,
                    text = v7.Message or "",
                    timestamp = v7.Time,
                    adornee = l_Character_0
                };
                if v6() then
                    local l_Events_0 = v1.Events;
                    if l_Events_0.LegacyBubbleCreated ~= nil then
                        l_Events_0.LegacyBubbleCreated(v12);
                    end;
                end;
                return v8:dispatch(v5(v12));
            end;
        end;
    end;
end;


local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local _ = require(game:GetService("CorePackages").Packages.Cryo);
local v2 = require(script.Parent.Parent.Types);
local v3 = require(script.Parent.Parent.Helpers.maybeAssert);
local v4 = require(script.Parent.AddMessage);
local v5 = require(script.Parent.RemoveMessage);
local v6 = require(script.Parent.Parent.Helpers.getSettingsForMessage);
local v7 = game:DefineFastInt("BubbleChatAddMessageRolloutPercent", 100);
return function(v8)
    v3(v2.IMessage(v8));
    return function(v9)
        v9:dispatch(v4(v8));
        local v10 = v6(v9:getState().chatSettings, v8);
        local v11 = v9:getState().userMessages[v8.userId];
        local l_messages_0 = v9:getState().messages;
        for v13 = 1, #v11 - v10.MaxBubbles do
            v9:dispatch(v5(l_messages_0[v11[v13]]));
        end;
        l_RbxAnalyticsService_0:ReportCounter("RoactBubbleChat-MessagesSent");
        if math.random(1, 100) <= v7 then
            l_RbxAnalyticsService_0:SendEventDeferred("client", "bubbleChatMetric", "messageAdded", {
                placeId = game.PlaceId,
                senderUserId = v8.userId
            });
        end;
        wait(v10.BubbleDuration);
        v9:dispatch(v5(v8));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_makeActionCreator_0 = require(l_CorePackages_0.Rodux).makeActionCreator;
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(script.Parent.Parent.Helpers.maybeAssert);
return l_makeActionCreator_0(script.Name, function(v4)
    v3(v2.boolean(v4));
    return {
        enabled = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.ExperienceChat);
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_makeActionCreator_0 = require(l_CorePackages_0.Rodux).makeActionCreator;
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(script.Parent.Parent.Helpers.maybeAssert);
local v6 = require(l_RobloxGui_0.Modules.Flags.GetFFlagConsolidateBubbleChat);
local v7 = v4.tuple(v4.string, v4.string);
return l_makeActionCreator_0(script.Name, function(v8, v9)
    v5(v7(v8, v9));
    if v6() then
        local l_Events_0 = v1.Events;
        if l_Events_0.LegacyBubbleTextUpdated ~= nil then
            l_Events_0.LegacyBubbleTextUpdated(v8, v9);
        end;
    end;
    return {
        messageId = v8,
        newText = v9
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_makeActionCreator_0 = require(l_CorePackages_0.Rodux).makeActionCreator;
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(script.Parent.Parent.Helpers.maybeAssert);
return l_makeActionCreator_0(script.Name, function(v4)
    v3(v2.table(v4));
    return {
        settings = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.Cryo);
local v2 = require(l_CorePackages_0.Packages.Roact);
local v3 = require(l_CorePackages_0.Packages.RoactRodux);
require(l_CorePackages_0.UIBlox).init(require(l_CorePackages_0.Workspace.Packages.RobloxAppUIBloxConfig));
local v4 = require(script.Parent.Helpers.StoryStore);
local v5 = require(script.Parent.ChatSettings);
v2.setGlobalConfig({
    elementTracing = true,
    propValidation = true
});
return {
    roact = v2,
    mapStory = function(v6)
        return function(v7)
            return v2.createElement(v3.StoreProvider, {
                store = v4
            }, {
                Story = v2.createElement(v6, v1.Dictionary.join(v7, {
                    chatSettings = v5
                }))
            });
        end;
    end
};


return {
    BubbleDuration = 15,
    MaxBubbles = 3,
    BackgroundColor3 = Color3.fromRGB(250, 250, 250),
    TextColor3 = Color3.fromRGB(57, 59, 61),
    TextSize = 16,
    Font = require(game:GetService("CorePackages").Workspace.Packages.Style).AppFonts.default:getMedium(),
    Transparency = 0.1,
    CornerEnabled = true,
    CornerRadius = UDim.new(0, 12),
    TailVisible = true,
    Padding = 8,
    MaxWidth = 300,
    BackgroundImage = {
        Image = "",
        ImageColor3 = Color3.new(1, 1, 1),
        ImageRectOffset = Vector2.new(),
        ImageRectSize = Vector2.new(),
        ScaleType = Enum.ScaleType.Stretch,
        SliceCenter = Rect.new(Vector2.new(), Vector2.new()),
        SliceScale = 1,
        TileSize = UDim2.fromScale(1, 1)
    },
    BackgroundGradient = {
        Enabled = false,
        Color = ColorSequence.new(Color3.fromRGB(150, 150, 150), Color3.fromRGB(250, 250, 250)),
        Offset = Vector2.new(),
        Rotation = 0,
        Transparency = NumberSequence.new(0)
    },
    SizeAnimation = {
        Enabled = true,
        SpringDampingRatio = 1,
        SpringFrequency = 2
    },
    TransparencyAnimation = {
        Enabled = true,
        SpringDampingRatio = 1,
        SpringFrequency = 2
    },
    VerticalStudsOffset = 0,
    LocalPlayerStudsOffset = Vector3.new(0, 0, 2),
    BubblesSpacing = 6,
    MinimizeDistance = 40,
    MaxDistance = 100,
    AdorneeName = "HumanoidRootPart",
    Voice = {
        ShowIndicator = true
    },
    UserSpecificSettings = {}
};


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.Packages.RoactRodux);
local v4 = require(script.Parent.BubbleChatBillboards);
local v5 = v1.Component:extend("App");
v5.validateProps = v2.strictInterface({
    store = v2.table
});
v5.render = function(v6)
    return v1.createElement(v3.StoreProvider, {
        store = v6.props.store
    }, {
        BubbleChatBillboards = v1.createElement(v4)
    });
end;
return v5;