local l_AvatarChatService_0 = game:GetService("AvatarChatService");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_VideoCaptureService_0 = game:GetService("VideoCaptureService");
local v3 = require(game:GetService("CorePackages").Cryo);
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v5 = require(l_RobloxGui_0.Modules.Flags.GetFFlagAvatarChatServiceEnabled);
local v6 = require(l_RobloxGui_0.Modules.Flags.getFFlagUseCameraDevicesListener);
local v7 = require(l_RobloxGui_0.Modules.Settings.cameraDevicesHelper);
return function()
    if v5() then
        local l_status_0, l_result_0 = pcall(l_AvatarChatService_0.GetClientFeaturesAsync, l_AvatarChatService_0);
        if l_status_0 then
            local v10 = l_AvatarChatService_0:IsEnabled(l_result_0, Enum.AvatarChatServiceFeature.PlaceVideo);
            local v11 = l_AvatarChatService_0:IsEnabled(l_result_0, Enum.AvatarChatServiceFeature.UserVideo);
            local v12 = l_AvatarChatService_0:IsEnabled(l_result_0, Enum.AvatarChatServiceFeature.UserVideoEligible);
            local v13 = l_AvatarChatService_0:IsEnabled(l_result_0, Enum.AvatarChatServiceFeature.PlaceAudio);
            local v14 = l_AvatarChatService_0:IsEnabled(l_result_0, Enum.AvatarChatServiceFeature.UserAudio);
            local v15 = l_AvatarChatService_0:IsEnabled(l_result_0, Enum.AvatarChatServiceFeature.UserAudioEligible);
            local _ = nil;
            if not v3.isEmpty(if not v6() then l_VideoCaptureService_0:GetCameraDevices() else v7.GetDevices()) then
                local v17 = v14 and v15;
                local v18 = v11 and v12;
                if v10 then
                    if not v13 or not v17 then
                        if not v18 then
                            return false;
                        else
                            return true;
                        end;
                    else
                        return false;
                    end;
                else
                    return false;
                end;
            else
                return false;
            end;
        else
            warn("Unable to get Client Features from AvatarChatService");
            return false;
        end;
    else
        return false;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_GuiService_0 = game:GetService("GuiService");
local l_RunService_0 = game:GetService("RunService");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_Players_0 = game:GetService("Players");
local v7 = require(l_RobloxGui_0.Modules.Common.PerfUtils);
local l_MessageBus_0 = require(l_CorePackages_0.Workspace.Packages.MessageBus).MessageBus;
l_RobloxGui_0:WaitForChild("Modules"):WaitForChild("TenFootInterface");
local v9 = require(l_RobloxGui_0.Modules.Common.Flags.GetFFlagEnableInGameMenuDurationLogger);
local l_GetFFlagChromeSurveySupport_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagChromeSurveySupport;
local v11 = require(l_RobloxGui_0.Modules.Common.GetDefaultQualityLevel);
local l_Constants_0 = require(l_RobloxGui_0.Modules:WaitForChild("InGameMenu"):WaitForChild("Resources"):WaitForChild("Constants"));
local v13 = require(l_RobloxGui_0.Modules.Chrome.Service.LocalStore);
return function(v14)
    if v9() then
        v7.leavingGame();
    end;
    l_GuiService_0.SelectedCoreObject = nil;
    l_RbxAnalyticsService_0:SetRBXEventStream(l_Constants_0.AnalyticsTargetName, l_Constants_0.AnalyticsInGameMenuName, l_Constants_0.AnalyticsLeaveGameName, {
        confirmed = l_Constants_0.AnalyticsConfirmedName,
        universeid = tostring(game.GameId),
        source = l_Constants_0.AnalyticsLeaveGameSource
    });
    if v14 then
        local v15 = nil;
        if l_GetFFlagChromeSurveySupport_0() then
            v15 = {
                chromeSeenCount = tostring(v13.getChromeSeenCount())
            };
        end;
        l_MessageBus_0.publish(l_Constants_0.OnSurveyEventDescriptor, {
            eventType = l_Constants_0.SurveyEventType,
            userId = tostring(l_Players_0.LocalPlayer.UserId),
            customProps = v15
        });
    end;
    l_RunService_0.RenderStepped:wait();
    l_RunService_0.RenderStepped:wait();
    game:Shutdown();
    settings().Rendering.QualityLevel = v11();
end;


local l_AppStorageService_0 = game:GetService("AppStorageService");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_RobloxGui_0.Modules.Common.IXPServiceWrapper);
local l_game_EngineFeature_0 = game:GetEngineFeature("UniversalAppShareLinksStorageKey");
local v6 = require(l_Modules_0.Flags.GetFFlagShareInviteLinkContextMenuABTestEnabled);
local v7 = require(script.Parent.Flags.GetFStringLuaAppExperienceMenuLayer);
local v8 = {};
v8.__index = v8;
v8.new = function(v9)
    local v10 = {
        _currentSessionIsEnabled = nil,
        _ixpServiceWrapper = v9 or v4
    };
    setmetatable(v10, v8);
    return v10;
end;
v8.initialize = function(v11)
    if v6() then
        local l_status_0, l_result_0 = pcall(function()
            return v11._ixpServiceWrapper:GetLayerData(v7());
        end);
        if l_status_0 then
            if v11._currentSessionIsEnabled == nil then
                v11._currentSessionIsEnabled = v11.getCachedValue();
            end;
            if not (not ((not not l_result_0 and l_result_0.share_invite_link_enabled) ~= v11._currentSessionIsEnabled) or not l_game_EngineFeature_0) then
                pcall(function()
                    l_AppStorageService_0:SetItem("ShareInviteLinkExperimentEnabled", (tostring(l_result_0.share_invite_link_enabled)));
                    l_AppStorageService_0:Flush();
                end);
            end;
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;
v8.getCachedValue = function()
    if l_game_EngineFeature_0 then
        local l_status_1, l_result_1 = pcall(function()
            return l_AppStorageService_0:GetItem("ShareInviteLinkExperimentEnabled");
        end);
        if l_status_1 then
            return l_result_1 == "true";
        end;
    end;
    return false;
end;
v8.isShareInviteLinkEnabled = function(v16)
    if v16._currentSessionIsEnabled == nil then
        v16._currentSessionIsEnabled = v16.getCachedValue();
    end;
    return v16._currentSessionIsEnabled;
end;
v8.default = v8.new();
return v8;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local v3 = require(script:FindFirstAncestor("ShareTargetGame").dependencies);
local l_Common_0 = l_CoreGui_0.RobloxGui.Modules.Common;
local l_formatAlias_0 = v3.SocialLibraries.Utils.formatAlias;
local l_Constants_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Constants;
local v7 = require(l_Common_0.Functional);
local l_Conversation_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Models.Conversation;
local l_getStandardSizeAvatarHeadShotRbxthumb_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Utils.getStandardSizeAvatarHeadShotRbxthumb;
return function(v10, v11, v12)
    local v13 = tostring(l_Players_0.LocalPlayer.UserId);
    local v15 = v7.Filter(v11.participants, function(v14)
        return v14 ~= v13;
    end);
    local v16 = v11.conversationType == l_Conversation_0.Type.ONE_TO_ONE_CONVERSATION;
    local v17 = nil;
    local v18 = nil;
    local v19 = "";
    if v16 then
        local v20 = v10[v15[1]];
        if v20 then
            v18 = v20.presence;
            v17 = v20.lastLocation;
            local v21 = v12.byUserId[v20.id] or "";
            if v21 ~= "" then
                v19 = l_formatAlias_0(v21);
            end;
        end;
    end;
    local v22 = {};
    for _, v24 in pairs(v11.participants) do
        if not ((not v16 or v24 == v13) and v16) then
            table.insert(v22, (l_getStandardSizeAvatarHeadShotRbxthumb_0(v24)));
        end;
    end;
    local _ = nil;
    return {
        oneToOne = v16,
        lastUpdated = not v11.lastUpdated and 0 or v11.lastUpdated:GetUnixTimestamp(),
        conversationId = v11.id,
        lastLocation = v17,
        presence = v18,
        presenceImage = not v16 and "" or (l_Constants_0.PresenceIndicatorImagesBySize[l_Constants_0:GetPresenceIndicatorSizeKey(14)][v18] or ""),
        title = v11.title,
        thumbnails = v22,
        participants = v11.participants,
        alias = v19
    };
end;


return function(v0, v1)
    return function(v2)
        local v3 = v2:getState();
        if not v3.ChatAppReducer.ConversationsAsync.oldestConversationIsFetched then
            local v4 = 0;
            for _, _ in pairs(v3.ChatAppReducer.Conversations) do
                v4 = v4 + 1;
            end;
            v0(math.floor(v4 / v1) + 1);
            return ;
        else
            return ;
        end;
    end;
end;


local v0 = require(game:GetService("CorePackages").Workspace.Packages.AppChat);
local v1 = require(script:FindFirstAncestor("ShareTargetGame").dependencies);
local l_Roact_0 = v1.Roact;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_Text_0 = v1.Text;
local l_UIBlox_0 = v1.UIBlox;
local v6 = if not l_SocialLibraries_0.Flags.getFFlagDeprecatedSocialLibrariesCells() then l_SocialLibraries_0.Components.Cells.ConversationCell else v0.Components.Cells.ConversationCell;
local v7 = require(script.Parent.SendButton);
return function(v8)
    local v9 = v8.failedText or "";
    local v10 = v8.sendingText or "";
    local v11 = v8.sendText or "";
    local v12 = v8.sentText or "";
    local v13 = v8.isLoading or false;
    local l_conversation_0 = v8.conversation;
    local l_onSendButtonActivated_0 = v8.onSendButtonActivated;
    return l_UIBlox_0.Style.withStyle(function(v16)
        local l_Font_0 = v16.Font;
        return l_Roact_0.createElement("Frame", {
            BackgroundTransparency = v16.Theme.BackgroundUIDefault.Transparency,
            BackgroundColor3 = v16.Theme.BackgroundUIDefault.Color,
            BorderSizePixel = 0,
            Size = UDim2.new(1, 0, 1, 0),
            Visible = v8.Visible,
            LayoutOrder = v8.LayoutOrder
        }, {
            content = l_Roact_0.createElement(v6, {
                style = v16,
                conversation = l_conversation_0,
                subTitleText = v8.subTitleText,
                secondaryTitleText = v8.secondaryTitleText,
                childWidth = ((l_Text_0.GetTextWidth(v11, l_Font_0.CaptionBody.Font, l_Font_0.CaptionBody.RelativeSize * l_Font_0.BaseSize) + 14) + 24) + 12,
                Size = UDim2.new(1, 0, 1, 0),
                isLoading = v13
            }, {
                rightAlignedComponent = l_Roact_0.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 1, 0)
                }, {
                    padding = l_Roact_0.createElement("UIPadding", {
                        PaddingRight = UDim.new(0, 12)
                    }),
                    layout = l_Roact_0.createElement("UIListLayout", {
                        HorizontalAlignment = Enum.HorizontalAlignment.Right,
                        VerticalAlignment = Enum.VerticalAlignment.Center
                    }),
                    sendButton = l_Roact_0.createElement(v7, {
                        sendText = v11,
                        sentText = v12,
                        sendingText = v10,
                        sentStatus = v8.sentStatus,
                        failedText = v9,
                        isLoading = v13,
                        conversation = l_conversation_0,
                        onActivated = function()
                            return l_onSendButtonActivated_0(l_conversation_0);
                        end
                    })
                })
            })
        });
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ShareTargetGame");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_UIBlox_0 = v1.UIBlox;
local l_User_0 = v1.User;
local l_FilteredScrollingList_0 = l_SocialLibraries_0.Components.FilteredScrollingList;
local v7 = require(l_script_FirstAncestor_0.Utils.conversationSortComparator);
local v8 = require(script.Parent.ConversationCellWithSendButton);
local v9 = l_Roact_0.PureComponent:extend("FilteredConversationList");
v9.defaultProps = {
    searchFilterPredicate = function(v10, v11)
        local l_title_0 = v11.title;
        if not v10 or v10 == "" then
            return true;
        else
            return string.find(string.lower(l_title_0), string.lower(v10), 1, true) ~= nil;
        end;
    end,
    conversations = {},
    conversationSendingStatuses = {},
    touchedBottomCallback = nil,
    filterBoxPlaceHolderText = nil,
    offlinePresence = nil,
    onlinePresence = nil,
    sendText = "Send",
    sentText = "Sent",
    sendingText = "Sending",
    failedText = "Failed",
    entryHeight = nil,
    isLoading = false,
    onSendButtonActivated = function(_)
    end
};
v9.init = function(v14)
    v14.loadingEntries = table.create(3, {
        title = ""
    });
    v14.renderConversationCell = function(v15)
        local _ = nil;
        return l_Roact_0.createElement(v8, {
            conversation = v15,
            sentStatus = v14.props.conversationSendingStatuses[v15.conversationId],
            subTitleText = not v15.presence and "" or if v15.presence == l_User_0.PresenceType.ONLINE then v14.props.onlinePresence else if v15.presence == l_User_0.PresenceType.OFFLINE then v14.props.offlinePresence else v15.lastLocation,
            sendText = v14.props.sendText,
            sentText = v14.props.sentText,
            sendingText = v14.props.sendingText,
            failedText = v14.props.failedText,
            secondaryTitleText = v15.alias,
            onSendButtonActivated = v14.props.onSendButtonActivated,
            isLoading = v14.props.isLoading
        });
    end;
end;
v9.render = function(v17)
    local v18 = not not v17.props.isLoading and v17.loadingEntries or v17.props.conversations;
    return l_UIBlox_0.Style.withStyle(function(v19)
        local l_Theme_0 = v19.Theme;
        local l_Font_0 = v19.Font;
        return l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            layout = l_Roact_0.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Top,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            dividerTop = l_Roact_0.createElement("Frame", {
                BackgroundColor3 = l_Theme_0.Divider.Color,
                BackgroundTransparency = l_Theme_0.Divider.Transparency,
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 0, 1),
                LayoutOrder = 1
            }),
            filterBoxContainer = l_Roact_0.createElement(l_FilteredScrollingList_0, {
                searchBoxHeight = 48,
                searchBackgroundColor3 = l_Theme_0.UIMuted.Color,
                searchBackgroundTransparency = l_Theme_0.UIMuted.Transparency,
                searchIconCellWidth = 60,
                searchIconSize = 24,
                searchIconColor3 = l_Theme_0.TextDefault.Color,
                searchIconTransparency = l_Theme_0.TextDefault.Transparency,
                searchIconImage = "rbxasset://textures/ui/LuaChat/icons/ic-search.png",
                searchInputTextFont = l_Font_0.Body.Font,
                searchInputTextColor3 = l_Theme_0.TextDefault.Color,
                searchInputTextSize = l_Font_0.BaseSize * l_Font_0.Body.RelativeSize,
                searchInputTextTransparency = l_Theme_0.TextDefault.Transparency,
                searchPlaceholderTextTransparency = l_Theme_0.PlaceHolder.Transparency,
                searchPlaceholderTextColor3 = l_Theme_0.TextDefault.Color,
                searchPlaceholderText = v17.props.filterBoxPlaceHolderText,
                searchClearIconColor3 = l_Theme_0.TextDefault.Color,
                searchClearIcon = "rbxasset://textures/ui/LuaChat/icons/ic-close-white.png",
                searchDividerColor3 = l_Theme_0.Divider.Color,
                searchDividerTransparency = l_Theme_0.Divider.Transparency,
                searchDividerHeight = 1,
                scrollBarImageTransparency = v19.Theme.UIDefault.Transparency,
                scrollBarImageColor3 = v19.Theme.UIDefault.Color,
                entries = v18,
                renderEntry = v17.renderConversationCell,
                entryHeight = v17.props.entryHeight,
                scrollTouchedBottomCallback = v17.props.touchedBottomCallback,
                filterPredicate = v17.props.searchFilterPredicate,
                sortComparator = v7,
                LayoutOrder = 2
            })
        });
    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 l_ShimmerPanel_0 = v2.App.Loading.ShimmerPanel;
local l_LoadableImage_0 = v2.App.Loading.LoadableImage;
local v5 = UDim.new(0, 4);
local v6 = v1.PureComponent:extend("GameBanner");
v6.defaultProps = {
    creator = "By (placeholder)",
    name = "Placeholder Game",
    thumbnail = "rbxasset://textures/grid2.png",
    isLoading = false,
    shouldShowCreatorName = true
};
v6.render = function(v7)
    return v2.Style.withStyle(function(v8)
        return v1.createElement("Frame", {
            BackgroundColor3 = v8.Theme.BackgroundContrast.Color,
            BorderSizePixel = 0,
            Size = UDim2.new(1, 0, 0, 72)
        }, {
            layout = v1.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                FillDirection = Enum.FillDirection.Horizontal
            }),
            PlaceThumbnailFrame = v1.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(0, 72, 0, 72),
                LayoutOrder = 0
            }, {
                layout = v1.createElement("UIListLayout", {
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center
                }),
                placeThumbnail = not v7.props.isLoading and v1.createElement(l_LoadableImage_0, {
                    Image = v7.props.thumbnail,
                    Size = UDim2.new(0, 48, 0, 48),
                    BackgroundTransparency = 1
                }) or v1.createElement(l_ShimmerPanel_0, {
                    Size = UDim2.new(0, 48, 0, 48),
                    cornerRadius = v5
                })
            }),
            ContentFrame = v1.createElement("Frame", {
                Size = UDim2.new(1, -84, 1, 0),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }, {
                layout = v1.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 3)
                }),
                padding = v1.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, 17)
                }),
                PlaceTitle = not v7.props.isLoading and v1.createElement("TextLabel", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 20),
                    TextSize = 20,
                    TextColor3 = v8.Theme.TextEmphasis.Color,
                    Font = v8.Font.Header2.Font,
                    Text = v7.props.name,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    LayoutOrder = 0
                }) or v1.createElement(l_ShimmerPanel_0, {
                    Size = UDim2.new(1, 0, 0, 20),
                    cornerRadius = v5
                }),
                BuilderLabel = not v7.props.isLoading and v1.createElement("TextLabel", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 17),
                    TextSize = 17,
                    TextColor3 = v8.Theme.TextDefault.Color,
                    Font = v8.Font.Body.Font,
                    Text = v7.props.creator,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    Visible = v7.props.shouldShowCreatorName,
                    LayoutOrder = 1
                }) or v1.createElement(l_ShimmerPanel_0, {
                    Size = UDim2.new(0.6, 0, 0, 17),
                    cornerRadius = v5
                })
            })
        });
    end);
end;
return v6;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.Promise);
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local l_Text_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Text;
local l_ShimmerPanel_0 = v3.App.Loading.ShimmerPanel;
local v6 = v2.PureComponent:extend("SendButton");
v6.defaultProps = {
    sendText = "Send",
    sentText = "Sent",
    sendingText = "Sending..",
    failedText = "Failed",
    sentStatus = nil,
    isLoading = false,
    onActivated = function()
        return v1.resolve();
    end
};
v6.render = function(v7)
    return v3.Style.withStyle(function(v8)
        local v9 = nil;
        v9 = if v7.props.sentStatus == "sent" then v7.props.sentText else if v7.props.sentStatus == "sending" then v7.props.sendingText else if v7.props.sentStatus == "failed" then v7.props.failedText else v7.props.sendText;
        local l_Font_0 = v8.Font.Body.Font;
        local v11 = v8.Font.BaseSize * v8.Font.Body.RelativeSize;
        local v12 = l_Text_0.GetTextWidth(v9, l_Font_0, v11);
        return not v7.props.isLoading and v2.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(0, v12 + 14, 0, 32)
        }, {
            layout = v2.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Center
            }),
            element = not not v7.props.sentStatus and v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 1, 0)
            }, {
                inactiveButton = v2.createElement("TextLabel", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 1, 0),
                    TextSize = v11,
                    TextColor3 = v8.Theme.TextDefault.Color,
                    TextTransparency = v8.Theme.TextDefault.Transparency,
                    Font = l_Font_0,
                    TextXAlignment = Enum.TextXAlignment.Right,
                    Text = v9
                })
            }) or v2.createElement("Frame", {
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 1, 0)
            }, {
                layout = v2.createElement("UIListLayout", {
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center
                }),
                activeButton = v2.createElement("ImageButton", {
                    BackgroundTransparency = 1,
                    ImageColor3 = v8.Theme.SecondaryDefault.Color,
                    ImageTransparency = v8.Theme.SecondaryDefault.Transparency,
                    Image = "rbxasset:///textures/ui/LuaDiscussions/buttonStroke.png",
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = Rect.new(8, 8, 8, 8),
                    Size = UDim2.new(1, 0, 1, 0),
                    [v2.Event.Activated] = v7.props.onActivated
                }, {
                    layout = v2.createElement("UIListLayout", {
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        HorizontalAlignment = Enum.HorizontalAlignment.Center
                    }),
                    interior = v2.createElement("Frame", {
                        BackgroundColor3 = v8.Theme.BackgroundUIDefault.Color,
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        Size = UDim2.new(1, -2, 1, -2)
                    }, {
                        layout = v2.createElement("UIListLayout", {
                            VerticalAlignment = Enum.VerticalAlignment.Center,
                            HorizontalAlignment = Enum.HorizontalAlignment.Center
                        }),
                        Label = v2.createElement("TextLabel", {
                            Size = UDim2.new(0, v12, 0, v11),
                            BackgroundTransparency = 1,
                            Text = v9,
                            Font = l_Font_0,
                            TextSize = v11,
                            TextColor3 = v8.Theme.SecondaryContent.Color,
                            TextTransparency = v8.Theme.SecondaryContent.Transparency
                        })
                    })
                })
            })
        }) or v2.createElement(l_ShimmerPanel_0, {
            Size = UDim2.new(0, v12 + 14, 0, 32),
            cornerRadius = UDim.new(0, 4)
        });
    end);
end;
return v6;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(script.Parent.FilteredConversationList);
local v4 = require(script.Parent.GameBanner);
local v5 = v1.PureComponent:extend("ShareTargetGame");
v5.defaultProps = {
    byBuilderText = "By (placeholder)",
    gameName = "Placeholder Game",
    gameThumbnail = "rbxasset://textures/grid2.png",
    shouldShowCreatorName = true,
    conversations = {
        {
            title = "PlaceholderName1"
        },
        {
            title = "PlaceholderName2"
        },
        {
            title = "PlaceholderName3"
        }
    },
    conversationSendingStatus = {},
    offlinePresence = nil,
    onlinePresence = nil,
    filterBoxPlaceHolderText = nil,
    sendText = nil,
    sentText = nil,
    sendingText = nil,
    failedText = nil,
    onSendButtonActivated = nil,
    conversationListScrollTouchedBottom = nil,
    LayoutOrder = nil,
    isLoading = false
};
v5.render = function(v6)
    return v2.Style.withStyle(function(_)
        return v1.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, -72),
            BackgroundTransparency = 1,
            LayoutOrder = v6.props.LayoutOrder
        }, {
            layout = v1.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Top,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            gameBanner = v1.createElement(v4, {
                creator = v6.props.byBuilderText,
                shouldShowCreatorName = v6.props.shouldShowCreatorName,
                name = v6.props.gameName,
                thumbnail = v6.props.gameThumbnail,
                isLoading = v6.props.isLoading,
                LayoutOrder = 1
            }),
            conversationListContainer = v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, -88),
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }, {
                conversationList = v1.createElement(v3, {
                    conversations = v6.props.formattedConversations,
                    conversationSendingStatuses = v6.props.conversationSendingStatuses,
                    touchedBottomCallback = v6.props.conversationListScrollTouchedBottom,
                    filterBoxPlaceHolderText = v6.props.filterBoxPlaceHolderText,
                    onSendButtonActivated = v6.props.onSendButtonActivated,
                    sendText = v6.props.sendText,
                    sentText = v6.props.sentText,
                    sendingText = v6.props.sendingText,
                    failedText = v6.props.failedText,
                    isLoading = v6.props.isLoading,
                    entryHeight = 52,
                    offlinePresence = v6.props.offlinePresence,
                    onlinePresence = v6.props.onlinePresence
                })
            })
        });
    end);
end;
return v5;


local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("ShareTargetGame");
local v2 = require(l_script_FirstAncestor_0.analytics);
local v3 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v3.Roact;
local l_EventStream_0 = v3.EventStream;
local l_Diag_0 = v3.Diag;
local l_request_0 = v3.request;
local v8 = require(script.Parent.ShareTargetGameContainer);
local v9 = l_Roact_0.PureComponent:extend("ShareTargetGameEntrypoint");
v9.defaultProps = {
    placeId = nil,
    eventStream = l_EventStream_0.new(l_RbxAnalyticsService_0),
    diag = l_Diag_0.new(l_RbxAnalyticsService_0),
    isVisible = false
};
v9.render = function(v10)
    return l_Roact_0.createElement(v8, {
        placeId = v10.props.placeId,
        analytics = v2(v10.props.eventStream, v10.props.diag),
        networkImpl = l_request_0
    });
end;
return v9;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_LuaApp_0 = game:GetService("CoreGui").RobloxGui.Modules.LuaApp;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_LuaApp_0.Components.NavigationBar);
local v5 = v2.PureComponent:extend("ShareTargetGameTopBar");
v5.defaultProps = {
    LayoutOrder = 0
};
v5.render = function(v6)
    return v3.Style.withStyle(function(v7)
        return v2.createElement("Frame", {
            BackgroundTransparency = 0,
            BorderSizePixel = 0,
            BackgroundColor3 = v7.Theme.BackgroundDefault.Color,
            Size = UDim2.new(1, 0, 0, 88),
            LayoutOrder = v6.props.LayoutOrder
        }, {
            topBar = v2.createElement(v4, {
                paddingTop = 12,
                title = "Feature.Chat.Heading.ShareGameToChat",
                titleFont = v7.Font.Header2.Font,
                titleTextSize = v7.Font.Header2.RelativeSize * v7.Font.BaseSize,
                titleColor = v7.Theme.TextEmphasis.Color,
                iconSize = 36,
                icon = "rbxasset://textures/ui/LuaChat/icons/ic-close-white.png",
                iconColor = v7.Theme.IconEmphasis.Color,
                buttonLeftPadding = 15,
                Size = UDim2.new(1, 0, 1, 0)
            })
        });
    end);
end;
return v5;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ShareTargetGame");
local l_Roact_0 = require(l_script_FirstAncestor_0.dependencies).Roact;
local v2 = require(l_script_FirstAncestor_0.Components.SendButton);
local v3 = l_Roact_0.PureComponent:extend("SendButtonBase");
v3.init = function(v4)
    v4.state = {
        sentStatus = nil
    };
    v4.send = function()
        v4:setState({
            sentStatus = v4.props.sentStatus
        });
    end;
end;
v3.render = function(v5)
    return l_Roact_0.createElement(v2, {
        sentStatus = v5.state.sentStatus,
        onActivated = v5.send
    });
end;
return v3;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Workspace.Packages.UnitTestHelpers);
return {
    name = "sharetargetgame",
    storyRoot = script,
    middleware = function(v3, v4)
        require(l_CorePackages_0.UIBlox).init(require(l_CorePackages_0.Workspace.Packages.RobloxAppUIBloxConfig));
        local v5 = v1.mount(v2.createStyleProvider({
            Story = v1.createElement(v3)
        }, {
            withDarkTheme = false
        }), v4, "StoryRoot");
        return function()
            v1.unmount(v5);
        end;
    end
};


local l_Conversations_0 = require(game:GetService("CorePackages").Workspace.Packages.AppChat).Conversations;
local v1 = require(script.Parent.SendPolicies.SendGameLinkMessagePolicy);
local l_SendMessageUsingPolicy_0 = l_Conversations_0.Thunks.SendMessageUsingPolicy;
return function(v3, v4, v5, v6, v7)
    return l_SendMessageUsingPolicy_0((v1:new(v3, v4, nil, v5 or false, v6 or 0, v7 or 0)));
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.Loggers).Logger:new("SendGameLinkMessagePolicy");
local l_MessageModel_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Models.MessageModel;
local l_DEPRECATED_ChatSendGameLinkMessage_0 = require(l_CorePackages_0.Workspace.Packages.Http).Requests.DEPRECATED_ChatSendGameLinkMessage;
local l_SendChatMessagePolicy_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Conversations.Thunks.SendPolicies.SendChatMessagePolicy;
local v5 = require(l_CorePackages_0.Packages.HttpRequest);
local v9 = v5.config({
    requestFunction = function(v6, v7, v8)
        v1:info("Fetching: {}", string.format("[ requestMethod = %q, url = %q ]", v7, v6));
        return v5.requestFunctions.HttpRbxApi(v6, v7, v8);
    end
});
local v10 = setmetatable({}, l_SendChatMessagePolicy_0);
v10.__index = v10;
v10.new = function(v11, v12, v13, v14, v15, v16, v17)
    local v18 = l_SendChatMessagePolicy_0:new(v12);
    setmetatable(v18, v11);
    v18.universeId = v13;
    v18.decorators = v14;
    v18.isExperienceInvite = v15;
    v18.userId = v16;
    v18.placeId = v17;
    return v18;
end;
v10.sendMessage = function(v19, _)
    return l_DEPRECATED_ChatSendGameLinkMessage_0(v9, v19.conversationId, v19.universeId, v19.decorators, v19.isExperienceInvite or false, v19.userId or 0, v19.placeId or 0);
end;
v10.sendingMessagePayload = function(v21)
    return {
        messageType = l_MessageModel_0.MessageTypes.Link,
        link = {
            type = l_MessageModel_0.LinkTypes.Game,
            game = {
                universeId = v21.universeId
            }
        }
    };
end;
return v10;


local l_getConversationDisplayTitle_0 = require(script:FindFirstAncestor("ShareTargetGame").dependencies).SocialLibraries.Conversation.getConversationDisplayTitle;
return function(v1, v2)
    assert(type(v1 == "table"), "ConversationA should be a table value. Value given: ", (type(v1)));
    assert(v1.title or v1.titleForViewer, "ConversationA should have a title string");
    assert(type(v2 == "table"), "ConversationB should be a table value. Value given: ", (type(v2)));
    assert(v2.title or v2.titleForViewer, "ConversationB should have a title string");
    if v1.lastUpdated ~= nil and v2.lastUpdated ~= nil then
        return v2.lastUpdated < v1.lastUpdated;
    elseif v1.lastUpdated ~= nil then
        return true;
    elseif v2.lastUpdated ~= nil then
        return false;
    else
        return l_getConversationDisplayTitle_0(v1) < l_getConversationDisplayTitle_0(v2);
    end;
end;


return function(v0, v1)
    local v2 = {};
    for v3, v4 in pairs(v0) do
        v2[v3] = {};
        for v5, v6 in pairs(v4) do
            v2[v3][v5] = v6;
        end;
        local v7 = v1 and v1[v3];
        if v7 then
            v2[v3].lastUpdated = v7.lastUpdated;
        end;
    end;
    return v2;
end;


local l_ShareGameAnalytics_0 = require(script:FindFirstAncestor("ShareTargetGame").dependencies).SocialLibraries.Analytics.ShareGameAnalytics;
return function(v1, v2)
    return (l_ShareGameAnalytics_0.new(v1, v2, l_ShareGameAnalytics_0.ButtonName.LuaGameDetails));
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.LuaSocialLibrariesDeps);
local v3 = v2.SocialLibraries.config({});
local v4 = require(l_CorePackages_0.Workspace.Packages.Loggers).Logger:new("ShareTargetGame");
local v5 = require(l_CorePackages_0.Packages.HttpRequest);
return {
    Diag = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.Diag,
    EventStream = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.EventStream,
    Roact = require(l_CorePackages_0.Roact),
    Rodux = require(l_CorePackages_0.Rodux),
    RoactRodux = require(l_CorePackages_0.RoactRodux),
    SocialLibraries = v3,
    Text = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Text,
    UIBlox = require(l_CorePackages_0.UIBlox),
    User = require(l_CorePackages_0.Workspace.Packages.UserLib).Models.UserModel,
    UniversalAppPolicy = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).UniversalAppPolicy,
    withLocalization = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization,
    LocalizationProvider = require(l_CorePackages_0.Workspace.Packages.Localization).LocalizationProvider,
    Promise = require(l_CorePackages_0.Promise),
    request = v5.config({
        requestFunction = function(v6, v7, v8)
            v4:info("Fetching: {}", string.format("[ requestMethod = %q, url = %q ]", v7, v6));
            return v5.requestFunctions.HttpRbxApi(v6, v7, v8);
        end
    }),
    SharedFlags = require(l_CorePackages_0.Workspace.Packages.SharedFlags),
    RoactServices = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices,
    RoactLocalization = require(l_CoreGui_0.RobloxGui.Modules.LuaApp.Services.RoactLocalization),
    Mock = v2.Mock,
    JestGlobals = require(l_CorePackages_0.JestGlobals)
};


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(script.Parent.Thunks.SendGameLinkMessage);
local l_ApiFetchGameDetails_0 = require(l_CorePackages_0.Workspace.Packages.GameDetailRodux).GameDetails.ApiFetchGameDetails;
local l_ApiFetchGameIcons_0 = require(l_CorePackages_0.Workspace.Packages.GameIconRodux).GameIcons.ApiFetchGameIcons;
local l_ApiFetchPlaceInfos_0 = require(l_CorePackages_0.Workspace.Packages.PlaceInfoRodux).Thunks.ApiFetchPlaceInfos;
local l_SetAppLoaded_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Actions.SetAppLoaded;
local v6 = require(script:FindFirstAncestor("ShareTargetGame").ChatConversations.Thunks.requestOlderConversations);
local l_DEPRECATED_getLocalUserConversations_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Conversations.Thunks.DEPRECATED_getLocalUserConversations;
return function(v8)
    local function v10(v9)
        return v8(l_DEPRECATED_getLocalUserConversations_0(v9, 30));
    end;
    return {
        sendGameLinkToConversation = function(v11, v12, v13, v14, v15)
            return v8(v1(v11, v12, v13 or false, v14 or 0, v15 or 0));
        end,
        fetchGameData = function(v16, v17)
            v8(l_ApiFetchGameIcons_0(v16, {
                v17
            }));
            v8(l_ApiFetchGameDetails_0.Fetch(v16, {
                v17
            }));
        end,
        fetchConversations = v10,
        setAppLoaded = function()
            return v8(l_SetAppLoaded_0(true));
        end,
        fetchPlaceInfos = function(v18, v19)
            return v8(l_ApiFetchPlaceInfos_0(v18, {
                v19
            }));
        end,
        conversationListScrollTouchedBottom = function()
            return v8(v6(v10, 30));
        end
    };
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_ShareTargetGame_0 = l_CoreGui_0.RobloxGui.Modules.ShareTargetGame;
local l_getGameIcon_0 = require(l_CorePackages_0.Workspace.Packages.GameIconRodux).GameIcons.getGameIcon;
local v4 = require(l_ShareTargetGame_0.Games.Selectors.getGameDetails);
local v5 = require(l_ShareTargetGame_0.ChatConversations.Models.buildConversationModel);
return function(v6, v7)
    local v8 = v6.ChatAppReducer.PlaceInfos[v7.placeId] or {};
    local l_Conversations_0 = v6.ChatAppReducer.Conversations;
    local l_AppLoaded_0 = v6.ChatAppReducer.AppLoaded;
    local v11 = "";
    local v12 = "";
    if v8.universeId then
        v11 = l_getGameIcon_0(v6, (tostring(v8.universeId)));
        v12 = v4(v6, (tostring(v8.universeId))).name;
    end;
    local v13 = {};
    for v14, v15 in pairs(l_Conversations_0) do
        v13[v14] = v5(v6.Users, v15, v6.ChatAppReducer.Aliases);
    end;
    return {
        appLoaded = l_AppLoaded_0,
        placeInfo = v8,
        senderId = v6.LocalUserId,
        conversations = v13,
        gameCreator = v8.builder,
        gameThumbnail = v11,
        gameName = v12,
        byBuilderText = ""
    };
end;


local l_RobloxGui_0 = game:GetService("CoreGui").RobloxGui;
local l_Shell_0 = l_RobloxGui_0.Modules.Shell;
local l_ContextActionService_0 = game:GetService("ContextActionService");
local v3 = require(l_Shell_0.AccountManager);
local v4 = require(l_Shell_0.AssetManager);
local v5 = require(l_Shell_0.Errors);
local v6 = require(l_Shell_0.ErrorOverlay);
local v7 = require(l_Shell_0.GlobalSettings);
local v8 = require(l_Shell_0.LoadingWidget);
local v9 = require(l_Shell_0.ScreenManager);
local v10 = require(l_Shell_0.SoundManager);
local v11 = require(l_Shell_0.LocalizedStrings);
local v12 = require(l_Shell_0.ThumbnailLoader);
local v13 = require(l_Shell_0.UnlinkAccountOverlay);
local v14 = require(l_Shell_0.Utility);
local v15 = require(l_Shell_0.AppState);
return function()
    local v16 = {};
    local l_gamertag_0 = v15.store:getState().XboxUser.gamertag;
    local l_robloxName_0 = v15.store:getState().RobloxUser.robloxName;
    local l_rbxuid_0 = v15.store:getState().RobloxUser.rbxuid;
    local v20 = string.format(v11:LocalizedString("LinkedAsPhrase"), l_gamertag_0, l_robloxName_0);
    local v21 = v14.Create("Frame")({
        BackgroundTransparency = 1
    });
    local v22 = v14.Create("Frame")({
        Name = "Container",
        Position = UDim2.new(0, 0, 0, 0),
        Size = UDim2.new(0, 765, 0, 630),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        Selectable = true,
        SelectionImageObject = v21
    });
    v14.Create("ImageLabel")({
        Name = "GamerPic",
        Position = UDim2.new(0, 40, 0, 25),
        Size = UDim2.new(0, 300, 0, 300),
        BackgroundTransparency = 0,
        BorderSizePixel = 0,
        Image = "rbxapp://xbox/localgamerpic",
        Parent = v22
    });
    v14.Create("ImageLabel")({
        Name = "AccountLinkIcon",
        Position = UDim2.new(0, 354, 0, 166),
        Size = UDim2.new(0, 58, 0, 20),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/AccountLinkIcon.png",
        Parent = v22
    });
    local v23 = v14.Create("ImageLabel")({
        Name = "ProfileImage",
        Position = UDim2.new(0, 425, 0, 25),
        Size = UDim2.new(0, 300, 0, 300),
        BackgroundTransparency = 0,
        BackgroundColor3 = v7.CharacterBackgroundColor,
        BorderSizePixel = 0,
        Parent = v22
    });
    if l_rbxuid_0 then
        spawn(function()
            local l_Size352x352_0 = v12.AvatarSizes.Size352x352;
            v12:LoadAvatarThumbnailAsync(v23, l_rbxuid_0, Enum.ThumbnailType.AvatarThumbnail, Enum.ThumbnailSize.Size352x352, true):LoadAsync();
            v23.ImageRectSize = Vector2.new(l_Size352x352_0.X, 1 * l_Size352x352_0.X);
        end);
    end;
    v14.Create("TextLabel")({
        Name = "ProfileLabel",
        Position = UDim2.new(0, 575, 0, 335),
        Text = l_robloxName_0 or "",
        TextXAlignment = "Center",
        TextYAlignment = "Top",
        BackgroundColor3 = Color3.new(1, 0, 0),
        TextColor3 = v7.WhiteTextColor,
        Font = v7.RegularFont,
        FontSize = v7.SubHeaderSize,
        BackgroundTransparency = 1,
        Parent = v22
    });
    v14.Create("TextLabel")({
        Name = "GamerLabel",
        Text = l_gamertag_0 or "",
        TextXAlignment = "Center",
        TextYAlignment = "Top",
        Position = UDim2.new(0, 190, 0, 335),
        BackgroundColor3 = Color3.new(1, 0, 0),
        TextColor3 = v7.WhiteTextColor,
        Font = v7.RegularFont,
        FontSize = v7.SubHeaderSize,
        BackgroundTransparency = 1,
        Parent = v22
    });
    v14.Create("TextLabel")({
        Name = "LinkedAsText",
        Position = UDim2.new(0, 40, 0, 395),
        Size = UDim2.new(0, 686, 0, 120),
        Text = v20,
        TextXAlignment = "Center",
        TextYAlignment = "Top",
        BackgroundTransparency = 1,
        Font = v7.RegularFont,
        TextColor3 = v7.GreyTextColor,
        FontSize = v7.SubHeaderSize,
        TextWrapped = true,
        Parent = v22
    });
    local v25 = v14.Create("Frame")({
        Name = "UnlinkContainer",
        Position = UDim2.new(0, 220, 0, 520),
        Size = UDim2.new(0, 320, 0, 80),
        BackgroundTransparency = 1,
        ZIndex = 2,
        Parent = v22;
        v4.CreateShadow(1)
    });
    local v26 = v14.Create("ImageButton")({
        Name = "UnlinkButton",
        Position = UDim2.new(0, 0, 0, 0),
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        ImageColor3 = v7.GreySelectedButtonColor,
        Image = v7.RoundCornerButtonImage,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(Vector2.new(4, 4), Vector2.new(28, 28)),
        ZIndex = 2,
        Parent = v25;
        v10:CreateSound("MoveSelection")
    });
    local l_GreyButtonColor_0 = v7.GreyButtonColor;
    local l_GreySelectedButtonColor_0 = v7.GreySelectedButtonColor;
    local l_WhiteTextColor_0 = v7.WhiteTextColor;
    local l_TextSelectedColor_0 = v7.TextSelectedColor;
    local v31 = v14.Create("TextLabel")({
        Name = "UnlinkText",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        Font = v7.RegularFont,
        FontSize = v7.ButtonSize,
        TextColor3 = Color3.new(0, 0, 0),
        Text = v11:LocalizedString("UnlinkGamerTagWord"),
        ZIndex = 2,
        Parent = v26
    });
    v14.ResizeButtonWithText(v25, v31, v7.TextHorizontalPadding);
    v22.SelectionGained:connect(function()
        v14.SetSelectedCoreObject(v26);
    end);
    v26.SelectionGained:connect(function()
        v26.ImageColor3 = l_GreySelectedButtonColor_0;
        v31.TextColor3 = l_TextSelectedColor_0;
    end);
    v26.SelectionLost:connect(function()
        v26.ImageColor3 = l_GreyButtonColor_0;
        v31.TextColor3 = l_WhiteTextColor_0;
    end);
    local v32 = v14.Create("Frame")({
        Name = "ModalOverlay",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = v7.ModalBackgroundTransparency,
        BackgroundColor3 = v7.ModalBackgroundColor,
        BorderSizePixel = 0,
        ZIndex = 4
    });
    local v33 = false;
    local function v36()
        if not v33 then
            v33 = true;
            local v34 = nil;
            local v35 = v8({
                Parent = v22
            }, {
                function()
                    v34 = v3:UnlinkAccountAsync();
                end
            });
            v32.Parent = l_RobloxGui_0;
            l_ContextActionService_0:BindCoreAction("BlockB", function()
            end, false, Enum.KeyCode.ButtonB);
            v26.SelectionImageObject = v21;
            v26.ImageColor3 = v7.GreyButtonColor;
            v31.TextColor3 = v7.WhiteTextColor;
            v35:AwaitFinished();
            v35:Cleanup();
            v26.SelectionImageObject = nil;
            v26.ImageColor3 = v7.GreySelectedButtonColor;
            v31.TextColor3 = v7.TextSelectedColor;
            l_ContextActionService_0:UnbindCoreAction("BlockB");
            v32.Parent = nil;
            if v34 ~= v3.AuthResults.Success then
                v9:OpenScreen(v6(not not v34 and v5.Authentication[v34] or v5.Default), false);
            end;
            v33 = false;
            return ;
        else
            return ;
        end;
    end;
    v16.Focus = function(_)
    end;
    v16.RemoveFocus = function(_)
    end;
    v26.MouseButton1Click:connect(function()
        if not v33 then
            v10:Play("ButtonPress");
            v9:OpenScreen(v13({
                Title = v11:LocalizedString("UnlinkTitle"),
                Msg = v11:LocalizedString("UnlinkPhrase")
            }, v36), false);
            return ;
        else
            return ;
        end;
    end);
    v16.SetParent = function(_, v40)
        v22.Parent = v40;
    end;
    v16.GetUnlinkButton = function(_)
        return v26;
    end;
    return v16;
end;


local l_Modules_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules");
local l_Shell_0 = l_Modules_0:FindFirstChild("Shell");
local l_LuaApp_0 = l_Modules_0:FindFirstChild("LuaApp");
local v3 = nil;
pcall(function()
    v3 = game:GetService("PlatformService");
end);
local l_UserInputService_0 = game:GetService("UserInputService");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_Players_0 = game:GetService("Players");
local l_ThirdPartyUserService_0 = game:GetService("ThirdPartyUserService");
local l_Http_0 = require(l_Shell_0:FindFirstChild("Http"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local v10 = require(l_LuaApp_0.Models.Authentication.Birthday);
local v11 = {
    AuthResults = {
        Error = -1,
        Success = 0,
        InProgress = 1,
        AccountUnlinked = 2,
        MissingGamePad = 3,
        NoUserDetected = 4,
        HttpErrorDetected = 5,
        SignUpDisabled = 6,
        Flooded = 7,
        LeaseLocked = 8,
        AccountLinkingDisabled = 9,
        InvalidRobloxUser = 10,
        RobloxUserAlreadyLinked = 11,
        XboxUserAlreadyLinked = 12,
        IllgealChildAccountLinking = 13,
        InvalidPassword = 14,
        UsernamePasswordNotSet = 15,
        UsernameAlreadyTaken = 16,
        SiteMaintenance = 19,
        CodeInvalid = 22
    },
    InvalidUsernameReasons = {
        Valid = "Valid",
        InvalidUsername = "Invalid Username",
        AlreadyTaken = "Already Taken",
        InvalidCharactersUsed = "Invalid Characters Used",
        UsernameCannotContainSpaces = "Username Cannot Contain Spaces"
    }
};
local function _()
    return v11.AuthResults.Success;
end;
v11.LoginAsync = function(v13)
    if UserSettings().GameSettings:InStudioMode() or l_UserInputService_0:GetPlatform() == Enum.Platform.Windows then
        return v11.AuthResults.Success;
    else
        local l_status_0, l_result_0 = pcall(function()
            return v3:PerformLogin();
        end);
        if l_status_0 then
            local l_accountAuthResult_0 = l_result_0.accountAuthResult;
            if l_accountAuthResult_0 == v13.AuthResults.Success then
                l_Players_0:SetLocalPlayerInfo(l_result_0.userId, l_result_0.username, l_result_0.displayName, l_result_0.membershipType, l_result_0.isUnder13);
            end;
            return l_accountAuthResult_0;
        else
            return v13.AuthResults.Error;
        end;
    end;
end;
v11.SignupAsync = function(v17, v18, v19)
    local l_status_1, l_result_1 = pcall(function()
        return v3:BeginPlatformSignup(v18, v19);
    end);
    if not l_status_1 then
        l_result_1 = v17.AuthResults.Error;
    end;
    if l_result_1 == v17.AuthResults.Success then
        l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_New_Account_Success");
        l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_Success");
    end;
    return l_result_1;
end;
v11.LinkAccountFirstStepAsync = function(v22, v23, v24)
    local l_status_2, l_result_2 = pcall(function()
        return v3:Perform2SVLinkAccount(v23, v24);
    end);
    if l_status_2 then
        if l_result_2.accountAuthResult == v22.AuthResults.Success then
            l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_Account_Link_Success");
            l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_Success");
        end;
        return l_result_2;
    else
        l_Utility_0.DebugLog("AccountManager:LinkAccountFirstStepAsync() failed: success = false");
        return {
            accountAuthResult = v11.AuthResults.Error
        };
    end;
end;
v11.CrossDeviceAccountLink = function(v27, v28, v29)
    local l_status_3, l_result_3 = pcall(function()
        return v3:PerformCrossDeviceAccountLink(v28, v29);
    end);
    if l_status_3 then
        if l_result_3 == v27.AuthResults.Success then
            l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_Account_Link_Success");
            l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_Success");
        end;
        return l_result_3;
    else
        l_Utility_0.DebugLog("AccountManager:CrossDeviceAccountLink() failed: success = false");
        return v27.AuthResults.Error;
    end;
end;
v11.VerifyAsync = function(v32, v33, v34, v35, v36)
    local l_status_4, l_result_4 = pcall(function()
        return v3:PerformVerify(v33, v34, v35, v36);
    end);
    if not l_status_4 then
        l_Utility_0.DebugLog("AccountManager:VerifyAsync() failed because ", l_result_4);
        l_result_4 = v11.AuthResults.Error;
    end;
    if l_result_4 == v32.AuthResults.Success then
        l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_Verification_Success");
        l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_Success");
    end;
    return l_result_4;
end;
v11.ResendAsync = function(v39, v40, v41)
    local l_status_5, l_result_5 = pcall(function()
        return v3:PerformResend(v40, v41);
    end);
    if not l_status_5 then
        l_Utility_0.DebugLog("AccountManager:ResendAsync() failed because ", l_result_5);
        l_result_5 = v11.AuthResults.Error;
    end;
    if l_result_5 == v39.AuthResults.Success then
        l_RbxAnalyticsService_0:ReportCounter("Xbox_SignUp_Resend_Success");
    end;
    return l_result_5;
end;
v11.SetRobloxCredentialsAsync = function(_, v45, v46)
    local l_status_6, l_result_6 = pcall(function()
        return v3:BeginSetRobloxCredentials(v45, v46);
    end);
    if not l_status_6 then
        l_Utility_0.DebugLog("AccountManager:SetRobloxCredentialsAsync() failed because", l_result_6);
        l_result_6 = v11.AuthResults.Error;
    end;
    return l_result_6;
end;
v11.UnlinkAccountAsync = function(_)
    local l_status_7, l_result_7 = pcall(function()
        return v3:BeginUnlinkAccount();
    end);
    if not l_status_7 then
        l_Utility_0.DebugLog("AccountManager:UnlinkAccountAsync() failed because", l_result_7);
        l_result_7 = v11.AuthResults.Error;
    end;
    return l_result_7;
end;
local v52 = false;
local function _()
    v52 = true;
    delay(15, function()
        v52 = false;
    end);
end;
v11.HasLinkedAccountAsync = function(_)
    if UserSettings().GameSettings:InStudioMode() or l_UserInputService_0:GetPlatform() == Enum.Platform.Windows then
        return v11.AuthResults.Success;
    elseif v52 == true then
        return v11.AuthResults.SiteMaintenance;
    else
        local l_status_8, l_result_8 = pcall(function()
            return v3:BeginHasLinkedAccount();
        end);
        if not l_status_8 then
            l_Utility_0.DebugLog("AccountManager:HasLinkedAccountAsync() failed because", l_result_8);
            l_result_8 = v11.AuthResults.Error;
        end;
        if l_result_8 == v11.AuthResults.SiteMaintenance then
            v52 = true;
            delay(15, function()
                v52 = false;
            end);
        end;
        return l_result_8;
    end;
end;
local function v58()
    if not l_ThirdPartyUserService_0:IsOver13() then
        local v57 = DateTime.now():ToUniversalTime();
        return v10.new({
            Month = v57.Month,
            Day = v57.Day,
            Year = v57.Year
        }):FormatForEndpoint();
    else
        return v10.new({
            Month = 1,
            Day = 1,
            Year = 1970
        }):FormatForEndpoint();
    end;
end;
v11.IsValidUsernameAsync = function(_, v60)
    local v61 = l_Http_0.IsValidUsername(v60, (v58()));
    if v61 then
        if v61.code and v61.code == 0 then
            return true;
        else
            return false, v61.message;
        end;
    else
        return nil;
    end;
end;
v11.IsValidPasswordAsync = function(_, v63, v64)
    local v65 = l_Http_0.IsValidPassword(v63, v64);
    if v65 then
        if v65.code and v65.code == 0 then
            return true;
        else
            return false, v65.message;
        end;
    else
        return nil;
    end;
end;
return v11;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_BaseScreen_0 = require(l_Shell_0:FindFirstChild("BaseScreen"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
local l_Analytics_0 = require(l_Shell_0:FindFirstChild("Analytics"));
local l_AccountLinkingView_0 = require(l_Shell_0:FindFirstChild("AccountLinkingView"));
local l_GameplaySettingsView_0 = require(l_Shell_0:FindFirstChild("GameplaySettingsView"));
return function(v8)
    local v9 = l_BaseScreen_0();
    v9:SetTitle(l_LocalizedStrings_0:LocalizedString("AccountSettingsTitle"));
    local v10 = l_Utility_0.Create("Frame")({
        Name = "AccountLinkingViewContainer",
        Position = UDim2.new(0, 75, 0, 275),
        Size = UDim2.new(0, 765, 0, 630),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        Parent = v9.Container
    });
    local v11 = l_AccountLinkingView_0();
    v11:SetParent(v10);
    local _ = l_Utility_0.Create("Frame")({
        Name = "ScreenDivide",
        Size = UDim2.new(0, 2, 0, 615),
        Position = UDim2.new(0, 840, 0, 275),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.PageDivideColor,
        Parent = v9.Container
    });
    local v13 = l_Utility_0.Create("Frame")({
        Name = "GameplaySettingsViewContainer",
        Position = UDim2.new(0, 840, 0, 275),
        Size = UDim2.new(0, 765, 0, 630),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        Parent = v9.Container
    });
    local v14 = l_GameplaySettingsView_0(v8);
    v14:SetParent(v13);
    v9.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("UnlinkAccountScreenId")
        };
    end;
    v9.GetDefaultSelectionObject = function(_)
        return v11:GetUnlinkButton();
    end;
    local l_Focus_0 = v9.Focus;
    v9.Focus = function(v18)
        l_Focus_0(v18);
        v11:Focus();
        v14:Focus();
    end;
    local l_RemoveFocus_0 = v9.RemoveFocus;
    v9.RemoveFocus = function(v20)
        l_RemoveFocus_0(v20);
        v11:RemoveFocus();
    end;
    return v9;
end;


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("AddError", function(v0, v1)
    v0 = v0 or {};
    return {
        error = {
            Title = v0.Title,
            Msg = v0.Msg,
            Code = v0.Code,
            timestamp = v1
        }
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("DeleteError", function(v0)
    v0 = v0 or {};
    return {
        error = {
            Title = v0.Title,
            Msg = v0.Msg,
            Code = v0.Code
        }
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("FetchPrivilegeSettings", function()
    return {};
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("FetchUserThumbnail", function(v0)
    v0 = v0 or {};
    return {
        rbxuid = v0.rbxuid,
        thumbnailType = v0.thumbnailType,
        thumbnailSize = v0.thumbnailSize
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("GetCrossPlayEnabledFailed", function()
    return {};
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("InsertScreen", function(v0)
    return {
        item = v0
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("PostCrossPlayEnabledFailed", function()
    return {};
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("RemoveScreen", function(v0)
    return {
        item = v0
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("RequestCrossPlayEnabled", function()
    return {};
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("ResetUserThumbnails", function()
    return {};
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("SetCrossPlayEnabled", function(v0, v1)
    return {
        enabled = v0,
        timestamp = v1
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("SetFriendsData", function(v0)
    return {
        data = v0
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("SetPrivilegeSettings", function(v0)
    v0 = v0 or {};
    return {
        Multiplayer = v0.Multiplayer,
        SharedContent = v0.SharedContent,
        timestamp = v0.timestamp
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("SetRenderedFriendsData", function(v0)
    return {
        data = v0
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("SetRobloxUser", function(v0)
    v0 = v0 or {};
    return {
        robloxName = v0.robloxName,
        rbxuid = v0.rbxuid,
        under13 = v0.under13
    };
end);


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(l_CoreGui_0.RobloxGui.Modules.Common.Action);
local v2 = require(l_CoreGui_0.RobloxGui.Modules.LuaApp.mutedError);
return v1("SetUserThumbnail", function(v3)
    v3 = v3 or {};
    if v3.imageUrl and string.find(v3.imageUrl, "rbxthumb") == nil then
        v2("SetUserThumbnail thumbnailInfo.imageUrl isn't rbxthumb");
    end;
    return {
        success = v3.success,
        rbxuid = v3.rbxuid,
        imageUrl = v3.imageUrl,
        thumbnailType = v3.thumbnailType,
        thumbnailSize = v3.thumbnailSize,
        isFinal = v3.isFinal,
        timestamp = v3.timestamp
    };
end);


return require(game:GetService("CoreGui").RobloxGui.Modules.Common.Action)("SetXboxUser", function(v0)
    v0 = v0 or {};
    return {
        gamertag = v0.gamertag,
        xuid = v0.xuid
    };
end);


local l_RobloxGui_0 = game:GetService("CoreGui").RobloxGui;
local v1 = require(script.Parent.Utility);
local v2 = UDim2.new(0.03333333333333333, 0, 0.02962962962962963, 0);
local v3 = UDim2.new(0.020089285714285716, 0, 0.007407407407407408, 0);
local v4 = {
    Root = v1.Create("Frame")({
        Name = "AppContainerRoot",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        BackgroundColor3 = Color3.new(0, 0, 0),
        ClipsDescendants = true,
        Parent = l_RobloxGui_0
    })
};
v4.AspectRatioProtector = v1.Create("Frame")({
    Name = "AspectRatioProtector",
    Size = UDim2.new(1, 0, 1, 0),
    Position = UDim2.new(0, 0, 0, 0),
    BackgroundTransparency = 1,
    Parent = v4.Root
});
v4.ActionSafeContainer = v1.Create("Frame")({
    Name = "ActionSafeContainer",
    Size = UDim2.new(1, 0, 1, 0) - (v2 + v2),
    Position = UDim2.new(0, 0, 0, 0) + v2,
    BackgroundTransparency = 1,
    Parent = v4.AspectRatioProtector
});
v4.TitleSafeContainer = v1.Create("Frame")({
    Name = "TitleSafeContainer",
    Size = UDim2.new(1, 0, 1, 0) - (v3 + v3),
    Position = UDim2.new(0, 0, 0, 0) + v3,
    BackgroundTransparency = 1,
    Parent = v4.ActionSafeContainer
});
local function v6()
    local v5 = v1.CalculateFit(v4.Root, Vector2.new(16, 9));
    if v5 ~= v4.AspectRatioProtector.Size then
        v4.AspectRatioProtector.Size = v5;
        v4.AspectRatioProtector.AnchorPoint = Vector2.new(0.5, 0.5);
        v4.AspectRatioProtector.Position = UDim2.new(0.5, 0, 0.5, 0);
    end;
end;
v4.Root:GetPropertyChangedSignal("AbsoluteSize"):connect(function()
    v6();
end);
v6();
return v4;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_AvatarEditorService_0 = game:GetService("AvatarEditorService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(script.Parent.Reducers.AppShellReducer);
local v5 = require(l_Modules_0.AvatarExperience.Common.Managers.PageObjectManager);
local v6 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.PaginatedFetchThunk);
local v7 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.AvatarEditorServiceThunk);
local v8 = require(l_CorePackages_0.Rodux);
local v10 = {
    Destruct = function(v9)
        v9.store:destruct();
    end
};
local v11 = {
    v8.thunkMiddleware
};
local v12 = v5.new();
table.insert(v11, (v6.middleware(v12, l_AvatarEditorService_0)));
v10.pageObjectManager = v12;
table.insert(v11, (v7.middleware(l_AvatarEditorService_0)));
v10.store = v8.Store.new(v4, {}, v11, nil);
return v10;


local l_Utility_0 = require(game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell"):FindFirstChild("Utility"));
return {
    CreateShadow = function(v1)
        return l_Utility_0.Create("ImageLabel")({
            Name = "Shadow",
            Image = "rbxasset://textures/ui/Shell/Buttons/Generic9ScaleShadow.png",
            Size = UDim2.new(1, 3, 1, 3),
            Position = UDim2.new(0, 0, 0, 0),
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(10, 10, 28, 28),
            BackgroundTransparency = 1,
            ZIndex = v1 or 1
        });
    end
};


local v0 = require(script.Parent.Analytics);
return {
    Show = function(_)
    end,
    RemoveFocus = function(_)
    end,
    Hide = function(_)
    end,
    Focus = function(_)
    end,
    SetParent = function(_)
    end,
    GetAnalyticsInfo = function(_)
        return {
            [v0.WidgetNames("WidgetId")] = v0.WidgetNames("AvatarEditorScreenId")
        };
    end
};


local l_TextService_0 = game:GetService("TextService");
local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_Analytics_0 = require(l_Shell_0:FindFirstChild("Analytics"));
local l_Errors_0 = require(l_Shell_0:FindFirstChild("Errors"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_ScreenManager_0 = require(l_Shell_0:FindFirstChild("ScreenManager"));
local l_ErrorOverlay_0 = require(l_Shell_0:FindFirstChild("ErrorOverlay"));
local l_PurchasePackagePrompt_0 = require(l_Shell_0:FindFirstChild("PurchasePackagePrompt"));
local l_BaseTile_0 = require(l_Shell_0:FindFirstChild("BaseTile"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
return function(v12)
    local v13 = l_BaseTile_0();
    local v14 = false;
    local _ = v12:GetFullName();
    local function v17()
        if not (not v12:IsOwned() or v12:IsWearing()) then
            local v16 = v12:WearAsync();
            if v16 and v16.success == true then
                v13:UpdateEquipButton();
                return ;
            else
                l_ScreenManager_0:OpenScreen(l_ErrorOverlay_0(l_Errors_0.PackageEquip.Default), false);
            end;
        end;
    end;
    local function v19()
        local v18 = l_PurchasePackagePrompt_0(v12);
        l_ScreenManager_0:OpenScreen(v18, false);
        v18:FadeInBackground();
        spawn(function()
            if v18:ResultAsync() then
                l_SoundManager_0:Play("PurchaseSuccess");
                v17();
            end;
        end);
    end;
    local v20 = l_Utility_0.Create("Frame")({
        Name = "PriceFrame",
        Size = UDim2.new(1, 0, 0, 36),
        AnchorPoint = Vector2.new(1, 0),
        Position = UDim2.new(1, -6, 0, 6),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.PriceLabelColor,
        ZIndex = 2,
        Visible = false,
        Parent = v13.AvatarItemContainer
    });
    local v21 = l_Utility_0.Create("TextLabel")({
        Name = "PriceText",
        Text = "",
        Size = UDim2.new(1, 0, 1, 0),
        AnchorPoint = Vector2.new(1, 0),
        Position = UDim2.new(1, -14, 0, 0),
        TextColor3 = l_GlobalSettings_0.BlackTextColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.DescriptionSize,
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.PriceLabelColor,
        BackgroundTransparency = 1,
        ZIndex = 2,
        Visible = true,
        Parent = v20
    });
    local v22 = l_Utility_0.Create("TextLabel")({
        Name = "PromoText",
        Text = "",
        Size = UDim2.new(1, 0, 0, 36),
        Position = UDim2.new(0, 0, 0, 0),
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.DescriptionSize,
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.PromoLabelColor,
        ZIndex = 2,
        Visible = false,
        Parent = v13.AvatarItemContainer
    });
    local v23 = l_Utility_0.Create("ImageLabel")({
        Name = "RobuxIcon",
        Size = UDim2.new(0, 24, 0, 24),
        AnchorPoint = Vector2.new(1, 0.5),
        Position = UDim2.new(0, -6, 0.5, 2),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/common/robux_small@3x.png",
        ZIndex = 2,
        ImageColor3 = l_GlobalSettings_0.BlackTextColor,
        Parent = v21
    });
    v13.UpdatePriceText = function(_)
        local v25 = "";
        local l_v12_RobuxPrice_0 = v12:GetRobuxPrice();
        if not v12:IsXboxAddOn() then
            if l_v12_RobuxPrice_0 == 0 then
                v25 = l_LocalizedStrings_0:LocalizedString("FreeWord");
            elseif l_v12_RobuxPrice_0 then
                v25 = l_Utility_0.FormatNumberString(l_v12_RobuxPrice_0);
            end;
        else
            v25 = "";
        end;
        v21.Text = v25;
        local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v21.Text, l_Utility_0.ConvertFontSizeEnumToInt(v21.FontSize), v21.Font, Vector2.new());
        v23.Visible = l_v12_RobuxPrice_0 ~= 0;
        local v28 = l_l_TextService_0_TextSize_0.X + 28;
        if v23.Visible then
            v28 = (v28 + 6) + 24;
        end;
        v20.Size = UDim2.new(0, v28, 0, 36);
        v21.Size = UDim2.new(0, l_l_TextService_0_TextSize_0.X, 0, l_l_TextService_0_TextSize_0.Y);
        local v29 = false;
        if l_v12_RobuxPrice_0 ~= nil then
            v29 = not v12:IsOwned() and not v12:IsXboxAddOn();
        end;
        v20.Visible = v29;
    end;
    v13.UpdatePromoText = function(_)
        if v12:IsOwned() then
            v22.Visible = false;
        else
            local v31 = l_Utility_0.GetFastVariable("XboxSaleAvatarPackageIds");
            if type(v31) == "string" and v31 ~= "" then
                for v32 in string.gmatch(v31, "([^;]+)") do
                    if tonumber(v32) ~= nil and tonumber(v32) == tonumber(v12:GetAssetId()) then
                        v22.Text = "SALE";
                        v22.Size = UDim2.new(0, l_TextService_0:GetTextSize(v22.Text, l_Utility_0.ConvertFontSizeEnumToInt(v22.FontSize), v22.Font, Vector2.new()).X + 28, 0, 36);
                        v22.AnchorPoint = Vector2.new(1, 0);
                        v22.Position = UDim2.new(1, -6, 0, 42);
                        v22.Visible = true;
                        return ;
                    end;
                end;
                return ;
            end;
        end;
    end;
    v13:SetImage(string.format("rbxthumb://type=BundleThumbnail&id=%d&w=150&h=150", v12:GetBundleId()));
    v13:ColorizeImage(not v12:IsOwned() and 0 or 1, 0);
    v13:SetPopupText(v12:GetName());
    v13.GetAssetId = function(_)
        return v12:GetAssetId();
    end;
    v13.GetPackageInfo = function(_)
        return v12;
    end;
    v13.UpdateOwnership = function(v35)
        local v36 = v12:IsOwned();
        v35:SetActive(v36);
        v35:ColorizeImage(not v36 and 0 or 1, 0);
        v35:UpdateEquipButton();
        v35:UpdatePriceText();
        v35:UpdatePromoText();
    end;
    v13.UpdateEquipButton = function(v37)
        v37.EquippedCheckmark.Visible = v12:IsWearing();
    end;
    local v38 = false;
    v13.Select = function(_)
        if not v38 then
            local v40 = false;
            if not (not v12:IsOwned() or v12:IsWearing()) then
                v38 = true;
                spawn(function()
                    v17();
                    v38 = false;
                end);
                v40 = true;
            end;
            return v40;
        else
            return false;
        end;
    end;
    v13.OnClick = function(_)
        v19();
    end;
    local v42 = nil;
    local v43 = nil;
    local l_Show_0 = v13.Show;
    v13.Show = function(v45)
        l_Show_0(v45);
        l_Utility_0.DisconnectEvent(v42);
        v12.IsWearingChanged:connect(function()
            v45:UpdateEquipButton();
        end);
        l_Utility_0.DisconnectEvent(v43);
        v43 = v12.OwnershipChanged:connect(function()
            v45:UpdateOwnership();
        end);
        v45:UpdateEquipButton();
        v45:UpdateOwnership();
    end;
    local l_Hide_0 = v13.Hide;
    v13.Hide = function(v47)
        l_Hide_0(v47);
        v42 = l_Utility_0.DisconnectEvent(v42);
        v43 = l_Utility_0.DisconnectEvent(v43);
    end;
    local l_Focus_0 = v13.Focus;
    local v49 = nil;
    v13.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("AvatarTileId"),
            AssetId = v12:GetAssetId(),
            IsOwned = v12:IsOwned()
        };
    end;
    v13.Focus = function(v51)
        l_Focus_0(v51);
        v14 = true;
        l_Utility_0.DisconnectEvent(v49);
        v49 = v51.AvatarItemContainer.MouseButton1Click:connect(function()
            v51:OnClick();
        end);
        v51:UpdateEquipButton();
        spawn(function()
            wait(0.17);
            if not (not v14 or v12:IsOwned()) then
                v51:ColorizeImage(1);
            end;
        end);
    end;
    local l_RemoveFocus_0 = v13.RemoveFocus;
    v13.RemoveFocus = function(v53)
        l_RemoveFocus_0(v53);
        v14 = false;
        v49 = l_Utility_0.DisconnectEvent(v49);
        if not v12:IsOwned() then
            v53:ColorizeImage(0);
        end;
    end;
    return v13;
end;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_ScrollingTextBox_0 = require(l_Shell_0:FindFirstChild("ScrollingTextBox"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_BaseOverlay_0 = require(l_Shell_0:FindFirstChild("BaseOverlay"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_Analytics_0 = require(l_Shell_0:FindFirstChild("Analytics"));
return function(v8)
    local v9 = l_BaseOverlay_0();
    local l_IsOwned_0 = v8.IsOwned;
    v9:SetImageBackgroundTransparency(0);
    v9:SetImageBackgroundColor(not not l_IsOwned_0 and l_GlobalSettings_0.BadgeOwnedColor or l_GlobalSettings_0.BadgeOverlayColor);
    local v11 = l_Utility_0.Create("ImageLabel")({
        Name = "BadgeImage",
        Size = UDim2.new(0, 394, 0, 394),
        BackgroundTransparency = 1,
        Image = "http://www.roblox.com/Thumbs/Asset.ashx?width=" .. tostring(250) .. "&height=" .. tostring(250) .. "&assetId=" .. tostring(v8.AssetId)
    });
    v11.Position = UDim2.new(0.5, -197, 0.5, -197);
    v9:SetImage(v11);
    local v12 = l_Utility_0.Create("TextLabel")({
        Name = "TitleText",
        Size = UDim2.new(0, 0, 0, 0),
        Position = UDim2.new(0, v9.RightAlign, 0, 88),
        BackgroundTransparency = 1,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.HeaderSize,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Text = v8.Name,
        TextXAlignment = Enum.TextXAlignment.Left,
        Parent = v9.Container
    });
    local v13 = nil;
    if l_IsOwned_0 then
        v13 = l_Utility_0.Create("Frame")({
            Name = "HasBadgeContainer",
            Position = UDim2.new(0, v12.Position.X.Offset, 0, v12.Position.Y.Offset + 34),
            BackgroundTransparency = 1,
            Parent = v9.Container
        });
        local v14 = l_Utility_0.Create("ImageLabel")({
            Name = "HasBadgeImage",
            BackgroundTransparency = 1,
            Parent = v13,
            Image = "rbxasset://textures/ui/Shell/Icons/Checkmark@1080.png",
            Size = UDim2.new(0, 35, 0, 35)
        });
        v13.Size = UDim2.new(0, 200, 0, v14.Size.Y.Offset);
        local _ = l_Utility_0.Create("TextLabel")({
            Name = "HasBadgeText",
            Size = UDim2.new(0, 0, 0, 0),
            Position = UDim2.new(0, v14.Size.X.Offset + 12, 0.5, 0),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.ItalicFont,
            FontSize = l_GlobalSettings_0.DescriptionSize,
            TextColor3 = l_GlobalSettings_0.GreenTextColor,
            TextXAlignment = Enum.TextXAlignment.Left,
            Text = l_LocalizedStrings_0:LocalizedString("HaveBadgeWord"),
            Parent = v13
        });
    end;
    local v16 = l_ScrollingTextBox_0(UDim2.new(0, 762, 0, 304), UDim2.new(0, v12.Position.X.Offset, 0, not not v13 and (v13.Position.Y.Offset + v13.Size.Y.Offset) + 10 or v12.Position.Y.Offset + 40), v9.Container);
    v16:SetText(v8.Description);
    v16:SetFontSize(l_GlobalSettings_0.TitleSize);
    local _ = v16:GetContainer();
    local v18 = l_Utility_0.Create("TextButton")({
        Name = "OkButton",
        Size = UDim2.new(0, 320, 0, 66),
        Position = UDim2.new(0, v12.Position.X.Offset, 1, -121),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.BlueButtonColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.ButtonSize,
        TextColor3 = l_GlobalSettings_0.TextSelectedColor,
        Text = l_LocalizedStrings_0:LocalizedString("OkWord"),
        Parent = v9.Container;
        l_SoundManager_0:CreateSound("MoveSelection")
    });
    l_Utility_0.ResizeButtonWithText(v18, v18, l_GlobalSettings_0.TextHorizontalPadding);
    v18.MouseButton1Click:connect(function()
        v9:Close();
    end);
    local l_Focus_0 = v9.Focus;
    v9.Focus = function(_)
        l_Focus_0(v9);
        l_Utility_0.SetSelectedCoreObject(v18);
    end;
    v9.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("BadgeOverlayId"),
            AssetId = v8.AssetId
        };
    end;
    return v9;
end;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_AssetManager_0 = require(l_Shell_0:FindFirstChild("AssetManager"));
local l_BadgeOverlay_0 = require(l_Shell_0:FindFirstChild("BadgeOverlay"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_ScreenManager_0 = require(l_Shell_0:FindFirstChild("ScreenManager"));
local l_ScrollingGrid_0 = require(l_Shell_0:FindFirstChild("ScrollingGrid"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_PopupText_0 = require(l_Shell_0:FindFirstChild("PopupText"));
local l_ThumbnailLoader_0 = require(l_Shell_0:FindFirstChild("ThumbnailLoader"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_BaseScreen_0 = require(l_Shell_0:FindFirstChild("BaseScreen"));
return function(v12)
    local v13 = l_BaseScreen_0();
    local l_Container_0 = v13.Container;
    v13:SetTitle(l_LocalizedStrings_0:LocalizedString("GameBadgesTitle"));
    local v15 = nil;
    local v16 = l_ScrollingGrid_0();
    v16:SetPosition(UDim2.new(0, 0, 0.21500000000000002, 0));
    v16:SetSize(UDim2.new(1, 0, 0, 570));
    v16:SetScrollDirection(v16.Enum.ScrollDirection.Horizontal);
    v16:SetParent(l_Container_0);
    v16:SetClipping(false);
    v16:SetCellSize(Vector2.new(276, 276));
    v16:SetSpacing(Vector2.new(18, 18));
    local v17 = l_Utility_0.Create("ImageLabel")({
        Name = "CheckMarkImage",
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/Checkmark@1080.png",
        Size = UDim2.new(0, 35, 0, 35),
        ZIndex = 2
    });
    local function _(v18, v19)
        v18.MouseButton1Click:connect(function()
            l_ScreenManager_0:OpenScreen(l_BadgeOverlay_0(v19), false);
        end);
    end;
    local v21 = l_Utility_0.Create("Frame")({
        Name = "BadgeContainer",
        BackgroundTransparency = 1;
        l_AssetManager_0.CreateShadow(0)
    });
    l_Utility_0.Create("TextButton")({
        Name = "BadgeImage",
        BorderSizePixel = 0,
        BackgroundTransparency = 0.2,
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundColor3 = Color3.new(0.25098039215686274, 0.3176470588235294, 0.36470588235294116),
        Text = "",
        ZIndex = 1,
        Parent = v21;
        l_SoundManager_0:CreateSound("MoveSelection")
    });
    local _ = l_Utility_0.Create("ImageLabel")({
        Name = "Thumb",
        Size = UDim2.new(0, 228, 0, 228),
        Position = UDim2.new(0.5, -114, 0.5, -114),
        BackgroundTransparency = 1,
        Image = "",
        ZIndex = 2,
        Parent = v21.BadgeImage
    });
    for v23 = 1, #v12 do
        local v24 = v12[v23];
        local v25 = v21:Clone();
        local l_Thumb_0 = v25.BadgeImage:FindFirstChild("Thumb");
        if l_Thumb_0 then
            local v27 = l_ThumbnailLoader_0:Create(l_Thumb_0, v24.AssetId, l_ThumbnailLoader_0.Sizes.Medium, l_ThumbnailLoader_0.AssetType.Icon);
            spawn(function()
                v27:LoadAsync();
            end);
        end;
        if v24.IsOwned then
            v25.BadgeImage.BackgroundColor3 = l_GlobalSettings_0.BadgeOwnedColor;
            v25.BadgeImage.BackgroundTransparency = 0;
            local v28 = v17:Clone();
            v28.Position = UDim2.new(1, -v28.Size.X.Offset - 8, 0, 8);
            v28.Parent = v25;
        end;
        v25.Name = tostring(v23);
        v16:AddItem(v25);
        v25.BadgeImage.MouseButton1Click:connect(function()
            l_ScreenManager_0:OpenScreen(l_BadgeOverlay_0(v24), false);
        end);
        l_PopupText_0(v25.BadgeImage, v24.Name);
        if not v15 then
            v15 = v25;
        end;
    end;
    v13.GetDefaultSelectionObject = function(_)
        return v15;
    end;
    return v13;
end;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_GuiService_0 = game:GetService("GuiService");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_AssetManager_0 = require(l_Shell_0:FindFirstChild("AssetManager"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_ScreenManager_0 = require(l_Shell_0:FindFirstChild("ScreenManager"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_Analytics_0 = require(l_Shell_0:FindFirstChild("Analytics"));
local v9 = Vector2.new(0, 225);
return function()
    local v10 = {};
    local l_ModalBackgroundTransparency_0 = l_GlobalSettings_0.ModalBackgroundTransparency;
    v10.RightAlign = 776;
    local v12 = l_Utility_0.Create("Frame")({
        Name = "ModalOverlay",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        BackgroundColor3 = Color3.new(),
        BorderSizePixel = 0
    });
    local v13 = l_Utility_0.Create("Frame")({
        Name = "Container",
        Size = UDim2.new(1, 0, 0.6388888888888888, 0),
        Position = UDim2.new(v9.x / 1920, 0, v9.y / 1080, 0),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.OverlayColor,
        Parent = v12
    });
    local v14 = l_Utility_0.Create("Frame")({
        Name = "ImageContainer",
        Size = UDim2.new(0, 576, 0, 642),
        Position = UDim2.new(0, 100, 0.5, -321),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        BackgroundColor3 = Color3.new(),
        ZIndex = 2,
        Parent = v13
    });
    local v15 = l_AssetManager_0.CreateShadow(1);
    v15.ImageTransparency = 1;
    v15.Parent = v14;
    local v16 = l_Utility_0.Create("Frame")({
        Name = "ImageBackground",
        Size = UDim2.new(1, 0, 1, 0),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        BackgroundColor3 = Color3.new(),
        Parent = v14
    });
    v10.Container = v13;
    v10.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("BaseOverlayId")
        };
    end;
    v10.SetImageBackgroundTransparency = function(_, v19)
        v16.BackgroundTransparency = v19;
        if v19 > 0 then
            v15.ImageTransparency = 1;
            return ;
        else
            v15.ImageTransparency = 0;
            return ;
        end;
    end;
    v10.SetImageBackgroundColor = function(_, v21)
        v16.BackgroundColor3 = v21;
    end;
    v10.SetImage = function(_, v23)
        v23.AnchorPoint = Vector2.new(0.5, 0.5);
        v23.Position = UDim2.new(0.5, 0, 0.5, 0);
        v23.ZIndex = v14.ZIndex;
        v23.Parent = v14;
    end;
    v10.GetOverlaySound = function(_)
        return "OverlayOpen";
    end;
    v10.GetPriority = function(_)
        return l_GlobalSettings_0.OverlayPriority;
    end;
    v10.Show = function(v26)
        v12.Parent = l_ScreenManager_0:GetScreenGuiByPriority(v26:GetPriority());
        local _ = l_Utility_0.PropertyTweener(v12, "BackgroundTransparency", 1, l_ModalBackgroundTransparency_0, 0.25, l_Utility_0.EaseInOutQuad, nil);
        l_SoundManager_0:Play(v26:GetOverlaySound());
        v12.Visible = true;
    end;
    v10.Hide = function(_)
        local _ = l_Utility_0.PropertyTweener(v12, "BackgroundTransparency", l_ModalBackgroundTransparency_0, 1, 0.25, l_Utility_0.EaseInOutQuad, true, function()
            v12:Destroy();
        end);
        v13.Parent = nil;
        v13:Destroy();
    end;
    v10.Focus = function(_)
        l_ContextActionService_0:BindCoreAction("CloseOverlay", function(_, v32, _)
            if v32 == Enum.UserInputState.End then
                l_ScreenManager_0:CloseCurrent(v10);
            end;
        end, false, Enum.KeyCode.ButtonB);
        l_GuiService_0:AddSelectionParent("Overlay", v13);
        v12.Visible = true;
    end;
    v10.RemoveFocus = function(_)
        l_ContextActionService_0:UnbindCoreAction("CloseOverlay");
        l_GuiService_0:RemoveSelectionGroup("Overlay");
        v12.Visible = false;
    end;
    v10.Close = function(v35)
        if l_ScreenManager_0:GetTopScreen() == v35 then
            l_SoundManager_0:Play("ButtonPress");
            l_ScreenManager_0:CloseCurrent(v10);
            return true;
        else
            return false;
        end;
    end;
    return v10;
end;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_GuiService_0 = game:GetService("GuiService");
local l_ScreenManager_0 = require(l_Shell_0:FindFirstChild("ScreenManager"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_Analytics_0 = require(l_Shell_0:FindFirstChild("Analytics"));
local v7 = require(l_Shell_0.Experiment.XboxPrimaryNavIXPTest);
local v8 = require(l_Shell_0.Flags.GetFIntXboxPrimaryNavABLogging);
local v9 = require(l_Shell_0.Flags.GetFFlagXboxFixPrimaryNavABEvents);
return function(v10)
    local v11 = {};
    local v12 = false;
    local v13 = false;
    local v14 = nil;
    local v15 = "";
    v11.view = nil;
    v11.fixPosition = false;
    v11.GetBackText = function(_)
        return v15;
    end;
    local function _()
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        return v11.view;
    end;
    if not v10 then
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v11.Container = v11.view.Container;
    end;
    local function v18()
        if v12 then
            l_ScreenManager_0:CloseCurrent(v11);
            if v8() > 0 then
                if not v9() then
                    l_Analytics_0.reportBackNavigation(v11:GetName());
                else
                    l_Analytics_0.reportBackNavigation(v11:GetId());
                    return ;
                end;
            end;
        end;
    end;
    v11.GetView = function(_)
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        return v11.view;
    end;
    v11.GetTitle = function(_)
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        return v11.view.TitleText.Text;
    end;
    v11.SetTitle = function(_, v22)
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v11.view.TitleText.Text = v22;
    end;
    v11.SetTitleZIndex = function(_, v24)
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v11.view.TitleText.ZIndex = v24;
    end;
    v11.SetBackText = function(_, v26)
        v15 = v26;
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v11.view:SetBackText(v15);
    end;
    v11.GetDefaultSelectionObject = function(_)
        return nil;
    end;
    v11.Destroy = function(_)
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v11.view.Container:Destroy();
    end;
    v11.SetPosition = function(_, v30)
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v11.view.Container.Position = v30;
    end;
    v11.SetParent = function(_, v32)
        v14 = v32;
    end;
    v11.GetName = function(_)
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        return v11.view.TitleText.Text;
    end;
    v11.GetId = function(_)
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        return v11.view.TitleText.Text;
    end;
    v11.GetAnalyticsInfo = function(_)
        local v36 = {};
        local v37 = l_Analytics_0.WidgetNames("WidgetId");
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v36[v37] = v11.view.TitleText.Text;
        return v36;
    end;
    v11.IsFocused = function(_)
        return v12;
    end;
    v11.ReloadView = function(_, v40)
        local l_view_0 = v11.view;
        local l_v13_0 = v13;
        local l_v12_0 = v12;
        if l_view_0 then
            if l_v12_0 then
                l_view_0:RemoveFocus();
            end;
            if l_v13_0 then
                l_view_0:Hide();
            end;
        end;
        if v40 then
            if l_v13_0 then
                v40:Show();
            end;
            if l_v12_0 then
                v40:Focus();
            end;
        end;
        v11.view = v40;
    end;
    v11.OnBackButtonClick = function(_)
        v18();
    end;
    v11.Show = function(v45)
        v13 = true;
        local l_l_ScreenManager_0_ScreenBelow_0 = l_ScreenManager_0:GetScreenBelow(v45);
        if not l_l_ScreenManager_0_ScreenBelow_0 or not l_l_ScreenManager_0_ScreenBelow_0.GetName then
            v45:SetBackText(l_LocalizedStrings_0:LocalizedString("BackWord"));
        else
            v45:SetBackText(l_l_ScreenManager_0_ScreenBelow_0:GetName());
        end;
        if v7.isUserEnrolled() then
            if not v11.view then
                v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
            end;
            if v11.view.OnShow then
                if not v11.view then
                    v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
                end;
                v11.view.OnShow();
            end;
        end;
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v11.view.Container.Parent = v14;
        l_ScreenManager_0:DefaultCancelFade(v45.TransitionTweens);
        if not v45.fixPosition then
            local l_l_ScreenManager_0_0 = l_ScreenManager_0;
            if not v11.view then
                v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
            end;
            v45.TransitionTweens = l_l_ScreenManager_0_0:DefaultFadeIn(v11.view.Container);
        else
            local l_l_ScreenManager_0_1 = l_ScreenManager_0;
            if not v11.view then
                v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
            end;
            v45.TransitionTweens = l_l_ScreenManager_0_1:FadeInSitu(v11.view.Container);
        end;
        l_ScreenManager_0:PlayDefaultOpenSound();
        if v8() > 0 then
            if not v9() then
                l_Analytics_0.reportNavigationLoaded(v11:GetName());
            else
                l_Analytics_0.reportNavigationLoaded(v11:GetId());
                return ;
            end;
        end;
    end;
    v11.Hide = function(v49)
        v13 = false;
        if v7.isUserEnrolled() then
            if not v11.view then
                v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
            end;
            if v11.view.OnHide then
                if not v11.view then
                    v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
                end;
                v11.view.OnHide();
            end;
        end;
        if not v11.view then
            v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
        end;
        v11.view.Container.Parent = nil;
        l_ScreenManager_0:DefaultCancelFade(v49.TransitionTweens);
        v49.TransitionTweens = nil;
    end;
    v11.Focus = function(v50)
        v12 = true;
        if v50.SavedSelectedObject then
            local l_SavedSelectedObject_0 = v50.SavedSelectedObject;
            if not v11.view then
                v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
            end;
            if l_SavedSelectedObject_0:IsDescendantOf(v11.view.Container) then
                l_Utility_0.SetSelectedCoreObject(v50.SavedSelectedObject);
                goto label0 --[[  true, true  ]];
            end;
        end;
        l_Utility_0.SetSelectedCoreObject(v50:GetDefaultSelectionObject());
        ::label0::;
        if v7.isUserEnrolled() then
            if not v11.view then
                v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
            end;
            if v11.view.OnFocus then
                if not v11.view then
                    v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
                end;
                v11.view.OnFocus();
            end;
        end;
        l_ContextActionService_0:BindCoreAction("ReturnFromScreen", function(_, v53, _)
            if v53 == Enum.UserInputState.End then
                v18();
            end;
        end, false, Enum.KeyCode.ButtonB);
    end;
    v11.RemoveFocus = function(v55)
        v12 = false;
        local l_SelectedCoreObject_0 = l_GuiService_0.SelectedCoreObject;
        if l_SelectedCoreObject_0 then
            if not v11.view then
                v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
            end;
            if l_SelectedCoreObject_0:IsDescendantOf(v11.view.Container) then
                v55.SavedSelectedObject = l_SelectedCoreObject_0;
                l_Utility_0.SetSelectedCoreObject(nil);
            end;
        end;
        if v7.isUserEnrolled() then
            if not v11.view then
                v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
            end;
            if v11.view.OnRemoveFocus then
                if not v11.view then
                    v11.view = require(l_Shell_0:FindFirstChild("Templates"):FindFirstChild("BaseScreen"))(v11);
                end;
                v11.view.OnRemoveFocus();
            end;
        end;
        l_ContextActionService_0:UnbindCoreAction("ReturnFromScreen");
    end;
    return v11;
end;