local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_BaseOverlay_0 = require(l_Shell_0:FindFirstChild("BaseOverlay"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
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"));
return function(v7)
    local v8 = l_BaseOverlay_0();
    local l_Title_0 = v7.Title;
    local l_Msg_0 = v7.Msg;
    local l_Callback_0 = v7.Callback;
    v8:SetImage(l_Utility_0.Create("ImageLabel")({
        Name = "ReportIcon",
        Position = UDim2.new(0, 226, 0, 204),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/ErrorIconLargeCopy@1080.png",
        Size = UDim2.new(0, 321, 0, 264)
    }));
    local _ = l_Utility_0.Create("TextLabel")({
        Name = "DescriptionText",
        Size = UDim2.new(0, 762, 0, 304),
        Position = UDim2.new(0, v8.RightAlign, 0, l_Utility_0.Create("TextLabel")({
            Name = "TitleText",
            Size = UDim2.new(0, 0, 0, 0),
            Position = UDim2.new(0, v8.RightAlign, 0, 136),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.HeaderSize,
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            Text = l_Title_0,
            TextXAlignment = Enum.TextXAlignment.Left,
            Parent = v8.Container
        }).Position.Y.Offset + 62),
        BackgroundTransparency = 1,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Top,
        Font = l_GlobalSettings_0.LightFont,
        FontSize = l_GlobalSettings_0.TitleSize,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        TextWrapped = true,
        Text = l_Msg_0,
        Parent = v8.Container
    });
    local v13 = l_Utility_0.Create("TextButton")({
        Name = "KeepEnabledButton",
        Position = UDim2.new(0, v8.RightAlign, 1, -166),
        Size = UDim2.new(0, 320, 0, 66),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.BlueButtonColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.ButtonSize,
        TextColor3 = l_GlobalSettings_0.BlackTextColor,
        Text = l_LocalizedStrings_0:LocalizedString("KeepEnabledPhrase"),
        Parent = v8.Container;
        l_SoundManager_0:CreateSound("MoveSelection")
    });
    l_Utility_0.ResizeButtonWithText(v13, v13, l_GlobalSettings_0.TextHorizontalPadding);
    local v14 = l_Utility_0.Create("TextButton")({
        Name = "OkButton",
        Position = UDim2.new(0, (v13.Position.X.Offset + v13.Size.X.Offset) + 10, 1, -166),
        Size = UDim2.new(0, 320, 0, 66),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.GreyButtonColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.ButtonSize,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Text = l_LocalizedStrings_0:LocalizedString("DisableWord"),
        Parent = v8.Container;
        l_SoundManager_0:CreateSound("MoveSelection")
    });
    l_Utility_0.ResizeButtonWithText(v14, v14, l_GlobalSettings_0.TextHorizontalPadding);
    v13.SelectionGained:connect(function()
        v13.BackgroundColor3 = l_GlobalSettings_0.GreySelectedButtonColor;
        v13.TextColor3 = l_GlobalSettings_0.TextSelectedColor;
    end);
    v13.SelectionLost:connect(function()
        v13.BackgroundColor3 = l_GlobalSettings_0.GreyButtonColor;
        v13.TextColor3 = l_GlobalSettings_0.WhiteTextColor;
    end);
    v14.SelectionGained:connect(function()
        v14.BackgroundColor3 = l_GlobalSettings_0.GreySelectedButtonColor;
        v14.TextColor3 = l_GlobalSettings_0.TextSelectedColor;
    end);
    v14.SelectionLost:connect(function()
        v14.BackgroundColor3 = l_GlobalSettings_0.GreyButtonColor;
        v14.TextColor3 = l_GlobalSettings_0.WhiteTextColor;
    end);
    v8.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("DisableCrossplayOverlayId"),
            Title = v7.Title
        };
    end;
    v14.MouseButton1Click:connect(function()
        if v8:Close() then
            l_Callback_0();
        end;
    end);
    v13.MouseButton1Click:connect(function()
        v8:Close();
    end);
    local l_Focus_0 = v8.Focus;
    v8.Focus = function(v17)
        l_Focus_0(v17);
        l_Utility_0.SetSelectedCoreObject(v13);
    end;
    v8.GetOverlaySound = function(_)
        return "Error";
    end;
    return v8;
end;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_BaseOverlay_0 = require(l_Shell_0:FindFirstChild("BaseOverlay"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
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"));
return function(v7)
    local v8 = l_BaseOverlay_0();
    local l_Title_0 = v7.Title;
    local l_Msg_0 = v7.Msg;
    local l_Callback_0 = v7.Callback;
    v8:SetImage(l_Utility_0.Create("ImageLabel")({
        Name = "AlertIcon",
        Size = UDim2.new(0, 416, 0, 416),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/AlertIcon.png",
        AnchorPoint = Vector2.new(0.5, 0.5),
        Position = UDim2.new(0.5, 0, 0.5, 0)
    }));
    local _ = l_Utility_0.Create("TextLabel")({
        Name = "DescriptionText",
        Size = UDim2.new(0, 762, 0, 304),
        Position = UDim2.new(0, v8.RightAlign, 0, l_Utility_0.Create("TextLabel")({
            Name = "TitleText",
            Size = UDim2.new(0, 0, 0, 0),
            Position = UDim2.new(0, v8.RightAlign, 0, 136),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.HeaderSize,
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            Text = l_Title_0,
            TextXAlignment = Enum.TextXAlignment.Left,
            Parent = v8.Container
        }).Position.Y.Offset + 62),
        BackgroundTransparency = 1,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Top,
        Font = l_GlobalSettings_0.LightFont,
        FontSize = l_GlobalSettings_0.TitleSize,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        TextWrapped = true,
        Text = l_Msg_0,
        Parent = v8.Container
    });
    local v13 = l_Utility_0.Create("TextButton")({
        Name = "OkButton",
        Position = UDim2.new(0, v8.RightAlign, 1, -166),
        Size = UDim2.new(0, 320, 0, 66),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.BlueButtonColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.ButtonSize,
        TextColor3 = l_GlobalSettings_0.BlackTextColor,
        Text = l_LocalizedStrings_0:LocalizedString("OkWord"),
        Parent = v8.Container;
        l_SoundManager_0:CreateSound("MoveSelection")
    });
    l_Utility_0.ResizeButtonWithText(v13, v13, l_GlobalSettings_0.TextHorizontalPadding);
    v8.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("EnableCrossplayOverlayId"),
            Title = v7.Title
        };
    end;
    v13.MouseButton1Click:connect(function()
        if v8:Close() then
            l_Callback_0();
        end;
    end);
    local l_Focus_0 = v8.Focus;
    v8.Focus = function(v16)
        l_Focus_0(v16);
        l_Utility_0.SetSelectedCoreObject(v13);
    end;
    v8.GetOverlaySound = function(_)
        return "OverlayOpen";
    end;
    return v8;
end;


local l_LocalizedStrings_0 = require(game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell"):FindFirstChild("LocalizedStrings"));
return {
    Default = {
        Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
        Msg = l_LocalizedStrings_0:LocalizedString("DefaultErrorPhrase"),
        Code = 0
    },
    GameJoin = {
        [-1] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("DefaultJoinFailPhrase"),
            Code = 112
        },
        [1] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AlreadyRunningPhrase"),
            Code = 101
        },
        [2] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("WebServerConnectFailPhrase"),
            Code = 102
        },
        [3] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AccessDeniedByWeb"),
            Code = 103
        },
        [4] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("InstanceNotFound"),
            Code = 104
        },
        [5] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("GameFullPhrase"),
            Code = 105
        },
        [6] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("FollowUserFailed"),
            Code = 106
        },
        [7] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("InvalidPrivilegeMultiplayerSessionPhrase"),
            Code = 107
        },
        [8] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("InvalidPrivilegeUGCPhrase"),
            Code = 108
        },
        [9] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AccessDeniedByWeb"),
            Code = 109
        },
        [10] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AccessDeniedByWeb"),
            Code = 110
        },
        [11] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AccessDeniedByWeb"),
            Code = 111
        },
        [12] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("MPSRestrictedPhrase"),
            Code = 113
        },
        [13] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("MPSBannedPhrase"),
            Code = 114
        },
        [14] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("MPSPurchaseRequiredPhrase"),
            Code = 115
        },
        [15] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("UGCRestrictedPhrase"),
            Code = 116
        },
        [16] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("UGCBannedPhrase"),
            Code = 117
        },
        [17] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("PrivilegeCheckFailPhrase"),
            Code = 118
        },
        [18] = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("InstanceNotFound"),
            Code = 119
        },
        Default = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToJoinTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("DefaultJoinFailPhrase"),
            Code = 112
        }
    },
    Vote = {
        FloodCheckThresholdMet = {
            Title = l_LocalizedStrings_0:LocalizedString("CannotVoteTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("VoteFloodPhrase"),
            Code = 201
        },
        PlayGame = {
            Title = l_LocalizedStrings_0:LocalizedString("CannotVoteTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("VotePlayGamePhrase"),
            Code = 202
        }
    },
    Favorite = {
        Failed = {
            Title = l_LocalizedStrings_0:LocalizedString("CannotFavoriteTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("DefaultErrorPhrase"),
            Code = 301
        },
        FloodCheck = {
            Title = l_LocalizedStrings_0:LocalizedString("CannotFavoriteTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("FavoriteFloodPhrase"),
            Code = 302
        }
    },
    Test = {
        CannotJoinGame = {
            Title = "An Error Occured",
            Msg = "Cannot join games from studio.",
            Code = 401
        },
        StillInDev = {
            Title = "An Error Occured",
            Msg = "This feature is still in development.",
            Code = 402
        },
        FeatureNotAvailableInStudio = {
            Title = "An Error Occured",
            Msg = "This feature is not available in Roblox Studio.",
            Code = 403
        }
    },
    PackageEquip = {
        Default = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToEquipTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("UnableToEquipPhrase"),
            Code = 501
        }
    },
    OutfitEquip = {
        Default = {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToWearOufitTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("UnableToWearOufitPhrase"),
            Code = 601
        }
    },
    PackagePurchase = {
        {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToDoPurchaseTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("UnableToDoPurchasePhrase"),
            Code = 701
        }
    },
    RobuxPurchase = {
        {
            Title = l_LocalizedStrings_0:LocalizedString("UnableToDoRobuxPurchaseTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("UnableToDoRobuxPurchasePhrase"),
            Code = 801
        }
    },
    Authentication = {
        [-1] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AuthErrorPhrase"),
            Code = 901
        },
        [1] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AuthInProgressPhrase"),
            Code = 902
        },
        [2] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AuthAccountUnlinkedPhrase"),
            Code = 903
        },
        [3] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AuthMissingGamePadPhrase"),
            Code = 904
        },
        [4] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AuthNoUserDetectedPhrase"),
            Code = 905
        },
        [5] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AuthHttpErrorDetected"),
            Code = 906
        },
        [6] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkSignUpDisabled"),
            Code = 907
        },
        [7] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkFlooded"),
            Code = 908
        },
        [8] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkLeaseLocked"),
            Code = 909
        },
        [9] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkAccountLinkingDisabled"),
            Code = 910
        },
        [10] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkInvalidRobloxUser"),
            Code = 911
        },
        [11] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkRobloxUserAlreadyLinked"),
            Code = 912
        },
        [12] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkXboxUserAlreadyLinked"),
            Code = 913
        },
        [13] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkIllegalChildAccountLinking"),
            Code = 914
        },
        [14] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkInvalidPassword"),
            Code = 915
        },
        [15] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkUsernamePasswordNotSet"),
            Code = 916
        },
        [16] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkUsernameAlreadyTaken"),
            Code = 917
        },
        [17] = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("LinkInvalidCredentials"),
            Code = 918
        },
        [18] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("UserIsGuestAccount"),
            Code = 919
        },
        [19] = {
            Title = l_LocalizedStrings_0:LocalizedString("ReauthMaintenanceTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("ReauthMaintenancePhrase"),
            Code = 920
        },
        [20] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = "To link your Xbox account, please go to your Roblox account settings on another device and turn off 2-step verification. Make sure to re-enable 2SV once you are linked to keep your account secure.",
            Code = 921
        },
        [21] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("GlobalAccessDenied"),
            Code = 922
        }
    },
    RegisterActiveUser = {
        [-1] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AuthErrorPhrase"),
            Code = 1301
        },
        [1] = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("AuthNoUserDetectedPhrase"),
            Code = 1302
        }
    },
    SignIn = {
        InvalidUsername = {
            Title = l_LocalizedStrings_0:LocalizedString("InvalidUsernameTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("InvalidUsernamePhrase"),
            Code = 1101
        },
        InvalidPassword = {
            Title = l_LocalizedStrings_0:LocalizedString("InvalidPasswordTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("InvalidPasswordPhrase"),
            Code = 1102
        },
        NoUsernameOrPasswordEntered = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("NoUsernameOrPasswordEnteredPhrase"),
            Code = 1107
        },
        ConnectionFailed = {
            Title = l_LocalizedStrings_0:LocalizedString("AuthenticationErrorTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("WebServerConnectFailPhrase"),
            Code = 1108
        }
    },
    PlatformError = {
        PopupPartyUI = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("PopupPartyUIErrorPhrase"),
            Code = 1201
        }
    },
    CPPSettingError = {
        SetCPPSettingError = {
            Title = l_LocalizedStrings_0:LocalizedString("ErrorOccurredTitle"),
            Msg = l_LocalizedStrings_0:LocalizedString("SetCPPSettingErrorPhrase"),
            Code = 1401
        }
    }
};


local v0 = {};
local function _(v1, v2)
    return {
        id = v1,
        callback = v2
    };
end;
return {
    addEventListener = function(_, v5, v6, v7)
        if v0[v5] == nil then
            v0[v5] = {};
        end;
        table.insert(v0[v5], {
            id = v6,
            callback = v7
        });
    end,
    removeEventListener = function(_, v9, v10)
        if v0[v9] == nil then
            return ;
        else
            for v11, v12 in ipairs(v0[v9]) do
                if v12 ~= nil and v12.id == v10 then
                    table.remove(v0[v9], v11);
                end;
            end;
            return ;
        end;
    end,
    removeCallbackFromEvent = function(_, v14, v15, v16)
        if v0[v14] == nil then
            return ;
        else
            for v17, v18 in ipairs(v0[v14]) do
                if (v18 ~= nil and v18.id == v15) and v18.callback == v16 then
                    table.remove(v0[v14], v17);
                    return ;
                end;
            end;
            return ;
        end;
    end,
    dispatchEvent = function(_, v20, ...)
        if v0[v20] == nil then
            return ;
        else
            for _, v22 in ipairs(v0[v20]) do
                v22.callback(...);
            end;
            return ;
        end;
    end,
    Notifications = {
        AuthenticationSuccess = "rbxNotificationAuthenticationSuccess",
        GameJoin = "rbxNotificationGameJoin",
        OpenGames = "rbxNotificationOpenGames",
        OpenGameDetail = "rbxNotificationOpenGameDetail",
        OpenGameGenre = "rbxNotificationOpenGameGenre",
        OpenBadgeScreen = "rbxNotificationOpenBadgeScreen",
        OpenSettingsScreen = "rbxNotificationOpenSettingsScreen",
        OpenSearchScreen = "rbxNotificationOpenSearchScreen",
        OpenStoreScreen = "rbxNotificationOpenStoreScreen",
        OpenAvatarEditorScreen = "rbxNotificationOpenAvatarEditorScreen",
        OpenAccountSettingsScreen = "rbxNotificationOpenAccountSettingsScreen",
        NavigateToEquippedAvatar = "rbxNotificationNavigateToEquippedAvatar",
        NavigateToRobuxScreen = "rbxNotificationNavigateToRobuxScreen",
        RobuxCatalogPurchaseInitiated = "rbxRobuxCatalogPurchaseInitiated",
        DonnedDifferentPackage = "rbxDonnedDifferentPackage",
        VotedOnPlace = "rbxVotedOnPlace",
        AvatarEquipBegin = "rbxAvatarEquipBegin",
        DonnedDifferentOutfit = "rbxDonnedDifferentOutfit",
        AvatarEquipSuccess = "rbxAvatarEquipSuccess",
        AvatarPurchaseBegin = "rbxAvatarPurchaseBegin",
        AvatarPurchaseSuccess = "rbxAvatarPurchaseSuccess",
        FavoriteToggle = "rbxFavoriteToggle",
        PlayedGamesChanged = "rbxPlayedGamesChanged",
        UnlockedUGC = "rbxNotificationUnlockedUGC",
        SetGamesHints = "rbxNotificationSetGamesHints",
        CharacterEquipped = "CharacterEquipped",
        CharacterUpdated = "CharacterUpdated",
        HardwareBundleGranted = "HardwareBundleGranted"
    }
};


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Experiment.AppUserLayers);
local v1 = require(script.Parent.makeExperiment);
local v2 = game:DefineFastFlag("XboxPrimaryNavABIXPEnabled", false);
local v3 = game:DefineFastFlag("XboxPrimaryNavABIXPEnrolledForAll", false);
local v4 = game:DefineFastString("XboxPrimaryNavABIXPVariable", "tenFootPrimaryNavEnabled");
local v5 = {};
return {
    isEnabled = function()
        return v3 or v2;
    end,
    isEnrolledForAll = function()
        return v3;
    end,
    isUserEnrolled = function()
        if not v3 then
            if v3 or v2 then
                return (v5[v0.XboxClassicUILayer] or {})[v4] or false;
            else
                return false;
            end;
        else
            return true;
        end;
    end,
    layer = v0.XboxClassicUILayer,
    experiment = v1("OnUserLayerLoadingStatusChanged", "GetUserLayerLoadingStatus", "GetUserLayerVariables", "LogUserLayerExposure", "GetUserStatusForLayer"),
    setExperimentState = function(v6)
        v5 = v6;
    end
};


local l_IXPService_0 = game:GetService("IXPService");
return function(v1, v2, v3, v4, v5)
    for _, v7 in {
        v1,
        v2,
        v3,
        v4,
        v5
    }, nil, nil do
        if not l_IXPService_0[v7] then
            error("makeExperiment factory expects configured members to exist on IXPService. Member " .. v7 .. " not found");
        end;
    end;
    return function(v8, v9, v10, v11)
        if v11 == nil then
            v11 = true;
        end;
        assert(type(v9) == "table", "makeExperiment expects layerNames to be a list of layers");
        assert(type(v10) == "function", "makeExperiment expects mapLayers to be a function");
        local function v16(v12)
            local v13 = {};
            for _, v15 in ipairs(v9) do
                v13[v15] = l_IXPService_0[v3](l_IXPService_0, v15);
            end;
            v10({
                layerToVariables = v13,
                layerLoadingStatus = v12
            });
        end;
        local function v19()
            for _, v18 in ipairs(v9) do
                if l_IXPService_0[v5](l_IXPService_0, v18) == Enum.IXPLoadingStatus.Initialized then
                    l_IXPService_0[v4](l_IXPService_0, v18);
                end;
            end;
        end;
        v16((l_IXPService_0[v2](l_IXPService_0)));
        local v21 = l_IXPService_0[v1]:Connect(function()
            local v20 = l_IXPService_0[v2](l_IXPService_0);
            v16(v20);
            if v11 and v20 == Enum.IXPLoadingStatus.Initialized then
                v19();
            end;
        end);
        v8.Destroying:Once(function()
            v21:Disconnect();
        end);
        return v21;
    end;
end;


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


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


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


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


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


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


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


game:DefineFastString("XboxExperienceGuidelinesUrl", "");
return function()
    return game:GetFastString("XboxExperienceGuidelinesUrl");
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_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_ThumbnailLoader_0 = require(l_Shell_0:FindFirstChild("ThumbnailLoader"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
return function(v7, v8)
    local v9 = {};
    local v10 = l_Utility_0.Create("ImageButton")({
        Name = v8,
        Size = v7,
        Position = UDim2.new(0, 0, 0, 0),
        BackgroundColor3 = l_GlobalSettings_0.WhiteTextColor,
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        AutoButtonColor = false;
        l_SoundManager_0:CreateSound("MoveSelection")
    });
    local v11 = nil;
    v10.SelectionGained:connect(function()
        v11 = l_Utility_0.PropertyTweener(v10, "BackgroundTransparency", 1, l_GlobalSettings_0.AvatarBoxBackgroundSelectedTransparency, 0, l_Utility_0.EaseInOutQuad, true, nil);
    end);
    v10.SelectionLost:connect(function()
        if v11 then
            v11:Cancel();
            v11 = nil;
        end;
        v10.BackgroundTransparency = 1;
    end);
    local v12 = l_Utility_0.Create("Frame")({
        Name = "AvatarImageContainer",
        BackgroundTransparency = 1,
        Size = UDim2.new(0, 104, 0, 104),
        Parent = v10;
        l_AssetManager_0.CreateShadow(1)
    });
    local v13 = l_Utility_0.Create("ImageLabel")({
        Name = "AvatarImage",
        Image = "",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 0,
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.CharacterBackgroundColor,
        ZIndex = 2,
        Parent = v12
    });
    local v14 = l_Utility_0.Create("Frame")({
        Name = "ContentContainer",
        Size = UDim2.new(1, -v12.Size.X.Offset - 12, 0, v12.Size.Y.Offset),
        Position = UDim2.new(0, v12.Size.X.Offset + 12, 0, 0),
        BackgroundTransparency = 1,
        ClipsDescendants = true
    });
    local v15 = l_Utility_0.Create("Frame")({
        Name = "FriendDisplayContainer",
        Size = UDim2.new(1, 0, 1, 0),
        Position = UDim2.new(0, 0, 0.5, 0),
        AnchorPoint = Vector2.new(0, 0.5),
        BackgroundTransparency = 1,
        Parent = v14
    });
    local v16 = l_Utility_0.Create("TextLabel")({
        Name = "GamertagLabel",
        Text = "",
        Size = UDim2.new(1, 0, 0, 24),
        Position = UDim2.new(0, 0, 0, 0),
        TextXAlignment = Enum.TextXAlignment.Left,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.ButtonSize,
        BackgroundTransparency = 1,
        Parent = v15
    });
    local v17 = l_Utility_0.Create("Frame")({
        Name = "RobloxNameContainer",
        Size = UDim2.new(1, 0, 0, 24),
        Position = UDim2.new(0, 0, 0, 0),
        BackgroundTransparency = 1,
        Parent = v15
    });
    local v18 = l_Utility_0.Create("ImageLabel")({
        Name = "RobloxIcon",
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/RobloxIcon24.png",
        Size = UDim2.new(0, 24, 0, 24),
        Parent = v17
    });
    local v19 = l_Utility_0.Create("TextLabel")({
        Name = "RobloxNameLabel",
        Text = "",
        Size = UDim2.new(1, -v18.Size.X.Offset - 10, 1, 0),
        Position = UDim2.new(0, v18.Size.X.Offset + 10, 0, -1),
        TextXAlignment = Enum.TextXAlignment.Left,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.ButtonSize,
        BackgroundTransparency = 1,
        Parent = v17
    });
    local v20 = l_Utility_0.Create("Frame")({
        Name = "StatusContainer",
        Size = UDim2.new(1, 0, 0, 20),
        Position = UDim2.new(0, 0, 0, (v16.Position.Y.Offset + v16.Size.Y.Offset) - 11),
        BackgroundTransparency = 1,
        Parent = v15
    });
    local v21 = l_Utility_0.Create("ImageLabel")({
        Name = "PresenceStatusImage",
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/OnlineStatusIcon@1080.png",
        Size = UDim2.new(0, 19, 0, 20),
        Position = UDim2.new(0, v18.Size.X.Offset / 2 - 10, 0, 0),
        Parent = v20
    });
    local v22 = l_Utility_0.Create("TextLabel")({
        Name = "PresenceLabel",
        Text = "",
        Size = UDim2.new(1, -v21.Position.X.Offset - v21.Size.X.Offset, 1, 0),
        Position = UDim2.new(0, (v21.Position.X.Offset + v21.Size.X.Offset) + 12, 0, 0),
        TextXAlignment = Enum.TextXAlignment.Left,
        TextColor3 = l_GlobalSettings_0.LightGreyTextColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.DescriptionSize,
        BackgroundTransparency = 1,
        Parent = v20
    });
    v14.Parent = v10;
    l_Utility_0.Create("Frame")({
        Name = "Break",
        Size = UDim2.new(1, -v12.Size.X.Offset - 12, 0, 2),
        Position = UDim2.new(0, v12.Size.X.Offset + 12, 1, -2),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.LineBreakColor,
        Parent = v10
    });
    local v23 = l_Utility_0.Create("ImageLabel")({
        Name = "FailImage",
        Size = UDim2.new(0.5, 0, 0.5, 0),
        Position = UDim2.new(0.25, 0, 0.25, 0),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/DefaultProfileIcon.png",
        ZIndex = 2
    });
    v9.GetContainer = function(_)
        return v10;
    end;
    local function _(v25)
        if not (v25 ~= nil) or v25 < 1 then
            v23.Parent = v13;
            return ;
        else
            spawn(function()
                if l_ThumbnailLoader_0:LoadAvatarThumbnailAsync(v13, v25, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100):LoadAsync(false, false) then
                    v23.Parent = nil;
                    return ;
                else
                    v23.Parent = v13;
                    return ;
                end;
            end);
            return ;
        end;
    end;
    local function _(v27, v28)
        v22.Text = v27 or "";
        v21.ImageColor3 = v28;
        v21.Visible = v27 ~= "";
    end;
    v9.SetDisplay = function(_, v31)
        local l_robloxuid_0 = v31.robloxuid;
        if not (l_robloxuid_0 ~= nil) or l_robloxuid_0 < 1 then
            v23.Parent = v13;
        else
            local l_l_robloxuid_0_0 = l_robloxuid_0 --[[ copy: 2 -> 7 ]];
            spawn(function()
                if l_ThumbnailLoader_0:LoadAvatarThumbnailAsync(v13, l_l_robloxuid_0_0, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100):LoadAsync(false, false) then
                    v23.Parent = nil;
                    return ;
                else
                    v23.Parent = v13;
                    return ;
                end;
            end);
        end;
        l_robloxuid_0 = v31.gamertag or "";
        local v34 = v31.robloxName or "";
        local v35 = 0;
        if l_robloxuid_0 ~= "" then
            v16.Text = l_robloxuid_0;
            v16.Position = UDim2.new(0, 0, 0, 0);
            v16.Visible = true;
            v35 = (v35 + v16.Size.Y.Offset) + 12;
        else
            v16.Text = "";
            v16.Visible = false;
        end;
        if v34 ~= "" then
            v19.Text = v34;
            v17.Position = UDim2.new(0, 0, 0, v35);
            v17.Visible = true;
            v35 = (v35 + v17.Size.Y.Offset) + 7;
        else
            v19.Text = "";
            v17.Visible = false;
        end;
        if v31.robloxStatus == "InGame" then
            local l_lastLocation_0 = v31.lastLocation;
            local l_GreenText_0 = l_GlobalSettings_0.Colors.GreenText;
            v22.Text = l_lastLocation_0 or "";
            v21.ImageColor3 = l_GreenText_0;
            v21.Visible = l_lastLocation_0 ~= "";
        elseif v31.robloxStatus == "InStudio" then
            local l_lastLocation_1 = v31.lastLocation;
            local l_OrangeText_0 = l_GlobalSettings_0.Colors.OrangeText;
            v22.Text = l_lastLocation_1 or "";
            v21.ImageColor3 = l_OrangeText_0;
            v21.Visible = l_lastLocation_1 ~= "";
        elseif v31.robloxStatus == "Online" then
            local l_BlueText_0 = l_GlobalSettings_0.Colors.BlueText;
            v22.Text = "Roblox";
            v21.ImageColor3 = l_BlueText_0;
            v21.Visible = true;
        elseif v31.xboxStatus and v31.xboxStatus == "Online" then
            local v41 = l_LocalizedStrings_0:LocalizedString("OnlineWord");
            local l_BlueText_1 = l_GlobalSettings_0.Colors.BlueText;
            v22.Text = v41 or "";
            v21.ImageColor3 = l_BlueText_1;
            v21.Visible = v41 ~= "";
        else
            local v43 = l_LocalizedStrings_0:LocalizedString("OfflineWord");
            local l_GreyText_0 = l_GlobalSettings_0.Colors.GreyText;
            v22.Text = v43 or "";
            v21.ImageColor3 = l_GreyText_0;
            v21.Visible = v43 ~= "";
        end;
        v20.Position = UDim2.new(0, 0, 0, v35);
        v15.Size = UDim2.new(1, 0, 0, v35 + v20.Size.Y.Offset);
    end;
    v9.Destroy = function(_)
        v10:Destroy();
        v9 = nil;
    end;
    return v9;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_TextService_0 = game:GetService("TextService");
local l_Shell_0 = l_CoreGui_0:FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_VoteFrame_0 = require(l_Shell_0:FindFirstChild("VoteFrame"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
return function(v7, v8, v9)
    local v10 = {};
    local v11 = l_Utility_0.Create("Frame")({
        Name = "GameDetailsStripContainer",
        BackgroundTransparency = 1,
        LayoutOrder = v9,
        Parent = v7,
        Position = v8
    });
    local _ = l_Utility_0.Create("UIListLayout")({
        Name = "GameDetailsStripContainerLayout",
        Parent = v11,
        Padding = UDim.new(0, 24),
        FillDirection = Enum.FillDirection.Horizontal,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        SortOrder = Enum.SortOrder.LayoutOrder
    });
    local v13 = l_Utility_0.Create("Frame")({
        Name = "SponsoredContainer",
        LayoutOrder = 1,
        BackgroundTransparency = 1,
        Visible = false,
        Parent = v11
    });
    local v14 = l_Utility_0.Create("ImageLabel")({
        Name = "sponsoredLabelFrame",
        Image = "rbxasset://textures/ui/Shell/Icons/WhiteSquare.png",
        BackgroundTransparency = 1,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(4, 4, 36, 36),
        Parent = v13
    });
    local v15 = l_Utility_0.Create("TextLabel")({
        Name = "SponsoredLabelText",
        Size = UDim2.new(1, 0, 1, 0),
        Position = UDim2.new(0.5, 0, 0.5, 0),
        AnchorPoint = Vector2.new(0.5, 0.5),
        BackgroundTransparency = 1,
        Font = l_GlobalSettings_0.RegularFont,
        TextSize = 30,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        TextXAlignment = Enum.TextXAlignment.Center,
        TextYAlignment = Enum.TextYAlignment.Center,
        Text = l_LocalizedStrings_0:LocalizedString("SponsoredGameWord"),
        Parent = v13
    });
    local v16 = l_TextService_0:getTextSize(v15.Text, l_Utility_0.ConvertFontSizeEnumToInt(v15.FontSize), v15.Font, Vector2.new());
    v13.Size = UDim2.new(0, v16.X + 28, 0, v16.Y + 10);
    v14.Size = UDim2.new(1, 0, 1, 0);
    local v17 = l_Utility_0.Create("Frame")({
        Name = "VoteViewContainer",
        Parent = v11,
        BackgroundTransparency = 1,
        LayoutOrder = 2
    });
    local _ = l_Utility_0.Create("UIListLayout")({
        Name = "VoteViewContainerLayout",
        Parent = v17,
        Padding = UDim.new(0, 12),
        FillDirection = Enum.FillDirection.Horizontal,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        SortOrder = Enum.SortOrder.LayoutOrder
    });
    local _ = l_Utility_0.Create("ImageLabel")({
        Name = "ThumbsUpImage",
        Size = UDim2.new(0, 28, 0, 28),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/ThumbsUpIcon@1080.png",
        Parent = v17,
        LayoutOrder = 1
    });
    local v20 = l_VoteFrame_0(v17, nil, nil, 2);
    local _ = l_Utility_0.Create("ImageLabel")({
        Name = "ThumbsDownImage",
        Size = UDim2.new(0, 28, 0, 28),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/ThumbsDownIcon@1080.png",
        Parent = v17,
        LayoutOrder = 3
    });
    local _ = l_Utility_0.Create("ImageLabel")({
        Name = "SeparatorDot1",
        Size = UDim2.new(0, 10, 0, 10),
        LayoutOrder = 3,
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/SeparatorDot@1080.png",
        Parent = v11
    });
    local v23 = l_Utility_0.Create("Frame")({
        Name = "CreatorContainer",
        Parent = v11,
        BackgroundTransparency = 1,
        LayoutOrder = 4
    });
    local _ = l_Utility_0.Create("UIListLayout")({
        Name = "CreatorContainerLayout",
        Parent = v23,
        Padding = UDim.new(0, 12),
        FillDirection = Enum.FillDirection.Horizontal,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        SortOrder = Enum.SortOrder.LayoutOrder
    });
    local _ = l_Utility_0.Create("ImageLabel")({
        Name = "CreatorIcon",
        Size = UDim2.new(0, 24, 0, 24),
        LayoutOrder = 1,
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/RobloxIcon24.png",
        Parent = v23
    });
    local v26 = l_Utility_0.Create("TextLabel")({
        Name = "CreatorName",
        Size = UDim2.new(0, 0, 0, 0),
        LayoutOrder = 2,
        BackgroundTransparency = 1,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.DescriptionSize,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        TextXAlignment = Enum.TextXAlignment.Left,
        Text = "",
        Parent = v23
    });
    local v27 = l_Utility_0.Create("ImageLabel")({
        Name = "SeparatorDot2",
        Size = UDim2.new(0, 10, 0, 10),
        LayoutOrder = 5,
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/SeparatorDot@1080.png",
        Parent = v11
    });
    local v28 = l_Utility_0.Create("Frame")({
        Name = "GameRatingContainer",
        Parent = v11,
        BackgroundTransparency = 1,
        LayoutOrder = 6
    });
    local _ = l_Utility_0.Create("UIListLayout")({
        Name = "GameRatingContainerLayout",
        Parent = v28,
        Padding = UDim.new(0, 12),
        FillDirection = Enum.FillDirection.Horizontal,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        SortOrder = Enum.SortOrder.LayoutOrder
    });
    local v30 = l_Utility_0.Create("TextLabel")({
        Name = "GameRatingName",
        Size = UDim2.new(0, 0, 0, 0),
        LayoutOrder = 2,
        AnchorPoint = Vector2.new(0, 0.5),
        BackgroundTransparency = 1,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.DescriptionSize,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        TextXAlignment = Enum.TextXAlignment.Left,
        Text = "",
        Parent = v28
    });
    local function v39(v31)
        if not v31:IsA("GuiObject") then
            error("trying to set size of a non gui object");
        end;
        local l_v31_Children_0 = v31:GetChildren();
        local v33 = 0;
        local v34 = -1;
        local v35 = 0;
        local v36 = 0;
        for _, v38 in ipairs(l_v31_Children_0) do
            if v38:IsA("UIListLayout") then
                v35 = v38.Padding.Offset;
            end;
            if not (not v38:IsA("GuiObject") or not v38.Visible) then
                v33 = v33 + v38.Size.X.Offset;
                v34 = math.max(v34, v38.Size.Y.Offset);
                v36 = v36 + 1;
            end;
        end;
        v31.Size = UDim2.new(0, v33 + v35 * (v36 - 1), 0, v34);
    end;
    v39(v17);
    v39(v28);
    local function _(v40)
        local v41 = not not v40 and v40.UpVotes or 0;
        local v42 = not not v40 and v40.DownVotes or 0;
        if v41 == 0 and v42 == 0 then
            v20:SetPercentFilled(nil);
        else
            v20:SetPercentFilled(v41 / (v41 + v42));
        end;
        v39(v11);
    end;
    local function v46(v44)
        if v44 == nil then
            v28.Visible = false;
            v27.Visible = false;
            return ;
        else
            v28.Visible = true;
            v27.Visible = true;
            v30.Text = v44;
            local v45 = l_TextService_0:getTextSize(v30.Text, l_Utility_0.ConvertFontSizeEnumToInt(v30.FontSize), v30.Font, Vector2.new());
            v30.Size = UDim2.new(0, v45.X, 0, v45.Y);
            v39(v28);
            v39(v11);
            return ;
        end;
    end;
    local function v49(v47)
        if v47 == nil then
            v47 = "";
        end;
        v26.Text = v47;
        local v48 = l_TextService_0:getTextSize(v26.Text, l_Utility_0.ConvertFontSizeEnumToInt(v26.FontSize), v26.Font, Vector2.new());
        v26.Size = UDim2.new(0, v48.X, 0, v48.Y);
        v39(v23);
        v39(v11);
    end;
    v10.setIsSponsored = function(_, v51)
        v13.Visible = v51;
        v17.Visible = not v51;
        v39(v11);
    end;
    v10.setData = function(_, v53)
        local v54 = not not v53 and v53.VoteData or nil;
        local v55 = not not v54 and v54.UpVotes or 0;
        local v56 = not not v54 and v54.DownVotes or 0;
        if v55 == 0 and v56 == 0 then
            v20:SetPercentFilled(nil);
        else
            v20:SetPercentFilled(v55 / (v55 + v56));
        end;
        v39(v11);
        v46(not not v53 and v53.ageDisplayName or nil);
        v49(not not v53 and v53.CreatorName or nil);
    end;
    v10.setVoteView = function(_, v58)
        local v59 = not not v58 and v58.UpVotes or 0;
        local v60 = not not v58 and v58.DownVotes or 0;
        if v59 == 0 and v60 == 0 then
            v20:SetPercentFilled(nil);
        else
            v20:SetPercentFilled(v59 / (v59 + v60));
        end;
        v39(v11);
    end;
    return v10;
end;


local l_BaseCarouselScreen_0 = require(game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell"):FindFirstChild("BaseCarouselScreen"));
return function(v1, v2)
    local v3 = l_BaseCarouselScreen_0("ExperienceGenre");
    v3:SetTitleZIndex(2);
    v3:SetTitle(v1);
    v3:LoadGameCollection(v2);
    return v3;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = l_CoreGui_0:FindFirstChild("RobloxGui");
local l_Shell_0 = l_RobloxGui_0:FindFirstChild("Modules"):FindFirstChild("Shell");
local v4 = nil;
pcall(function()
    v4 = game:GetService("PlatformService");
end);
local l_HttpService_0 = game:GetService("HttpService");
local l_FirstChild_0 = settings():FindFirstChild("Game Options");
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_Errors_0 = require(l_Shell_0:FindFirstChild("Errors"));
local l_ErrorOverlay_0 = require(l_Shell_0:FindFirstChild("ErrorOverlay"));
local l_ScreenManager_0 = require(l_Shell_0:FindFirstChild("ScreenManager"));
local l_AppState_0 = require(l_Shell_0:FindFirstChild("AppState"));
local l_default_0 = require(l_CorePackages_0.Workspace.Packages.LoggingProtocol).default;
local v13 = require(l_Shell_0.Flags.GetFFlagXboxExperienceJoinAttemptId);
local v14 = require(l_Shell_0.Flags.GetFFlagXboxAnalyticsTrackTTI);
local l_game_EngineFeature_0 = game:GetEngineFeature("MigrateOverscanToGameBasicSettings");
local v16 = {
    JoinType = {
        Normal = 0,
        GameInstance = 1,
        Follow = 2,
        PMPCreator = 3
    }
};
v16.StartGame = function(_, v18, v19, v20, v21)
    local v22 = false;
    pcall(function()
        if not l_game_EngineFeature_0 then
            if not (l_FirstChild_0.OverscanPX >= 0) or l_FirstChild_0.OverscanPY < 0 then
                v22 = true;
            end;
        elseif not (l_UserGameSettings_0.Overscan.x >= 0) or l_UserGameSettings_0.Overscan.y < 0 then
            v22 = true;
            return ;
        end;
    end);
    if game:GetService("UserInputService"):GetPlatform() == Enum.Platform.Windows then
        v22 = false;
    end;
    local function v23()
        if not UserSettings().GameSettings:InStudioMode() then
            if v14() then
                l_default_0:logEvent("experience_launch_begin");
            end;
            if not pcall(function()
                if v18 == v16.JoinType.Normal and v20 == l_AppState_0.store:getState().RobloxUser.rbxuid then
                    v18 = v16.JoinType.PMPCreator;
                end;
                if not v13() then
                    return v4:BeginStartGame(v18, v19);
                else
                    return v4:BeginStartGame(v18, v19, l_HttpService_0:GenerateGUID(false), v21);
                end;
            end) then
                l_ScreenManager_0:OpenScreen(l_ErrorOverlay_0(l_Errors_0.GameJoin.Default), false);
            end;
            return ;
        else
            l_ScreenManager_0:OpenScreen(l_ErrorOverlay_0(l_Errors_0.Test.CannotJoinGame), false);
            return ;
        end;
    end;
    if not v22 and not UserSettings().GameSettings:InStudioMode() then
        v23();
    else
        l_ScreenManager_0:OpenScreen((require(l_Shell_0.Components.RoactScreenManagerWrapper).new(require(l_Shell_0.Components.Overscan.Overscan), l_RobloxGui_0, {}, v23)));
    end;
end;
return v16;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_GameplaySettingsData_0 = require(l_Shell_0:FindFirstChild("GameplaySettingsData"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
local l_LinkingProtocol_0 = require(l_CorePackages_0.Workspace.Packages.LinkingProtocol).LinkingProtocol;
local l_GuiService_0 = game:GetService("GuiService");
local v9 = nil;
pcall(function()
    v9 = game:GetService("PlatformService");
end);
local l_game_EngineFeature_0 = game:GetEngineFeature("EnableLinkingProtocolOpenUrlForXbox");
return function(v11)
    local v12 = {};
    local v13 = l_Utility_0.Create("Frame")({
        Name = "GameplaySettingsContainer",
        Position = UDim2.new(0, 0, 0, 0),
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        Selectable = true,
        SelectionImageObject = l_Utility_0.Create("Frame")({
            BackgroundTransparency = 1
        })
    });
    local function v16(v14)
        if not l_game_EngineFeature_0 then
            if v9 then
                v9:LaunchPlatformUri(v14);
            end;
            return ;
        else
            l_LinkingProtocol_0.default:openURL(v14):andThen(function(v15)
                if v15 == false then
                    l_Utility_0.DebugLog("LinkingProtocol:openURL failed.");
                end;
            end);
            return ;
        end;
    end;
    local v17 = nil;
    local v18 = nil;
    local v19 = nil;
    local function v24()
        l_Utility_0.Create("TextLabel")({
            Name = "CPPSettingsTitle",
            TextXAlignment = "Left",
            TextYAlignment = "Bottom",
            Size = UDim2.new(0, 0, 0, 0),
            Position = UDim2.new(0, 26, 0, 26),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.SubHeaderSize,
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            Text = l_LocalizedStrings_0:LocalizedString("CrossPlatformGameplayPhrase"),
            Parent = v13
        });
        v17 = l_Utility_0.Create("ImageButton")({
            Name = "EnabledStatusButton",
            Position = UDim2.new(0, 26, 0, 46),
            Size = UDim2.new(0, 520, 0, 75),
            BackgroundTransparency = 1,
            ImageTransparency = 0.25,
            ImageColor3 = l_GlobalSettings_0.GreyButtonColor,
            Image = l_GlobalSettings_0.RoundCornerButtonImage,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(16, 16, 16, 16),
            ZIndex = 1,
            Parent = v13;
            l_SoundManager_0:CreateSound("MoveSelection")
        });
        local v20 = l_Utility_0.Create("TextLabel")({
            Name = "EnabledStatusText",
            TextXAlignment = "Left",
            TextYAlignment = "Center",
            Size = UDim2.new(0, 0, 1, 0),
            Position = UDim2.new(0, 72, 0, 0),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.ButtonSize,
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            ZIndex = 2,
            Text = l_LocalizedStrings_0:LocalizedString("LoadingWord"),
            Parent = v17
        });
        local v21 = l_Utility_0.Create("ImageLabel")({
            Name = "EnabledStatusIcon",
            Position = UDim2.new(0, 20, 0.5, 0),
            AnchorPoint = Vector2.new(0, 0.5),
            Size = UDim2.new(0, 32, 0, 32),
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/ui/Shell/Icons/EnabledStatusIcon.png",
            ImageColor3 = Color3.new(1, 1, 1),
            ZIndex = 2,
            Parent = v17
        });
        l_Utility_0.Create("ImageLabel")({
            Name = "EnabledStatusLinkIcon",
            Position = UDim2.new(1, -20, 0.5, 0),
            AnchorPoint = Vector2.new(1, 0.5),
            Size = UDim2.new(0, 32, 0, 32),
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/ui/Shell/Icons/ExternalLink.png",
            ImageColor3 = Color3.new(1, 1, 1),
            ZIndex = 2,
            Parent = v17
        });
        local v22 = l_Utility_0.Create("TextLabel")({
            Name = "DescriptionText",
            Position = UDim2.new(0, 26, 0, 135),
            Size = UDim2.new(0, 520, 0, 110),
            Text = "",
            TextXAlignment = "Center",
            TextYAlignment = "Top",
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.BoldFont,
            TextColor3 = l_GlobalSettings_0.GreyTextColor,
            FontSize = l_GlobalSettings_0.SmallTitleSize,
            TextWrapped = true,
            Parent = v13
        });
        l_Utility_0.ResizeButtonWithDynamicText(v17, v20, {
            l_LocalizedStrings_0:LocalizedString("EnabledWord"),
            l_LocalizedStrings_0:LocalizedString("DisabledWord"),
            l_LocalizedStrings_0:LocalizedString("LoadingWord")
        }, l_GlobalSettings_0.TextHorizontalPadding + v20.Position.X.Offset / 2);
        v17.MouseButton1Click:connect(function()
            v16("ms-settings://CustomizePrivacyMultiplayer");
        end);
        v13.SelectionGained:connect(function()
            l_Utility_0.SetSelectedCoreObject(v17);
        end);
        return function(v23)
            if not v23 then
                v21.ImageColor3 = Color3.new(1, 1, 1);
                v20.Text = l_LocalizedStrings_0:LocalizedString("LoadingWord");
                v22.Text = "";
                return ;
            elseif not v23.CrossPlatform.CanJoinGame then
                v21.ImageColor3 = Color3.new(0.9, 0, 0);
                v20.Text = l_LocalizedStrings_0:LocalizedString("DisabledWord");
                v22.Text = l_LocalizedStrings_0:LocalizedString("CrossplayDisabledDescription");
                l_GameplaySettingsData_0.UpdateCrossplayEnabled(false);
                return ;
            else
                v21.ImageColor3 = Color3.new(0, 0.9, 0);
                v20.Text = l_LocalizedStrings_0:LocalizedString("EnabledWord");
                v22.Text = l_LocalizedStrings_0:LocalizedString("CrossplayEnabledDescription");
                l_GameplaySettingsData_0.UpdateCrossplayEnabled(true);
                return ;
            end;
        end;
    end;
    local function v41()
        local v25 = l_Utility_0.Create("TextLabel")({
            Name = "XboxAccountSettingsTitle",
            TextXAlignment = "Left",
            TextYAlignment = "Bottom",
            Size = UDim2.new(0, 0, 0, 0),
            Position = UDim2.new(0, 26, 0, 278),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.SubHeaderSize,
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            Text = l_LocalizedStrings_0:LocalizedString("XboxAccountSettingsPhrase"),
            Parent = v13
        });
        v18 = l_Utility_0.Create("ImageButton")({
            Name = "MultiplayerButton",
            Size = UDim2.new(0, 520, 0, 75),
            BackgroundTransparency = 1,
            ImageTransparency = 0.25,
            ImageColor3 = l_GlobalSettings_0.GreyButtonColor,
            Image = l_GlobalSettings_0.RoundCornerButtonImage,
            ScaleType = Enum.ScaleType.Slice,
            Selectable = true,
            SliceCenter = Rect.new(16, 16, 16, 16),
            ZIndex = 1,
            Parent = v13;
            l_SoundManager_0:CreateSound("MoveSelection")
        });
        v18.Position = v25.Position + UDim2.new(0, 0, 0, v25.Size.Y.Offset + 20);
        v19 = v18:Clone();
        v19.Name = "SharedContentButton";
        v19.Parent = v13;
        v19.Position = v19.Position + UDim2.new(0, 0, 0, v18.Size.Y.Offset + 10);
        local v26 = false;
        local l_Selectable_0 = v18.Selectable;
        local v28 = false;
        local l_Selectable_1 = v19.Selectable;
        v18.MouseButton1Click:connect(function()
            if v26 then
                v16("ms-settings://CustomizePrivacyMultiplayer");
            end;
        end);
        v19.MouseButton1Click:connect(function()
            if v28 then
                v16("ms-settings://CustomizePrivacyGameContent");
            end;
        end);
        local v30 = l_Utility_0.Create("TextLabel")({
            Name = "MultiplayerText",
            TextXAlignment = "Left",
            TextYAlignment = "Center",
            Size = UDim2.new(0, 0, 1, 0),
            Position = UDim2.new(0, 72, 0, 0),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.ButtonSize,
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            ZIndex = 2,
            Parent = v18,
            Text = l_LocalizedStrings_0:LocalizedString("MultiplayerWord") .. ": " .. l_LocalizedStrings_0:LocalizedString("LoadingWord")
        });
        local v31 = v30:Clone();
        v31.Name = "SharedContentText";
        v31.Parent = v19;
        v31.Text = l_LocalizedStrings_0:LocalizedString("SharedContentWord") .. ": " .. l_LocalizedStrings_0:LocalizedString("LoadingWord");
        local v32 = l_Utility_0.Create("ImageLabel")({
            Name = "MultiplayerIcon",
            Position = UDim2.new(0, 20, 0.5, 0),
            AnchorPoint = Vector2.new(0, 0.5),
            Size = UDim2.new(0, 32, 0, 32),
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/ui/Shell/Icons/EnabledStatusIcon.png",
            ImageColor3 = Color3.new(1, 1, 1),
            ZIndex = 2,
            Parent = v18
        });
        local v33 = v32:Clone();
        v33.Name = "SharedContentIcon";
        v33.Parent = v19;
        local v34 = l_Utility_0.Create("ImageLabel")({
            Name = "MultiplayerLinkIcon",
            Position = UDim2.new(1, -20, 0.5, 0),
            AnchorPoint = Vector2.new(1, 0.5),
            Size = UDim2.new(0, 32, 0, 32),
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/ui/Shell/Icons/ExternalLink.png",
            ImageColor3 = Color3.new(1, 1, 1),
            ZIndex = 2,
            Parent = v18
        });
        local v35 = v34:Clone();
        v35.Name = "SharedContentLinkIcon";
        v35.Parent = v19;
        local v36 = l_Utility_0.Create("TextLabel")({
            Name = "DescriptionText",
            Size = UDim2.new(0, 520, 0, 200),
            Text = "",
            TextXAlignment = "Center",
            TextYAlignment = "Top",
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.BoldFont,
            TextColor3 = l_GlobalSettings_0.GreyTextColor,
            FontSize = l_GlobalSettings_0.SmallTitleSize,
            TextWrapped = true,
            Parent = v13
        });
        v36.Position = UDim2.new(0, 26, 0, (v19.Position.Y.Offset + v19.Size.Y.Offset) + 24);
        return function(v37)
            if not v37 then
                v33.ImageColor3 = Color3.new(1, 1, 1);
                v32.ImageColor3 = Color3.new(1, 1, 1);
                v31.Text = l_LocalizedStrings_0:LocalizedString("SharedContentWord") .. ": " .. l_LocalizedStrings_0:LocalizedString("LoadingWord");
                v30.Text = l_LocalizedStrings_0:LocalizedString("MultiplayerWord") .. ": " .. l_LocalizedStrings_0:LocalizedString("LoadingWord");
                v36.Text = "";
                v28 = false;
                v26 = false;
                l_Selectable_1 = true;
                l_Selectable_0 = true;
            else
                local l_Multiplayer_0 = v37.Multiplayer;
                local l_SharedContent_0 = v37.SharedContent;
                if not l_Multiplayer_0.Success or not l_SharedContent_0.Success then
                    v36.Text = l_LocalizedStrings_0:LocalizedString("PrivilegeErrorPhrase");
                elseif l_Multiplayer_0.PrivilegeCheckResult == "NoIssue" and l_SharedContent_0.PrivilegeCheckResult == "NoIssue" then
                    v36.Text = l_LocalizedStrings_0:LocalizedString("PrivilegeAllowedPhrase");
                elseif not (l_Multiplayer_0.PrivilegeCheckResult ~= "Banned") or l_SharedContent_0.PrivilegeCheckResult == "Banned" then
                    v36.Text = l_LocalizedStrings_0:LocalizedString("PrivilegeBannedPhrase");
                elseif not (l_Multiplayer_0.PrivilegeCheckResult ~= "PurchaseRequired") or l_SharedContent_0.PrivilegeCheckResult == "PurchaseRequired" then
                    v36.Text = l_LocalizedStrings_0:LocalizedString("PrivilegePurchaseRequiredPhrase");
                else
                    v36.Text = l_LocalizedStrings_0:LocalizedString("PrivilegeDeniedPhrase");
                end;
                v32.ImageColor3 = not not l_Multiplayer_0.CanJoinGame and Color3.new(0, 0.9, 0) or Color3.new(0.9, 0, 0);
                v33.ImageColor3 = not not l_SharedContent_0.CanJoinGame and Color3.new(0, 0.9, 0) or Color3.new(0.9, 0, 0);
                v30.Text = l_LocalizedStrings_0:LocalizedString("MultiplayerWord") .. ": " .. l_LocalizedStrings_0:LocalizedString(l_Multiplayer_0.LocalizedStringKey);
                v31.Text = l_LocalizedStrings_0:LocalizedString("SharedContentWord") .. ": " .. l_LocalizedStrings_0:LocalizedString(l_SharedContent_0.LocalizedStringKey);
                local v40 = true;
                if l_SharedContent_0.PrivilegeCheckResult ~= "NoIssue" then
                    v40 = true;
                    if l_SharedContent_0.PrivilegeCheckResult ~= "Banned" then
                        v40 = l_SharedContent_0.PrivilegeCheckResult == "PurchaseRequired";
                    end;
                end;
                v28 = not v40;
                v40 = true;
                if l_Multiplayer_0.PrivilegeCheckResult ~= "NoIssue" then
                    v40 = true;
                    if l_Multiplayer_0.PrivilegeCheckResult ~= "Banned" then
                        v40 = l_Multiplayer_0.PrivilegeCheckResult == "PurchaseRequired";
                    end;
                end;
                v26 = not v40;
                l_Selectable_1 = v28;
                l_Selectable_0 = v26;
            end;
            v35.Visible = v28;
            v34.Visible = v26;
            v19.Selectable = l_Selectable_1;
            v18.Selectable = l_Selectable_0;
            v19.ImageTransparency = not l_Selectable_1 and 1 or 0.25;
            v18.ImageTransparency = not l_Selectable_0 and 1 or 0.25;
            if not (not (not (l_GuiService_0.SelectedCoreObject ~= v19) or l_GuiService_0.SelectedCoreObject == v18) or l_GuiService_0.SelectedCoreObject.Selectable) then
                l_Utility_0.SetSelectedCoreObject(v13.EnabledStatusButton);
            end;
        end;
    end;
    local v42 = v24();
    local v43 = v41();
    local function v45(v44)
        v42(v44);
        v43(v44);
    end;
    local v46 = l_GameplaySettingsData_0.GetPrivilegeSettings();
    v42(v46);
    v43(v46);
    l_GameplaySettingsData_0.OnGetPrivilegeSettingsBegin:connect(v45);
    l_GameplaySettingsData_0.OnGetPrivilegeSettingsEnd:connect(v45);
    v12.SetParent = function(_, v48)
        v13.Parent = v48;
    end;
    v12.Focus = function(_)
        if v11 then
            if v11 == 113 then
                if not v18 or not v18.Selectable then
                    l_Utility_0.SetSelectedCoreObject(v17);
                    return ;
                else
                    l_Utility_0.SetSelectedCoreObject(v18);
                    return ;
                end;
            elseif v11 == 116 then
                if not v19 or not v19.Selectable then
                    l_Utility_0.SetSelectedCoreObject(v17);
                else
                    l_Utility_0.SetSelectedCoreObject(v19);
                    return ;
                end;
            end;
        end;
    end;
    v12.GetContainer = function(_)
        return v13;
    end;
    return v12;
end;


local l_TextService_0 = game:GetService("TextService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Shell.GameData);
local v3 = require(l_Modules_0.Shell.GlobalSettings);
local v4 = require(l_Modules_0.Shell.ThumbnailLoader);
local v5 = require(l_Modules_0.Shell.Utility);
local v6 = require(l_Modules_0.Shell.GameDetailsStrip);
local v7 = require(l_Modules_0.Shell.Experiment.XboxPrimaryNavIXPTest);
local function v27(v8, v9, v10)
    local v11 = {};
    local v12 = not not v10 and Color3.new(0.4, 0.4, 0.4) or Color3.new(1, 1, 1);
    local v13 = v5.Create("Frame")({
        Name = "ThumbViewContainer",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        Parent = v9
    });
    local function v14()
        return v5.Create("ImageLabel")({
            Name = "ThumbImage",
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            ImageTransparency = 1,
            ImageColor3 = v12,
            Parent = v13
        });
    end;
    local v15 = false;
    v11.KillView = function(_)
        v15 = true;
        v13.Parent = nil;
    end;
    local v17 = {};
    if v8 and #v8 > 0 then
        local v18 = v14();
        table.insert(v17, v18);
        local v19 = v4:Create(v18, v8[1], v4.Sizes.Large, v4.AssetType.Icon, false);
        spawn(function()
            v19:LoadAsync(true, true);
            if #v8 > 1 then
                for v20 = 2, #v8 do
                    local v21 = v14();
                    table.insert(v17, v21);
                    local v22 = v4:Create(v21, v8[v20], v4.Sizes.Large, v4.AssetType.Icon, false);
                    spawn(function()
                        v22:LoadAsync(true, false);
                    end);
                end;
                local v23 = 1;
                while not v15 do
                    wait(4);
                    if not v15 then
                        v5.PropertyTweener(v17[v23], "ImageTransparency", 0, 1, 1, v5.EaseOutQuad, true);
                        v23 = v23 + 1;
                        if #v8 < v23 then
                            v23 = 1;
                        end;
                        v5.PropertyTweener(v17[v23], "ImageTransparency", 1, 0, 1, v5.EaseOutQuad, true);
                    else
                        break;
                    end;
                end;
            end;
        end);
    end;
    v11.SetImageColor = function(_, v25)
        if v25 then
            v12 = v25;
            for v26 = 1, #v17 do
                v17[v26].ImageColor3 = v12;
            end;
            return ;
        else
            return ;
        end;
    end;
    return v11;
end;
return function()
    local v28 = {};
    local v29 = false;
    v28.PlaceId = nil;
    local v30 = {};
    local v31 = UDim2.new(0, 0, 0, 196);
    local v32 = UDim2.new(0, 0, 0, 116);
    local v33 = v5.Create("Frame")({
        Name = "ViewContainer",
        Size = UDim2.new(0, 1690, 0, 380),
        Position = UDim2.new(0, 0, 0, -84),
        BackgroundTransparency = 1
    });
    local v34 = v5.Create("Frame")({
        Name = "DetailsContainer",
        Size = UDim2.new(0, 900, 0, 216),
        Position = v31,
        BackgroundTransparency = 1,
        Parent = v33
    });
    local v35 = v5.Create("TextLabel")({
        Name = "GameTitle",
        Size = UDim2.new(0, 0, 0, 0),
        Position = UDim2.new(0, 0, 0, 18),
        BackgroundTransparency = 1,
        Font = v3.RegularFont,
        FontSize = v3.HeaderSize,
        Text = "",
        TextColor3 = v3.WhiteTextColor,
        TextXAlignment = Enum.TextXAlignment.Left,
        Parent = v34
    });
    local v36 = not v7.isUserEnrolled() and 374 or 324;
    local v37 = not v7.isUserEnrolled() and 700 or 596;
    local v38 = v5.Create("Frame")({
        Name = "GameImageContainer",
        Size = UDim2.new(0, v37, 0, v36),
        Position = UDim2.new(1, -v37, 0, 380 - v36),
        BackgroundTransparency = 1,
        Parent = v33
    });
    local v39 = v6(v34, UDim2.new(0, 0, 0, 83), nil);
    local v40 = v5.Create("TextLabel")({
        Name = "DescriptionText",
        Size = UDim2.new(1, 0, 0, 92),
        Position = UDim2.new(0, 0, 1, -92),
        BackgroundTransparency = 1,
        Text = "",
        TextColor3 = v3.LightGreyTextColor,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Top,
        Font = v3.LightFont,
        TextWrapped = true,
        FontSize = v3.DescriptionSize,
        Parent = v34
    });
    local function v45(v41)
        if not v41 or v41 == v35.Text then
            return ;
        else
            local function _(v42)
                return l_TextService_0:GetTextSize(v42, v5.ConvertFontSizeEnumToInt(v35.FontSize), v35.Font, Vector2.new(0, 0)).X;
            end;
            local v44 = "";
            while v35.Parent.AbsoluteSize.X < l_TextService_0:GetTextSize(v41 .. v44, v5.ConvertFontSizeEnumToInt(v35.FontSize), v35.Font, Vector2.new(0, 0)).X do
                v41 = string.sub(v41, 1, -2);
                v44 = "...";
            end;
            v35.Text = v41 .. v44;
            return ;
        end;
    end;
    local function _(v46)
        if not v46 or v46 == v40.Text then
            return ;
        else
            v40.Text = v46;
            return ;
        end;
    end;
    local v48 = nil;
    local function _(v49, v50)
        if v48 then
            v48:KillView();
            v48 = nil;
        end;
        if v49 and #v49 > 1 then
            v48 = v27(v49, v38, v50);
        end;
    end;
    v28.SetParent = function(_, v53)
        v33.Parent = v53;
    end;
    v28.TweenTransparency = function(_, v55, v56)
        for _, v58 in pairs((v34:GetDescendants())) do
            if not v58:IsA("TextLabel") then
                if v58:IsA("ImageLabel") then
                    v5.PropertyTweener(v58, "ImageTransparency", v58.ImageTransparency, v55, v56, v5.Linear, true);
                end;
            else
                v5.PropertyTweener(v58, "TextTransparency", v58.TextTransparency, v55, v56, v5.Linear, true);
            end;
        end;
    end;
    local function v59()
        v5.DisconnectEvents(v30);
        v30 = {};
        v28.PlaceId = nil;
        v45("");
        v39:setData(nil);
        if not (v40.Text == "") then
            v40.Text = "";
        end;
        if v48 then
            v48:KillView();
            v48 = nil;
        end;
    end;
    local v60 = 0;
    v28.SetGamePreview = function(_, v62, v63, v64)
        v5.DisconnectEvents(v30);
        v30 = {};
        local v65 = v2:GetGameData(v62) or v2:GetGameData(v62, true);
        if v65 then
            table.insert(v30, v65.OnGetGameDetailsEnd:connect(function(v66)
                v39:setData(v66);
                local v67 = v65.Description or "";
                if v67 then
                    if v67 == v40.Text then
                        return ;
                    else
                        v40.Text = v67;
                    end;
                end;
            end));
            table.insert(v30, v65.OnGetThumbnailIdsEnd:connect(function(v68)
                local l_v63_0 = v63;
                if v48 then
                    v48:KillView();
                    v48 = nil;
                end;
                if v68 and #v68 > 1 then
                    v48 = v27(v68, v38, l_v63_0);
                end;
            end));
            v45(v65.Name);
            v39:setIsSponsored(v64);
            v60 = v60 + 1;
            table.insert(v30, v65.OnGetVoteDataEnd:connect(function(v70)
                v39:setVoteView(v70);
            end));
            v39:setData(v65);
            local v71 = v65.Description or "";
            if not (not v71 or v71 == v40.Text) then
                v40.Text = v71;
            end;
            v71 = v65.ThumbnailIds;
            if v48 then
                v48:KillView();
                v48 = nil;
            end;
            if v71 and #v71 > 1 then
                v48 = v27(v71, v38, v63);
            end;
            spawn(function()
                if not (v65.VoteData or not v29) then
                    v65:GetVoteDataAsync();
                end;
                if not (v65.Description or not v29) then
                    v65:GetGameDetailsAsync();
                end;
                if not (v65.ThumbnailIds or not v29) then
                    v65:GetThumbnailIdsAsync();
                end;
            end);
            return ;
        else
            v59();
            return ;
        end;
    end;
    v28.Remove = function(_)
        v33:Destroy();
    end;
    v28.Focus = function(v73)
        if not v29 then
            v29 = true;
            v73:TweenTransparency(0, v3.TabDockTweenDuration);
            v5.PropertyTweener(v34, "Position", v34.Position, v32, v3.TabDockTweenDuration, v5.SCurveUDim2, true);
            return ;
        else
            return ;
        end;
    end;
    v28.RemoveFocus = function(v74)
        v5.DisconnectEvents(v30);
        v30 = {};
        if v29 then
            v28.PlaceId = nil;
            v29 = false;
            v5.PropertyTweener(v34, "Position", v34.Position, v31, v3.TabDockTweenDuration, v5.SCurveUDim2, true);
            v74:TweenTransparency(1, v3.TabDockTweenDuration);
            if v48 then
                v48:KillView();
                v48 = nil;
            end;
            return ;
        else
            return ;
        end;
    end;
    return v28;
end;


local l_RobloxGui_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui");
local l_Shell_0 = l_RobloxGui_0:FindFirstChild("Modules"):FindFirstChild("Shell");
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_LoadingWidget_0 = require(l_Shell_0:FindFirstChild("LoadingWidget"));
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_AssetManager_0 = require(l_Shell_0:FindFirstChild("AssetManager"));
local l_GuiService_0 = game:GetService("GuiService");
return {
    CreateScreenDivide = function()
        return l_Utility_0.Create("Frame")({
            Name = "ScreenDivide",
            Size = UDim2.fromOffset(2, 610),
            Position = UDim2.new(0, 822, 0.5, -305),
            BorderSizePixel = 0,
            BackgroundColor3 = l_GlobalSettings_0.PageDivideColor
        });
    end,
    CreateModalOverlay = function()
        return l_Utility_0.Create("Frame")({
            Name = "ModalOverlay",
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = l_GlobalSettings_0.ModalBackgroundTransparency,
            BackgroundColor3 = l_GlobalSettings_0.ModalBackgroundColor,
            BorderSizePixel = 0,
            ZIndex = 4
        });
    end,
    DoLoadingSpinner = function(v9, v10, v11)
        local v12 = l_LoadingWidget_0({
            Parent = v9
        }, v11);
        v10.Parent = l_RobloxGui_0;
        l_ContextActionService_0:BindCoreAction("BlockB", function()
        end, false, Enum.KeyCode.ButtonB);
        local l_SelectedCoreObject_0 = l_GuiService_0.SelectedCoreObject;
        l_Utility_0.SetSelectedCoreObject(nil);
        v12:AwaitFinished();
        v12:Cleanup();
        v12 = nil;
        l_Utility_0.SetSelectedCoreObject(l_SelectedCoreObject_0);
        l_ContextActionService_0:UnbindCoreAction("BlockB");
        v10.Parent = nil;
    end,
    CreateSlicedTextButton = function(v14, v15, v16)
        v14 = v14 or "";
        local v17 = l_Utility_0.Create("Frame")({
            Name = v14 .. "Container",
            Position = v16 or UDim2.new(),
            Size = UDim2.new(0, 376, 0, 64),
            BackgroundTransparency = 1;
            l_AssetManager_0.CreateShadow(1)
        });
        local v18 = l_Utility_0.Create("ImageButton")({
            Name = v14 .. "Button",
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1,
            ImageColor3 = l_GlobalSettings_0.GreyButtonColor,
            Image = l_GlobalSettings_0.RoundCornerButtonImage,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(Vector2.new(4, 4), Vector2.new(28, 28)),
            ZIndex = 2,
            Parent = v17;
            l_SoundManager_0:CreateSound("MoveSelection")
        });
        local v19 = l_Utility_0.Create("TextLabel")({
            Name = v14 .. "Text",
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.ButtonSize,
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            Text = v15,
            ZIndex = 2,
            Parent = v18
        });
        v18.SelectionGained:connect(function()
            v18.ImageColor3 = l_GlobalSettings_0.GreySelectedButtonColor;
            v19.TextColor3 = l_GlobalSettings_0.TextSelectedColor;
        end);
        v18.SelectionLost:connect(function()
            v18.ImageColor3 = l_GlobalSettings_0.GreyButtonColor;
            v19.TextColor3 = l_GlobalSettings_0.WhiteTextColor;
        end);
        return v17, v18, v19;
    end,
    CreateSlicedTextOutlineButton = function(v20, v21, v22)
        v20 = v20 or "";
        local v23 = l_Utility_0.Create("Frame")({
            Name = v20 .. "Container",
            Position = v22 or UDim2.new(),
            Size = UDim2.new(0, 376, 0, 64),
            BackgroundTransparency = 1
        });
        local v24 = l_Utility_0.Create("ImageButton")({
            Name = v20 .. "Button",
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1,
            ImageColor3 = l_GlobalSettings_0.Colors.LightGreyText,
            Image = l_GlobalSettings_0.RoundCornerButtonOutlineImage,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(Vector2.new(4, 4), Vector2.new(28, 28)),
            ZIndex = 2,
            Parent = v23;
            l_SoundManager_0:CreateSound("MoveSelection")
        });
        local v25 = l_Utility_0.Create("TextLabel")({
            Name = v20 .. "Text",
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.ButtonSize,
            TextColor3 = l_GlobalSettings_0.Colors.LightGreyText,
            Text = v21,
            ZIndex = 2,
            Parent = v24
        });
        v24.SelectionGained:connect(function()
            v25.TextColor3 = l_GlobalSettings_0.Colors.WhiteText;
        end);
        v24.SelectionLost:connect(function()
            v25.TextColor3 = l_GlobalSettings_0.Colors.LightGreyText;
        end);
        return v23, v24, v25;
    end
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_TextService_0 = game:GetService("TextService");
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local v6 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_getFFlagDebugLuaAppAlwaysUseGamepad_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).getFFlagDebugLuaAppAlwaysUseGamepad;
return function(v8, v9, v10)
    if v10 == nil then
        v10 = UDim2.new(1, -1, 1, -1);
    end;
    local v11 = {};
    if not (v9 ~= nil) or #v9 == 0 then
        v9 = "DefaultHintAction";
    end;
    local v12 = l_Utility_0.Create("Frame")({
        Name = "HintActionContainer",
        Size = UDim2.new(0, 0, 0, 0),
        BackgroundTransparency = 1,
        Parent = v8
    });
    local v13 = l_Utility_0.Create("TextLabel")({
        Name = "HintActionText",
        BackgroundTransparency = 1,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.TitleSize,
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        TextXAlignment = Enum.TextXAlignment.Right,
        Text = "",
        ZIndex = 10,
        Parent = v12
    });
    local v14 = l_Utility_0.Create("ImageLabel")({
        Name = "HintActionImage",
        Size = UDim2.new(0, 83, 0, 83),
        BackgroundTransparency = 1,
        Image = "",
        ZIndex = 10,
        Parent = v12
    });
    local function v16()
        local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v13.Text, l_Utility_0.ConvertFontSizeEnumToInt(v13.FontSize), v13.Font, Vector2.new(0, 0));
        v13.Size = UDim2.new(0, l_l_TextService_0_TextSize_0.x, 0, v14.Size.Y.Offset);
        v13.Position = UDim2.new(1, -l_l_TextService_0_TextSize_0.x, 0, -4);
        v12.Size = UDim2.new(0, (l_l_TextService_0_TextSize_0.x + v14.Size.X.Offset) + 8, 0, v14.Size.Y.Offset);
        v12.Position = UDim2.new(v10.X.Scale, v10.X.Offset * v12.Size.X.Offset, v10.Y.Scale, v10.Y.Offset * v12.Size.Y.Offset);
    end;
    v11.BindAction = function(_, v18, v19)
        if v18 then
            l_ContextActionService_0:UnbindCoreAction(v9);
            if not l_getFFlagDebugLuaAppAlwaysUseGamepad_0() or not v6.Config.DebugKeyboardBindings then
                l_ContextActionService_0:BindCoreAction(v9, v18, false, v19);
                return ;
            else
                l_ContextActionService_0:BindCoreAction(v9, v18, false, v19, table.unpack(v6.Config.DebugKeyboardBindings[v19] or {}));
                return ;
            end;
        else
            return ;
        end;
    end;
    v11.UnbindAction = function(_)
        l_ContextActionService_0:UnbindCoreAction(v9);
    end;
    v11.SetParent = function(_, v22)
        v12.Parent = v22;
    end;
    v11.SetVisible = function(_, v24)
        v12.Visible = v24;
    end;
    v11.SetTransparency = function(_, v26)
        v13.TextTransparency = v26;
        v14.ImageTransparency = v26;
    end;
    v11.SetVisibleWithTween = function(_, v28)
        l_Utility_0.PropertyTweener(v13, "TextTransparency", v13.TextTransparency, v28, 0.25, l_Utility_0.EaseOutQuad, true);
        l_Utility_0.PropertyTweener(v14, "ImageTransparency", v14.ImageTransparency, v28, 0.25, l_Utility_0.EaseOutQuad, true);
    end;
    v11.SetText = function(_, v30)
        if v30 == v13.Text then
            return ;
        else
            v13.Text = v30;
            v16();
            return ;
        end;
    end;
    v11.SetImage = function(_, v32)
        if v32 == v14.Image then
            return ;
        else
            v14.Image = v32;
            return ;
        end;
    end;
    return v11;
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_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_ScreenManager_0 = require(l_Shell_0:FindFirstChild("ScreenManager"));
local l_ThumbnailLoader_0 = require(l_Shell_0:FindFirstChild("ThumbnailLoader"));
local l_Analytics_0 = require(l_Shell_0:FindFirstChild("Analytics"));
return function(v9, v10)
    local v11 = {};
    local v12 = #v9;
    if not (v10 >= 1) or v12 < v10 then
        l_Utility_0.DebugLog("ImageOverlay: Invalid index to selectedThumbIndex");
        return ;
    else
        local v13 = nil;
        local l_v10_0 = v10;
        local v15 = l_Utility_0.Create("Frame")({
            Name = "Shield",
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            BackgroundColor3 = Color3.new(0, 0, 0),
            BorderSizePixel = 0
        });
        local v16 = l_Utility_0.Create("Frame")({
            Name = "ImageOverlayContainer",
            Size = UDim2.new(1, 0, 0, 668),
            Position = UDim2.new(0, 0, 0, 226),
            BorderSizePixel = 0,
            BackgroundColor3 = l_GlobalSettings_0.OverlayColor
        });
        local v17 = l_Utility_0.Create("TextButton")({
            Name = "DummySelectionImage",
            Size = UDim2.new(0, 0, 0, 0),
            Visible = false
        });
        local v18 = l_Utility_0.Create("Frame")({
            Name = "imageSelection",
            Size = UDim2.new(0, 1030, 0, 580),
            Position = UDim2.new(0.5, -515, 0.5, -290),
            BackgroundTransparency = 1,
            Selectable = true,
            SelectionImageObject = v17,
            Parent = v16;
            l_SoundManager_0:CreateSound("MoveSelection")
        });
        local v19 = l_Utility_0.Create("ImageButton")({
            Name = "LeftArrowImage",
            Size = UDim2.new(0, 26, 0, 45),
            Position = UDim2.new(0.5, (v18.Position.X.Offset - 18) - 75, 0.5, -22.5),
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/ui/Settings/Slider/Left.png",
            SelectionImageObject = v17,
            Parent = v16;
            l_SoundManager_0:CreateSound("MoveSelection")
        });
        local v20 = v19:Clone();
        v20.Name = "RightArrowImage";
        v20.Position = UDim2.new(0.5, (v18.Position.X.Offset + v18.Size.X.Offset) + 75, 0.5, -22.5);
        v20.Image = "rbxasset://textures/ui/Settings/Slider/Right.png";
        v20.Parent = v16;
        local v21 = l_Utility_0.Create("TextLabel")({
            Name = "SelectedText",
            Size = UDim2.new(),
            Position = UDim2.new(0.5, 0, 1, -24),
            BackgroundTransparency = 1,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = l_GlobalSettings_0.ButtonSize,
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            Text = "",
            Parent = v16
        });
        local function v25()
            if not v13 then
                v13 = {};
                for v22 = 1, #v9 do
                    local v23 = l_Utility_0.Create("ImageLabel")({
                        Name = tostring(v22),
                        Size = v18.Size,
                        Position = v18.Position,
                        BackgroundTransparency = 1,
                        Parent = v16;
                        l_SoundManager_0:CreateSound("MoveSelection")
                    });
                    local v24 = l_ThumbnailLoader_0:Create(v23, v9[v22], l_ThumbnailLoader_0.Sizes.Large, l_ThumbnailLoader_0.AssetType.Icon, false);
                    spawn(function()
                        v24:LoadAsync(true, true, {
                            ZIndex = v23.ZIndex
                        });
                    end);
                    v13[v22] = v23;
                end;
            end;
        end;
        local function v29(v26)
            for v27 = 1, #v13 do
                local v28 = v13[v27];
                v28.Position = UDim2.new(v27 == v26 and 0.5 or 1.5, -v28.Size.X.Offset / 2, 0.5, v28.Position.Y.Offset);
            end;
        end;
        local function v37(v30, v31, v32)
            if v30 == v31 then
                return ;
            else
                local v33 = v32 * 1.5;
                local v34 = -v33;
                local v35 = v13[v30];
                local v36 = v13[v31];
                v36.Position = UDim2.new(v33, -v36.Size.X.Offset / 2, 0.5, v36.Position.Y.Offset);
                l_Utility_0.SetSelectedCoreObject(v18);
                l_Utility_0.TweenPositionOrSet(v35, UDim2.new(v34, -v35.Size.X.Offset / 2, 0.5, v35.Position.Y.Offset), Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, 0.25, true);
                l_Utility_0.TweenPositionOrSet(v36, UDim2.new(0.5, -v36.Size.X.Offset / 2, 0.5, v36.Position.Y.Offset), Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, 0.25, true);
                v21.Text = tostring(v31) .. "/" .. tostring(#v13);
                return ;
            end;
        end;
        local function _(v38)
            local v39 = nil;
            v39 = l_v10_0 + v38;
            if v39 < 1 then
                v39 = v12;
            elseif v12 < v39 then
                v39 = 1;
            end;
            if v39 then
                v37(l_v10_0, v39, v38);
                l_v10_0 = v39;
            end;
        end;
        v11.GetAnalyticsInfo = function(_)
            return {
                [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("ImageOverlayId"),
                Selected = tostring(l_v10_0) .. "/" .. tostring(v12)
            };
        end;
        v11.GetPriority = function(_)
            return l_GlobalSettings_0.OverlayPriority;
        end;
        v11.Show = function(v43)
            v25();
            v29(l_v10_0);
            v21.Text = tostring(l_v10_0) .. "/" .. tostring(v12);
            if v12 == 1 then
                v19.Visible = false;
                v20.Visible = false;
            end;
            v15.Parent = l_ScreenManager_0:GetScreenGuiByPriority(v43:GetPriority());
            v16.Parent = v15.Parent;
            local _ = l_Utility_0.PropertyTweener(v15, "BackgroundTransparency", 1, 0.3, 0.25, l_Utility_0.EaseInOutQuad, nil);
        end;
        v11.Hide = function(_)
            local _ = l_Utility_0.PropertyTweener(v15, "BackgroundTransparency", 0.3, 1, 0.25, l_Utility_0.EaseInOutQuad, true, function()
                v15:Destroy();
            end);
            v16:Destroy();
        end;
        v11.Focus = function(_)
            l_ContextActionService_0:BindCoreAction("CloseImageOverlay", function(_, v49, _)
                if v49 == Enum.UserInputState.End then
                    l_ScreenManager_0:CloseCurrent();
                end;
            end, false, Enum.KeyCode.ButtonB);
            v19.SelectionGained:connect(function()
                local v51 = nil;
                v51 = l_v10_0 + -1;
                if v51 < 1 then
                    v51 = v12;
                elseif v12 < v51 then
                    v51 = 1;
                end;
                if v51 then
                    v37(l_v10_0, v51, -1);
                    l_v10_0 = v51;
                end;
            end);
            v20.SelectionGained:connect(function()
                local v52 = nil;
                v52 = l_v10_0 + 1;
                if v52 < 1 then
                    v52 = v12;
                elseif v12 < v52 then
                    v52 = 1;
                end;
                if v52 then
                    v37(l_v10_0, v52, 1);
                    l_v10_0 = v52;
                end;
            end);
            l_GuiService_0:AddSelectionParent("ImageOverlay", v16);
            l_Utility_0.SetSelectedCoreObject(v18);
        end;
        v11.RemoveFocus = function(_)
            l_ContextActionService_0:UnbindCoreAction("CloseImageOverlay");
            l_GuiService_0:RemoveSelectionGroup("ImageOverlay");
        end;
        return v11;
    end;
end;


local l_Utility_0 = require(game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell"):FindFirstChild("Utility"));
return function(v1, v2, v3)
    v1 = v1 or {};
    v2 = v2 or {};
    local v4 = {};
    local v5 = {};
    local v6 = false;
    local v7 = v1.ImageTransparency or 0;
    local v8 = l_Utility_0.Signal();
    local v9 = l_Utility_0.Create("ImageLabel")({
        Name = "LoadIcon",
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/Icons/LoadingSpinner@1080.png",
        Size = v1.Size or UDim2.new(0, 100, 0, 100),
        ZIndex = v1.ZIndex or 7,
        Parent = v1.Parent,
        ImageTransparency = v7,
        AnchorPoint = Vector2.new(0.5, 0.5),
        Position = v1.Position or UDim2.new(0.5, 0, 0.5, 0)
    });
    if v1.Visible == false then
        v9.Visible = false;
    end;
    local function _()
        if not v3 then
            return #v5 == #v2;
        else
            return false;
        end;
    end;
    v4.AwaitFinished = function(_)
        if not if not v3 then #v5 == #v2 else false then
            v8:wait();
            if not v6 then
                return true;
            else
                return false;
            end;
        else
            return true;
        end;
    end;
    v4.Cleanup = function(_)
        v9.Parent = nil;
        v9.ImageTransparency = 1;
        v9:Destroy();
        v6 = true;
    end;
    v4.SetTransparency = function(_, v14)
        v7 = v14;
    end;
    v4.SetParent = function(_, v16)
        v9.Parent = v16;
    end;
    v4.GetTransparency = function(_)
        return v7;
    end;
    for _, v19 in pairs(v2) do
        spawn(function()
            v19();
            table.insert(v5, v19);
        end);
    end;
    spawn(function()
        local v20 = tick();
        while not (v6 or if not v3 then #v5 == #v2 else false) do
            local v21 = tick();
            local v22 = (v21 - v20) * 360;
            if v9.Parent then
                v9.ImageTransparency = v7;
                v9.Rotation = v9.Rotation + v22;
            end;
            v20 = v21;
            wait();
        end;
        v8.fire();
    end);
    return v4;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Shell_0 = l_CoreGui_0:FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_Locales_0 = l_Shell_0.Locales;
local v5 = require(l_Locales_0:FindFirstChild("en-us"));
local l_Localization_0 = require(l_CorePackages_0.Workspace.Packages:FindFirstChild("RobloxAppLocales")).Localization;
local v7 = nil;
local v8 = nil;
local v9 = nil;
local v10 = nil;
local l_status_0, l_result_0 = pcall(function()
    return game:GetService("LocalizationService").RobloxLocaleId;
end);
v8 = l_status_0;
v9 = l_result_0;
l_status_0 = {
    GetLocale = function(_)
        local l_l_Locales_0_FirstChild_0 = l_Locales_0:FindFirstChild(v9);
        if not (not v8 or not l_l_Locales_0_FirstChild_0) then
            v7 = require(l_l_Locales_0_FirstChild_0);
        end;
        if v7 == nil then
            v7 = v5;
        end;
        return v7;
    end,
    LocString = function(v15, v16)
        local v17 = not not v7 and v7 or v15:GetLocale();
        local v18 = v17 and v17[v16];
        if not v18 then
            l_Utility_0.DebugLog("LocalizedString: Could not find string for:", v16, "using locale:", v17);
            v18 = v5[v16] or v16;
        end;
        return v18;
    end
};
l_status_0.LocalizedString = function(_, v20)
    return l_status_0:LocString("Xbox.Old." .. v20);
end;
l_status_0.LocStringUA = function(_, v22)
    if not v8 or v10 then
        v10 = l_Localization_0.new("en-us");
    else
        v10 = l_Localization_0.new(v9);
    end;
    local v23 = v10.localizationContext:getString(v9, v22);
    if not v23 then
        l_Utility_0.DebugLog("LocalizedStringUA: Could not find string for:", v22, "using locale:", v9);
        v23 = v22;
    end;
    return v23;
end;
return l_status_0;


local v0 = {};
local v1 = {
    ["59"] = true,
    ["60"] = true
};
v0.fromData = function(v2)
    local v3 = {
        bundleId = v2.id,
        name = v2.name,
        description = v2.description,
        productId = v2.productId
    };
    if not v1[tostring(v2.id)] then
        v3.isStarterPack = false;
    else
        v3.isStarterPack = true;
    end;
    v3.priceInRobux = v2.priceInRobux or 0;
    v3.creatorId = v2.creatorId;
    v3.partIds = v2.partIds;
    return v3;
end;
return v0;


local v0 = {
    new = function()
        return {};
    end
};
v0.fromJsonData = function(v1)
    local v2 = v0.new();
    v2.creatorId = v1.creatorId;
    v2.creatorName = v1.creatorName;
    v2.name = v1.name;
    v2.universeId = v1.universeId;
    v2.placeId = v1.placeId;
    v2.imageToken = v1.imageToken;
    v2.totalUpVotes = v1.totalUpVotes;
    v2.totalDownVotes = v1.totalDownVotes;
    v2.playerCount = v1.playerCount;
    return v2;
end;
return v0;