return function(v0)
    return string.format("rbxasset://textures/ui/ImageSet/%s.png", v0);
end;


local v0 = require(script.GetImageData);
local v1 = require(script.GetImageSetData);
local v2 = require(script.GetImageSetPathPattern);
local _ = require(script.types);
return {
    GetImageData = v0,
    GetImageSetData = v1,
    GetImageSetPathPattern = v2
};


return {
    PlacesList = "PlacesList",
    PeopleList = "PeopleList",
    GameDetailMore = "GameDetailMore",
    GameDetailPlay = "GameDetailPlay",
    GameDetailsPlayWithFriends = "GameDetailsPlayWithFriends",
    PurchaseGame = "PurchaseGame",
    PurchaseGameRobuxShortfall = "PurchaseGameRobuxShortfall",
    LeaveRobloxAlert = "LeaveRobloxAlert",
    ReportLogsOverlay = "ReportLogsOverlay",
    ConfirmSignOut = "ConfirmSignOut",
    UpdateRequiredPrompt = "UpdateRequiredPrompt",
    PremiumMigrationNotice = "PremiumMigrationNotice",
    DevSubMore = "DevSubMore",
    DevSubConfirmCancel = "DevSubConfirmCancel",
    TencentNoticePopup = "TencentNoticePopup",
    SignUpBirthdayPickerOverlay = "SignUpBirthdayPickerOverlay",
    LoginPasswordResetPrompt = "LoginPasswordResetPrompt",
    LoginEmailVerificationPrompt = "LoginEmailVerificationPrompt",
    EmailVerificationUpsellOverlay = "EmailVerificationUpsellOverlay",
    PhoneVerificationUpsellOverlay = "PhoneVerificationUpsellOverlay",
    PhoneVerificationUpsellOverlayWrapper = "PhoneVerificationUpsellOverlayWrapper",
    VoicePhoneVerificationUpsellOverlayWrapper = "VoicePhoneVerificationUpsellOverlayWrapper",
    ContactMethodPromptModalOverlay = "ContactMethodPromptModalOverlay",
    CrossDeviceCodePrompt = "CrossDeviceCodePrompt",
    CrossDeviceLoginConfirmation = "CrossDeviceLoginConfirmation",
    UserAgreementsUpdatedPopup = "UserAgreementsUpdatedPopup",
    VNGUserAgreementsPopup = "VNGUserAgreementsPopup",
    AgreeToPhoneNumberVerification = "AgreeToPhoneNumberVerification",
    VerifyPhoneNumber = "VerifyPhoneNumber",
    VerifiedEnableVoice = "VerifiedEnableVoice",
    AccountSecurityPromptOverlay = "AccountSecurityPromptOverlay",
    CameraPermissionPrompt = "CameraPermissionPrompt",
    AccountAuthenticationFailureOverlay = "AccountAuthenticationFailureOverlay",
    UserAgreementsPrompt = "UserAgreementsPrompt",
    UserAgreementsSecondPrompt = "UserAgreementsSecondPrompt",
    SimpleTextAlertPrompt = "SimpleTextAlertPrompt",
    FindFriendsModal = "FindFriendsModal",
    ContactsList = "ContactsList",
    PurchasePass = "PurchasePass",
    PurchasePassInsufficientRobux = "PurchasePassInsufficientRobux",
    DiscoverabilityUpsell = "DiscoverabilityUpsell",
    SurveyPrompt = "SurveyPrompt",
    PlayerContextualMenu = "PlayerContextualMenu",
    GamepadDisconnected = "GamepadDisconnected",
    IapExperienceAnimator = "IapExperienceAnimator",
    ExperienceGuidelinesExplained = "ExperienceGuidelinesExplained",
    AccountSelector = "AccountSelector",
    StreamNotifications = "StreamNotifications",
    EmailOtp = "EmailOtp",
    SponsoredTooltip = "SponsoredTooltip",
    VngContactInfoFormWebviewPopup = "VngContactInfoFormWebviewPopup",
    NewAppAvailableModal = "NewAppAvailableModal",
    AccountSwitchingErrorOverlay = "AccountSwitchingErrorOverlay",
    CloseOnlyInteractiveAlert = "CloseOnlyInteractiveAlert",
    SquadLeavePrompt = "SquadLeavePrompt",
    VngComplianceLoadingPopup = "VngComplianceLoadingPopup",
    KISAPopUpAgreements = "KISAPopUpAgreements",
    ItemsReceivedAlert = "ItemsReceivedAlert",
    VngAppUpsell = "VngAppUpsell"
};


return {
    Desktop = "Desktop",
    Tablet = "Tablet",
    Phone = "Phone",
    Console = "Console",
    VR = "VR",
    Unknown = "Unknown"
};


return {
    Kind = {
        TopBar = "top bar",
        Experiences = {
            Default = "experiences",
            WithFooter = "experiencesWithFooter",
            AppGameTile = "AppGameTile",
            GridTile = "GridTile",
            EventTile = "EventTile"
        },
        Friends = "friends"
    },
    Keys = {
        PaddingRightItems = "PaddingRightItems",
        PaddingHorizontal = "margin",
        PaddingVertical = "PaddingVertical"
    }
};


return {
    UNKNOWN = "UNKNOWN",
    LOGGED_OUT = "LOGGED_OUT",
    LOGGED_IN = "LOGGED_IN"
};


local l_GuiService_0 = game:GetService("GuiService");
local l_status_0, l_result_0 = pcall(l_GuiService_0.GetNotificationTypeList, l_GuiService_0);
return not not l_status_0 and l_result_0 or {
    VIEW_PROFILE = 0,
    REPORT_ABUSE = 1,
    VIEW_GAME_DETAILS = 2,
    SHOW_TAB_BAR = 3,
    HIDE_TAB_BAR = 4,
    UNREAD_COUNT = 5,
    PRIVACY_SETTINGS = 6,
    BACK_BUTTON_NOT_CONSUMED = 7,
    PURCHASE_ROBUX = 8,
    VIEW_NOTIFICATIONS = 9,
    APP_READY = 10,
    CLOSE_MODAL = 11,
    VIEW_GAME_DETAILS_ANIMATED = 12,
    SEARCH_GAMES = 15,
    GAMES_SEE_ALL = 16,
    ACTION_LOG_OUT = 17,
    LAUNCH_CONVERSATION = 18,
    UNIVERSAL_FRIENDS = 19,
    OPEN_CUSTOM_WEBVIEW = 20,
    SET_STATUS_BAR_STYLE = 22,
    OPEN_YOUTUBE_VIDEO = 23,
    DID_LOG_OUT = 24,
    OPEN_BUILDERS_CLUB = 25,
    ACTION_LOG_IN = 26,
    OPEN_SETTINGS_WEBVIEW = 27,
    DID_LOG_IN = 28,
    OPEN_CAPTCHA_VIEW = 29,
    DID_SIGN_UP = 30,
    LUA_UNAUTHORIZED_LOG_OUT = 31,
    NATIVE_SHARE = 32,
    SDK_SHARE = 33,
    SDK_OPEN_URL = 34,
    NATIVE_EXIT = 35,
    RESTART_LUA_APP = 36,
    IDENTITY_VERIFICATION = 38,
    SCAN_QR_CODE = 39,
    SHOW_FRIEND_QR_CODE = 40,
    DID_SWITCH_ACCOUNT = 42
};


return {
    HomeTab = "HomeTab",
    GamesTab = "GamesTab",
    AvatarExperienceTab = "AvatarExperienceTab",
    ChatTab = "ChatTab"
};


return {
    TenFoot = "TenFoot",
    VR = "VR",
    Unknown = "Unknown"
};


return {
    DeviceOrientationMode = require(script.DeviceOrientationMode),
    DeviceType = require(script.DeviceTypeEnum),
    UiMode = require(script.UiMode),
    LoginStatus = require(script.LoginStatus),
    AppPage = require(script.AppPage),
    SwitchTab = require(script.SwitchTab),
    CentralOverlayType = require(script.CentralOverlayType),
    LayoutConfig = require(script.LayoutConfig),
    NotificationType = require(script.NotificationType),
    OtaPatchName = require(script.OtaPatchName)
};


local l_Signal_0 = require(script.Parent.AppCommonLib).Signal;
return {
    ReloadPage = l_Signal_0.new(),
    ReportMutedError = l_Signal_0.new()
};


return {
    useDeviceType = require(script.useDeviceType),
    useIsLocalUserSoothSayer = require(script.useIsLocalUserSoothSayer),
    useLocalUserId = require(script.useLocalUserId),
    useScreenSize = require(script.useScreenSize),
    useTopBarHeight = require(script.useTopBarHeight),
    useUiModeInfo = require(script.useUiModeInfo),
    useRoactService = require(script.useRoactService),
    useSystemInfo = require(script.useSystemInfo),
    useLocalRobuxBalance = require(script.useLocalRobuxBalance),
    useAnimatedScrollToSelection = require(script.useAnimatedScrollToSelection)
};


local l_Parent_0 = script:FindFirstAncestor("RobloxAppHooks").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.ReactOtter);
local v3 = {
    dampingRatio = 1,
    frequency = 3
};
local function _(v4, v5, v6, v7, v8)
    local v9 = if v6 == Enum.ScrollingDirection.X then v4.CanvasPosition.X + (v5.AbsolutePosition.X - v4.AbsolutePosition.X) else v4.CanvasPosition.Y + (v5.AbsolutePosition.Y - v4.AbsolutePosition.Y);
    if v9 < v8 then
        return 0;
    else
        return (math.max(v9 - v7, 0));
    end;
end;
return function(v11, v12, v13, v14)
    local v15 = v12 or 0;
    local v16 = v13 or 0;
    local v17 = v14 or v3;
    local v18, v19 = v2.useAnimatedBinding(0);
    return v1.useMemo(function()
        return v18:map(function(v20)
            if v11 == Enum.ScrollingDirection.X then
                return (Vector2.new(v20, 0));
            else
                return (Vector2.new(0, v20));
            end;
        end);
    end, {
        v11
    }), (v1.useCallback(function(v21, v22, _, v24)
        if not v22 then
            if not (not v24 or not v24:IsDescendantOf(v21)) then
                local l_v11_0 = v11;
                local l_v15_0 = v15;
                local l_v16_0 = v16;
                local v28 = if l_v11_0 == Enum.ScrollingDirection.X then v21.CanvasPosition.X + (v24.AbsolutePosition.X - v21.AbsolutePosition.X) else v21.CanvasPosition.Y + (v24.AbsolutePosition.Y - v21.AbsolutePosition.Y);
                v19(v2.spring(v28 < l_v16_0 and 0 or math.max(v28 - l_v15_0, 0), v17));
            end;
            return ;
        else
            return ;
        end;
    end, {
        v15,
        v11,
        v16,
        v17
    }));
end;


local l_GuiService_0 = game:GetService("GuiService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Parent_0 = script:FindFirstAncestor("RobloxAppHooks").Parent;
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local l_IsVRAppBuild_0 = require(l_Parent_0.AppCommonLib).IsVRAppBuild;
local v5 = require(l_Parent_0.RobloxAppEnums);
local l_DeviceOrientationMode_0 = v5.DeviceOrientationMode;
local l_DeviceType_0 = v5.DeviceType;
local l_getDeviceType_0 = require(l_Parent_0.AppCommonLib).getDeviceType;
local l_GetFFlagLuaAppUseGetDeviceTypeHelper_0 = require(l_Parent_0.SharedFlags).GetFFlagLuaAppUseGetDeviceTypeHelper;
return function()
    local v11 = l_useSelector_0(function(v10)
        return v10.DeviceOrientation;
    end);
    if not l_GetFFlagLuaAppUseGetDeviceTypeHelper_0() then
        if not l_IsVRAppBuild_0() then
            if not l_GuiService_0:IsTenFootInterface() then
                local l_None_0 = Enum.Platform.None;
                pcall(function()
                    l_None_0 = l_UserInputService_0:GetPlatform();
                end);
                if not (l_None_0 ~= Enum.Platform.Windows and l_None_0 ~= Enum.Platform.OSX) or l_None_0 == Enum.Platform.UWP then
                    return l_DeviceType_0.Desktop;
                else
                    if not (l_None_0 ~= Enum.Platform.IOS) or l_None_0 == Enum.Platform.Android then
                        if v11 == l_DeviceOrientationMode_0.Landscape then
                            return l_DeviceType_0.Tablet;
                        elseif v11 == l_DeviceOrientationMode_0.Portrait then
                            return l_DeviceType_0.Phone;
                        end;
                    end;
                    return l_DeviceType_0.Unknown;
                end;
            else
                return l_DeviceType_0.Console;
            end;
        else
            return l_DeviceType_0.VR;
        end;
    else
        return l_getDeviceType_0(v11);
    end;
end;


local l_useSelector_0 = require(script:FindFirstAncestor("RobloxAppHooks").Parent.RoactUtils).Hooks.RoactRodux.useSelector;
return function()
    return l_useSelector_0(function(v1)
        return v1.IsLocalUserSoothsayer;
    end);
end;


local l_useSelector_0 = require(script:FindFirstAncestor("RobloxAppHooks").Parent.RoactUtils).Hooks.RoactRodux.useSelector;
local v1 = require(script.Parent.useLocalUserId);
return function()
    local v2 = v1();
    return l_useSelector_0(function(v3)
        return v3.UserRobux[v2];
    end);
end;


local l_useSelector_0 = require(script:FindFirstAncestor("RobloxAppHooks").Parent.RoactUtils).Hooks.RoactRodux.useSelector;
return function()
    return l_useSelector_0(function(v1)
        return v1.LocalUserId;
    end);
end;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppHooks").Parent;
local v1 = require(l_Parent_0.React);
local l_RoactServicesContext_0 = require(l_Parent_0.RoactServices).RoactServicesContext;
return function(v3)
    return (v3.get((v1.useContext(l_RoactServicesContext_0))));
end;


local l_useSelector_0 = require(script:FindFirstAncestor("RobloxAppHooks").Parent.RoactUtils).Hooks.RoactRodux.useSelector;
return function()
    return l_useSelector_0(function(v1)
        return v1.ScreenSize;
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("RobloxAppHooks");
local l_AppSystemInfo_0 = require(l_script_FirstAncestor_0.Parent.RoactServiceTags).AppSystemInfo;
local v2 = require(l_script_FirstAncestor_0.useRoactService);
return function()
    return v2(l_AppSystemInfo_0);
end;


local l_useSelector_0 = require(script:FindFirstAncestor("RobloxAppHooks").Parent.RoactUtils).Hooks.RoactRodux.useSelector;
return function()
    return l_useSelector_0(function(v1)
        if v1.TopBar then
            if not v1.TopBar.topBarHeight then
                return 0;
            else
                return v1.TopBar.topBarHeight;
            end;
        else
            return 0;
        end;
    end);
end;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppHooks").Parent;
local v1 = require(l_Parent_0.React);
local l_dependencyArray_0 = require(l_Parent_0.RoactUtils).Hooks.dependencyArray;
local v3 = require(l_Parent_0.RobloxAppEnums);
local l_DeviceType_0 = v3.DeviceType;
local l_UiMode_0 = v3.UiMode;
local v6 = require(script.Parent.useDeviceType);
local v7 = {
    [l_DeviceType_0.Desktop] = l_UiMode_0.Unknown,
    [l_DeviceType_0.Tablet] = l_UiMode_0.Unknown,
    [l_DeviceType_0.Phone] = l_UiMode_0.Unknown,
    [l_DeviceType_0.Console] = l_UiMode_0.TenFoot,
    [l_DeviceType_0.VR] = l_UiMode_0.VR
};
return function()
    local v8 = v6();
    local v9 = v7[v8] or l_UiMode_0.Unknown;
    return (v1.useMemo(function()
        return {
            deviceType = v8,
            uiMode = v9
        };
    end, l_dependencyArray_0(v8, v9)));
end;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppInteractionFeedbackConfig").Parent;
local _ = require(l_Parent_0.InteractionFeedback);
local l_Sounds_0 = require(l_Parent_0.SoundManager).Sounds;
local v3 = {
    duration = math.clamp(game:DefineFastInt("HapticClickEffectDuration", 5), 0, 100) / 100,
    intensity = math.clamp(game:DefineFastInt("HapticClickEffectIntensity", 50), 0, 100) / 100
};
return {
    Default = {
        Press = {
            Sound = l_Sounds_0.AppSelect.Name,
            Haptic = v3
        },
        Hover = {
            Sound = l_Sounds_0.AppHover1.Name,
            Haptic = v3
        }
    },
    PlayExperienceButton = {
        Press = {
            Sound = l_Sounds_0.NotificationHigh.Name,
            Haptic = v3
        }
    },
    MakePurchase = {
        Press = {
            Sound = l_Sounds_0.Purchase.Name,
            Haptic = v3
        }
    }
};


return {
    InteractionFeedbackAppConfig = require(script.InteractionFeedbackAppConfig)
};


local l_Parent_0 = script:FindFirstAncestor("RobloxAppLocales").Parent;
local l_LocalizationContext_0 = require(l_Parent_0.Localization).LocalizationContext;
local l_Signal_0 = require(l_Parent_0.AppCommonLib).Signal;
local l_Locales_0 = script.Parent.Locales;
local function v10(v4)
    local v5 = l_LocalizationContext_0.getRelevantLanguages(v4);
    local v6 = {};
    for _, v8 in ipairs(v5) do
        local l_l_Locales_0_FirstChild_0 = l_Locales_0:FindFirstChild(v8);
        if l_l_Locales_0_FirstChild_0 then
            v6[v8] = require(l_l_Locales_0_FirstChild_0);
        end;
    end;
    return v6;
end;
local v11 = {};
v11.__index = v11;
v11.new = function(v12)
    local v13 = {
        locale = v12,
        changed = l_Signal_0.new(),
        localizationContext = l_LocalizationContext_0.new((v10(v12)))
    };
    setmetatable(v13, v11);
    return v13;
end;
v11.SetLocale = function(v14, v15)
    v14.locale = v15;
    v14.localizationContext:addTranslations((v10(v15)));
    v14.changed:fire();
end;
v11.GetLocale = function(v16)
    return v16.locale;
end;
v11.Format = function(v17, v18, v19)
    if not v18 then
        error("ERROR: NO STRING FOR KEY");
    end;
    return (v17.localizationContext:getString(v17.locale, v18, v19));
end;
return v11;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.React);
local l_useNavigation_0 = require(l_Parent_0.RoactUtils).Hooks.useNavigation;
local l_useRoactService_0 = require(l_Parent_0.RobloxAppHooks).useRoactService;
local l_AppGuiService_0 = require(l_Parent_0.RoactServiceTags).AppGuiService;
local l_NotificationType_0 = require(l_Parent_0.RobloxAppEnums).NotificationType;
local _ = require(l_Parent_0.Navigation);
local function v7(v8)
    v1.useEffect(function()
        if v8.state.routeName ~= nil then
            v8.guiService:BroadcastNotification(v8.state.routeName, l_NotificationType_0.APP_READY);
        end;
    end, {
        v8.state.routeName
    });
    if v8.state.routes ~= nil then
        return v1.createElement(v7, {
            state = v8.state.routes[v8.state.index],
            guiService = v8.guiService
        });
    else
        return nil;
    end;
end;
return function(_)
    return v1.createElement(v7, {
        state = l_useNavigation_0().state,
        guiService = l_useRoactService_0(l_AppGuiService_0)
    });
end;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppNavigation").Parent;
return require(l_Parent_0.React).createContext(require(l_Parent_0.RobloxAppEnums).AppPage.None);


local v0 = {
    ClearAppScreensAction = "ClearAppScreensAction"
};
v0.clearAppScreens = function(v1)
    return {
        type = v0.ClearAppScreensAction,
        routeNames = v1
    };
end;
return v0;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppNavigation").Parent;
local l_StackRouter_0 = require(l_Parent_0.RoactNavigation).StackRouter;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(script.Parent.LuaAppNavigationActions);
return function(v4, v5)
    local v8 = l_StackRouter_0(v4, (v2.Dictionary.join(v5 or {}, {
        getCustomActionCreators = function(_, _)
            return {
                clearAppScreens = v3.clearAppScreens
            };
        end
    })));
    local l_getStateForAction_0 = v8.getStateForAction;
    v8.getStateForAction = function(v10, v11)
        if v10.type == v3.ClearAppScreensAction then
            local v12 = v2.List.toSet(v10.routeNames);
            local v14 = v2.List.filter(v11.routes, function(v13)
                return not v12[v13.routeName];
            end);
            return (v2.Dictionary.join(v11, {
                routes = v14,
                index = #v14
            }));
        else
            return l_getStateForAction_0(v10, v11);
        end;
    end;
    return v8;
end;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppNavigation").Parent;
local v1 = require(l_Parent_0.React);
local l_RobloxStackView_0 = require(l_Parent_0.RoactNavigation).RobloxStackView;
local l_useUiModeInfo_0 = require(l_Parent_0.RobloxAppHooks).useUiModeInfo;
local l_UiMode_0 = require(l_Parent_0.RobloxAppEnums).UiMode;
local l_TenFootUiStackView_0 = require(l_Parent_0.TenFootUiShell).Views.TenFootUiStackView;
local _ = require(l_Parent_0.Navigation);
return function(v7)
    if l_useUiModeInfo_0().uiMode == l_UiMode_0.TenFoot then
        return v1.createElement(l_TenFootUiStackView_0, v7);
    else
        return v1.createElement(l_RobloxStackView_0, v7);
    end;
end;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppNavigation").Parent;
local v1 = require(l_Parent_0.React);
local l_RobloxSwitchView_0 = require(l_Parent_0.RoactNavigation).RobloxSwitchView;
local l_useUiModeInfo_0 = require(l_Parent_0.RobloxAppHooks).useUiModeInfo;
local l_UiMode_0 = require(l_Parent_0.RobloxAppEnums).UiMode;
local l_TenFootUiSwitchView_0 = require(l_Parent_0.TenFootUiShell).Views.TenFootUiSwitchView;
local _ = require(l_Parent_0.Navigation);
return function(v7)
    if l_useUiModeInfo_0().uiMode == l_UiMode_0.TenFoot then
        return v1.createElement(l_TenFootUiSwitchView_0, v7);
    else
        return v1.createElement(l_RobloxSwitchView_0, v7);
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("RobloxAppNavigation");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_createNavigator_0 = require(l_Parent_0.RoactNavigation).createNavigator;
local _ = require(l_Parent_0.Navigation);
local v4 = require(l_script_FirstAncestor_0.LuaAppStackRouter);
local v5 = require(l_script_FirstAncestor_0.Views.AdaptiveStackView);
return function(v6, v7)
    return l_createNavigator_0(v5, v4(v6, v7), v7);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("RobloxAppNavigation");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.RoactNavigation);
local l_createNavigator_0 = v2.createNavigator;
local l_SwitchRouter_0 = v2.SwitchRouter;
local _ = require(l_Parent_0.Navigation);
local v6 = require(l_script_FirstAncestor_0.Views.AdaptiveSwitchView);
return function(v7, v8)
    return l_createNavigator_0(v6, l_SwitchRouter_0(v7, v8), v8);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("RobloxAppNavigation");
local v1 = require(l_script_FirstAncestor_0.createAdaptiveSwitchNavigator);
local v2 = require(l_script_FirstAncestor_0.CurrentTabContext);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_Parent_0.React);
local v5 = require(l_Parent_0.RoactNavigation);
local _ = require(l_Parent_0.Navigation);
return function(v7)
    local v8 = v1(v7, {
        defaultNavigationOptions = {
            keepVisitedScreensMounted = true,
            resetOnBlur = false,
            backBehavior = v5.BackBehavior.InitialRoute
        }
    });
    local v9 = v4.Component:extend("SwitchNavigatorWrapper");
    v9.router = v8.router;
    v9.render = function(v10)
        local l_state_0 = v10.props.navigation.state;
        return v4.createElement(v2.Provider, {
            value = l_state_0.routes[l_state_0.index].routeName
        }, {
            Navigator = v4.createElement(v8, v10.props)
        });
    end;
    return v9;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("RobloxAppNavigation");
local v1 = require(l_script_FirstAncestor_0.createAdaptiveStackNavigator);
local v2 = require(l_script_FirstAncestor_0.createMainSwitchNavigator);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v4 = require(l_Parent_0.RoactNavigation);
local _ = require(l_Parent_0.Navigation);
local v6 = require(l_Parent_0.NavigationRodux);
local v7 = game:DefineFastString("RootNavigatorInitialRouteName", (tostring(require(l_Parent_0.RobloxAppEnums).AppPage.PlatformAccountRouter)));
local function v8()
    return {
        transitionSpec = {
            frequency = 1000000,
            dampingRatio = 1
        }
    };
end;
return function(v9, v10)
    local v11 = {};
    for v12, v13 in v10, nil, nil do
        v11[v13] = v12;
    end;
    local v14 = {};
    local v15 = {};
    for _, v17 in v9, nil, nil do
        if not (v11[next(v17)] ~= nil) then
            table.insert(v15, v17);
        else
            table.insert(v14, v17);
        end;
    end;
    table.sort(v14, function(v18, v19)
        return v11[next(v18)] < v11[next(v19)];
    end);
    table.insert(v15, {
        [v6.Constants.TempRnSwitchNavigatorName] = v2(v14)
    });
    return v1(v15, {
        initialRouteName = v7,
        mode = v4.StackPresentationStyle.Overlay,
        transitionConfig = v8,
        defaultNavigationOptions = {
            absorbInputSelectable = false,
            overlayTransparency = 0.3
        }
    });
end;


return {
    AppReadyHandler = require(script.AppReadyHandler),
    useNavigationProps = require(script.useNavigationProps),
    withNavigationProps = require(script.withNavigationProps),
    createRootNavigator = require(script.createRootNavigator),
    CurrentTabContext = require(script.CurrentTabContext),
    LuaAppStackRouter = require(script.LuaAppStackRouter),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "RobloxAppNavigation",
    testMatch = {
        "**/*.test"
    },
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local _ = require(script:FindFirstAncestor("RobloxAppNavigation").Parent.Navigation);
return nil;


local l_useNavigation_0 = require(script:FindFirstAncestor("RobloxAppNavigation").Parent.RoactUtils).Hooks.useNavigation;
local _ = require(script.Parent.types);
return function(v2)
    local v3 = l_useNavigation_0();
    return v2(v3.getParam("detail"), v3.getParam("extraProps", {}), v3);
end;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppNavigation").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.Cryo);
local v3 = require(script.Parent.useNavigationProps);
local _ = require(script.Parent.types);
return function(v5)
    return function(v6)
        return function(v7)
            return v1.createElement(v6, v2.Dictionary.join(v7, v3(v5)));
        end;
    end;
end;


local v0 = require(script.Parent.SessionType);
return function(v1, v2, v3)
    assert(v1, "sessionManager can't be nil");
    v1:RemoveSessionsWithMetadataKey(v0.Metadata.GamePlay.GamePlaySession);
    v1:SetSession(v0.StructuralIdentifier.Level1, v2, v2);
    v1:SetMetadata(v2, v0.Metadata.GamePlay.GamePlaySession, "True");
    if v3 then
        v1:SetMetadata(v2, v0.Metadata.GamePlay.DeleteOnGameLeave, "True");
    end;
end;


return {
    SessionType = require(script.SessionType),
    SetGamePlaySession = require(script.SetGamePlaySession)
};


local l_Parent_0 = script.Parent.Parent;
return {
    projects = {
        require(l_Parent_0.AppHeaderBar)["jest.config"],
        require(l_Parent_0.AppTabBarRodux)["jest.config"],
        require(l_Parent_0.NavigationRodux)["jest.config"],
        require(l_Parent_0.RobloxAppUpdate)["jest.config"],
        require(l_Parent_0.RobloxAppToastsRodux)["jest.config"],
        game.CoreGui.RobloxGui.Modules.LuaApp.Navigation["jest.config"]
    }
};


local l_HttpService_0 = game:GetService("HttpService");
local v1 = require(script.Parent.getLocalizedToastStringFromHttpError);
local l_Parent_0 = script:FindFirstAncestor("RobloxAppToastsRodux").Parent;
local l_mutedError_0 = require(l_Parent_0.Loggers).mutedError;
local v4 = require(l_Parent_0.ToastRodux);
local l_ToastType_0 = v4.Enums.ToastType;
local l_SetCurrentToastMessage_0 = v4.Actions.SetCurrentToastMessage;
local v7 = require(l_Parent_0.tutils);
local v8 = game:DefineFastFlag("LuaAppMutedSetNetworkingErrorToast", false);
local function v16(v9)
    local l_status_0, l_result_0 = pcall(l_HttpService_0.JSONDecode, l_HttpService_0, v9.Body);
    if l_status_0 then
        local l_errors_0 = l_result_0.errors;
        if not l_errors_0 then
            if v8 then
                l_mutedError_0("No errors given in err.Body, err = " .. v7.toString(v9));
            end;
        else
            for _, v14 in ipairs(l_errors_0) do
                local l_userFacingMessage_0 = v14.userFacingMessage;
                if l_userFacingMessage_0 ~= nil then
                    return l_userFacingMessage_0;
                end;
            end;
        end;
        return nil;
    else
        return nil;
    end;
end;
return function(v17)
    v17 = v17 or {};
    assert(v17, "not nil");
    return function(v18)
        local v19 = v16(v17);
        if not v19 then
            local v20 = v1(v17.HttpError, v17.StatusCode);
            if v20 ~= nil then
                v18:dispatch(l_SetCurrentToastMessage_0({
                    toastType = l_ToastType_0.NetworkingError,
                    toastMessage = v20
                }));
            end;
            return ;
        else
            v18:dispatch(l_SetCurrentToastMessage_0({
                toastType = l_ToastType_0.InformationMessage,
                toastMessage = v19,
                isLocalized = true
            }));
            return ;
        end;
    end;
end;


local l_StatusCodes_0 = require(script:FindFirstAncestor("RobloxAppToastsRodux").Parent.Http).StatusCodes;
local v1 = {
    [l_StatusCodes_0.BAD_REQUEST] = "Feature.Toast.NetworkingError.SomethingIsWrong",
    [l_StatusCodes_0.UNAUTHORIZED] = "Feature.Toast.NetworkingError.Unauthorized",
    [l_StatusCodes_0.FORBIDDEN] = "Feature.Toast.NetworkingError.Forbidden",
    [l_StatusCodes_0.NOT_FOUND] = "Feature.Toast.NetworkingError.NotFound",
    [l_StatusCodes_0.REQUEST_TIMEOUT] = "Feature.Toast.NetworkingError.Timeout",
    [l_StatusCodes_0.TOO_MANY_REQUESTS] = "Feature.Toast.NetworkingError.TooManyRequests",
    [l_StatusCodes_0.INTERNAL_SERVER_ERROR] = "Feature.Toast.NetworkingError.SomethingIsWrong",
    [l_StatusCodes_0.NOT_IMPLEMENTED] = "Feature.Toast.NetworkingError.SomethingIsWrong",
    [l_StatusCodes_0.BAD_GATEWAY] = "Feature.Toast.NetworkingError.SomethingIsWrong",
    [l_StatusCodes_0.SERVICE_UNAVAILABLE] = "Feature.Toast.NetworkingError.ServiceUnavailable",
    [l_StatusCodes_0.GATEWAY_TIMEOUT] = "Feature.Toast.NetworkingError.Timeout"
};
return function(v2, v3)
    if not ((v2 ~= Enum.HttpError.DnsResolve and v2 ~= Enum.HttpError.ConnectFail) and v2 ~= Enum.HttpError.NetFail) or v2 == Enum.HttpError.SslConnectFail then
        return "Feature.Toast.NetworkingError.UnableToConnect";
    elseif v2 == Enum.HttpError.TimedOut then
        return "Feature.Toast.NetworkingError.Timeout";
    elseif v2 == Enum.HttpError.Aborted then
        return nil;
    elseif (v2 == Enum.HttpError.OK and v3 ~= nil) and v1[v3] ~= nil then
        return v1[v3];
    else
        return "Feature.Toast.NetworkingError.SomethingIsWrong";
    end;
end;


return {
    SetNetworkingErrorToast = require(script.SetNetworkingErrorToast)
};


return {
    Thunks = require(script.Thunks),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "RobloxAppToastsRodux",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


return require(script:FindFirstAncestor("RobloxAppUpdate").Parent.Rodux).makeActionCreator(script.Name, function(v0, _)
    return {
        status = v0
    };
end);


local v0 = require(script:FindFirstAncestor("RobloxAppUpdate").Parent.Promise);
local v1 = {};
v1.__index = v1;
v1.new = function(v2)
    local v3 = {
        _appUpdate = v2
    };
    setmetatable(v3, v1);
    return v3;
end;
v1.checkForUpdate = function(v4)
    return v0.new(function(v5, _)
        local l_status_0, l_result_0 = pcall(function()
            v4._appUpdate:CheckForUpdate(function(v7)
                v5({
                    appUpdateStatus = v7
                });
            end);
        end);
        if not l_status_0 then
            v5({
                errorMessage = l_result_0
            });
        end;
    end);
end;
v1.performManagedUpdate = function(v10)
    v10._appUpdate:PerformManagedUpdate();
end;
v1.canPerformBinaryUpdate = function(v11)
    return v11._appUpdate:CanPerformBinaryUpdate();
end;
return v1;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("RobloxAppUpdate");
local v1 = require(l_script_FirstAncestor_0.Actions.SetAppUpdateStatus);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(l_Parent_0.Rodux);
local v4 = require(l_Parent_0.Cryo);
return v3.createReducer({
    status = Enum.AppUpdateStatus.Unknown
}, {
    [v1.name] = function(v5, v6)
        return v4.Dictionary.join(v5, {
            status = v6.status
        });
    end
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("RobloxAppUpdate");
local v1 = require(l_script_FirstAncestor_0.Actions.SetAppUpdateStatus);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(l_Parent_0.Dash);
local l_joinGamePlayButton_0 = require(l_Parent_0.ExperienceAnalytics).Points.joinGamePlayButton;
local l_SetNetworkingErrorToast_0 = require(l_Parent_0.RobloxAppToastsRodux).Thunks.SetNetworkingErrorToast;
local v6 = require(l_script_FirstAncestor_0.Thunks.OpenCentralOverlayForUpdateRequiredPrompt);
local l_GetFFlagMoveUpdateCheckToUniversalApp_0 = require(l_Parent_0.SharedFlags).GetFFlagMoveUpdateCheckToUniversalApp;
return function(v8, v9, v10, v11, v12)
    return function(v13)
        if l_GetFFlagMoveUpdateCheckToUniversalApp_0() and v8 == nil then
            warn("appUpdateImpl is nil");
            if v11 then
                v11();
            end;
            return ;
        elseif v9 and not v8:canPerformBinaryUpdate() then
            if v11 then
                v11();
            end;
            return ;
        else
            v8:checkForUpdate():andThen(function(v14)
                local l_appUpdateStatus_0 = v14.appUpdateStatus;
                local v16 = {
                    appUpdateStatus = l_appUpdateStatus_0
                };
                if v12 then
                    v16 = v3.join(v16, v12);
                end;
                l_joinGamePlayButton_0(v10.InfluxDb, "checkForUpdate", v16);
                if not v14.errorMessage then
                    if l_appUpdateStatus_0 == Enum.AppUpdateStatus.Available then
                        if not l_GetFFlagMoveUpdateCheckToUniversalApp_0() then
                            v13:dispatch(v1(l_appUpdateStatus_0));
                            return ;
                        else
                            v13:dispatch(v6(v8:canPerformBinaryUpdate()));
                            return ;
                        end;
                    else
                        if v11 then
                            v11();
                        end;
                        return ;
                    end;
                else
                    warn(v14.errorMessage);
                    v13:dispatch(l_SetNetworkingErrorToast_0({
                        HttpError = Enum.HttpError.OK
                    }));
                    return ;
                end;
            end);
            return ;
        end;
    end;
end;


local l_Parent_0 = script:FindFirstAncestor("RobloxAppUpdate").Parent;
local l_SetCentralOverlay_0 = require(l_Parent_0.CentralOverlay).Actions.SetCentralOverlay;
local l_CentralOverlayType_0 = require(l_Parent_0.RobloxAppEnums).CentralOverlayType;
return function(v3)
    return function(v4)
        v4:dispatch(l_SetCentralOverlay_0(l_CentralOverlayType_0.UpdateRequiredPrompt, {
            canPerformBinaryUpdate = v3
        }, {
            DisableBackButtonClose = true
        }));
    end;
end;


return {
    AppUpdateServiceWrapper = require(script.AppUpdateServiceWrapper),
    Reducers = require(script.Reducers),
    Thunks = require(script.Thunks),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "RobloxAppUpdate",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


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


local v0 = require(script.SMSProtocol);
local _ = require(script.SMSProtocolTypes);
return {
    SMSProtocol = v0
};


local l_ReplicatedStorage_0 = game:GetService("ReplicatedStorage");
local l_Object_0 = require(script:FindFirstAncestor("SceneManagement").Parent.LuauPolyfill).Object;
local v2 = {
    FieldOfView = 50,
    Position = Vector3.new(0, 20, 0)
};
local v3 = {
    PositionOffset = Vector3.zero,
    RotationOffset = Vector3.zero,
    DistanceToCamera = 60
};
local function _()
    local l_CurrentCamera_0 = workspace.CurrentCamera;
    if l_CurrentCamera_0 == nil then
        l_CurrentCamera_0 = Instance.new("Camera");
        l_CurrentCamera_0.Parent = workspace;
    end;
    return l_CurrentCamera_0;
end;
local function v9(v6, v7)
    local v8 = l_Object_0.assign({}, v2, v7 or {});
    v6.FieldOfView = v8.FieldOfView;
    v6.CFrame = CFrame.new(v8.Position);
    v6.CameraType = Enum.CameraType.Fixed;
end;
local function v11(v10)
    return (workspace:FindFirstChild(v10));
end;
local function v18(v12, v13, v14)
    local v15 = l_Object_0.assign({}, v3, v14);
    local l_PositionOffset_0 = v15.PositionOffset;
    local l_RotationOffset_0 = v15.RotationOffset;
    v12:PivotTo(CFrame.new((v13.CFrame.Position + v15.DistanceToCamera * v13.CFrame.LookVector) + l_PositionOffset_0) * CFrame.Angles(math.rad(l_RotationOffset_0.X), math.rad(l_RotationOffset_0.Y), (math.rad(l_RotationOffset_0.Z))));
end;
return {
    initialize = function(v19)
        local l_CurrentCamera_1 = workspace.CurrentCamera;
        if l_CurrentCamera_1 == nil then
            l_CurrentCamera_1 = Instance.new("Camera");
            l_CurrentCamera_1.Parent = workspace;
        end;
        local l_l_CurrentCamera_1_0 = l_CurrentCamera_1;
        v9(l_l_CurrentCamera_1_0, v19.CameraConfigs);
        l_CurrentCamera_1 = v19.BackgroundConfigs;
        local l_BackgroundModelName_0 = l_CurrentCamera_1.BackgroundModelName;
        assert(l_ReplicatedStorage_0:FindFirstChild(l_BackgroundModelName_0) ~= nil, string.format("Background Model %s is missing in ReplicatedStorage.", l_BackgroundModelName_0));
        local v23 = l_ReplicatedStorage_0:WaitForChild(l_BackgroundModelName_0);
        if v23 then
            v23.Parent = workspace;
        end;
        v18(v23, l_l_CurrentCamera_1_0, l_CurrentCamera_1);
        return v23, l_l_CurrentCamera_1_0;
    end,
    getBackgroundInstance = v11,
    updateXPosition = function(v24, v25)
        local l_workspace_FirstChild_0 = workspace:FindFirstChild(v24);
        if l_workspace_FirstChild_0 then
            local l_l_workspace_FirstChild_0_Pivot_0 = l_workspace_FirstChild_0:GetPivot();
            local l_Position_0 = l_l_workspace_FirstChild_0_Pivot_0.Position;
            l_workspace_FirstChild_0:PivotTo(CFrame.new((Vector3.new(v25, l_Position_0.Y, l_Position_0.Z))) * (l_l_workspace_FirstChild_0_Pivot_0 - l_Position_0));
        end;
    end,
    updateZPosition = function(v29, v30)
        local l_workspace_FirstChild_1 = workspace:FindFirstChild(v29);
        if l_workspace_FirstChild_1 then
            local l_l_workspace_FirstChild_1_Pivot_0 = l_workspace_FirstChild_1:GetPivot();
            local l_Position_1 = l_l_workspace_FirstChild_1_Pivot_0.Position;
            l_workspace_FirstChild_1:PivotTo(CFrame.new((Vector3.new(l_Position_1.X, l_Position_1.Y, v30))) * (l_l_workspace_FirstChild_1_Pivot_0 - l_Position_1));
        end;
    end
};


local l_Lighting_0 = game:GetService("Lighting");
local l_Object_0 = require(script:FindFirstAncestor("SceneManagement").Parent.LuauPolyfill).Object;
local v2 = {
    LightingConfig = {
        Brightness = 1,
        ColorShift_Bottom = Color3.fromRGB(232, 255, 146),
        ColorShift_Top = Color3.fromRGB(85, 136, 167),
        OutdoorAmbient = Color3.fromRGB(0, 0, 0),
        Ambient = Color3.fromRGB(170, 170, 170),
        ClockTime = 12,
        GeographicLatitude = 41.733,
        TimeOfDay = "12:00:00",
        FogColor = Color3.fromRGB(45, 46, 49),
        FogEnd = 92,
        FogStart = 20
    },
    SkyConfig = {
        CelestialBodiesShown = false,
        StarCount = 0,
        SkyboxAssetLocation = "rbxasset://textures/ui/AvatarExperience/AvatarExperienceSkyboxDarkTheme.png"
    },
    BloomEnabled = false,
    BloomConfig = {
        Intensity = 0.3,
        Size = 12,
        Threshold = 0.95
    },
    ColorCorrectionEnabled = false,
    ColorCorrectionConfig = {
        Brightness = 0,
        Contrast = 0,
        Saturation = 0
    }
};
local function v5(v3)
    local v4 = l_Object_0.assign({}, v2.LightingConfig, v3 or {});
    l_Lighting_0.Brightness = v4.Brightness;
    l_Lighting_0.ColorShift_Bottom = v4.ColorShift_Bottom;
    l_Lighting_0.ColorShift_Top = v4.ColorShift_Top;
    l_Lighting_0.OutdoorAmbient = v4.OutdoorAmbient;
    l_Lighting_0.Ambient = v4.Ambient;
    l_Lighting_0.ClockTime = v4.ClockTime;
    l_Lighting_0.GeographicLatitude = v4.GeographicLatitude;
    l_Lighting_0.TimeOfDay = v4.TimeOfDay;
    l_Lighting_0.FogColor = v4.FogColor;
    l_Lighting_0.FogEnd = v4.FogEnd;
    l_Lighting_0.FogStart = v4.FogStart;
end;
local function _()
    local l_Sky_0 = l_Lighting_0:FindFirstChild("Sky");
    if l_Sky_0 == nil then
        l_Sky_0 = Instance.new("Sky");
        l_Sky_0.Parent = l_Lighting_0;
    end;
    return l_Sky_0;
end;
local function v11(v8, v9)
    local v10 = l_Object_0.assign({}, v2.SkyConfig, v9 or {});
    v8.CelestialBodiesShown = v10.CelestialBodiesShown;
    v8.StarCount = v10.StarCount;
    v8.SkyboxBk = v10.SkyboxAssetLocation;
    v8.SkyboxDn = v10.SkyboxAssetLocation;
    v8.SkyboxFt = v10.SkyboxAssetLocation;
    v8.SkyboxLf = v10.SkyboxAssetLocation;
    v8.SkyboxRt = v10.SkyboxAssetLocation;
    v8.SkyboxUp = v10.SkyboxAssetLocation;
end;
local function _()
    return (l_Lighting_0:FindFirstChild("Bloom"));
end;
local function _()
    local l_Bloom_0 = l_Lighting_0:FindFirstChild("Bloom");
    if l_Bloom_0 == nil then
        l_Bloom_0 = Instance.new("BloomEffect");
        l_Bloom_0.Parent = l_Lighting_0;
    end;
    return l_Bloom_0;
end;
local function v18(v15, v16)
    local v17 = l_Object_0.assign({}, v2.BloomConfig, v16 or {});
    v15.Enabled = true;
    v15.Intensity = v17.Intensity;
    v15.Size = v17.Size;
    v15.Threshold = v17.Threshold;
end;
local function _()
    return (l_Lighting_0:FindFirstChild("ColorCorrection"));
end;
local function _()
    local l_ColorCorrection_0 = l_Lighting_0:FindFirstChild("ColorCorrection");
    if l_ColorCorrection_0 == nil then
        l_ColorCorrection_0 = Instance.new("ColorCorrectionEffect");
        l_ColorCorrection_0.Parent = l_Lighting_0;
    end;
    return l_ColorCorrection_0;
end;
local function v25(v22, v23)
    local v24 = l_Object_0.assign({}, v2.ColorCorrectionConfig, v23 or {});
    v22.Enabled = true;
    v22.Brightness = v24.Brightness;
    v22.Contrast = v24.Contrast;
    v22.Saturation = v24.Saturation;
end;
return {
    configure = function(v26)
        local v27 = (v2.BloomEnabled or v26 and v26.BloomEnabled) or false;
        local v28 = (v2.ColorCorrectionEnabled or v26 and v26.ColorCorrectionEnabled) or false;
        local v29 = if not v26 then nil else v26.LightingConfig;
        local v30 = if not v26 then nil else v26.SkyConfig;
        local v31 = if not v26 then nil else v26.BloomConfig;
        local v32 = if not v26 then nil else v26.ColorCorrectionConfig;
        v5(v29);
        local l_Sky_1 = l_Lighting_0:FindFirstChild("Sky");
        if l_Sky_1 == nil then
            l_Sky_1 = Instance.new("Sky");
            l_Sky_1.Parent = l_Lighting_0;
        end;
        v11(l_Sky_1, v30);
        if not v27 then
            l_Sky_1 = l_Lighting_0:FindFirstChild("Bloom");
            if l_Sky_1 ~= nil then
                l_Sky_1.Enabled = false;
            end;
        else
            local l_Bloom_1 = l_Lighting_0:FindFirstChild("Bloom");
            if l_Bloom_1 == nil then
                l_Bloom_1 = Instance.new("BloomEffect");
                l_Bloom_1.Parent = l_Lighting_0;
            end;
            v18(l_Bloom_1, v31);
        end;
        if not v28 then
            l_Sky_1 = l_Lighting_0:FindFirstChild("ColorCorrection");
            if l_Sky_1 ~= nil then
                l_Sky_1.Enabled = false;
            end;
            return ;
        else
            local l_ColorCorrection_1 = l_Lighting_0:FindFirstChild("ColorCorrection");
            if l_ColorCorrection_1 == nil then
                l_ColorCorrection_1 = Instance.new("ColorCorrectionEffect");
                l_ColorCorrection_1.Parent = l_Lighting_0;
            end;
            v25(l_ColorCorrection_1, v32);
            return ;
        end;
    end
};


local l_Parent_0 = script:FindFirstAncestor("SceneManagement").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.ReactRoblox);
local l_CoreGui_0 = game:GetService("CoreGui");
local l_Workspace_0 = game:GetService("Workspace");
local v5 = v1.createContext(nil);
return function(v6)
    local v7 = v1.useRef(nil);
    local v8 = v1.useRef(nil);
    local v9 = v1.useRef(nil);
    local v10 = v1.useContext(v5);
    local v11 = v10 == nil;
    return v1.createElement(v5.Provider, {
        value = v9
    }, {
        AdorneePortal = v2.createPortal({
            Adornee = v1.createElement("Part", {
                Name = ("%*_Part"):format(v6.name),
                ref = v7,
                Transparency = 1,
                Size = v6.adorneeSize,
                CFrame = if not v11 then nil else v6.adorneeCFrame,
                CanCollide = false,
                CanTouch = false,
                Anchored = v11
            }, {
                ParentAttachment = if not v11 then v1.createElement(v1.Fragment, nil, {
                    SelfAttachment = v1.createElement("Attachment", {
                        Name = ("%*_SelfAttachment"):format(v6.name),
                        CFrame = v6.adorneeCFrame,
                        ref = v8
                    }),
                    ParentConstraint = v1.createElement("RigidConstraint", {
                        Name = ("%*_ParentConstraint"):format(v6.name),
                        Enabled = true,
                        Attachment0 = v10,
                        Attachment1 = v8
                    })
                }) else nil,
                ChildrenAttachment = v1.createElement("Attachment", {
                    Name = ("%*_ChildrenAttachment"):format(v6.name),
                    CFrame = CFrame.identity,
                    ref = v9
                })
            })
        }, v6.adorneeParent or l_Workspace_0),
        SurfaceGuiPortal = v2.createPortal({
            SurfaceGui = v1.createElement("SurfaceGui", {
                Name = ("%*_SurfaceGui"):format(v6.name),
                Adornee = v7,
                Active = true,
                Enabled = v6.isVisible,
                CanvasSize = v6.canvasSize,
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                AlwaysOnTop = true,
                LightInfluence = 0
            }, v6.children)
        }, v6.surfaceGuiParent or l_CoreGui_0)
    });
end;


local v0 = require(script:FindFirstAncestor("SceneManagement").Parent.React);
getCameraFacingCFrame = function(v1, v2)
    return CFrame.lookAt(v2.Position + v1 * v2.LookVector, v2.Position, v2.UpVector);
end;
getDimensionsToFillViewPort = function(v3, v4)
    local v5 = if v4.ViewportSize.Y > 0 then v4.ViewportSize.X / v4.ViewportSize.Y else 0;
    local v6 = (2 * v3) * math.tan((math.rad(v4.FieldOfView / 2)));
    return Vector2.new(v6 * v5, v6);
end;
return function(v7)
    local v8, v9 = v0.useState(workspace.CurrentCamera);
    local v10, v11 = v0.useBinding(Vector2.new());
    local v12, v13 = v0.useBinding(CFrame.new());
    local function _(v14)
        v11(getDimensionsToFillViewPort(v7, v14));
        v13(getCameraFacingCFrame(v7, v14.CFrame));
    end;
    local function v21(v16)
        local v17 = {};
        for _, v19 in {
            "CFrame",
            "ViewportSize",
            "FieldOfView"
        }, nil, nil do
            table.insert(v17, v16:GetPropertyChangedSignal(v19):Connect(function()
                local l_v16_0 = v16;
                v11(getDimensionsToFillViewPort(v7, l_v16_0));
                v13(getCameraFacingCFrame(v7, l_v16_0.CFrame));
            end));
        end;
        return v17;
    end;
    v0.useEffect(function()
        local v22 = workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function()
            v9(workspace.CurrentCamera);
        end);
        return function()
            v22:Disconnect();
        end;
    end, {});
    v0.useEffect(function()
        local v23 = nil;
        if v8 then
            v23 = v21(v8);
            local l_v8_0 = v8;
            v11(getDimensionsToFillViewPort(v7, l_v8_0));
            v13(getCameraFacingCFrame(v7, l_v8_0.CFrame));
        end;
        return function()
            if v23 then
                for _, v26 in v23, nil, nil do
                    v26:Disconnect();
                end;
            end;
        end;
    end, {
        v8
    });
    return v0.useMemo(function()
        return {
            viewportFillDimensions = v10,
            cFrame = v12
        };
    end, {});
end;


return {
    ["jest.config"] = script["jest.config"],
    SurfaceGuiWithAdornee_new = require(script.SurfaceGuiWithAdornee_new),
    Lighting = require(script.Lighting),
    BackgroundScene = require(script.BackgroundScene),
    useCameraFacingGeometry = require(script.hooks.useCameraFacingGeometry)
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "SceneManagement",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


return require(script.Parent.Parent.Parent.Rodux).makeActionCreator(script.Name, function()
    return {};
end);


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Parent.Rodux);
local _ = require(l_Parent_0.Types);
return v1.makeActionCreator(script.Name, function(v3, v4)
    return {
        captures = v3,
        selectedCapture = v4
    };
end);


return require(script.Parent.Parent.Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        index = v0
    };
end);


return require(script.Parent.Parent.Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        promptId = v0
    };
end);


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Parent.Rodux);
local _ = require(l_Parent_0.Enums.PromptType);
local _ = require(l_Parent_0.Types);
return v1.makeActionCreator(script.Name, function(v4, v5, v6)
    return {
        promptData = v6,
        promptId = v4,
        promptType = v5
    };
end);


return require(script.Parent.Parent.Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        screenSize = v0
    };
end);


return require(script.Parent.Parent.Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        serverType = v0
    };
end);


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Parent.Rodux);
local _ = require(l_Parent_0.Enums.ShotsToastType);
local _ = require(l_Parent_0.Types);
return v1.makeActionCreator(script.Name, function(v4, v5)
    return {
        toastType = v4,
        toastConfig = v5
    };
end);


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Parent.Rodux);
local _ = require(l_Parent_0.Types);
return v1.makeActionCreator(script.Name, function(v3)
    return {
        selectedCaptures = v3
    };
end);


return {
    CapturesRetrieved = require(script.CapturesRetrieved),
    CarouselClosed = require(script.CarouselClosed),
    CarouselOpened = require(script.CarouselOpened),
    DeleteWarningModalClosed = require(script.DeleteWarningModalClosed),
    DeleteWarningModalOpened = require(script.DeleteWarningModalOpened),
    MenuClosed = require(script.MenuClosed),
    MenuOpened = require(script.MenuOpened),
    ScreenSizeChanged = require(script.ScreenSizeChanged),
    ShotsActivated = require(script.ShotsActivated),
    ShotsDeactivated = require(script.ShotsDeactivated),
    ToastDismissed = require(script.ToastDismissed),
    ToastTriggered = require(script.ToastTriggered),
    ToastVanished = require(script.ToastVanished)
};


local l_Parent_0 = script.Parent.Parent.Parent;
local l_EventIngestService_0 = game:GetService("EventIngestService");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local v3 = require(l_Parent_0.Analytics);
local v4 = v3.Analytics.new(l_RbxAnalyticsService_0);
local l_getPlatformTarget_0 = v3.getPlatformTarget;
return {
    Diag = v4.Diag,
    EventStream = {
        setRBXEventStream = function(_, v7, v8, v9)
            l_EventIngestService_0:SetRBXEventStream(l_getPlatformTarget_0(), v7, v8, v9 or {});
        end
    }
};


local l_Parent_0 = script.Parent.Parent;
local l_Players_0 = game:GetService("Players");
return (require(l_Parent_0.Analytics.setupFireEvent)({
    analytics = require(l_Parent_0.Analytics.AnalyticsService),
    infoForAllEvents = {
        isUnder13 = if not l_Players_0.LocalPlayer then nil else l_Players_0.LocalPlayer:GetUnder13(),
        pid = tostring(game.PlaceId),
        source = require(l_Parent_0.Constants).AnalyticsSource,
        uid = require(l_Parent_0.Utils.getLocalUserId)(l_Players_0)
    }
}));


return {
    EventNames = require(script.EventNames),
    setupFireEvent = require(script.setupFireEvent),
    useAnalytics = require(script.useAnalytics)
};


local v0 = require(script.Parent.Parent.Parent.SocialLuaAnalytics);
local l_fireDiagCounter_0 = v0.Analytics.FireEvent.fireDiagCounter;
local l_fireEventStream_0 = v0.Analytics.FireEvent.fireEventStream;
local v3 = require(script.Parent.DiagActionList);
local _ = require(script.Parent.EventNames);
local v5 = require(script.Parent.EventStreamActionList);
return function(v6)
    local v7 = l_fireEventStream_0({
        eventStreamImpl = v6.analytics.EventStream,
        eventList = v5,
        infoForAllEvents = v6.infoForAllEvents
    });
    local v8 = l_fireDiagCounter_0({
        diagImpl = v6.analytics.Diag,
        eventList = v3
    });
    return function(v9, v10)
        if v3[v9] then
            v8(v9);
        end;
        return v7(v9, v10);
    end;
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Parent.React);
local v2 = require(l_Parent_0.Context.ShotsContext);
return function()
    return {
        fireEvent = v1.useContext(v2).fireAnalyticsEvent
    };
end;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_AppStorageService_0 = game:GetService("AppStorageService");
local l_CaptureService_0 = game:GetService("CaptureService");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_NotificationService_0 = game:GetService("NotificationService");
local l_Players_0 = game:GetService("Players");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_StarterGui_0 = game:GetService("StarterGui");
local v9 = require(l_Parent_1.AppCommonLib);
local v10 = require(l_Parent_1.Dash);
local l_Localization_0 = require(l_Parent_1.RobloxAppLocales).Localization;
local l_LocalizationProvider_0 = require(l_Parent_1.Localization).LocalizationProvider;
local v13 = require(l_Parent_1.React);
local v14 = require(l_Parent_1.Roact);
local v15 = require(l_Parent_1.RoactRodux);
local v16 = require(l_Parent_1.Rodux);
local v17 = require(l_Parent_1.Style);
local l_Signal_0 = v9.Signal;
local l_StyleProviderWithDefaultTheme_0 = v17.StyleProviderWithDefaultTheme;
local v20 = game:DefineFastFlag("CapturesFixCoreGuiTypeHandling", false);
local v21 = require(l_Parent_0.Flags.FFlagCapturesFixPromptShareDuplicateToast);
local v22 = require(l_Parent_0.Flags.FFlagCapturesManagerGuacPolicy);
local v23 = require(l_Parent_0.Flags.FFlagCapturesRemoveOldMenuTheme);
local v24 = require(l_Parent_0.Flags.FFlagCaptureStorageBulkManagementEnabled);
local l_GetFFlagEnableScreenshotUtility_0 = require(l_Parent_1.SharedFlags).GetFFlagEnableScreenshotUtility;
local v26 = require(l_Parent_0.Analytics.AnalyticsService);
local v27 = require(l_Parent_0.Components.CaptureManagerScreen);
local v28 = require(l_Parent_0.Components.CaptureOverlay);
local v29 = require(l_Parent_0.Actions.CapturesCoreGuiDisabled);
local v30 = require(l_Parent_0.Actions.CapturesCoreGuiEnabled);
local v31 = require(l_Parent_0.Components.CaptureServicePrompts);
local v32 = require(l_Parent_0.Components.CarouselScreen);
local v33 = require(l_Parent_0.Constants);
local v34 = require(l_Parent_0.Utils.createShutterSound);
local v35 = require(l_Parent_0.Analytics.EventNames);
local v36 = require(l_Parent_0.Utils.getLocalUserId);
local v37 = require(l_Parent_0.Utils.getUserIdsFromString);
local v38 = require(l_Parent_0.installReducer);
local v39 = require(l_Parent_0.Actions.MenuClosed);
local v40 = require(l_Parent_0.Actions.MenuOpened);
local v41 = require(l_Parent_0.App.Networking);
local v42 = require(l_Parent_0.Utils.onViewportSizeChanged);
local v43 = require(l_Parent_0.Thunks.RetrieveCaptures);
local v44 = require(l_Parent_0.App.ScreenshotsPolicy);
local v45 = require(l_Parent_0.installReducer.ScreenSize);
local v46 = require(l_Parent_0.Actions.ScreenSizeChanged);
local v47 = require(l_Parent_0.installReducer.ServerType);
local v48 = require(l_Parent_0.Actions.ServerTypeDetected);
local v49 = require(l_Parent_0.Analytics.setupFireEvent);
local v50 = require(l_Parent_0.Actions.ShotsActivated);
local v51 = require(l_Parent_0.Context.ShotsContext);
local v52 = require(l_Parent_0.Components.ShotsCoreUI);
local v53 = require(l_Parent_0.Actions.ShotsDeactivated);
local v54 = require(l_Parent_0.Components.ShotsPage);
local v55 = require(l_Parent_0.Enums.ShotsToastType);
local v56 = require(l_Parent_0.Thunks.TakeCapture);
local v57 = require(l_Parent_0.Actions.ToastTriggered);
local v58 = require(l_Parent_0.Enums.TriggerSourceType);
local _ = require(l_Parent_0.Types);
return {
    createApp = function(v60)
        local v61 = {};
        local v62 = v10.join({
            AnalyticsService = v26,
            AppStorageService = l_AppStorageService_0,
            CaptureService = l_CaptureService_0,
            LocalizationService = l_LocalizationService_0,
            NotificationService = l_NotificationService_0,
            Players = l_Players_0,
            RobloxReplicatedStorage = l_RobloxReplicatedStorage_0,
            StarterGui = l_StarterGui_0
        }, v60);
        local v63 = v49({
            analytics = v62.AnalyticsService,
            infoForAllEvents = {
                isUnder13 = if not v62.Players.LocalPlayer then nil else v62.Players.LocalPlayer:GetUnder13(),
                pid = tostring(game.PlaceId),
                source = v33.AnalyticsSource,
                uid = v36(v62.Players)
            }
        });
        v61._store = v16.Store.new(v16.combineReducers({
            [v33.RoduxKey] = v38(),
            Games = v41.RoduxGames.installReducer(),
            NetworkStatus = v41.RoduxNetworking.installReducer(),
            ScreenSize = v45,
            ServerType = v47,
            ShareLinks = v41.RoduxShareLinks.installReducer()
        }), {}, {
            v16.thunkMiddleware
        });
        v61._store:dispatch(v43());
        local function v65()
            if v61._store:getState()[v33.RoduxKey].IsOverlayFlashActive then
                local v64 = tick();
                while v61._store:getState()[v33.RoduxKey].IsOverlayFlashActive and tick() - v64 <= 1 do
                    task.wait();
                end;
                return ;
            else
                return ;
            end;
        end;
        local v66 = if not game:GetEngineFeature("InternalCaptureSavedEnabled") then v62.CaptureService.CaptureSaved else v62.CaptureService.CaptureSavedInternal;
        if not v21 then
            v66:Connect(function(v67)
                v61._store:dispatch(v43());
                v65();
                local v68 = v44.PolicyImplementation.read();
                if not (not not v68 and v44.Mapper(v68).enableShareCaptureCTA()) then
                    v61._store:dispatch(v57(v55.ViewCapture));
                else
                    v61._store:dispatch(v57(v55.ShotsCaptureTaken, {
                        captureInfo = v67
                    }));
                end;
                v63(v35.CapturesShareToastViewed);
            end);
        else
            v66:Connect(function(v69, v70)
                v61._store:dispatch(v43());
                v65();
                local v71 = v44.PolicyImplementation.read();
                local v72 = not not v71 and v44.Mapper(v71).enableShareCaptureCTA();
                if v70 == v58.PromptedShare then
                    return ;
                else
                    if not v72 then
                        v61._store:dispatch(v57(v55.ViewCapture));
                    else
                        v61._store:dispatch(v57(v55.ShotsCaptureTaken, {
                            captureInfo = v69
                        }));
                    end;
                    v63(v35.CapturesShareToastViewed);
                    return ;
                end;
            end);
        end;
        v62.AppStorageService:WhenLoaded(function()
            local l_status_0, l_result_0 = pcall(function()
                return v62.AppStorageService:GetItem(v33.ScreenshotsActiveLocalStorageKey);
            end);
            if l_status_0 and l_result_0 ~= "" then
                if not v37(l_result_0)[v36(v62.Players) or ""] then
                    v61._store:dispatch(v53());
                else
                    v61._store:dispatch(v50());
                    return ;
                end;
            end;
        end);
        task.spawn(function()
            local l_status_1, l_result_1 = pcall(function()
                return v62.RobloxReplicatedStorage:WaitForChild("GetServerType", math.huge):InvokeServer();
            end);
            if l_status_1 then
                v61._store:dispatch(v48(l_result_1));
            end;
        end);
        v61.closeMenu = function()
            v61._store:dispatch(v39());
        end;
        v61.openMenu = function()
            v61._store:dispatch(v40());
        end;
        v61.takeCapture = function()
            if l_GetFFlagEnableScreenshotUtility_0() then
                v61._store:dispatch(v56());
            end;
        end;
        v61.createShutterSound = not l_GetFFlagEnableScreenshotUtility_0() and function()
        end or v34;
        if not v20 then
            if not v62.StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Captures) then
                v61._store:dispatch(v29());
            else
                v61._store:dispatch(v30());
            end;
        end;
        v62.StarterGui.CoreGuiChangedSignal:Connect(function(v77, v78)
            local v79;
            if not v20 then
                v79 = v77 == Enum.CoreGuiType.Captures;
            else
                v79 = true;
                if v77 ~= Enum.CoreGuiType.All then
                    v79 = v77 == Enum.CoreGuiType.Captures;
                end;
            end;
            if v79 then
                if not v78 then
                    v61._store:dispatch(v29());
                    return ;
                else
                    v61._store:dispatch(v30());
                    return ;
                end;
            else
                return ;
            end;
        end);
        if v20 then
            if not v62.StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Captures) then
                v61._store:dispatch(v29());
            else
                v61._store:dispatch(v30());
            end;
        end;
        v61.onIsActiveChanged = l_Signal_0.new();
        v61.getIsActive = function()
            return v61._store:getState()[v33.RoduxKey].IsActive or false;
        end;
        v61._store.changed:connect(function(v80, v81)
            local l_IsActive_0 = v81[v33.RoduxKey].IsActive;
            local l_IsActive_1 = v80[v33.RoduxKey].IsActive;
            if l_IsActive_1 ~= l_IsActive_0 then
                pcall(function()
                    local v84 = v37((v62.AppStorageService:GetItem(v33.ScreenshotsActiveLocalStorageKey)));
                    local v85 = v36(v62.Players) or "";
                    if not l_IsActive_1 then
                        v84[v85] = nil;
                    else
                        v84[v85] = true;
                    end;
                    v62.AppStorageService:SetItem(v33.ScreenshotsActiveLocalStorageKey, (table.concat(v10.keys(v84), ",")));
                    v62.AppStorageService:Flush();
                end);
                v61.onIsActiveChanged:fire(l_IsActive_1);
            end;
        end);
        v42(function(v86)
            v61._store:dispatch(v46(v86));
        end);
        local function v90(v87, v88, v89)
            return v14.mount(v13.createElement(v15.StoreProvider, {
                store = v61._store
            }, {
                PolicyProvider = v14.createElement(v44.Provider, {
                    policy = {
                        v44.Mapper
                    }
                }, {
                    StyleProvider = v13.createElement(l_StyleProviderWithDefaultTheme_0, {
                        withDarkTheme = true
                    }, {
                        LocalizationProvider = v14.createElement(l_LocalizationProvider_0, {
                            localization = l_Localization_0.new(v62.LocalizationService.RobloxLocaleId)
                        }, {
                            ContextProvider = v14.createElement(v51.Provider, {
                                value = v88
                            }, {
                                Portal = v14.createElement(v14.Portal, {
                                    target = v87
                                }, v89)
                            })
                        })
                    })
                })
            }));
        end;
        local v91 = v44.PolicyImplementation.read();
        local v92 = not not v91 and v44.Mapper(v91).eligibleForCapturesFeature();
        local v93 = not not v91 and v44.Mapper(v91).enableCapturesBulkManagement();
        local v94 = {
            fireAnalyticsEvent = v63
        };
        v61.mountCaptureManager = function(v95, v96)
            if v24 then
                if not v22 or v93 then
                    if v92 then
                        v61._captureManagerHandle = v90(v95, {
                            fireAnalyticsEvent = v63,
                            themeOverrides = if v23 then nil else v96
                        }, {
                            CaptureManager = v13.createElement(v27)
                        });
                        return ;
                    else
                        return ;
                    end;
                else
                    return ;
                end;
            else
                return ;
            end;
        end;
        v61.mountCaptureOverlay = function(v97)
            if v92 then
                v61._captureOverlayHandle = v90(v97, v94, {
                    CaptureOverlay = v13.createElement(v28)
                });
                return ;
            else
                return ;
            end;
        end;
        v61.mountCarousel = function(v98)
            if v92 then
                v61._carouselHandle = v90(v98, v94, {
                    CarouselScreen = v13.createElement(v32)
                });
                return ;
            else
                return ;
            end;
        end;
        v61.mountCoreUI = function(v99, v100)
            if v92 then
                local l_v94_0 = v94;
                if l_GetFFlagEnableScreenshotUtility_0() then
                    l_v94_0 = {
                        fireAnalyticsEvent = v63,
                        chromeEnabled = v100
                    };
                end;
                v61._coreUiHandle = v90(v99, l_v94_0, {
                    CaptureServicePrompts = v13.createElement(v31),
                    ShotsCoreUI = v13.createElement(v52)
                });
                return ;
            else
                return ;
            end;
        end;
        v61.mountMenuPage = function(v102, v103, v104, v105)
            if v92 then
                v61._menuPageHandle = v90(v102, {
                    fireAnalyticsEvent = v63,
                    themeOverrides = if v23 then nil else v104,
                    chromeEnabled = if not l_GetFFlagEnableScreenshotUtility_0() then nil else v105
                }, {
                    ShotsPage = v13.createElement(v54, {
                        closeSettingsMenu = v103
                    })
                });
                return ;
            else
                return ;
            end;
        end;
        return v61;
    end
};


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Parent.PolicyProvider);
local v2 = v1.GetPolicyImplementations.MemStorageService("app-policy");
local v3 = v1.withGetPolicyImplementation(v2);
local v4 = require(l_Parent_0.Experimentation.getIsFeatureVisibleToDesktopUser);
v3.Mapper = function(v5)
    return {
        eligibleForCapturesFeature = function()
            return v5.EligibleForCapturesFeature or v4();
        end,
        eligibleForVideoCapture = function()
            return v5.EligibleForVideoCapture or false;
        end,
        enableCapturesBulkManagement = function()
            return v5.EnableCapturesBulkManagement or false;
        end,
        enableShareCaptureCTA = function()
            return v5.EnableShareCaptureCTA or false;
        end
    };
end;
v3.PolicyImplementation = v2;
return v3;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.AppCommonLib);
local v3 = require(l_Parent_1.Localization);
local v4 = require(l_Parent_1.React);
local v5 = require(l_Parent_1.UIBlox);
local l_useLocalization_0 = v3.Hooks.useLocalization;
local l_useStyle_0 = v5.Core.Style.useStyle;
local l_Text_0 = v2.Text;
local v9 = require(l_Parent_0.Experimentation.getIsFeatureVisibleToDesktopUser);
local v10 = require(l_Parent_0.Components.OnOffButton);
local v11 = require(l_Parent_0.App.ScreenshotsPolicy);
local v12 = require(l_Parent_0.Context.ShotsContext);
local v13 = require(l_Parent_0.Components.VideoCaptureCTA);
local v14 = require(l_Parent_0.Flags.FFlagCapturesRemoveOldMenuTheme);
local v15 = require(l_Parent_0.Flags.FFlagDecomposeDesktopCapturesEligibilityCheck);
local l_GetFFlagEnableScreenshotUtility_0 = require(l_Parent_1.SharedFlags).GetFFlagEnableScreenshotUtility;
local v17 = UDim.new(0, 8);
local v18 = Color3.fromRGB(255, 255, 255);
local v19 = Color3.fromRGB(255, 255, 255);
local function v43(v20)
    local v21 = l_useStyle_0();
    local l_themeOverrides_0 = v4.useContext(v12).themeOverrides;
    local v23 = l_GetFFlagEnableScreenshotUtility_0() and v4.useContext(v12).chromeEnabled;
    local v24, v25 = v4.useState(Vector2.new(0, 0));
    local v26 = l_useLocalization_0({
        capturesTitle = "Feature.Captures.Title.Captures",
        educationalText = "Feature.Captures.Label.EducationalText"
    });
    local v27 = v9() or v15;
    local l_Color_0 = v21.Theme.BackgroundDefault.Color;
    local l_Transparency_0 = v21.Theme.BackgroundDefault.Transparency;
    local l_Color_1 = v21.Theme.TextDefault.Color;
    local l_Font_0 = v21.Font.CaptionBody.Font;
    local v32 = v21.Font.BaseSize * v21.Font.CaptionBody.RelativeSize;
    local l_Color_2 = v21.Theme.TextEmphasis.Color;
    local l_Font_1 = v21.Font.Header2.Font;
    local v35 = v21.Font.BaseSize * v21.Font.Header2.RelativeSize;
    if not (v14 or not l_themeOverrides_0) then
        l_Color_0 = l_themeOverrides_0.color("RowFrameBackground", v18);
        l_Transparency_0 = l_themeOverrides_0.transparency("RowFrameBackground", 0.85);
        l_Color_1 = l_themeOverrides_0.color("TextDefault", v19);
        l_Font_0 = l_themeOverrides_0.font(l_Font_0, "UtilityText");
        v32 = l_themeOverrides_0.textSize(16, "UtilityText");
        l_Color_2 = l_themeOverrides_0.color("TextEmphasis", v19);
        l_Font_1 = l_themeOverrides_0.font(l_Font_1, "Button");
        v35 = l_themeOverrides_0.textSize(24, "Button");
    end;
    local v37 = v4.useCallback(function(v36)
        v25(v36.AbsoluteSize);
        if v20.onAbsoluteSizeChanged then
            v20.onAbsoluteSizeChanged(v36.AbsoluteSize);
        end;
    end, {});
    local v38 = v4.useMemo(function()
        return l_Text_0.GetTextWidth(v26.educationalText, l_Font_0, v32);
    end, {
        v26.educationalText,
        l_Font_0,
        v32
    });
    local l_X_0 = v24.X;
    local v40 = v38 < (l_X_0 - 224) - 24;
    local v41 = 20;
    if not (v40 or v38 < l_X_0 - 24) then
        v41 = l_Text_0.GetTextHeight(v26.educationalText, l_Font_0, v32, l_X_0 - 24) + 10;
    end;
    local v42 = {
        TextFrame = v4.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            Size = UDim2.fromScale(1, 0)
        }, {
            Layout = v4.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Top
            }),
            Title = v4.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Font = l_Font_1,
                LayoutOrder = 1,
                Size = UDim2.new(1, 0, 0, 30),
                Text = v26.capturesTitle,
                TextColor3 = l_Color_2,
                TextSize = v35,
                TextXAlignment = Enum.TextXAlignment.Left
            }),
            EducationalLabel = v4.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Font = l_Font_0,
                LayoutOrder = 2,
                Size = UDim2.new(1, 0, 0, v41),
                Text = v26.educationalText,
                TextColor3 = l_Color_1,
                TextSize = v32,
                TextWrapped = true,
                TextXAlignment = Enum.TextXAlignment.Left
            })
        }),
        CapturesToggleFrame = v4.createElement("Frame", {
            AnchorPoint = if not v40 then Vector2.new(1, 0) else Vector2.new(1, 0.5),
            BackgroundTransparency = 1,
            Position = if not v40 then UDim2.new(1, 0, 0, -10) else UDim2.fromScale(1, 0.5),
            Size = UDim2.fromOffset(224, 44)
        }, {
            OnOffButton = v4.createElement(v10, {
                height = 44,
                width = 224
            })
        })
    };
    return v4.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundColor3 = l_Color_0,
        BackgroundTransparency = l_Transparency_0,
        BorderSizePixel = 0,
        LayoutOrder = v20.LayoutOrder,
        Size = UDim2.fromScale(1, 0),
        [v4.Change.AbsoluteSize] = v37
    }, {
        UICorner = v4.createElement("UICorner", {
            CornerRadius = if not l_themeOverrides_0 then v17 else l_themeOverrides_0.DefaultCornerRadius
        }),
        UIPadding = v4.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, 12),
            PaddingLeft = UDim.new(0, 12),
            PaddingRight = UDim.new(0, 12),
            PaddingTop = UDim.new(0, 12)
        }),
        Layout = if not v27 or v23 then nil else v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top
        }),
        CapturesToggleCTA = if not v27 or v23 then nil else v4.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundColor3 = l_Color_0,
            BackgroundTransparency = l_Transparency_0,
            BorderSizePixel = 0,
            LayoutOrder = 1,
            Size = UDim2.fromScale(1, 0)
        }, v42),
        TextFrame = if v27 or v23 then nil else v42.TextFrame,
        CapturesToggleFrame = if v27 or v23 then nil else v42.CapturesToggleFrame,
        Space = if not (not not v27 and v20.eligibleForVideoCapture) or v23 then nil else v4.createElement("Frame", {
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            Size = UDim2.new(0, 0, 0, 20),
            LayoutOrder = 2
        }),
        VideoCaptureCTA = if not not v27 and v20.eligibleForVideoCapture then v4.createElement(v13, {
            closeSettingsMenu = v20.closeSettingsMenu,
            LayoutOrder = 3
        }) else nil
    });
end;
if not (not v15 and not v9()) then
    v43 = v11.connect(function(v44)
        return {
            eligibleForVideoCapture = v44.eligibleForVideoCapture()
        };
    end)(v43);
end;
return v43;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.Localization);
local v3 = require(l_Parent_1.React);
local v4 = require(l_Parent_1.RoactUtils);
local v5 = require(l_Parent_1.UIBlox);
local l_IconButton_0 = v5.App.Button.IconButton;
local l_IconSize_0 = v5.App.Constant.IconSize;
local l_Images_0 = v5.App.ImageSet.Images;
local l_useStyle_0 = v5.Core.Style.useStyle;
local v10 = require(l_Parent_0.Analytics.useAnalytics);
local l_useDispatch_0 = v4.Hooks.RoactRodux.useDispatch;
local l_useLocalization_0 = v2.Hooks.useLocalization;
local l_useRef_0 = v3.useRef;
local l_useSelector_0 = v4.Hooks.RoactRodux.useSelector;
local v15 = require(l_Parent_0.Actions.DeleteWarningModalOpened);
local v16 = require(l_Parent_0.Analytics.EventNames);
local v17 = require(l_Parent_0.App.ScreenshotsPolicy);
local v18 = require(l_Parent_0.Thunks.ShareCapture);
local v19 = require(l_Parent_0.Utils.getIsDeleteWarningModalOptedOut);
local v20 = require(l_Parent_0.Utils.getSaveToStoragePermission);
local v21 = require(l_Parent_0.Flags.FFlagCaptureStorageBulkManagementM2Enabled);
local v22 = game:DefineFastInt("CapturesSaveToExternalStorageLimit", 10);
local v23 = UDim2.new(0.33, 0, 0, 36);
local v24 = not v21 and 1 or v22;
return (v17.connect(function(v25)
    return {
        enableShareCaptureCTA = v25.enableShareCaptureCTA()
    };
end)(function(v26)
    local v27 = v10();
    local v28 = l_useDispatch_0();
    local v29 = l_useStyle_0();
    local v30 = l_useRef_0(0);
    local v32 = l_useSelector_0(function(v31)
        return v31.Screenshots.CaptureManager.SelectedCaptures;
    end);
    local v33 = #v32;
    local v34 = true;
    if #v32 ~= 0 then
        v34 = #v32 > 1;
    end;
    local v35 = true;
    if #v32 ~= 0 then
        v35 = v24 < #v32;
    end;
    local v36 = #v32 == 0;
    local v37 = if not v26.isHorizontal then Enum.FillDirection.Vertical else Enum.FillDirection.Horizontal;
    local v38 = if not v26.isHorizontal then Enum.TextXAlignment.Center else Enum.TextXAlignment.Left;
    local v39 = if not v26.isHorizontal then UDim2.new(1, 0, 0, 38) else UDim2.new(0, v26.width - 279, 0, v26.height);
    local v40 = if not v26.isHorizontal then UDim2.new(1, 0, 0, 44) else UDim2.new(0, 279, 0, v26.height);
    local v41 = l_useLocalization_0({
        selectCaptureLabel = "Feature.Captures.Label.SelectCapture",
        oneCaptureSelectedLabel = "Feature.Captures.Label.OneCaptureSelected",
        multipleCapturesSelectedLabel = {
            "Feature.Captures.Label.MultipleCapturesSelected";
            numberOfCaptures = v33
        }
    });
    local v42 = v3.useCallback(function()
        if v33 == 0 then
            return v41.selectCaptureLabel;
        elseif v33 == 1 then
            return v41.oneCaptureSelectedLabel;
        else
            return v41.multipleCapturesSelectedLabel;
        end;
    end, {
        v33
    });
    local v43 = v3.useCallback(function()
        if not v26.isDisabled then
            if DateTime.now().UnixTimestampMillis - v30.current < 500 then
                return true;
            else
                return false;
            end;
        else
            return true;
        end;
    end, {
        v26.isDisabled
    });
    local v44 = v3.useCallback(function()
        v30.current = DateTime.now().UnixTimestampMillis;
    end, {});
    return v3.createElement("Frame", {
        BackgroundColor3 = v29.Theme.BackgroundContrast.Color,
        BackgroundTransparency = v29.Theme.BackgroundContrast.Transparency,
        BorderSizePixel = 0,
        LayoutOrder = v26.LayoutOrder,
        Size = UDim2.new(1, 0, 0, v26.height),
        ZIndex = v26.ZIndex
    }, {
        Layout = v3.createElement("UIListLayout", {
            FillDirection = v37,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            Padding = UDim.new(0, 0),
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        Padding = v3.createElement("UIPadding", {
            PaddingRight = UDim.new(0, 16)
        }),
        CapturesLabel = v3.createElement("TextLabel", {
            AnchorPoint = Vector2.new(1, 0.5),
            AutomaticSize = Enum.AutomaticSize.X,
            BackgroundTransparency = 1,
            Font = v29.Font.Header2.Font,
            LayoutOrder = 1,
            Position = UDim2.new(1, 0, 1, 0),
            Size = v39,
            Text = v42(),
            TextColor3 = v29.Theme.TextEmphasis.Color,
            TextSize = v29.Font.BaseSize * v29.Font.CaptionHeader.RelativeSize,
            TextXAlignment = v38,
            TextYAlignment = Enum.TextYAlignment.Center,
            ZIndex = 1
        }),
        CTAContainer = v3.createElement("Frame", {
            BackgroundColor3 = v29.Theme.BackgroundContrast.Color,
            BackgroundTransparency = v29.Theme.BackgroundContrast.Transparency,
            BorderSizePixel = 0,
            LayoutOrder = v26.LayoutOrder,
            Size = v40,
            ZIndex = v26.ZIndex
        }, {
            Layout = v3.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            BulkSaveButton = v3.createElement(l_IconButton_0, {
                backgroundColor = v29.Theme.BackgroundUIContrast,
                icon = l_Images_0["icons/actions/download_medium"],
                iconSize = l_IconSize_0.Medium,
                isDisabled = v35,
                layoutOrder = 1,
                onActivated = v3.useCallback(function()
                    if v43() or #v32 == 0 then
                        return ;
                    else
                        if not v21 then
                            v20(v32[1], v26.openPermissionModal, v28);
                            v27.fireEvent(v16.CapturesManagerSaveToExternalStorageActivated);
                        else
                            v20(v32, v26.openPermissionModal, v28);
                            v27.fireEvent(v16.CapturesManagerBulkSaveToExternalStorageActivated);
                        end;
                        v44();
                        return ;
                    end;
                end, {
                    v32,
                    v43,
                    v44,
                    v26.openPermissionModal
                }),
                size = v23
            }),
            BulkShareButton = v26.enableShareCaptureCTA and v3.createElement(l_IconButton_0, {
                backgroundColor = v29.Theme.BackgroundUIContrast,
                icon = l_Images_0["icons/actions/share"],
                iconSize = l_IconSize_0.Medium,
                isDisabled = v34,
                layoutOrder = 1,
                onActivated = v3.useCallback(function()
                    if v43() or #v32 == 0 then
                        return ;
                    else
                        local v45 = v32[1];
                        v44();
                        v27.fireEvent(v16.CapturesManagerShareActivated);
                        v28(v18(v45));
                        return ;
                    end;
                end, {
                    v32,
                    v26.isDisabled,
                    v43,
                    v44
                }),
                size = v23
            }),
            BulkDeleteButton = v3.createElement(l_IconButton_0, {
                icon = l_Images_0["icons/actions/edit/delete"],
                iconSize = l_IconSize_0.Medium,
                isDisabled = v36,
                layoutOrder = 2,
                onActivated = v3.useCallback(function()
                    if v43() or #v32 == 0 then
                        return ;
                    else
                        v44();
                        v27.fireEvent(v16.CapturesDeleteActivatedInCaptureManager);
                        if not v19() then
                            v28(v15());
                            return ;
                        else
                            assert(v26.deleteItem ~= nil, "props.deleteItem should not be nil");
                            v26.deleteItem();
                            return ;
                        end;
                    end;
                end, {
                    v26.deleteItem,
                    v26.isDisabled,
                    v43,
                    v44
                }),
                size = v23
            })
        })
    });
end));


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.Cryo);
local v3 = require(l_Parent_1.React);
local v4 = require(l_Parent_1.RoactUtils);
local v5 = require(l_Parent_1.UIBlox);
local l_Checkbox_0 = v5.App.InputButton.Checkbox;
local l_Images_0 = v5.App.ImageSet.Images;
local l_useDispatch_0 = v4.Hooks.RoactRodux.useDispatch;
local l_useSelector_0 = v4.Hooks.RoactRodux.useSelector;
local v10 = require(l_Parent_0.Enums.CaptureType);
local v11 = require(l_Parent_0.Analytics.EventNames);
local v12 = require(l_Parent_0.Thunks.SelectCapture);
local _ = require(l_Parent_0.Types);
local v14 = require(l_Parent_0.Analytics.useAnalytics);
local v15 = require(l_Parent_0.Flags.FFlagCaptureStorageBulkManagementM2Enabled);
local v16 = not v15 and 0.8 or 0.5;
return function(v17)
    local v18 = v14();
    local v19 = l_useDispatch_0();
    local v20, v21 = v3.useState(UDim2.fromScale(1, 1));
    local v22, v23 = v3.useState(false);
    local v25 = l_useSelector_0(function(v24)
        return v24.Screenshots.CaptureManager.SelectedCaptures;
    end);
    local v26 = v3.useCallback(function()
        v23(not v22);
        v18.fireEvent(v11.CapturesManagerItemActivated);
        v19(v12(v17.capture));
    end, {
        v22,
        v17.capture
    });
    local v29 = v3.useCallback(function(v27)
        local l_Resolution_0 = v27.Resolution;
        v21(UDim2.fromOffset(l_Resolution_0.X, l_Resolution_0.Y));
    end, {});
    v3.useEffect(function()
        v23(v2.List.find(v25, v17.capture) ~= nil);
    end, {
        v25,
        v17.capture
    });
    return v3.createElement("ImageButton", {
        BackgroundTransparency = 1,
        ClipsDescendants = true,
        Image = if v17.capture.type == v10.Screenshot then v17.capture.contentId else nil,
        ImageTransparency = not v22 and 0 or v16,
        ScaleType = Enum.ScaleType.Crop,
        Size = UDim2.fromScale(1, 1),
        [v3.Event.Activated] = v26
    }, {
        CheckboxFrame = if not v15 then nil else v3.createElement("Frame", {
            BackgroundTransparency = 1,
            Position = UDim2.new(1, -34, 0, 8),
            Size = UDim2.fromOffset(26, 26)
        }, {
            Checkbox = if not v22 then v3.createElement("ImageButton", {
                BackgroundTransparency = 1,
                Image = l_Images_0["squircles/hollow"].Image,
                ImageRectOffset = l_Images_0["squircles/hollow"].ImageRectOffset,
                ImageRectSize = l_Images_0["squircles/hollow"].ImageRectSize,
                ImageTransparency = 0.7,
                Size = UDim2.fromOffset(26, 26),
                [v3.Event.Activated] = v26
            }) else v3.createElement(l_Checkbox_0, {
                isSelected = true,
                isDisabled = false,
                layoutOrder = 1,
                text = "",
                onActivated = v26
            })
        }),
        VideoPreview = if v17.capture.type == v10.Video then v3.createElement("VideoFrame", {
            AnchorPoint = Vector2.new(0.5, 0.5),
            BackgroundTransparency = 1,
            Playing = false,
            Position = UDim2.fromScale(0.5, 0.5),
            Size = v20,
            Video = v17.capture.contentId,
            [v3.Event.Loaded] = v29
        }) else nil
    });
end;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_GuiService_0 = game:GetService("GuiService");
local v3 = require(l_Parent_1.Dash);
local v4 = require(l_Parent_1.Localization);
local v5 = require(l_Parent_1.React);
local v6 = require(l_Parent_1.RoactUtils);
local v7 = require(l_Parent_1.RobloxAppHooks);
local v8 = require(l_Parent_1.UIBlox);
local l_Images_0 = v8.App.ImageSet.Images;
local l_ImageSetButton_0 = v8.Core.ImageSet.ImageSetButton;
local l_GridView_0 = v8.App.Grid.GridView;
local l_useStyle_0 = v8.Core.Style.useStyle;
local v13 = require(l_Parent_0.Analytics.useAnalytics);
local l_useCallback_0 = v5.useCallback;
local l_useDispatch_0 = v6.Hooks.RoactRodux.useDispatch;
local l_useLocalization_0 = v4.Hooks.useLocalization;
local l_useScreenSize_0 = v7.useScreenSize;
local l_useSelector_0 = v6.Hooks.RoactRodux.useSelector;
local l_useState_0 = v5.useState;
local v20 = require(l_Parent_0.Actions.CaptureManagerClosed);
local v21 = require(l_Parent_0.Components.CaptureManagerItem);
local v22 = require(l_Parent_0.Components.CaptureManagerCTAContainer);
local v23 = require(l_Parent_0.Constants);
local v24 = require(l_Parent_0.Thunks.DeleteCaptures);
local v25 = require(l_Parent_0.Components.DeleteWarningModal);
local v26 = require(l_Parent_0.Analytics.EventNames);
local v27 = require(l_Parent_0.Components.PermissionModal);
local v28 = require(l_Parent_0.Components.ShowMoreButton);
local v29 = require(l_Parent_0.Components.ToastContainer);
local _ = require(l_Parent_0.Types);
local v31 = require(l_Parent_0.Actions.UpdateSelectedCaptures);
local v32 = require(l_Parent_0.Flags.FFlagCaptureStorageBulkManagementM2Enabled);
local v33 = require(l_Parent_0.Flags.FFlagCapturesRemoveOldMenuTheme);
local v34 = UDim2.fromOffset(32, 32);
local v35 = not v32 and 4 or 3;
local v36 = not v33 and 12 or 1;
local v37 = if not v33 then v36 + 4 else v36 + 8;
local function _(v38)
    return (math.clamp(math.floor(v38 / 90), 1, v35));
end;
local function _(v40, v41)
    local v42 = math.clamp(math.floor(v41 / 90), 1, v35);
    local v43 = (v41 - 4 * (v42 - 1)) / v42;
    return Vector2.new(math.floor(v43), (math.floor(v43 * v40)));
end;
local function v47(v45, v46)
    return v5.createElement(v21, {
        capture = v45,
        captureIndex = v46
    });
end;
return function(_)
    local v49 = v13();
    local v50 = l_useDispatch_0();
    local v51 = l_useStyle_0();
    local v53 = l_useSelector_0(function(v52)
        return v52.Screenshots.Captures;
    end);
    local v55 = l_useSelector_0(function(v54)
        return v54.Screenshots.CaptureManager.SelectedCaptures;
    end);
    local v57 = l_useSelector_0(function(v56)
        return v56.Screenshots.CaptureManager.IsOpen;
    end);
    local v58 = l_useLocalization_0({
        cancelSelectAllAction = "Feature.Captures.Action.CancelSelectAllCaptures",
        selectAllAction = "Feature.Captures.Action.SelectAllCaptures"
    });
    local v59 = v5.useRef(nil);
    local v60, v61 = l_useState_0(Vector2.new(0, 0));
    local v62, v63 = l_useState_0(false);
    local v64, v65 = l_useState_0(false);
    local v66, v67 = v5.useState(24);
    local v68 = if #v55 == 0 then v58.selectAllAction else v58.cancelSelectAllAction;
    local v69 = l_useScreenSize_0();
    v5.useEffect(function()
        if v59.current then
            v61(v59.current.AbsoluteSize);
        end;
    end, {});
    local v71 = l_useCallback_0(function(v70)
        v61(v70.AbsoluteSize);
    end, {});
    local v72 = l_useCallback_0(function()
        v63(false);
        v50(v20());
    end, {});
    local v73 = l_useCallback_0(function()
        v65(true);
    end, {});
    local v74 = l_useCallback_0(function()
        v65(false);
    end, {});
    local v75 = l_useCallback_0(function()
        v50(v24(v55));
    end, {
        v55
    });
    local v76 = l_useCallback_0(function()
        if #v55 == 0 then
            v50(v31(v53));
            v49.fireEvent(v26.CapturesManagerSelectAllActivated);
            return ;
        else
            v50(v31({}));
            return ;
        end;
    end, {
        v55,
        v53
    });
    local v77 = v5.useCallback(function()
        v67(v66 + 24);
    end, {
        v66
    });
    local v78 = v5.useMemo(function()
        return v3.slice(v53, 1, (math.min(#v53, v66)));
    end, {
        v53,
        v66
    });
    if v57 then
        local v79 = false;
        if v60.X > 0 then
            v79 = v60.Y > 0;
        end;
        local v80 = math.clamp(v69.Y / v69.X, 0.42857142857142855, 1);
        local l_Y_0 = v60.Y;
        local v82 = v60.X - (v37 + 32);
        local l_v82_0 = v82;
        local v84 = math.clamp(math.floor(l_v82_0 / 90), 1, v35);
        local v85 = (l_v82_0 - 4 * (v84 - 1)) / v84;
        local v86 = Vector2.new(math.floor(v85), (math.floor(v85 * v80)));
        l_v82_0 = l_Y_0 < v82;
        v84 = not l_v82_0 and 82 or 44;
        v85 = v5.createElement;
        local v87 = "Frame";
        local v88 = {
            Active = true,
            BackgroundColor3 = v51.Theme.BackgroundContrast.Color,
            BackgroundTransparency = v51.Theme.BackgroundContrast.Transparency,
            BorderSizePixel = 0,
            Position = UDim2.fromOffset(0, -l_GuiService_0.TopbarInset.Height),
            ref = v59,
            Size = UDim2.new(1, 0, 1, l_GuiService_0.TopbarInset.Height),
            [v5.Change.AbsoluteSize] = v71
        };
        local v89 = {};
        local l_createElement_0 = v5.createElement;
        local v91 = "Frame";
        local v92 = {
            BackgroundTransparency = 1,
            Size = UDim2.fromScale(1, 1)
        };
        local v93 = {
            UIListLayout = v5.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, 4),
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Top
            }),
            Padding = v5.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, 8),
                PaddingLeft = UDim.new(0, 24),
                PaddingRight = UDim.new(0, 8),
                PaddingTop = UDim.new(0, 40)
            }),
            TitleFrame = v5.createElement("Frame", {
                BackgroundTransparency = 1,
                LayoutOrder = 1,
                Size = UDim2.new(1, 0, 0, 32),
                ZIndex = 2
            }, {
                CloseButton = v5.createElement(l_ImageSetButton_0, {
                    AnchorPoint = Vector2.new(0, 0.5),
                    BackgroundTransparency = 1,
                    Image = l_Images_0["icons/navigation/close"],
                    ImageColor3 = v51.Theme.IconEmphasis.Color,
                    ImageTransparency = v51.Theme.IconEmphasis.Transparency,
                    Position = UDim2.new(0, 0, 0.5, 0),
                    Size = v34,
                    [v5.Event.Activated] = v72
                }),
                DropShadow = v5.createElement("TextLabel", {
                    AnchorPoint = Vector2.new(1, 0.5),
                    AutomaticSize = Enum.AutomaticSize.X,
                    BackgroundTransparency = 1,
                    Font = v51.Font.Header2.Font,
                    LayoutOrder = 1,
                    Position = UDim2.new(1, -16, 0.5, 2),
                    Size = UDim2.fromScale(0, 1),
                    Text = v68,
                    TextColor3 = v51.Theme.DropShadow.Color,
                    TextSize = v51.Font.BaseSize * v51.Font.Header2.RelativeSize,
                    TextTransparency = v51.Theme.DropShadow.Transparency,
                    TextXAlignment = Enum.TextXAlignment.Center,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    ZIndex = 1
                }, {
                    UIStroke = v5.createElement("UIStroke", {
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Contextual,
                        Color = v51.Theme.DropShadow.Color,
                        LineJoinMode = Enum.LineJoinMode.Round,
                        Thickness = 1,
                        Transparency = v51.Theme.DropShadow.Transparency
                    })
                }),
                SelectOrDeselectAllButton = v5.createElement("TextButton", {
                    AnchorPoint = Vector2.new(1, 0.5),
                    AutomaticSize = Enum.AutomaticSize.X,
                    BackgroundTransparency = 1,
                    Font = v51.Font.Header2.Font,
                    LayoutOrder = 1,
                    Position = UDim2.new(1, -16, 0.5, 2),
                    Size = UDim2.fromScale(0, 1),
                    Text = v68,
                    TextColor3 = v51.Theme.TextEmphasis.Color,
                    TextSize = v51.Font.BaseSize * v51.Font.Header2.RelativeSize,
                    TextXAlignment = Enum.TextXAlignment.Center,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    ZIndex = 2,
                    [v5.Event.Activated] = v76
                })
            })
        };
        local l_createElement_1 = v5.createElement;
        local v95 = "ScrollingFrame";
        local v96 = {
            AutomaticCanvasSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            CanvasSize = UDim2.fromScale(1, 0),
            LayoutOrder = 2,
            ScrollBarThickness = v36,
            ScrollingDirection = Enum.ScrollingDirection.Y,
            Size = UDim2.new(1, 0, 1, -(40 + v84))
        };
        local v97 = {
            UIListLayout = v5.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, 4),
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Top
            }),
            GridView = v79 and v5.createElement(l_GridView_0, {
                itemPadding = Vector2.new(4, 4),
                items = v78,
                itemSize = v86,
                LayoutOrder = 1,
                renderItem = v47
            })
        };
        local v98 = false;
        if v66 < #v53 then
            v98 = v5.createElement(v28, {
                buttonHeight = 40,
                LayoutOrder = 2,
                onActivated = v77
            });
        end;
        v97.ShowMoreButton = v98;
        v93.ScrollingFrame = l_createElement_1(v95, v96, v97);
        v93.CTAContainer = v5.createElement(v22, {
            deleteItem = v75,
            height = v84,
            isDisabled = v62,
            isHorizontal = l_v82_0,
            LayoutOrder = 3,
            openPermissionModal = v73,
            width = v82,
            ZIndex = 2
        });
        v89.CaptureManagerContainer = l_createElement_0(v91, v92, v93);
        v89.DeleteWarningModal = v5.createElement(v25, {
            deleteItem = v75,
            zIndex = 3
        });
        v89.PermissionModal = v5.createElement(v27, {
            closeModal = v74,
            visible = v64,
            zIndex = 3
        });
        v89.ToastsFrame = v5.createElement("Frame", {
            Active = false,
            BackgroundTransparency = 1,
            Size = UDim2.fromScale(1, 1),
            ZIndex = v23.ZIndex.Toasts
        }, {
            ToastContainer = v5.createElement(v29)
        });
        return v85(v87, v88, v89);
    else
        return nil;
    end;
end;