local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.Common.Roact);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local v3 = v1.PureComponent:extend("GridView");
local v4 = game:DefineFastFlag("LuaAppGridViewRemoveDelay", false);
v3.defaultProps = {
    items = {},
    cellPaddingOffset = Vector2.new(0, 0),
    windowAbsoluteSize = Vector2.new(1, 1),
    itemAbsoluteSize = Vector2.new(1, 1),
    horizontalAlignment = Enum.HorizontalAlignment.Center,
    onItemsPerRowChanged = nil
};
v3.init = function(v5)
    v5.state = {
        itemsPerRow = 0,
        itemWindowStart = 1
    };
    v5.containerRef = v1.createRef();
    v5.isMounted = false;
    v5.itemsPerRow = 0;
    v5.itemWindowStart = 1;
    v5.getTotalRowsAndHeight = l_memoize_0(function(v6, v7, v8, v9, v10)
        local v11 = 0;
        if v6 > 0 then
            v11 = math.ceil(v7 / v6);
        end;
        if v8 ~= nil then
            v11 = math.min(v11, v8);
        end;
        return v11, (math.max(0, v10.Y * v11 + v9.Y * (v11 - 1)));
    end);
    v5.getWindowHeight = function()
        local l_windowAbsoluteSize_0 = v5.props.windowAbsoluteSize;
        local l_screenSize_0 = v5.props.screenSize;
        if not l_screenSize_0 then
            return l_windowAbsoluteSize_0.Y;
        else
            return l_screenSize_0.Y;
        end;
    end;
    v5.updateItemWindowBounds = function(v14)
        local l_current_0 = v5.containerRef.current;
        if l_current_0 then
            local l_Y_0 = l_current_0.AbsolutePosition.Y;
            local l_windowAbsoluteSize_1 = v5.props.windowAbsoluteSize;
            local l_cellPaddingOffset_0 = v5.props.cellPaddingOffset;
            local v19 = -l_Y_0;
            local l_itemAbsoluteSize_0 = v5.props.itemAbsoluteSize;
            local v21 = math.floor((l_windowAbsoluteSize_1.X + l_cellPaddingOffset_0.X) / (l_itemAbsoluteSize_0.X + l_cellPaddingOffset_0.X));
            local v22 = math.max(0, (math.floor(v19 / (l_itemAbsoluteSize_0.Y + l_cellPaddingOffset_0.Y))));
            if v21 > 0 then
                local v23, v24 = v5.getTotalRowsAndHeight(v21, #v5.props.items, v5.props.numberOfRowsToShow, l_cellPaddingOffset_0, l_itemAbsoluteSize_0);
                v22 = if not (v5.getWindowHeight() >= l_Y_0) or l_Y_0 + v24 < 0 then v23 else math.min(v22, v23);
            end;
            local v25 = math.max(1, v22 * v21 + 1);
            local v26 = true;
            if v21 == v5.itemsPerRow then
                v26 = v25 ~= v5.itemWindowStart;
            end;
            if v5.props.onItemsPerRowChanged and v21 ~= v5.itemsPerRow then
                v5.props.onItemsPerRowChanged(v21);
            end;
            v5.itemsPerRow = v21;
            v5.itemWindowStart = v25;
            if not (not v26 or not v5.isMounted) then
                if v4 or not v14 then
                    v5:setState({
                        itemsPerRow = v5.itemsPerRow,
                        itemWindowStart = v5.itemWindowStart
                    });
                else
                    spawn(function()
                        if v5.isMounted then
                            v5:setState({
                                itemsPerRow = v5.itemsPerRow,
                                itemWindowStart = v5.itemWindowStart
                            });
                        end;
                    end);
                    return ;
                end;
            end;
            return ;
        else
            return ;
        end;
    end;
end;
v3.render = function(v27)
    local l_layoutOrder_0 = v27.props.layoutOrder;
    local l_items_0 = v27.props.items;
    local l_renderItem_0 = v27.props.renderItem;
    local l_cellPaddingOffset_1 = v27.props.cellPaddingOffset;
    local l_numberOfRowsToShow_0 = v27.props.numberOfRowsToShow;
    local l_itemAbsoluteSize_1 = v27.props.itemAbsoluteSize;
    local l_horizontalAlignment_0 = v27.props.horizontalAlignment;
    local l_itemsPerRow_0 = v27.state.itemsPerRow;
    local l_itemWindowStart_0 = v27.state.itemWindowStart;
    local v37 = #l_items_0;
    local v38, v39 = v27.getTotalRowsAndHeight(l_itemsPerRow_0, v37, l_numberOfRowsToShow_0, l_cellPaddingOffset_1, l_itemAbsoluteSize_1);
    local v40 = (math.ceil(v27.getWindowHeight() / (l_itemAbsoluteSize_1.Y + l_cellPaddingOffset_1.Y)) + 1) * l_itemsPerRow_0;
    local v41 = math.min(v37, v38 * l_itemsPerRow_0, (l_itemWindowStart_0 + v40) - 1);
    local v42 = math.min(((l_itemWindowStart_0 - 1) / l_itemsPerRow_0) * (l_itemAbsoluteSize_1.Y + l_cellPaddingOffset_1.Y), v39);
    local v43 = nil;
    if typeof(l_renderItem_0) == "function" then
        v43 = {
            Layout = v1.createElement("UIGridLayout", {
                CellPadding = UDim2.new(0, l_cellPaddingOffset_1.X, 0, l_cellPaddingOffset_1.Y),
                CellSize = UDim2.new(0, l_itemAbsoluteSize_1.X, 0, l_itemAbsoluteSize_1.Y),
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = l_horizontalAlignment_0,
                SortOrder = Enum.SortOrder.LayoutOrder
            })
        };
        if l_itemWindowStart_0 > 0 then
            for v44 = l_itemWindowStart_0, v41 do
                v43[v44 % v40] = l_renderItem_0(l_items_0[v44], l_itemAbsoluteSize_1, v44, if l_itemsPerRow_0 > 0 then math.ceil(v44 / l_itemsPerRow_0) else -1);
            end;
        end;
    end;
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, v39),
        LayoutOrder = l_layoutOrder_0,
        BackgroundTransparency = 1,
        [v1.Ref] = v27.containerRef,
        [v1.Change.AbsolutePosition] = function()
            if not v4 then
                v27.updateItemWindowBounds(true);
                return ;
            else
                v27.updateItemWindowBounds();
                return ;
            end;
        end
    }, {
        Padding = v1.createElement("UIPadding", {
            PaddingTop = UDim.new(0, v42)
        }),
        Content = v43 and v1.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, v43)
    });
end;
v3.didMount = function(v45)
    v45.isMounted = true;
    if not v4 then
        v45.updateItemWindowBounds(false);
        return ;
    else
        v45.updateItemWindowBounds();
        return ;
    end;
end;
v3.willUnmount = function(v46)
    v46.isMounted = false;
end;
v3.didUpdate = function(v47, v48, _)
    local v50 = true;
    if v47.props.windowAbsoluteSize == v48.windowAbsoluteSize then
        v50 = true;
        if v47.props.itemAbsoluteSize == v48.itemAbsoluteSize then
            v50 = true;
            if v47.props.cellPaddingOffset == v48.cellPaddingOffset then
                v50 = v47.props.screenSize and v47.props.screenSize ~= v48.screenSize;
            end;
        end;
    end;
    if v50 then
        if not v4 then
            v47.updateItemWindowBounds(false);
        else
            v47.updateItemWindowBounds();
            return ;
        end;
    end;
end;
return v3;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v3 = require(l_CorePackages_0.Packages.Cryo);
local v4 = require(l_CorePackages_0.Packages.Roact);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(l_Modules_0.LuaApp.Util.rebuildJoints);
local v7 = require(l_Modules_0.LuaApp.Components.Generic.AvatarViewportFrame);
local v8 = v5.interface({
    humanoidDescription = v5.optional(v5.instanceIsA("HumanoidDescription")),
    loadRigType = v5.optional(v5.enum(Enum.HumanoidRigType)),
    Size = v5.optional(v5.UDim2),
    Position = v5.optional(v5.UDim2)
});
local v9 = v4.PureComponent:extend("HumanoidViewportFrame");
v9.defaultProps = {
    loadRigType = Enum.HumanoidRigType.R15
};
v9.init = function(v10)
    v10.state = {
        modelRef = nil
    };
    v10.isMounted = false;
end;
v9.updateHumanoid = function(v11)
    if v11.state.modelRef ~= nil then
        v11.state.modelRef.value:Destroy();
        if v11.isMounted then
            v11:setState({
                modelRef = nil
            });
        end;
    end;
    local l_humanoidDescription_0 = v11.props.humanoidDescription;
    local l_loadRigType_0 = v11.props.loadRigType;
    if l_humanoidDescription_0 == nil then
        return ;
    else
        coroutine.wrap(function()
            local v14 = nil;
            local l_status_0, l_result_0 = pcall(function()
                v14 = l_Players_0:CreateHumanoidModelFromDescription(l_humanoidDescription_0, l_loadRigType_0);
            end);
            if l_status_0 then
                v14.Name = "Model";
                v6(v14);
                if v11.isMounted then
                    v11:setState({
                        modelRef = {
                            value = v14
                        }
                    });
                end;
                return ;
            else
                warn(string.format("Cannot load model from humanoidDescription, reason: %s", (tostring(l_result_0))));
                return ;
            end;
        end)();
        return ;
    end;
end;
v9.didMount = function(v17)
    v17.isMounted = true;
    v17:updateHumanoid();
end;
v9.willUnmount = function(v18)
    v18.isMounted = false;
    if v18.state.modelRef ~= nil then
        v18.state.modelRef.value:Destroy();
    end;
end;
v9.didUpdate = function(v19, v20)
    if not (v20.humanoidDescription == v19.props.humanoidDescription) or v20.loadRigType ~= v19.props.loadRigType then
        v19:updateHumanoid();
    end;
end;
v9.render = function(v21)
    assert(v8(v21.props));
    return v4.createElement(v7, (v3.Dictionary.join(v21.props, {
        modelRef = v21.state.modelRef,
        humanoidDescription = v3.None,
        loadRigType = v3.None
    })));
end;
return v9;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_Modules_0.LuaApp.Themes.Colors);
local v5 = require(l_Modules_0.LuaApp.FitChildren);
local v6 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v7 = require(l_Modules_0.LuaApp.Components.LocalizedTextLabel);
local v8 = {
    PaddingTop = UDim.new(0, 0),
    PaddingBottom = UDim.new(0, 0),
    PaddingLeft = UDim.new(0, 0),
    PaddingRight = UDim.new(0, 0)
};
local v9 = v3.PureComponent:extend("IconTextBar");
v9.defaultProps = {
    iconSize = 26,
    gutterSize = 9,
    textSize = 28,
    textColor = v4.Green,
    textFont = Enum.Font.SourceSans
};
v9.render = function(v10)
    local l_layoutOrder_0 = v10.props.layoutOrder;
    local v12 = v2.Dictionary.join(v8, v10.props.padding or {});
    local l_icon_0 = v10.props.icon;
    local l_iconSize_0 = v10.props.iconSize;
    local l_gutterSize_0 = v10.props.gutterSize;
    local l_textKey_0 = v10.props.textKey;
    local l_textSize_0 = v10.props.textSize;
    local l_textColor_0 = v10.props.textColor;
    local l_textFont_0 = v10.props.textFont;
    local v20 = 0;
    if l_icon_0 then
        v20 = -(l_iconSize_0 + l_gutterSize_0);
    end;
    return v3.createElement(v5.FitFrame, {
        LayoutOrder = l_layoutOrder_0,
        Size = UDim2.new(1, 0, 0, 0),
        fitAxis = v5.FitAxis.Height,
        BackgroundTransparency = 1
    }, {
        Layout = v3.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Padding = UDim.new(0, l_gutterSize_0)
        }),
        Padding = v3.createElement("UIPadding", v12),
        Icon = l_icon_0 and v3.createElement(v6, {
            LayoutOrder = 1,
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            Size = UDim2.new(0, l_iconSize_0, 0, l_iconSize_0),
            Image = l_icon_0
        }),
        Text = l_textKey_0 and v3.createElement(v7, {
            LayoutOrder = 2,
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            TextXAlignment = Enum.TextXAlignment.Left,
            Size = UDim2.new(1, v20, 0, l_textSize_0),
            TextSize = l_textSize_0,
            TextColor3 = l_textColor_0,
            Font = l_textFont_0,
            Text = l_textKey_0
        })
    });
end;
return v9;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
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_Modules_0.LuaApp.FitChildren);
local v5 = v3.PureComponent:extend("ItemListLayout");
local v6 = {
    [v4.FitAxis.Height] = UDim2.new(1, 0, 0, 0),
    [v4.FitAxis.Width] = UDim2.new(0, 0, 1, 0),
    [v4.FitAxis.Both] = UDim2.new(0, 0, 0, 0)
};
local function v8(v7)
    return v3.createElement(v4.FitFrame, {
        Size = v7.size,
        LayoutOrder = v7.layoutOrder,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        fitAxis = v7.fitAxis
    }, {
        RenderedItem = v7.renderItem
    });
end;
v5.render = function(v9)
    local v10 = v9.props.renderItemList or {};
    local l_fitAxis_0 = v9.props.fitAxis;
    local v12 = v9.props.size or v6[l_fitAxis_0];
    local v13 = {
        ListLayout = v3.createElement("UIListLayout", (v2.Dictionary.join(v9.props, {
            renderItemList = v2.None,
            fitAxis = v2.None,
            size = v2.None,
            SortOrder = Enum.SortOrder.LayoutOrder
        })))
    };
    for v14, v15 in ipairs(v10) do
        v13["Item" .. v14] = v8({
            layoutOrder = v14,
            fitAxis = l_fitAxis_0,
            size = v12,
            renderItem = v15
        });
    end;
    return v3.createElement(v4.FitFrame, {
        Size = v12,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        fitAxis = l_fitAxis_0
    }, v13);
end;
return v5;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.UIBlox);
local l_LoadingStateContainer_0 = v4.App.Container.LoadingStateContainer;
local l_RetrievalStatus_0 = v4.App.Loading.Enum.RetrievalStatus;
local l_FreeFlowCarousel_0 = v4.App.Container.Carousel.FreeFlowCarousel;
local l_GAME_CAROUSEL_PADDING_0 = require(l_Modules_0.LuaApp.Constants).GAME_CAROUSEL_PADDING;
local v9 = v2.PureComponent:extend("LoadableCarousel");
v9.validateProps = v3.strictInterface({
    fetchingStatus = v3.string,
    itemList = v3.array(v3.any),
    renderItem = v3.callback,
    identifier = v3.optional(v3.callback),
    headerText = v3.optional(v3.string),
    onSeeAll = v3.optional(v3.callback),
    itemSize = v3.optional(v3.Vector2),
    itemPadding = v3.optional(v3.number),
    carouselMargin = v3.optional(v3.number),
    innerPadding = v3.optional(v3.number),
    layoutOrder = v3.optional(v3.integer),
    loadNext = v3.optional(v3.callback),
    onRetry = v3.optional(v3.callback)
});
v9.defaultProps = {
    carouselMargin = l_GAME_CAROUSEL_PADDING_0
};
v9.init = function(v10)
    v10.renderOnLoading = function()
        return nil;
    end;
end;
v9.render = function(v11)
    local v12 = v2.createElement(l_FreeFlowCarousel_0, {
        identifier = v11.props.identifier,
        headerText = v11.props.headerText,
        onSeeAll = v11.props.onSeeAll,
        itemList = v11.props.itemList,
        renderItem = v11.props.renderItem,
        itemSize = v11.props.itemSize,
        itemPadding = v11.props.itemPadding,
        carouselMargin = v11.props.carouselMargin,
        innerPadding = v11.props.innerPadding,
        layoutOrder = v11.props.layoutOrder,
        loadNext = v11.props.loadNext
    });
    return v2.createElement(l_LoadingStateContainer_0, {
        dataStatus = l_RetrievalStatus_0.fromRawValue(v11.props.fetchingStatus),
        onRetry = v11.props.onRetry,
        renderOnLoading = v11.renderOnLoading,
        renderOnLoaded = function()
            return v12;
        end
    });
end;
return v9;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(l_CorePackages_0.Packages.t);
local l_withStyle_0 = v2.Core.Style.withStyle;
local l_getIconSize_0 = v2.App.ImageSet.getIconSize;
local l_IconSize_0 = v2.App.ImageSet.Enum.IconSize;
local l_Interactable_0 = v2.Core.Control.Interactable;
local l_ImageSetLabel_0 = v2.Core.ImageSet.ImageSetLabel;
local v9 = v1.PureComponent:extend("ScrollButton");
v9.validateProps = v3.strictInterface({
    icon = v3.table,
    callback = v3.callback
});
v9.render = function(v10)
    return l_withStyle_0(function(v11)
        return v1.createElement(l_Interactable_0, {
            AutoButtonColor = false,
            Size = UDim2.fromScale(1, 1),
            BackgroundColor3 = v11.Theme.BackgroundUIContrast.Color,
            BackgroundTransparency = v11.Theme.BackgroundUIContrast.Transparency,
            BorderSizePixel = 0,
            [v1.Event.Activated] = v10.props.callback,
            onStateChanged = function()
            end
        }, {
            Icon = v1.createElement(l_ImageSetLabel_0, {
                Size = UDim2.fromOffset(l_getIconSize_0(l_IconSize_0.Medium), l_getIconSize_0(l_IconSize_0.Medium)),
                Position = UDim2.fromScale(0.5, 0.5),
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1,
                Image = v10.props.icon,
                ImageColor3 = v11.Theme.IconEmphasis.Color,
                ImageTransparency = v11.Theme.IconEmphasis.Transparency
            })
        });
    end);
end;
return v9;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_CorePackages_0.Otter);
local v5 = require(l_CorePackages_0.Packages.Cryo);
local v6 = require(l_CorePackages_0.Packages.t);
local v7 = require(script.Parent.AppCarousel);
local v8 = require(script.Parent.ScrollButton);
local l_Images_0 = v3.App.ImageSet.Images;
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v11 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppCarouselInitialSize);
local v12 = require(l_Modules_0.LuaApp.Flags.FFlagLuaAppRemoveExtraCarouselPadding);
local v13 = l_Images_0["icons/actions/cycleLeft"];
local v14 = l_Images_0["icons/actions/cycleRight"];
local v15 = {
    frequency = 2,
    dampingRatio = 0.9,
    restingPositionLimit = 0.5,
    restingVelocityLimit = 0.1
};
local v16 = v2.PureComponent:extend("ScrollingAppCarousel");
local v17 = game:DefineFastFlag("LuaAppScrollingAppCarouselMarginUpdate", false);
v16.defaultProps = {
    carouselMargin = 0
};
v16.validateProps = v6.strictInterface({
    items = v6.table,
    index = v6.numberMin(1),
    itemCount = v6.number,
    itemWidth = v6.numberMin(1),
    itemPadding = v6.number,
    carouselMargin = v6.number,
    carouselHeight = v6.number,
    canvasWidth = v6.number,
    onChangeCanvasPosition = v6.callback,
    onRefCallback = v6.optional(v6.callback)
});
v16.getScrollState = function(v18, v19, v20)
    local v21 = v18 + v19;
    local v22 = math.floor((v20 + v19) / v21);
    local v23 = nil;
    if not v12 then
        v23 = v20 - v22 * v21;
    end;
    return {
        canvasOffset = v23,
        maxNumOfItemsVisible = v22
    };
end;
v16.handleMouseEvent = function(v24, v25, v26)
    if v25.UserInputType == Enum.UserInputType.MouseMovement then
        v24:setState({
            hoveringCarousel = v26
        });
    end;
end;
v16.handleScroll = function(v27, v28)
    if not v27.state.animationActive then
        local l_index_0 = v27.props.index;
        local l_maxNumOfItemsVisible_0 = v27.state.maxNumOfItemsVisible;
        v27:scrollToIndex(l_index_0, l_index_0 + (not not v28 and l_maxNumOfItemsVisible_0 or -l_maxNumOfItemsVisible_0));
        return ;
    else
        return ;
    end;
end;
v16.handleResize = function(v31, v32)
    if v31._isMounted then
        local v33 = v32.AbsoluteSize.X - 2 * v31.props.carouselMargin;
        v31:setState(v5.Dictionary.join({
            absoluteWidth = v32.AbsoluteSize.X,
            carouselWidth = v33
        }, v31.getScrollState(v31.props.itemWidth, v31.props.itemPadding, v33)));
    end;
end;
v16.scrollToIndex = function(v34, v35, v36)
    local l_itemCount_0 = v34.props.itemCount;
    local v38 = v34.props.itemWidth + v34.props.itemPadding;
    v36 = math.max(math.min(v36, (l_itemCount_0 - v34.state.maxNumOfItemsVisible) + 1), 1);
    local v39 = (v35 - 1) * v38;
    local v40 = (v36 - 1) * v38;
    v34:destroyMotor();
    v34:createMotor(v39);
    if not l_UserGameSettings_0.ReducedMotion then
        v34.carouselMotor:setGoal(v4.spring(v40, v15));
        return ;
    else
        v34.carouselMotor:setGoal(v4.instant(v40));
        return ;
    end;
end;
v16.createMotor = function(v41, v42)
    v41.carouselMotor = v4.createSingleMotor(v42);
    v41.carouselMotor:onStep(function(v43)
        v41:setState({
            animationActive = true,
            canvasPosition = Vector2.new(v43, 0)
        });
    end);
    v41.carouselMotor:onComplete(function()
        v41:destroyMotor();
        v41:setState({
            animationActive = false
        });
    end);
end;
v16.destroyMotor = function(v44)
    if v44.carouselMotor then
        v44.carouselMotor:destroy();
        v44.carouselMotor = nil;
    end;
end;
v16.init = function(v45)
    v45:setState({
        carouselWidth = 0,
        hoveringCarousel = false,
        animationActive = false,
        canvasPosition = Vector2.new(0, 0),
        canvasOffset = not v12 and 0 or nil,
        maxNumOfItemsVisible = 0,
        absoluteWidth = 0
    });
    v45.carouselMotor = nil;
    v45.onMouseEnter = function(_, v47)
        if v45._isMounted then
            v45:handleMouseEvent(v47, true);
        end;
    end;
    v45.onMouseLeave = function(_, v49)
        if v45._isMounted then
            v45:handleMouseEvent(v49, false);
        end;
    end;
    v45.frameRef = v2.createRef();
    v45.onResize = function(v50)
        if v45._isMounted then
            if not v11() then
                local v51 = v50.AbsoluteSize.X - 2 * v45.props.carouselMargin;
                v45:setState(v5.Dictionary.join({
                    absoluteWidth = v50.AbsoluteSize.X,
                    carouselWidth = v51
                }, v45.getScrollState(v45.props.itemWidth, v45.props.itemPadding, v51)));
            else
                v45:handleResize(v50);
            end;
            if v45.props.onResize then
                v45.props.onResize(v50);
            end;
        end;
    end;
    v45.scrollLeft = function()
        if v45._isMounted then
            v45:handleScroll(false);
        end;
    end;
    v45.scrollRight = function()
        if v45._isMounted then
            v45:handleScroll(true);
        end;
    end;
end;
v16.getDerivedStateFromProps = function(v52, v53)
    if not v17 then
        return v16.getScrollState(v52.itemWidth, v52.itemPadding, v53.carouselWidth or 0);
    else
        local v54 = math.max(0, v53.absoluteWidth - 2 * v52.carouselMargin);
        return v5.Dictionary.join({
            carouselWidth = v54
        }, v16.getScrollState(v52.itemWidth, v52.itemPadding, v54));
    end;
end;
v16.didMount = function(v55)
    v55._isMounted = true;
    if v11() then
        v55:handleResize((v55.frameRef:getValue()));
    end;
end;
v16.didUpdate = function(v56, v57, v58)
    if ((v56.props.itemCount < v57.itemCount or v56.props.itemWidth ~= v57.itemWidth) or v56.props.itemPadding ~= v57.itemPadding) or v56.state.maxNumOfItemsVisible ~= v58.maxNumOfItemsVisible then
        v56:scrollToIndex(v56.props.index, v57.index);
    end;
end;
v16.willUnmount = function(v59)
    v59._isMounted = false;
    v59:destroyMotor();
end;
v16.render = function(v60)
    local l_carouselMargin_0 = v60.props.carouselMargin;
    local l_carouselHeight_0 = v60.props.carouselHeight;
    local v63 = nil;
    local v64 = nil;
    if v60.state.hoveringCarousel then
        local v65 = v60.props.index > 1;
        local v66 = v60.props.index + v60.state.maxNumOfItemsVisible <= v60.props.itemCount;
        if v65 then
            v63 = v2.createElement(v8, {
                icon = v13,
                callback = v60.scrollLeft
            });
        end;
        if v66 then
            v64 = v2.createElement(v8, {
                icon = v14,
                callback = v60.scrollRight
            });
        end;
    end;
    return v2.createElement("Frame", {
        Size = UDim2.new(1, l_carouselMargin_0, 0, l_carouselHeight_0),
        Position = UDim2.fromOffset(-l_carouselMargin_0, 0),
        BackgroundTransparency = 1,
        [v2.Event.InputBegan] = v60.onMouseEnter,
        [v2.Event.InputEnded] = v60.onMouseLeave,
        [v2.Change.AbsoluteSize] = v60.onResize,
        [v2.Ref] = v60.frameRef
    }, {
        LeftMargin = v2.createElement("Frame", {
            Position = UDim2.fromScale(0, 0),
            AnchorPoint = Vector2.new(0, 0),
            Size = UDim2.new(0, l_carouselMargin_0, 1, 0),
            BackgroundTransparency = 1,
            ZIndex = 2
        }, {
            ScrollLeftButton = v63
        }),
        Carousel = v2.createElement("Frame", {
            Size = UDim2.new(1, -2 * l_carouselMargin_0, 1, 0),
            Position = UDim2.fromOffset(l_carouselMargin_0, 0),
            BackgroundTransparency = 1
        }, {
            InnerCarouselContent = v2.createElement(v7, {
                carouselHeight = l_carouselHeight_0,
                canvasWidth = if not v12 then v60.props.canvasWidth + v60.state.canvasOffset else v60.props.canvasWidth,
                items = v60.props.items,
                onChangeCanvasPosition = v60.props.onChangeCanvasPosition,
                onRefCallback = v60.props.onRefCallback,
                canvasPosition = v60.state.canvasPosition,
                scrollingAnimationActive = v60.state.animationActive
            })
        }),
        RightMargin = v2.createElement("Frame", {
            Position = UDim2.fromScale(1, 0),
            AnchorPoint = Vector2.new(1, 0),
            Size = UDim2.new(0, l_carouselMargin_0, 1, 0),
            BackgroundTransparency = 1,
            ZIndex = 2
        }, {
            ScrollRightButton = v64
        })
    });
end;
return v16;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(game:GetService("CorePackages").Roact);
local v2 = require(l_Modules_0.LuaApp.FitChildren);
local v3 = v1.PureComponent:extend("SwipeableDrawer");
v3.init = function(v4)
    v4.frameRef = nil;
    v4.onFrameRef = function(v5)
        if v5 then
            local l_startPosition_0 = v4.props.startPosition;
            v4.frameRef = v5;
            v4.frameRef.Position = UDim2.new(0, 0, 0, l_startPosition_0);
        end;
    end;
    v4.scrollingFrameRef = v1.createRef();
    v4.recalculateDrawerPosition = function()
        if not (not v4.frameRef or not v4.scrollingFrameRef.current) then
            local l_startPosition_1 = v4.props.startPosition;
            local v8 = math.max(0, v4.props.containerHeight - v4.scrollingFrameRef.current.CanvasSize.Y.Offset);
            local l_Offset_0 = v4.frameRef.Position.Y.Offset;
            local l_Y_0 = v4.scrollingFrameRef.current.CanvasPosition.Y;
            if not (not (l_Offset_0 == v8) or l_Y_0 <= 0) or l_Offset_0 == l_startPosition_1 and l_Y_0 < 0 then
                return ;
            else
                v4.frameRef.Position = UDim2.new(0, 0, 0, (math.min(math.max(l_Offset_0 - l_Y_0, v8), l_startPosition_1)));
                v4.scrollingFrameRef.current.CanvasPosition = Vector2.new(0, 0);
            end;
        end;
    end;
end;
v3.render = function(v11)
    return v1.createElement("Frame", {
        Size = v11.props.Size,
        AnchorPoint = v11.props.AnchorPoint,
        BackgroundTransparency = 1,
        ClipsDescendants = false,
        [v1.Ref] = v11.onFrameRef
    }, {
        ScrollingFrame = v1.createElement(v2.FitScrollingFrame, {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            ScrollBarThickness = 0,
            ClipsDescendants = false,
            ScrollingDirection = Enum.ScrollingDirection.Y,
            ElasticBehavior = Enum.ElasticBehavior.Always,
            fitFields = {
                CanvasSize = v2.FitAxis.Height
            },
            [v1.Ref] = v11.scrollingFrameRef,
            [v1.Change.CanvasSize] = v11.recalculateDrawerPosition,
            [v1.Change.CanvasPosition] = v11.recalculateDrawerPosition
        }, v11.props[v1.Children])
    });
end;
v3.didUpdate = function(v12, v13)
    if not (v13.startPosition == v12.props.startPosition) or v13.containerHeight ~= v12.props.containerHeight then
        v12.recalculateDrawerPosition();
    end;
end;
return v3;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v5 = require(l_CorePackages_0.UIBlox);
local l_withSelectionCursorProvider_0 = v5.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v5.App.SelectionImage.CursorKind;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local v9 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local function v29(v10)
    local l_ZIndex_0 = v10.ZIndex;
    local l_Position_0 = v10.Position;
    local l_AnchorPoint_0 = v10.AnchorPoint;
    local l_Size_0 = v10.Size;
    local l_LayoutOrder_0 = v10.LayoutOrder;
    local l_onActivated_0 = v10.onActivated;
    local l_icon_0 = v10.icon;
    local l_iconSize_0 = v10.iconSize;
    local v19 = v10.iconPosition or UDim2.new(0.5, 0, 0.5, 0);
    local v20 = v10.iconAnchorPoint or Vector2.new(0.5, 0.5);
    local l_iconColor_0 = v10.iconColor;
    local l_iconTransparency_0 = v10.iconTransparency;
    local l_useUIBloxImageSet_0 = v10.useUIBloxImageSet;
    local v24 = v10[v3.Children];
    local v25 = v10[v3.Change.AbsolutePosition];
    local v26 = not not l_useUIBloxImageSet_0 and l_ImageSetLabel_0 or v9;
    local l_forwardRef_0 = v10.forwardRef;
    return l_withSelectionCursorProvider_0(function(v28)
        return v3.createElement(l_Focusable_0.TextButton, {
            ZIndex = l_ZIndex_0,
            Position = l_Position_0,
            AnchorPoint = l_AnchorPoint_0,
            Size = l_Size_0,
            LayoutOrder = l_LayoutOrder_0,
            BackgroundTransparency = 1,
            Text = "",
            [v3.Event.Activated] = l_onActivated_0,
            [v3.Change.AbsolutePosition] = v25,
            [v3.Ref] = l_forwardRef_0,
            NextSelectionLeft = v10.NextSelectionLeft,
            NextSelectionRight = v10.NextSelectionRight,
            NextSelectionUp = v10.NextSelectionUp,
            NextSelectionDown = v10.NextSelectionDown,
            inputBindings = v10.inputBindings,
            SelectionImageObject = v28(l_CursorKind_0.RoundedRectNoInset)
        }, {
            NavigationButton = v3.createElement(v26, {
                Size = UDim2.new(0, l_iconSize_0, 0, l_iconSize_0),
                Position = v19,
                AnchorPoint = v20,
                Image = l_icon_0,
                ImageColor3 = l_iconColor_0,
                ImageTransparency = l_iconTransparency_0,
                BackgroundTransparency = 1
            }, v24)
        });
    end);
end;
return v3.forwardRef(function(v30, v31)
    return v3.createElement(v29, v2.Dictionary.join(v30, {
        forwardRef = v31
    }));
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.Roact);
local v2 = require(l_CorePackages_0.Packages.Cryo);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = v3.strictInterface({
    regularProps = v3.optional(v3.table),
    modelRef = v3.optional(v3.strictInterface({
        value = v3.instanceIsA("Model")
    })),
    cameraFocusPoint = v3.optional(v3.Vector3),
    cameraLookVector = v3.optional(v3.Vector3),
    cameraDistance = v3.optional(v3.number),
    cameraUpVector = v3.optional(v3.Vector3)
});
local v5 = v1.PureComponent:extend("ViewportFrame");
v5.defaultProps = {
    cameraDistance = 6,
    cameraUpVector = Vector3.FromAxis(Enum.Axis.Y)
};
v5.init = function(v6)
    v6.viewportRef = v1.createRef();
    v6.model = nil;
    v6.camera = nil;
end;
v5.updateModel = function(v7)
    if v7.model ~= nil then
        v7.model.Parent = nil;
        v7.model = nil;
    end;
    local l_modelRef_0 = v7.props.modelRef;
    if not (v7.viewportRef.current ~= nil) or l_modelRef_0 == nil then
        return ;
    else
        v7.model = l_modelRef_0.value;
        v7.model.Parent = v7.viewportRef.current;
        return ;
    end;
end;
v5.updateCamera = function(v9)
    if not (v9.viewportRef.current ~= nil) or v9.model == nil then
        return ;
    else
        if v9.camera == nil then
            v9.camera = Instance.new("Camera");
            v9.camera.Name = "Camera";
            v9.camera.CameraType = Enum.CameraType.Scriptable;
            v9.camera.Parent = v9.viewportRef.current;
            v9.viewportRef.current.CurrentCamera = v9.camera;
        end;
        local v10 = (v9.props.cameraFocusPoint or v9.model.PrimaryPart ~= nil and v9.model.PrimaryPart.Position) or Vector3.new(0, 0, 0);
        local v11 = ((v9.props.cameraLookVector or v9.model.PrimaryPart ~= nil and -v9.model.PrimaryPart.CFrame.lookVector) or Vector3.new(0, 0, 1)) * v9.props.cameraDistance;
        v9.camera.CFrame = CFrame.fromMatrix(v10 - v11, v11:Cross(v9.props.cameraUpVector).Unit, v11:Cross(v9.props.cameraUpVector):Cross(v11).Unit);
        return ;
    end;
end;
v5.updateViewport = function(v12)
    v12:updateModel();
    v12:updateCamera();
end;
v5.didMount = function(v13)
    v13:updateViewport();
end;
v5.willUnmount = function(v14)
    if v14.model ~= nil then
        v14.model.Parent = nil;
        v14.model = nil;
    end;
    if v14.camera ~= nil then
        v14.camera.Parent = nil;
        v14.camera = nil;
    end;
end;
v5.didUpdate = function(v15, v16)
    if v16.modelRef ~= v15.props.modelRef then
        v15:updateViewport();
        return ;
    else
        if not (v16.cameraFocusPoint == v15.props.cameraFocusPoint and v16.cameraLookVector == v15.props.cameraLookVector) or v16.cameraDistance ~= v15.props.cameraDistance then
            v15:updateCamera();
        end;
        return ;
    end;
end;
v5.render = function(v17)
    assert(v4(v17.props));
    return v1.createElement("ViewportFrame", (v2.Dictionary.join(v17.props.regularProps or {}, {
        [v1.Ref] = v17.viewportRef
    })));
end;
return v5;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_Modules_0.LuaApp.Themes.Colors);
local v5 = require(l_Modules_0.LuaApp.FitChildren);
local v6 = require(l_Modules_0.LuaApp.Components.Generic.IconTextBar);
local l_White_0 = v4.White;
local v8 = Rect.new(9, 9, 9, 9);
local v9 = {
    PaddingTop = UDim.new(0, 0),
    PaddingBottom = UDim.new(0, 0),
    PaddingLeft = UDim.new(0, 0),
    PaddingRight = UDim.new(0, 0)
};
local v10 = {
    PaddingTop = UDim.new(0, 0),
    PaddingBottom = UDim.new(0, 0),
    PaddingLeft = UDim.new(0, 0),
    PaddingRight = UDim.new(0, 0)
};
local v11 = v3.PureComponent:extend("Widget");
v11.defaultProps = {
    backgroundColor = l_White_0,
    backgroundTransparency = 0,
    iconSize = 26,
    titleGutterSize = 9,
    titleSize = 28,
    titleFont = Enum.Font.SourceSans
};
v11.render = function(v12)
    local l_layoutOrder_0 = v12.props.layoutOrder;
    local v14 = v2.Dictionary.join(v9, v12.props.titlePadding or {});
    local v15 = v2.Dictionary.join(v10, v12.props.contentPadding or {});
    local l_backgroundImage_0 = v12.props.backgroundImage;
    local l_backgroundColor_0 = v12.props.backgroundColor;
    local l_backgroundTransparency_0 = v12.props.backgroundTransparency;
    local l_icon_0 = v12.props.icon;
    local l_iconSize_0 = v12.props.iconSize;
    local l_titleGutterSize_0 = v12.props.titleGutterSize;
    local l_titleKey_0 = v12.props.titleKey;
    local l_titleSize_0 = v12.props.titleSize;
    local l_titleColor_0 = v12.props.titleColor;
    local l_titleFont_0 = v12.props.titleFont;
    local l_renderContent_0 = v12.props.renderContent;
    return v3.createElement(v5.FitImageLabel, {
        LayoutOrder = l_layoutOrder_0,
        Size = UDim2.new(1, 0, 0, 0),
        fitAxis = v5.FitAxis.Height,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = v8,
        ClipsDescendants = true,
        Image = l_backgroundImage_0,
        ImageColor3 = l_backgroundColor_0,
        ImageTransparency = l_backgroundTransparency_0
    }, {
        Layout = v3.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        TitleBar = v3.createElement(v6, {
            layoutOrder = 1,
            padding = v14,
            icon = l_icon_0,
            iconSize = l_iconSize_0,
            gutterSize = l_titleGutterSize_0,
            textKey = l_titleKey_0,
            textSize = l_titleSize_0,
            textColor = l_titleColor_0,
            textFont = l_titleFont_0
        }),
        ContentFrame = l_renderContent_0 and v3.createElement(v5.FitFrame, {
            LayoutOrder = 2,
            Size = UDim2.new(1, 0, 0, 0),
            fitAxis = v5.FitAxis.Height,
            BackgroundTransparency = 1
        }, {
            Layout = v3.createElement("UIListLayout"),
            Padding = v3.createElement("UIPadding", v15),
            Content = v3.createElement(l_renderContent_0)
        })
    });
end;
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetButton);
local v4 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v5 = require(l_Modules_0.LuaApp.Components.ShimmerAnimation);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v7 = require(l_Modules_0.LuaApp.withTheme_DEPRECATED);
local v8 = Rect.new(8, 8, 9, 9);
local v9 = Rect.new(8, 8, 9, 9);
local v10 = v2.PureComponent:extend("GenericIconButton");
v10.defaultProps = {
    AnchorPoint = Vector2.new(0, 0),
    Position = UDim2.new(0, 0, 0, 0),
    Size = UDim2.new(1, 0, 1, 0),
    LayoutOrder = 1,
    isDisabled = false,
    isChecked = false,
    isLoading = false,
    iconComponent = v4
};
v10.init = function(v11)
    v11.state = {
        isButtonPressed = false
    };
    v11.onInputBegan = function()
        v11:setState({
            isButtonPressed = true
        });
    end;
    v11.onInputEnded = function()
        v11:setState({
            isButtonPressed = false
        });
    end;
end;
v10.render = function(v12)
    local l_IconButton_0 = v12.props.appTheme.IconButton;
    local l_AnchorPoint_0 = v12.props.AnchorPoint;
    local l_Size_0 = v12.props.Size;
    local l_buttonRef_0 = v12.props.buttonRef;
    local l_Position_0 = v12.props.Position;
    local l_LayoutOrder_0 = v12.props.LayoutOrder;
    local l_iconImage_0 = v12.props.iconImage;
    local l_iconSize_0 = v12.props.iconSize;
    local l_onActivated_0 = v12.props.onActivated;
    local l_isDisabled_0 = v12.props.isDisabled;
    local l_isChecked_0 = v12.props.isChecked;
    local l_isLoading_0 = v12.props.isLoading;
    local v25 = not l_isLoading_0;
    local l_isButtonPressed_0 = v12.state.isButtonPressed;
    local l_Off_0 = l_IconButton_0.Border.Off;
    local l_Off_1 = l_IconButton_0.Fill.Off;
    local l_Off_2 = l_IconButton_0.Icon.Off;
    local l_withNewThemeProvider_0 = v12.props.withNewThemeProvider;
    return l_withStyle_0(function(v31)
        if l_isDisabled_0 then
            l_Off_0 = l_IconButton_0.Border.Disabled;
            l_Off_1 = l_IconButton_0.Fill.Disabled;
            l_Off_2 = l_IconButton_0.Icon.Disabled;
            l_isButtonPressed_0 = false;
            l_isChecked_0 = false;
            l_isLoading_0 = false;
        end;
        if l_isChecked_0 then
            l_Off_0 = l_IconButton_0.Border.On;
            l_Off_1 = l_IconButton_0.Fill.On;
            l_Off_2 = l_IconButton_0.Icon.On;
        end;
        if l_isLoading_0 then
            l_Off_0 = l_IconButton_0.Border.Loading;
            l_Off_1 = l_IconButton_0.Fill.Loading;
            l_Off_2 = l_IconButton_0.Icon.Loading;
        end;
        if not (not l_isButtonPressed_0 or not v25) then
            l_Off_0 = l_IconButton_0.Border.OnPress;
            l_Off_1 = l_IconButton_0.Fill.OnPress;
            l_Off_2 = l_IconButton_0.Icon.OnPress;
        end;
        if l_withNewThemeProvider_0 then
            l_Off_1.Transparency = 1;
            l_Off_0.Color = v31.Theme.SecondaryDefault.Color;
            l_Off_2.Color = v31.Theme.SecondaryDefault.Color;
            if l_isChecked_0 then
                l_Off_2.Color = v31.Theme.ContextualPrimaryDefault.Color;
            end;
            if not (not l_isButtonPressed_0 or not v25) then
                l_Off_2.Color = v31.Theme.ContextualPrimaryDefault.Color;
            end;
        end;
        local l_v4_0 = v4;
        if v12.props.iconComponent then
            l_v4_0 = v12.props.iconComponent;
        end;
        return v2.createElement(v3, {
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            AnchorPoint = l_AnchorPoint_0,
            Size = l_Size_0,
            Position = l_Position_0,
            Image = "LuaApp/buttons/buttonFill",
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = v9,
            ImageTransparency = l_Off_1.Transparency,
            ImageColor3 = l_Off_1.Color,
            LayoutOrder = l_LayoutOrder_0,
            ClipsDescendants = false,
            [v2.Event.Activated] = not not v25 and l_onActivated_0 or nil,
            [v2.Event.InputBegan] = v12.onInputBegan,
            [v2.Event.InputEnded] = v12.onInputEnded,
            [v2.Ref] = l_buttonRef_0
        }, {
            Border = v2.createElement(v4, {
                Size = UDim2.new(1, 0, 1, 0),
                BorderSizePixel = 0,
                BackgroundTransparency = 1,
                ImageTransparency = l_Off_0.Transparency,
                ImageColor3 = l_Off_0.Color,
                Image = "LuaApp/buttons/buttonStroke",
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = v8
            }, {
                Icon = v2.createElement(l_v4_0, {
                    Size = l_iconSize_0,
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    BorderSizePixel = 0,
                    BackgroundTransparency = 1,
                    Image = l_iconImage_0,
                    ImageTransparency = l_Off_2.Transparency,
                    ImageColor3 = l_Off_2.Color
                })
            }),
            ShimmerAnimation = l_isLoading_0 and v2.createElement(v5, {
                Size = UDim2.new(1, 0, 1, 0),
                Position = UDim2.new(0, 0, 0, 0),
                shimmerSpeed = 1.5
            })
        });
    end);
end;
return (v7(v10));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_CorePackages_0.Cryo);
local l_ImageSetLabel_0 = require(l_CorePackages_0.UIBlox).Core.ImageSet.ImageSetLabel;
local v5 = require(l_Modules_0.LuaApp.Components.GenericIconButton);
local v6 = v2.PureComponent:extend("GenericIconButtonUIBlox");
v6.render = function(v7)
    return v2.createElement(v5, v3.Dictionary.join(v7.props, {
        iconComponent = l_ImageSetLabel_0
    }));
end;
return v6;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetButton);
local v4 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v5 = require(l_Modules_0.LuaApp.Components.ShimmerAnimation);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local l_Center_0 = Enum.HorizontalAlignment.Center;
local l_SourceSans_0 = Enum.Font.SourceSans;
local v9 = Rect.new(8, 8, 9, 9);
local v10 = v2.PureComponent:extend("GenericIconTextButton");
v10.defaultProps = {
    AnchorPoint = Vector2.new(0, 0),
    Position = UDim2.new(0, 0, 0, 0),
    Size = UDim2.new(1, 0, 1, 0),
    LayoutOrder = 1,
    iconRightPadding = 3,
    iconSize = UDim2.new(0, 16, 0, 16),
    horizontalAlignment = l_Center_0,
    setIconTransparencyEnabled = false,
    iconTransparency = 0,
    leftIconEnabled = false,
    Font = l_SourceSans_0,
    TextSize = 20,
    Text = "",
    isDisabled = false,
    isLoading = false
};
v10.init = function(v11)
    v11.state = {
        isButtonPressed = false
    };
    v11.onInputBegan = function()
        v11:setState({
            isButtonPressed = true
        });
    end;
    v11.onInputEnded = function()
        v11:setState({
            isButtonPressed = false
        });
    end;
end;
local function _(v12, v13)
    return 1 - (1 - v12) * (1 - v13);
end;
v10.render = function(v15)
    local l_themeSettings_0 = v15.props.themeSettings;
    local l_Size_0 = v15.props.Size;
    local l_Text_0 = v15.props.Text;
    local l_Font_0 = v15.props.Font;
    local l_TextSize_0 = v15.props.TextSize;
    local l_buttonRef_0 = v15.props.buttonRef;
    local l_LayoutOrder_0 = v15.props.LayoutOrder;
    local l_iconImage_0 = v15.props.iconImage;
    local l_iconSize_0 = v15.props.iconSize;
    local l_onActivated_0 = v15.props.onActivated;
    local l_isDisabled_0 = v15.props.isDisabled;
    local l_isLoading_0 = v15.props.isLoading;
    local v28 = not l_isLoading_0;
    local v29 = l_themeSettings_0.Border.Hidden == false;
    local l_iconRightPadding_0 = v15.props.iconRightPadding;
    local l_isButtonPressed_0 = v15.state.isButtonPressed;
    local l_horizontalAlignment_0 = v15.props.horizontalAlignment;
    local l_leftIconEnabled_0 = v15.props.leftIconEnabled;
    local l_Color_0 = l_themeSettings_0.Color;
    local v35 = 0;
    if not l_isLoading_0 and not l_isDisabled_0 then
        if l_isButtonPressed_0 then
            l_Color_0 = l_themeSettings_0.OnPressColor;
            v35 = l_themeSettings_0.OnPressTransparency;
        end;
    else
        l_Color_0 = l_themeSettings_0.DisabledColor;
        v35 = l_themeSettings_0.DisabledTransparency;
    end;
    local l_NextSelectionDown_0 = v15.props.NextSelectionDown;
    local l_NextSelectionLeft_0 = v15.props.NextSelectionLeft;
    local l_NextSelectionRight_0 = v15.props.NextSelectionRight;
    local l_NextSelectionUp_0 = v15.props.NextSelectionUp;
    local v40 = 1 - (1 - v35) * (1 - l_themeSettings_0.Transparency);
    local v41 = not not v29 and 1 - (1 - v35) * (1 - l_themeSettings_0.Border.Transparency) or 1;
    return l_withStyle_0(function(v42)
        return v2.createElement(v3, {
            Size = l_Size_0,
            LayoutOrder = l_LayoutOrder_0,
            BackgroundTransparency = 1,
            Image = "LuaApp/buttons/buttonFill",
            ImageColor3 = l_Color_0 or v42.Theme.SystemPrimaryDefault.Color,
            ImageTransparency = v40 or v42.Theme.SystemPrimaryDefault.Transparency,
            BorderSizePixel = 0,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(8, 8, 9, 9),
            NextSelectionDown = l_NextSelectionDown_0,
            NextSelectionLeft = l_NextSelectionLeft_0,
            NextSelectionRight = l_NextSelectionRight_0,
            NextSelectionUp = l_NextSelectionUp_0,
            ClipsDescendants = false,
            [v2.Event.Activated] = not not v28 and l_onActivated_0 or nil,
            [v2.Event.InputBegan] = v15.onInputBegan,
            [v2.Event.InputEnded] = v15.onInputEnded,
            [v2.Ref] = l_buttonRef_0
        }, {
            Border = v2.createElement(v4, {
                Size = UDim2.new(1, 0, 1, 0),
                BorderSizePixel = 0,
                BackgroundTransparency = 1,
                ImageTransparency = v41,
                ImageColor3 = l_themeSettings_0.Border.Color,
                Image = "LuaApp/buttons/buttonStroke",
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = v9
            }),
            AlignmentContainer = v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = l_Size_0,
                Position = UDim2.new(0.5, 0, 0, 0),
                AnchorPoint = Vector2.new(0.5, 0),
                AutomaticSize = Enum.AutomaticSize.XY
            }, {
                Layout = v2.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = l_horizontalAlignment_0,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                LeftIcon = l_leftIconEnabled_0 and v2.createElement(v4, {
                    Size = l_iconSize_0,
                    BorderSizePixel = 0,
                    BackgroundTransparency = 1,
                    Image = l_iconImage_0,
                    ImageTransparency = v42.Theme.IconEmphasis.Transparency,
                    ImageColor3 = v42.Theme.IconEmphasis.Color,
                    LayoutOrder = 1,
                    ScaleType = Enum.ScaleType.Fit,
                    [v2.Children] = {
                        UIPadding = v2.createElement("UIPadding", {
                            PaddingRight = UDim.new(0, l_iconRightPadding_0)
                        })
                    }
                }),
                Text = v2.createElement("TextLabel", {
                    LayoutOrder = 2,
                    AutomaticSize = Enum.AutomaticSize.X,
                    Text = l_Text_0,
                    Font = l_Font_0,
                    TextSize = l_TextSize_0,
                    TextColor3 = l_themeSettings_0.Text.Color or v42.Theme.SystemPrimaryContent.Color,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    BackgroundTransparency = 1
                })
            }),
            ShimmerAnimation = l_isLoading_0 and v2.createElement(v5, {
                Size = UDim2.new(1, 0, 1, 0),
                Position = UDim2.new(0, 0, 0, 0),
                shimmerSpeed = 1.5
            })
        });
    end);
end;
return v10;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_HttpService_0 = game:GetService("HttpService");
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.LuaApp.Components.NativePageWrapper);
local v4 = require(l_Modules_0.LuaApp.Enum.TransitionAnimation);
local v5 = require(l_Modules_0.LuaApp.mapTransitionAnimationToNativeString);
local v6 = require(l_Modules_0.LuaApp.withLocalization);
return function(v7)
    local l_isVisible_0 = v7.isVisible;
    local l_DisplayOrder_0 = v7.DisplayOrder;
    local l_transitionAnimation_0 = v7.transitionAnimation;
    local l_titleTextLocalizationKey_0 = v7.titleTextLocalizationKey;
    local v12 = v5(l_transitionAnimation_0 or "");
    local v13 = true;
    if l_transitionAnimation_0 ~= nil then
        v13 = true;
        if l_transitionAnimation_0 ~= v4.None then
            v13 = v12 ~= nil;
        end;
    end;
    assert(v13, string.format("Unhandled transition animation: %q", (tostring(l_transitionAnimation_0))));
    local v14 = l_transitionAnimation_0 ~= v4.None;
    if not game:GetEngineFeature("SetWebViewTitle") then
        return v2.createElement(v3, {
            isVisible = l_isVisible_0,
            DisplayOrder = l_DisplayOrder_0,
            notificationData = l_HttpService_0:JSONEncode({
                animated = v14,
                transitionAnimation = v12
            }),
            notificationType = v7.notificationType,
            onClose = v7.onClose
        });
    else
        return v6({
            titleText = l_titleTextLocalizationKey_0
        })(function(v15)
            return v2.createElement(v3, {
                titleText = v15.titleText,
                animated = v14,
                transitionAnimation = v12,
                isVisible = l_isVisible_0,
                DisplayOrder = l_DisplayOrder_0,
                notificationType = v7.notificationType,
                onClose = v7.onClose
            });
        end);
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_Modules_0.Common.Roact);
local v4 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetButton);
local v5 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v6 = require(l_Modules_0.LuaApp.Components.ShimmerAnimation);
local v7 = v3.PureComponent:extend("GenericTextButton");
local v8 = require(l_CorePackages_0.UIBlox);
local l_withSelectionCursorProvider_0 = v8.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v8.App.SelectionImage.CursorKind;
local l_GetFFlagLuaAppFixSelectionCursor_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagLuaAppFixSelectionCursor;
v7.init = function(v12)
    v12.state = {
        isButtonPressed = false
    };
    v12.onInputBegan = function()
        v12:setState({
            isButtonPressed = true
        });
    end;
    v12.onInputEnded = function()
        v12:setState({
            isButtonPressed = false
        });
    end;
end;
local function _(v13, v14)
    return 1 - (1 - v13) * (1 - v14);
end;
v7.render = function(v16)
    if not l_GetFFlagLuaAppFixSelectionCursor_0() then
        return v16:renderWithSelectionCursor(nil);
    else
        return l_withSelectionCursorProvider_0(function(v17)
            return v16:renderWithSelectionCursor(v17);
        end);
    end;
end;
v7.renderWithSelectionCursor = function(v18, v19)
    local l_themeSettings_0 = v18.props.themeSettings;
    local l_Size_0 = v18.props.Size;
    local l_Position_0 = v18.props.Position;
    local l_AnchorPoint_0 = v18.props.AnchorPoint;
    local l_LayoutOrder_0 = v18.props.LayoutOrder;
    local l_Text_0 = v18.props.Text;
    local l_Font_0 = v18.props.Font;
    local l_TextSize_0 = v18.props.TextSize;
    local l_onActivated_0 = v18.props.onActivated;
    local l_isLoading_0 = v18.props.isLoading;
    local l_isDisabled_0 = v18.props.isDisabled;
    local l_isButtonPressed_0 = v18.state.isButtonPressed;
    local v32 = l_themeSettings_0.Border.Hidden == false;
    local l_NextSelectionDown_0 = v18.props.NextSelectionDown;
    local l_NextSelectionLeft_0 = v18.props.NextSelectionLeft;
    local l_NextSelectionRight_0 = v18.props.NextSelectionRight;
    local l_NextSelectionUp_0 = v18.props.NextSelectionUp;
    local l_Color_0 = l_themeSettings_0.Color;
    local v38 = 0;
    if not l_isLoading_0 and not l_isDisabled_0 then
        if l_isButtonPressed_0 then
            l_Color_0 = l_themeSettings_0.OnPressColor;
            v38 = l_themeSettings_0.OnPressTransparency;
        end;
    else
        l_Color_0 = l_themeSettings_0.DisabledColor;
        v38 = l_themeSettings_0.DisabledTransparency;
    end;
    local v39 = 1 - (1 - v38) * (1 - l_themeSettings_0.Transparency);
    local v40 = not not v32 and 1 - (1 - v38) * (1 - l_themeSettings_0.Border.Transparency) or 0;
    local v41 = 1 - (1 - v38) * (1 - l_themeSettings_0.Text.Transparency);
    local l_forwardRef_0 = v18.props.forwardRef;
    local v43 = nil;
    if l_GetFFlagLuaAppFixSelectionCursor_0() then
        v43 = v19(l_CursorKind_0.InputButton);
    end;
    return v3.createElement(v4, {
        Size = l_Size_0,
        Position = l_Position_0,
        AnchorPoint = l_AnchorPoint_0,
        LayoutOrder = l_LayoutOrder_0,
        BackgroundTransparency = 1,
        Image = "LuaApp/buttons/buttonFill",
        ImageColor3 = l_Color_0,
        ImageTransparency = v39,
        BorderSizePixel = 0,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(8, 8, 9, 9),
        NextSelectionDown = l_NextSelectionDown_0,
        NextSelectionLeft = l_NextSelectionLeft_0,
        NextSelectionRight = l_NextSelectionRight_0,
        NextSelectionUp = l_NextSelectionUp_0,
        SelectionImageObject = v43,
        [v3.Ref] = l_forwardRef_0,
        [v3.Event.InputBegan] = v18.onInputBegan,
        [v3.Event.InputEnded] = v18.onInputEnded,
        [v3.Event.Activated] = l_onActivated_0
    }, {
        Border = v32 and v3.createElement(v5, {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            Image = "LuaApp/buttons/buttonStroke",
            ImageColor3 = l_themeSettings_0.Border.Color,
            ImageTransparency = v40,
            BorderSizePixel = 0,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(8, 8, 9, 9)
        }),
        Text = v3.createElement("TextLabel", {
            Size = UDim2.new(1, 0, 0, l_TextSize_0),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Text = l_Text_0,
            Font = l_Font_0,
            TextSize = l_TextSize_0,
            TextColor3 = l_themeSettings_0.Text.Color,
            TextTransparency = v41,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center,
            BackgroundTransparency = 1
        }),
        ShimmerAnimation = l_isLoading_0 and v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            ClipsDescendants = true
        }, {
            Shimmer = v3.createElement(v6, {
                Size = UDim2.new(1, 0, 2, 0),
                Position = UDim2.new(0, 0, 0, 0),
                shimmerSpeed = 1.5
            })
        })
    });
end;
return v3.forwardRef(function(v44, v45)
    return v3.createElement(v7, v2.Dictionary.join(v44, {
        forwardRef = v45
    }));
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local l_default_0 = require(l_CorePackages_0.Workspace.Packages.WebViewProtocol).default;
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_HttpService_0 = game:GetService("HttpService");
local v5 = require(l_Modules_0.LuaApp.Enum.NotificationType);
local v6 = require(l_Modules_0.LuaApp.Enum.TransitionAnimation);
local v7 = require(l_Modules_0.LuaApp.mapTransitionAnimationToNativeString);
local v8 = require(l_Modules_0.LuaApp.withLocalization);
local v9 = require(l_Modules_0.LuaApp.Components.NativePageWrapper);
local v10 = require(l_Modules_0.LuaApp.Components.WebView.AppWebView);
local v11 = require(l_Modules_0.LuaApp.Flags.GetFFlagEnableUnifiedStaticWebViews);
local function v25(v12)
    local l_isVisible_0 = v12.isVisible;
    local l_DisplayOrder_0 = v12.DisplayOrder;
    local l_url_0 = v12.url;
    local l_titleKey_0 = v12.titleKey;
    local l_title_0 = v12.title;
    local l_searchParams_0 = v12.searchParams;
    local l_transitionAnimation_0 = v12.transitionAnimation;
    local v20 = v7(l_transitionAnimation_0);
    local v21 = true;
    if l_transitionAnimation_0 ~= nil then
        v21 = true;
        if l_transitionAnimation_0 ~= v6.None then
            v21 = v20 ~= nil;
        end;
    end;
    assert(v21, string.format("Unhandled transition animation: %q", (tostring(l_transitionAnimation_0))));
    local v22 = l_transitionAnimation_0 ~= v6.None;
    v21 = function(v23)
        return v1.createElement(v9, {
            isVisible = l_isVisible_0,
            DisplayOrder = l_DisplayOrder_0,
            notificationData = l_HttpService_0:JSONEncode({
                url = l_url_0,
                title = v23,
                searchParams = l_searchParams_0,
                animated = v22,
                transitionAnimation = v20
            }),
            notificationType = v5.OPEN_CUSTOM_WEBVIEW,
            onClose = v12.onClose
        });
    end;
    if l_titleKey_0 ~= nil and l_title_0 == nil then
        return v8({
            title = l_titleKey_0
        })(function(v24)
            return v21(v24.title);
        end);
    else
        return v21(l_title_0);
    end;
end;
if not v11() then
    return v25;
else
    return function(v26)
        if not l_default_0.isEnabled() then
            return v1.createElement(v25, v26);
        else
            return v1.createElement(v10, {
                url = v26.url,
                title = v26.title,
                titleKey = v26.titleKey,
                searchParams = v26.searchParams,
                transitionAnimation = v26.transitionAnimation,
                windowCloseCallback = v26.onClose,
                overlayProps = {
                    isVisible = v26.isVisible,
                    DisplayOrder = v26.DisplayOrder
                }
            });
        end;
    end;
end;


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


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


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.LuaApp.Components.TopBar.TopBar);
local v3 = require(l_Modules_0.LuaApp.Constants);
local v4 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums);
if not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagDeprecateGridSettings() then
    local v5 = {
        TopBar = v2.GridConfig.Kind,
        Experiences = {
            Default = "experiences",
            WithFooter = "experiencesWithFooter",
            AppGameTile = "AppGameTile",
            GridTile = "GridTile"
        },
        Friends = "friends"
    };
    return {
        Kind = v5,
        Config = {
            margin = 48,
            gutter = 48,
            columns = 4,
            featuredContentRows = 4,
            hoverTileTopOffset = 10,
            hoverTileBottomOffset = 22,
            hoverTileHorizontalOffset = -4;
            {
                kind = v5.TopBar,
                columns = 1,
                gutter = 16,
                [v2.GridConfig.Keys.PaddingRightItems] = 16,
                [v2.GridConfig.Keys.PaddingVertical] = 16
            },
            {
                kind = v5.Friends,
                relativeHeight = {
                    Scale = 1,
                    Offset = 44
                }
            },
            {
                kind = v5.Experiences.Default,
                relativeHeight = {
                    Scale = 1,
                    Offset = 60
                }
            },
            {
                kind = v5.Experiences.WithFooter,
                relativeHeight = {
                    Scale = 1,
                    Offset = 82
                }
            },
            {
                kind = v5.Experiences.AppGameTile,
                relativeHeight = {
                    Scale = 1,
                    Offset = v3.GAME_GRID_TILE_FOOTER_HEIGHT
                }
            },
            {
                breakpoint = "sd",
                min = 0,
                max = 1024,
                margin = 12,
                gutter = 12,
                verticalGutter = 34,
                featuredContentRows = 2;
                {
                    kind = v5.Experiences,
                    columns = 4
                },
                {
                    kind = v5.Friends,
                    columns = 8
                }
            },
            {
                breakpoint = "hd",
                min = 1024,
                max = 1280,
                margin = 18,
                gutter = 18,
                verticalGutter = 34,
                featuredContentRows = 2;
                {
                    kind = v5.Experiences,
                    columns = 6
                },
                {
                    kind = v5.Friends,
                    columns = 10
                }
            },
            {
                breakpoint = "hd_ts",
                min = 1280,
                max = 1440,
                margin = 24,
                gutter = 24,
                verticalGutter = 34,
                featuredContentRows = 3;
                {
                    kind = v5.Experiences,
                    columns = 7
                },
                {
                    kind = v5.Friends,
                    columns = 12
                }
            },
            {
                breakpoint = "fhd",
                min = 1440,
                max = 1920,
                margin = 34,
                gutter = 34,
                featuredContentRows = 4;
                {
                    kind = v5.Experiences,
                    columns = 8
                },
                {
                    kind = v5.Friends,
                    columns = 12
                }
            },
            {
                breakpoint = "fhd_ts",
                min = 1920,
                max = 2260,
                margin = 38,
                gutter = 38,
                featuredContentRows = 4;
                {
                    kind = v5.Experiences,
                    columns = 9
                },
                {
                    kind = v5.Friends,
                    columns = 12
                }
            },
            {
                breakpoint = "2k",
                min = 2260,
                max = 2560,
                featuredContentRows = 4;
                {
                    kind = v5.Experiences,
                    columns = 10
                },
                {
                    kind = v5.Friends,
                    columns = 14
                }
            },
            {
                breakpoint = "2k_ts",
                min = 2560,
                max = 3240,
                featuredContentRows = 4;
                {
                    kind = v5.Experiences,
                    columns = 11
                },
                {
                    kind = v5.Friends,
                    columns = 16
                }
            },
            {
                breakpoint = "4k",
                min = 3240,
                max = 3840,
                featuredContentRows = 5;
                {
                    kind = v5.Experiences,
                    columns = 12
                },
                {
                    kind = v5.Friends,
                    columns = 20
                }
            },
            {
                breakpoint = "6k",
                min = 3840,
                max = math.huge,
                width = 3840,
                featuredContentRows = 5;
                {
                    kind = v5.Experiences,
                    columns = 12
                },
                {
                    kind = v5.Friends,
                    columns = 20
                }
            }
        }
    };
else
    return v4.LayoutConfig;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.InvisibleMode);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.UIBlox);
local l_Emoji_0 = v4.App.Emoji.Enum.Emoji;
local l_EmojiTextLabel_0 = v4.Core.Text.EmojiTextLabel;
local l_getIconSize_0 = v4.App.ImageSet.getIconSize;
local l_IconSize_0 = v4.App.ImageSet.Enum.IconSize;
local l_Images_0 = v4.App.ImageSet.Images;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local l_LoadableImage_0 = v4.App.Loading.LoadableImage;
local l_withStyle_0 = v4.Core.Style.withStyle;
local l_SelfPresenceStatusIndicatorContainer_0 = v2.Components.SelfPresenceStatusIndicatorContainer;
local l_FFlagInvisibleModeEnabledForAll_0 = v2.Flags.FFlagInvisibleModeEnabledForAll;
local l_FFlagInvisibleModeExperimentEnabled_0 = v2.Flags.FFlagInvisibleModeExperimentEnabled;
local l_InvisibleModeIXP_0 = v2.Flags.InvisibleModeIXP;
local l_GetTextSize_0 = require(l_CorePackages_0.Workspace.Packages.Style).GetTextSize;
local v18 = require(l_Modules_0.LuaApp.Components.GridHome.Flags.GetFFlagVerifiedBadgeOnDUARHomePageHeaderBarName);
local v19 = l_getIconSize_0(l_IconSize_0.Small);
local v20 = l_Images_0["icons/status/premium_small"];
return function(v21)
    local v22 = v21.displayName or "...";
    local l_thumbnail_0 = v21.thumbnail;
    local l_isPremium_0 = v21.isPremium;
    local v25 = not not v18() and v21.isVerified;
    local l_localUserId_0 = v21.localUserId;
    local v27 = if not v21.luaProfileEnabled then v21.openProfile else function()
        v21.openLuaProfile(l_localUserId_0, {
            profilePeekViewProps = {
                resetPeekView = true
            }
        });
    end;
    local v28 = l_FFlagInvisibleModeEnabledForAll_0 or l_FFlagInvisibleModeExperimentEnabled_0 and l_InvisibleModeIXP_0.useIsExperimentEnabled();
    local v29 = 44 + (not v28 and 0 or 24);
    local v30 = not l_isPremium_0 and 0 or v19 + 4;
    return l_withStyle_0(function(v31)
        local l_Font_0 = v31.Font.Header2.Font;
        local v33 = v31.Font.BaseSize * v31.Font.Header2.RelativeSize;
        local l_Color_0 = v31.Theme.TextEmphasis.Color;
        local l_Transparency_0 = v31.Theme.TextEmphasis.Transparency;
        local l_Color_1 = v31.Theme.PlaceHolder.Color;
        local l_Transparency_1 = v31.Theme.PlaceHolder.Transparency;
        local v38 = l_GetTextSize_0(v22, v33, l_Font_0, Vector2.new(244 - v30, 36));
        local _ = nil;
        return v3.createElement("TextButton", {
            BackgroundTransparency = 1,
            Text = "",
            Size = UDim2.new(0, if not v28 then ((44 + v38.X) + v30) + (not v25 and 0 or v33) else ((v29 + v38.X) + v30) + (not v25 and 0 or v33), 1, 0),
            [v3.Event.Activated] = v27
        }, {
            Thumbnail = v3.createElement(l_LoadableImage_0, {
                BackgroundColor3 = l_Color_1,
                BackgroundTransparency = l_Transparency_1,
                Image = l_thumbnail_0,
                AnchorPoint = Vector2.new(0, 0.5),
                Position = UDim2.fromScale(0, 0.5),
                Size = UDim2.fromOffset(36, 36),
                cornerRadius = UDim.new(0.5, 0),
                showFailedStateWhenLoadingFailed = true,
                useShimmerAnimationWhileLoading = true
            }),
            SelfPresenceStatusIndicator = if not v28 then nil else v3.createElement("Frame", {
                AnchorPoint = Vector2.new(0, 0.5),
                BackgroundTransparency = 1,
                Position = UDim2.new(0, 44, 0.5, 0),
                Size = UDim2.fromOffset(18, 28)
            }, {
                SelfPresenceStatusIndicator = v3.createElement(l_SelfPresenceStatusIndicatorContainer_0, {
                    surface = v2.Analytics.Surface.UniversalAppHeaderBar
                })
            }),
            DisplayName = not not v25 and v3.createElement(l_EmojiTextLabel_0, {
                Text = v22,
                TextTransparency = l_Transparency_0,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextTruncate = Enum.TextTruncate.AtEnd,
                AnchorPoint = Vector2.new(0, 0.5),
                Position = UDim2.new(0, v29, 0.5, 0),
                BackgroundTransparency = 1,
                fontStyle = v31.Font.Header2,
                colorStyle = v31.Theme.TextEmphasis,
                fluidSizing = false,
                emoji = l_Emoji_0.Verified,
                maxSize = Vector2.new(v38.X + v33, v38.Y)
            }) or v3.createElement("TextLabel", {
                Text = v22,
                Font = l_Font_0,
                TextSize = v33,
                TextColor3 = l_Color_0,
                TextTransparency = l_Transparency_0,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextTruncate = Enum.TextTruncate.AtEnd,
                AnchorPoint = Vector2.new(0, 0.5),
                Position = UDim2.new(0, v29, 0.5, 0),
                Size = UDim2.fromOffset(v38.X, v38.Y),
                BackgroundTransparency = 1
            }),
            MembershipIcon = if not l_isPremium_0 then nil else v3.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = v20,
                AnchorPoint = Vector2.new(1, 0.5),
                Position = UDim2.fromScale(1, 0.5),
                Size = UDim2.fromOffset(v19, v19),
                ImageColor3 = l_Color_0,
                ImageTransparency = l_Transparency_0
            })
        });
    end);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_UrlBuilder_0 = require(l_CorePackages_0.Packages.UrlBuilder).UrlBuilder;
local v5 = require(l_CorePackages_0.Packages.RoactAppExperiment);
local v6 = require(l_Modules_0.LuaApp.AppPage);
local v7 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v8 = require(l_Modules_0.LuaApp.Thunks.NavigateToUserInfo);
local v9 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v10 = require(l_Modules_0.Profile.Flags.ProfileIXPTest);
local _ = require(l_Modules_0.LuaApp.Common.safeGet);
local v12 = require(l_Modules_0.LuaApp.Common.wrapComponent);
local l_getRbxthumbWithTypeSizeAndOptions_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Utils.getRbxthumbWithTypeSizeAndOptions;
local l_Constants_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Utils.Constants;
local v15 = require(l_Modules_0.LuaApp.Components.GridHome.Flags.GetFFlagVerifiedBadgeOnDUARHomePageHeaderBarName);
return (v12(function(v16, v17)
    if not v17.isSearching then
        return v2.createElement(v16, v17);
    else
        return nil;
    end;
end)((v5.connectUserLayer({
    v9.SocialProfileLayer
}, function(v18, _)
    return {
        luaProfileEnabled = v10.experimentOrRolloutEnabled(v18)
    };
end)((v3.connect(function(v20)
    local v21 = v20.Users[v20.LocalUserId];
    if not v21 then
        return {};
    else
        return {
            displayName = v21.displayName or v21.name,
            thumbnail = l_getRbxthumbWithTypeSizeAndOptions_0(v20.LocalUserId, l_Constants_0.RbxthumbTypes.AvatarHeadShot, 150),
            isPremium = v21.membership == Enum.MembershipType.Premium,
            isVerified = not not v15() and v21.hasVerifiedBadge,
            localUserId = v20.LocalUserId
        };
    end;
end, function(v22)
    return {
        openProfile = function()
            v22(v7({
                name = v6.ViewProfile,
                detail = l_UrlBuilder_0.static.profile()
            }));
        end,
        openLuaProfile = function(v23, v24)
            v22(v8(v23, v24));
        end
    };
end)((require(script.NameBadge))))))));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_Images_0 = require(l_CorePackages_0.UIBlox).App.ImageSet.Images;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_FriendsLandingAnalytics_0 = require(l_CorePackages_0.Workspace.Packages.FriendsLanding).FriendsLandingAnalytics;
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v8 = require(l_Modules_0.LuaApp.AppPage);
local v9 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v10 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v11 = require(l_Modules_0.LuaApp.Components.GridHome.Tiles.Friends.BaseUserTile);
local l_FFlagFriendGridRowCreateCarouselList_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagFriendGridRowCreateCarouselList;
local v13 = l_Images_0["icons/menu/friends_large"];
local v14 = v2.PureComponent:extend("AddFriendsTile");
v14.init = function(v15)
    local v16 = l_FriendsLandingAnalytics_0.Class.new(v15.props.analytics, "");
    v15.onActivated = function()
        v16:reportAddFriendsEntrypoint(v8.Home);
        v15.props.navigateDown({
            name = v8.AddFriendsPage,
            extraProps = {
                titleKey = "CommonUI.Features.Label.Friends"
            }
        });
    end;
end;
v14.render = function(v17)
    return l_withLocalization_0({
        addFriends = "Feature.Friends.Feature.Friends.Heading.AddFriends"
    })(function(v18)
        return v2.createElement(v11, {
            icon = if not l_FFlagFriendGridRowCreateCarouselList_0 then v13 else v17.props.icon or v13,
            text = v18.addFriends,
            onActivated = v17.onActivated,
            noBorder = if not l_FFlagFriendGridRowCreateCarouselList_0 then nil else v17.props.noBorder,
            backgroundColor = if not l_FFlagFriendGridRowCreateCarouselList_0 then nil else v17.props.backgroundColor,
            iconColor = if not l_FFlagFriendGridRowCreateCarouselList_0 then nil else v17.props.iconColor
        });
    end);
end;
return (l_RoactServices_0.connect({
    analytics = v9
})((v3.connect(nil, function(v19)
    return {
        navigateDown = function(v20)
            v19(v10(v20));
        end
    };
end)(v14))));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v3.Core.Style.withStyle;
local l_Interactable_0 = v3.Core.Control.Interactable;
local l_ControlState_0 = v3.Core.Control.Enum.ControlState;
local l_ImageSetLabel_0 = v3.Core.ImageSet.ImageSetLabel;
local l_LoadableImage_0 = v3.App.Loading.LoadableImage;
local l_ShimmerPanel_0 = v3.App.Loading.ShimmerPanel;
local l_Images_0 = v3.App.ImageSet.Images;
local l_Emoji_0 = v3.App.Emoji.Emoji;
local l_Emoji_1 = v3.App.Emoji.Enum.Emoji;
local v13 = require(l_Modules_0.LuaApp.Flags.GetFFlagShowVerifiedBadgeFriendsCarousel);
local l_FFlagFriendGridRowCreateCarouselList_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagFriendGridRowCreateCarouselList;
local v15 = {
    [l_ControlState_0.Hover] = "BackgroundOnHover",
    [l_ControlState_0.Pressed] = "BackgroundOnPress",
    default = "PlaceHolder"
};
local v16 = l_Images_0["component_assets/circle_16"];
local v17 = v2.PureComponent:extend("BaseTile");
v17.init = function(v18)
    v18:setState({
        thumbnailBackground = v15.default
    });
    v18.onStateChanged = function(_, v20)
        v18:setState({
            thumbnailBackground = v15[v20] or v15.default
        });
    end;
    local v21, v22 = v2.createBinding(Vector2.new(0, 0));
    v18.maxTextSize = v21;
    v18.updateMaxTextSize = v22;
    v18.onResize = function(v23)
        local v24 = (v23.AbsoluteSize.X - (not v18.props.isOnline and 0 or 16)) - (not v18.props.isVerified and 0 or 18);
        if v24 ~= v18.maxTextSize:getValue().X then
            v18.updateMaxTextSize(Vector2.new(v24, 14));
        end;
    end;
end;
v17.render = function(v25)
    local l_thumbnail_0 = v25.props.thumbnail;
    local l_icon_0 = v25.props.icon;
    local l_isOnline_0 = v25.props.isOnline;
    local v29 = if not v13() then nil else v25.props.isVerified;
    local l_text_0 = v25.props.text;
    local l_metaDataText_0 = v25.props.metaDataText;
    local l_onActivated_0 = v25.props.onActivated;
    local l_thumbnailBackground_0 = v25.state.thumbnailBackground;
    local l_shouldShimmerName_0 = v25.props.shouldShimmerName;
    return l_withStyle_0(function(v35)
        local l_Font_0 = v35.Font.CaptionHeader.Font;
        local v37 = v35.Font.BaseSize * v35.Font.CaptionHeader.RelativeSize;
        local l_Color_0 = v35.Theme.TextEmphasis.Color;
        local l_Transparency_0 = v35.Theme.TextEmphasis.Transparency;
        local l_Font_1 = v35.Font.CaptionSubHeader.Font;
        local v41 = v35.Font.BaseSize * v35.Font.CaptionSubHeader.RelativeSize;
        local l_Color_1 = v35.Theme.TextMuted.Color;
        local l_Transparency_1 = v35.Theme.TextMuted.Transparency;
        local l_Color_2 = v35.Theme[l_thumbnailBackground_0].Color;
        local l_Transparency_2 = v35.Theme[l_thumbnailBackground_0].Transparency;
        local l_Color_3 = v35.Theme.IconEmphasis.Color;
        local l_Transparency_3 = v35.Theme.IconEmphasis.Transparency;
        return v2.createElement(l_Interactable_0, {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            onStateChanged = v25.onStateChanged,
            [v2.Event.Activated] = l_onActivated_0,
            [v2.Change.AbsoluteSize] = v25.onResize
        }, {
            ThumbnailContainer = v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.fromScale(1, 1),
                SizeConstraint = Enum.SizeConstraint.RelativeXX,
                BorderSizePixel = 0
            }, {
                StrokeWrapper = if not not l_FFlagFriendGridRowCreateCarouselList_0 and v25.props.noBorder then nil else v2.createElement("Frame", {
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.fromScale(0.5, 0.5),
                    Size = UDim2.new(1, -4, 1, -4),
                    BackgroundTransparency = 1,
                    ZIndex = 3
                }, {
                    UICorner = v2.createElement("UICorner", {
                        CornerRadius = UDim.new(0.5, 0)
                    }),
                    UIStroke = v2.createElement("UIStroke", {
                        Thickness = 2,
                        Color = v35.Theme.Divider.Color,
                        Transparency = v35.Theme.Divider.Transparency
                    })
                }),
                Thumbnail = v2.createElement(l_LoadableImage_0, {
                    BackgroundColor3 = if not l_FFlagFriendGridRowCreateCarouselList_0 then l_Color_2 else v25.props.backgroundColor or l_Color_2,
                    BackgroundTransparency = if not l_FFlagFriendGridRowCreateCarouselList_0 then l_Transparency_2 else v25.props.backgroundColor and 0 or l_Transparency_2,
                    Image = l_thumbnail_0,
                    Size = UDim2.fromScale(1, 1),
                    cornerRadius = UDim.new(0.5, 0),
                    showFailedStateWhenLoadingFailed = not l_icon_0 and true or false,
                    useShimmerAnimationWhileLoading = not l_icon_0 and true or false,
                    ZIndex = 1
                }),
                Icon = if not l_icon_0 then nil else v2.createElement(l_ImageSetLabel_0, {
                    Size = UDim2.new(0.45, 0, 0.45, 0),
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    BackgroundTransparency = 1,
                    Image = l_icon_0,
                    ImageColor3 = if not l_FFlagFriendGridRowCreateCarouselList_0 then l_Color_3 else v25.props.iconColor or l_Color_3,
                    ImageTransparency = if not l_FFlagFriendGridRowCreateCarouselList_0 then l_Transparency_3 else v25.props.iconColor and 0 or l_Transparency_3,
                    ZIndex = 2
                })
            }),
            TextContainer = v2.createElement("Frame", {
                BackgroundTransparency = 1,
                AnchorPoint = Vector2.new(1, 1),
                Position = UDim2.new(1, 0, 1, -22),
                Size = UDim2.new(1, 0, 0, 14)
            }, {
                TextContainerLayout = if l_isOnline_0 or v29 then v2.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    VerticalAlignment = Enum.VerticalAlignment.Top,
                    Padding = UDim.new(0, 4)
                }) else nil,
                Presence = if not l_isOnline_0 then nil else v2.createElement(l_ImageSetLabel_0, {
                    Size = UDim2.new(0, 12, 0, 12),
                    Image = v16,
                    ImageColor3 = v35.Theme.OnlineStatus.Color,
                    ImageTransparency = v35.Theme.OnlineStatus.Transparency,
                    BackgroundTransparency = 1,
                    LayoutOrder = 1
                }),
                Text = if l_shouldShimmerName_0 then nil else v2.createElement("TextLabel", {
                    Text = l_text_0,
                    Font = l_Font_0,
                    TextSize = v37,
                    TextColor3 = l_Color_0,
                    TextTransparency = l_Transparency_0,
                    TextXAlignment = if l_isOnline_0 or v29 then Enum.TextXAlignment.Left else Enum.TextXAlignment.Center,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    TextTruncate = Enum.TextTruncate.AtEnd,
                    Size = UDim2.fromScale((l_isOnline_0 or v29) and 0 or 1, 1),
                    AutomaticSize = if l_isOnline_0 or v29 then Enum.AutomaticSize.X else Enum.AutomaticSize.None,
                    BackgroundTransparency = 1,
                    LayoutOrder = 2
                }, {
                    MaxTextWidth = if l_isOnline_0 or v29 then v2.createElement("UISizeConstraint", {
                        MaxSize = v25.maxTextSize
                    }) else nil
                }),
                ShimmerName = if not l_shouldShimmerName_0 then nil else v2.createElement(l_ShimmerPanel_0, {
                    Size = UDim2.fromScale(0.8, 1)
                }),
                VerifiedBadgeFrame = if not v29 then nil else v2.createElement("Frame", {
                    Size = UDim2.new(0, 14, 0, 14),
                    BackgroundTransparency = 1,
                    LayoutOrder = 3
                }, {
                    Emoji = v2.createElement(l_Emoji_0, {
                        emoji = l_Emoji_1.Verified,
                        textFont = l_Font_0,
                        textSize = v37
                    })
                })
            }),
            MetaDataText = if not l_metaDataText_0 then nil else v2.createElement("TextLabel", {
                Position = UDim2.new(0, 0, 1, -14),
                Size = UDim2.new(1, 0, 0, 14),
                Text = l_metaDataText_0,
                Font = l_Font_1,
                TextSize = v41,
                TextColor3 = l_Color_1,
                TextTransparency = l_Transparency_1,
                TextXAlignment = Enum.TextXAlignment.Center,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextTruncate = Enum.TextTruncate.AtEnd,
                BackgroundTransparency = 1,
                LayoutOrder = 2
            })
        });
    end);
end;
return v17;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local _ = require(l_CorePackages_0.LuaSocialLibrariesDeps).SocialLibraries.config({}).User.getUserAvatarImage;
local v5 = require(l_CorePackages_0.Workspace.Packages.FriendsCarousel);
local v6 = require(l_CorePackages_0.Packages.RoactAppExperiment);
local l_convertLuaAppUserToSocialUser_0 = require(l_CorePackages_0.Workspace.Packages.SocialCommon).Utils.convertLuaAppUserToSocialUser;
local v8 = require(l_Modules_0.LuaApp.Models.User);
local v9 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForPeopleList);
local v10 = require(l_Modules_0.Profile.Analytics.EntryPoints);
local v11 = require(l_Modules_0.LuaApp.Components.GridHome.Tiles.Friends.BaseUserTile);
local v12 = require(l_Modules_0.LuaApp.Thunks.NavigateToUserInfo);
local v13 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v14 = require(l_Modules_0.Profile.Flags.ProfileIXPTest);
local l_getStandardSizeAvatarHeadShotRbxthumb_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Utils.getStandardSizeAvatarHeadShotRbxthumb;
local l_Packages_0 = l_CorePackages_0.Workspace.Packages;
local _ = require(l_Packages_0.React);
local v18 = require(l_Packages_0.UserProfiles);
local v19 = require(l_Modules_0.LuaApp.Flags.GetFFlagShowVerifiedBadgeFriendsCarousel);
return v6.connectUserLayer({
    v13.SocialProfileLayer
}, function(v20, _)
    return {
        luaProfileEnabled = v14.experimentOrRolloutEnabled(v20)
    };
end)((v3.connect(function(v22, v23)
    local v24 = v22.Users[v23.userId];
    if not v24 then
        return {};
    else
        return {
            userInfo = v24,
            isOnline = v24.presence ~= v8.PresenceType.OFFLINE,
            isVerified = if not v19() then nil else v24.hasVerifiedBadge
        };
    end;
end, function(v25)
    return {
        openContextualMenu = function(v26, v27, v28, v29, v30)
            v25(v9({
                user = v26,
                positionIndex = v27,
                absolutePosition = v27,
                onOpen = v28,
                onClose = v29,
                anchorSpaceSize = v30.AbsoluteSize,
                anchorSpacePosition = v30.AbsolutePosition,
                source = "HomepageFriendsCarousel"
            }));
        end,
        openProfilePeekView = function(v31, v32)
            v32.contextualMenuProps.user = l_convertLuaAppUserToSocialUser_0(v32.contextualMenuProps.user);
            v32.entryPoint = v10.HomePageFriendsCarousel;
            v25(v12(v31, v32));
        end
    };
end)(function(v33)
    local l_index_0 = v33.index;
    local l_userInfo_0 = v33.userInfo;
    local v36 = l_getStandardSizeAvatarHeadShotRbxthumb_0(v33.userId);
    local l_isOnline_0 = v33.isOnline;
    local l_isVerified_0 = v33.isVerified;
    local l_openContextualMenu_0 = v33.openContextualMenu;
    local l_onMenuOpen_0 = v33.onMenuOpen;
    local l_onMenuClose_0 = v33.onMenuClose;
    local v42 = l_userInfo_0.presence == v8.PresenceType.IN_GAME;
    local v43 = v18.Hooks.useUserProfilesFetch({
        userIds = {
            v33.userId
        },
        query = v18.Queries.userProfilesCombinedNameAndUsernameByUserIds
    });
    return v2.createElement(v11, {
        thumbnail = v36,
        isOnline = l_isOnline_0,
        isVerified = l_isVerified_0,
        text = if not v43.data then nil else v18.Selectors.getCombinedNameFromId(v43.data, v33.userId),
        metaDataText = if not v42 then nil else l_userInfo_0.lastLocation,
        shouldShimmerName = v43.loading or v43.error,
        onActivated = function(v44)
            if not v33.luaProfileEnabled then
                if not (not l_userInfo_0 or not v44) then
                    l_openContextualMenu_0(l_userInfo_0, l_index_0, l_onMenuOpen_0, l_onMenuClose_0, v44);
                end;
                return ;
            else
                v33.openProfilePeekView(v33.userId, {
                    userInGame = function()
                        return v42;
                    end,
                    openJoinable = true,
                    profilePeekViewProps = {
                        resetPeekView = true,
                        absolutePosition = l_index_0,
                        isHomePageCarousel = true,
                        source = v5.Constants.HomepageFriendsCarouselSourceName,
                        recommendationRank = l_userInfo_0.rank,
                        recommendationContextType = if not l_userInfo_0.contextType then nil else l_userInfo_0.contextType.rawValue(),
                        isRecommendation = not not l_userInfo_0.contextType or false,
                        mutualFriendsCount = not not l_userInfo_0.mutualFriendsList and #l_userInfo_0.mutualFriendsList or 0,
                        recommendationSessionId = v33.recommendationSessionId
                    },
                    contextualMenuProps = {
                        user = l_userInfo_0,
                        absolutePosition = l_index_0,
                        positionIndex = l_index_0,
                        anchorSpaceSize = v44.AbsoluteSize,
                        anchorSpacePosition = v44.AbsolutePosition,
                        onOpen = l_onMenuOpen_0,
                        onClose = l_onMenuClose_0,
                        source = v5.Constants.HomepageFriendsCarouselSourceName
                    }
                });
                return ;
            end;
        end
    });
end)));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(l_Modules_0.LuaApp.withLocalization);
local l_Text_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Text;
local v7 = require(l_Modules_0.LuaApp.Components.SystemPrimaryButtonRetheme);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v10 = require(l_Modules_0.LuaApp.Services.RoactAnalyticsAuthEvents);
local l_withStyle_0 = v2.Style.withStyle;
local v12 = v3.PureComponent:extend("HomePageUpsellCard");
v12.didMount = function(v13)
    v13.props.authEventAnalytics.reportModalShown("homepageUpsellCard", "homepage");
end;
v12.render = function(v14)
    return l_withStyle_0(function(v15)
        local l_Theme_0 = v15.Theme;
        local l_Color_0 = l_Theme_0.TextEmphasis.Color;
        local l_Font_0 = v15.Font.Header2.Font;
        local v19 = v15.Font.BaseSize * v15.Font.Header2.RelativeSize;
        local l_formFactor_0 = v14.props.formFactor;
        return v5({
            addButtonText = "Feature.ContactMethodUpsell.Action.SecureYourAccount",
            addTitleText = "Feature.ContactMethodUpsell.Description.HomePageUpsellCardAddPhoneText"
        })(function(v21)
            local v22 = UDim2.new(1, 0, 0, 0);
            local v23 = UDim2.new(1, 0, 0, 28);
            local v24 = 12;
            local l_Vertical_0 = Enum.FillDirection.Vertical;
            if l_formFactor_0 == l_FormFactor_0.WIDE then
                v24 = 20;
                l_Vertical_0 = Enum.FillDirection.Horizontal;
                v22 = UDim2.new(1, -l_Text_0.GetTextWidth(v21.addButtonText, v15.Font.CaptionHeader.Font, v15.Font.BaseSize * v15.Font.CaptionHeader.RelativeSize) - 30, 0, 0);
                v23 = UDim2.new(0, l_Text_0.GetTextWidth(v21.addButtonText, v15.Font.CaptionHeader.Font, v15.Font.BaseSize * v15.Font.CaptionHeader.RelativeSize) + 15, 0, 28);
            end;
            return v3.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 0),
                BorderSizePixel = 0,
                BackgroundTransparency = 0,
                BackgroundColor3 = l_Theme_0.BackgroundUIDefault.Color,
                AutomaticSize = Enum.AutomaticSize.Y
            }, {
                UISizeConstraint = v3.createElement("UISizeConstraint", {
                    MaxSize = Vector2.new(650, math.huge)
                }),
                Layout = v3.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = l_Vertical_0,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    Padding = UDim.new(0, v24)
                }),
                UICorner = v3.createElement("UICorner", {
                    CornerRadius = UDim.new(0, 12)
                }),
                UIStroke = v3.createElement("UIStroke", {
                    Thickness = 1,
                    Color = l_Theme_0.SystemPrimaryDefault.Color,
                    Transparency = 0.7
                }),
                UIPadding = v3.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 12),
                    PaddingRight = UDim.new(0, 12),
                    PaddingTop = UDim.new(0, 12),
                    PaddingBottom = UDim.new(0, 12)
                }),
                TitleTextLabel = v3.createElement("TextLabel", {
                    Size = v22,
                    LayoutOrder = 1,
                    Font = l_Font_0,
                    BorderSizePixel = 0,
                    Text = v21.addTitleText,
                    TextColor3 = l_Color_0,
                    TextSize = v19,
                    TextWrapped = true,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    BackgroundTransparency = 0,
                    BackgroundColor3 = l_Theme_0.BackgroundUIDefault.Color,
                    AutomaticSize = Enum.AutomaticSize.Y
                }),
                CallToActionButton = v3.createElement(v7, {
                    Size = v23,
                    BackgroundTransparency = 0,
                    Text = v21.addButtonText,
                    LayoutOrder = 2,
                    fontStyle = "CaptionHeader",
                    onActivated = v14.props.buttonClickCallback,
                    BackgroundColor3 = l_Theme_0.BackgroundUIDefault.Color
                })
            });
        end);
    end);
end;
return (l_RoactServices_0.connect({
    authEventAnalytics = v10
})((v4.connect(function(v26, _)
    return {
        formFactor = v26.FormFactor
    };
end)(v12))));