local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.t);
local l_withNavigation_0 = require(l_CorePackages_0.RoactNavigation).withNavigation;
local v5 = require(l_CorePackages_0.RoactRodux);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v7 = require(l_CorePackages_0.UIBlox);
local v8 = require(l_CorePackages_0.AvatarExperienceDeps);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local l_RoactFitComponents_0 = v8.RoactFitComponents;
local l_FitFrameVertical_0 = l_RoactFitComponents_0.FitFrameVertical;
local l_Button_0 = v7.App.Button.Button;
local l_ButtonType_0 = v7.App.Button.Enum.ButtonType;
local l_withStyle_0 = v7.Style.withStyle;
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v17 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v18 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v19 = require(l_Modules_0.AvatarExperience.AvatarEditor.Constants);
local v20 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v21 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v22 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local v23 = require(l_Modules_0.AvatarExperience.AvatarEditor.Thunks.GetRecommendedItems);
local v24 = require(l_Modules_0.AvatarExperience.Common.Thunks.NavigateWithLock);
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v26 = require(l_Modules_0.LuaApp.Enum.RetrievalStatus);
local v27 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRoute);
local v28 = require(l_Modules_0.AvatarExperience.Common.Components.LoadableGridView);
local v29 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.RecommendedItemCard);
local v30 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v31 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.SetCategoryAndSubcategory);
local v32 = require(l_Modules_0.AvatarExperience.Flags.AEInfiniteScrollRecommendationsIXPTest);
local v33 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXItemCardRedesignIXPEnabled);
local v34 = v2.PureComponent:extend("RecommendedItems");
v34.validateProps = v3.strictInterface({
    categoryInfo = v3.table,
    LayoutOrder = v3.optional(v3.number),
    NextSelectionUp = v3.optional(v3.table),
    NextSelectionDown = v3.optional(v3.table),
    baseRef = v3.optional(v3.table),
    listFrameRef = v3.optional(v3.table),
    itemDetailsPeekViewRefs = v3.table,
    sendShopForMoreAnalytics = v3.callback,
    itemsOverride = if not v32.isEnabled() then nil else v3.optional(v3.table),
    screenSize = v3.Vector2,
    itemType = v3.string,
    dataStatus = v3.string,
    items = v3.table,
    setCatalogIndicies = v3.callback,
    getRecommendedItems = v3.callback,
    navigateWithLock = v3.callback,
    navigation = v3.table,
    avatarRoute = v27.Interface,
    catalogAnalytics = v3.table,
    networking = v3.callback
});
v34.init = function(v35)
    v35.loadableGridViewRef = v2.createRef();
    v35.shopMoreRef = v2.createRef();
    v35.onActivated = function()
        v35.props.setCatalogIndicies(v35.props.categoryInfo, v35.props.catalogAnalytics);
        v35.props.navigateWithLock(function()
            v35.props.navigation.navigate(v20.Catalog);
            v35.props.sendShopForMoreAnalytics();
        end);
    end;
    v35.getRecommendedItems = function()
        if v35.props.itemsOverride ~= nil then
            return ;
        elseif v35.props.categoryInfo.RecommendationsType == v19.RecommendationsType.None then
            return ;
        else
            v35.props.getRecommendedItems(v35.props.networking, v18.getRecommendedAssetTypeIdStringFromCategoryInfo(v35.props.categoryInfo), v35.props.categoryInfo.RecommendationsType, true);
            return ;
        end;
    end;
end;
v34.maybeFetchRecommendedItems = function(v36)
    if v36.props.itemsOverride ~= nil then
        return ;
    else
        if v36.props.dataStatus ~= v26.Fetching then
            v36.getRecommendedItems();
        end;
        return ;
    end;
end;
v34.didMount = function(v37)
    v37:maybeFetchRecommendedItems();
end;
v34.didUpdate = function(v38, v39)
    if v38.props.avatarRoute.current.name == v20.AvatarEditor and v18.getRecommendedKey(v39.categoryInfo) ~= v18.getRecommendedKey(v38.props.categoryInfo) then
        v38:maybeFetchRecommendedItems();
    end;
end;
v34.renderWithProviders = function(v40, v41, v42)
    local l_items_0 = v40.props.items;
    local l_itemType_0 = v40.props.itemType;
    local l_key_0 = v40.props.avatarRoute.current.key;
    local v46 = #l_items_0 == 0;
    local l_LayoutOrder_0 = v40.props.LayoutOrder;
    local l_screenSize_0 = v40.props.screenSize;
    local l_Font_0 = v41.Font;
    local l_Theme_0 = v41.Theme;
    local l_Font_1 = l_Font_0.Header2.Font;
    local v52 = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize;
    local v53 = v18.GridItemHeightGetter(if not v33() then v30.ItemTileType.CatalogItemTile else v30.ItemTileType.RecommendedCatalogItemTile, v52);
    local v54 = v2.createElement(l_Focusable_0[l_Button_0], {
        buttonType = l_ButtonType_0.Secondary,
        layoutOrder = 3,
        size = UDim2.new(1, 0, 0, 48),
        text = v42.shopForMore,
        onActivated = v40.onActivated,
        [v2.Ref] = v40.shopMoreRef,
        NextSelectionUp = not not v46 and v40.props.NextSelectionUp or v40.loadableGridViewRef
    });
    local function v57(v55, v56)
        return v2.createElement(v29, {
            itemId = v55,
            index = v56,
            itemType = l_itemType_0,
            getRecommendedItems = v40.getRecommendedItems,
            itemDetailsPeekViewRefs = v40.props.itemDetailsPeekViewRefs,
            resultsListRef = v40.props.listFrameRef
        });
    end;
    local l_NumRecommendedItems_0 = v30.NumRecommendedItems;
    if v40.props.itemsOverride ~= nil then
        v57 = function(v59, v60)
            return v2.createElement(v29, {
                itemId = v59.id,
                index = v60,
                itemType = v59.type,
                getRecommendedItems = v40.getRecommendedItems,
                itemDetailsPeekViewRefs = v40.props.itemDetailsPeekViewRefs,
                resultsListRef = v40.props.listFrameRef
            });
        end;
        l_NumRecommendedItems_0 = #l_items_0;
    end;
    return v2.createElement(l_Focusable_0[l_FitFrameVertical_0], {
        width = UDim.new(1, 0),
        contentPadding = UDim.new(0, 10),
        margin = l_RoactFitComponents_0.Rect.quad(24, 15, 15, 15),
        FillDirection = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        AnchorPoint = Vector2.new(0.5, 0),
        Position = UDim2.new(0.5, 0, 0, 0),
        BackgroundTransparency = l_Theme_0.BackgroundUIContrast.Transparency,
        BackgroundColor3 = l_Theme_0.BackgroundUIContrast.Color,
        BorderSizePixel = 0,
        LayoutOrder = l_LayoutOrder_0,
        restorePreviousChildFocus = true,
        defaultChild = not not v46 and v40.shopMoreRef or v40.loadableGridViewRef,
        [v2.Ref] = v40.props.baseRef
    }, {
        YouMayAlsoLikeTextLabel = v2.createElement("TextLabel", {
            Size = UDim2.new(1, 0, 0, 24),
            BackgroundTransparency = 1,
            Font = l_Font_1,
            TextColor3 = l_Theme_0.TextEmphasis.Color,
            Text = v42.youMayAlsoLike,
            TextSize = v52,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            LayoutOrder = 1
        }),
        GridView = v2.createElement(v28, {
            LayoutOrder = 2,
            items = l_items_0,
            totalNumItems = l_NumRecommendedItems_0,
            getItemHeight = v53,
            windowHeight = l_screenSize_0.Y,
            renderItem = v57,
            [v2.Ref] = v40.loadableGridViewRef,
            NextSelectionUp = v40.props.NextSelectionUp,
            NextSelectionDown = v40.shopMoreRef,
            NextSelectionRight = l_key_0 and v40.props.itemDetailsPeekViewRefs[l_key_0]
        }),
        ShopForMoreButton = v54
    });
end;
v34.render = function(v61)
    return l_withStyle_0(function(v62)
        return l_withLocalization_0({
            shopForMore = "Feature.Avatar.Action.ShopForMore",
            youMayAlsoLike = "Feature.Catalog.Label.Recommendations"
        })(function(v63)
            return v61:renderWithProviders(v62, v63);
        end);
    end);
end;
return v5.connect(function(v64, v65)
    local v66 = v18.getRecommendedKey(v65.categoryInfo);
    local v67 = if not ((v66 ~= v19.RecommendationsType.BodyParts and v66 ~= v19.RecommendationsType.AvatarAnimations) and v66 ~= v19.RecommendationsType.Shoes) or v66 == v19.RecommendationsType.DynamicHeads then v30.ItemType.Bundle else v30.ItemType.Asset;
    local _ = nil;
    return {
        dataStatus = l_PerformFetch_0.GetStatus(v64, v30.RecommendedItemsKey .. tostring(v66)),
        screenSize = v64.ScreenSize,
        itemType = v67,
        items = if v65.itemsOverride then v65.itemsOverride else v64.AvatarExperience.AvatarEditor.RecommendedItems[v66] or {}
    };
end, function(v69)
    return {
        getRecommendedItems = function(v70, v71, v72)
            v69(v23(v70, v71, v72));
        end,
        setCatalogIndicies = function(v73, v74)
            local v75, v76 = v18.GetCategoryIndexes(v73.MatchingCatalogPage.CategoryKey, v73.MatchingCatalogPage.SubcategoryKey);
            v69(v31(v75, v76, v74));
        end,
        navigateWithLock = function(v77)
            v69(v24(v77));
        end
    };
end)((v22((l_withNavigation_0((l_RoactServices_0.connect({
    catalogAnalytics = v21,
    networking = v17
})(v34)))))));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Packages.Roact);
local v4 = require(l_CorePackages_0.RoactNavigation);
local v5 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_Focusable_0 = v5.Focusable;
local l_withNavigationFocus_0 = v4.withNavigationFocus;
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAppRoute);
local v11 = require(l_Modules_0.LuaApp.Components.TopBar.TopBar);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.Refinement.RefinementNavBar);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.GamepadFocusHandlerForPage);
local function v15(v14)
    return v14.DeviceOrientation == l_DeviceOrientationMode_0.Portrait;
end;
return (l_withNavigationFocus_0((v10(function(v16)
    local v17 = v5.createFocusController();
    local v18 = v2.useRef(nil);
    local v19 = v2.useRef(nil);
    return v2.createElement(l_Focusable_0.Frame, {
        Size = UDim2.fromScale(1, 1),
        BackgroundTransparency = 1,
        focusController = v17,
        defaultChild = v18
    }, {
        TopBar = v2.createElement(v11.Container, {
            titleText = "Avatar Refinement",
            NextSelectionDown = v18,
            transparentBackground = true,
            hideSiteMessageBanner = l_useSelector_0(v15),
            leftItem = v11.makeBackButton(function()
                v16.navigation.pop();
            end),
            [v3.Ref] = v19
        }),
        RefinementNavBar = v2.createElement(v12, {
            [v3.Ref] = v18,
            NextSelectionUp = v19
        }),
        GamepadFocusHandlerForPage = v2.createElement(v13, {
            focusController = v17,
            captureFocusOnMount = true
        })
    });
end))));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.Cryo);
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.Packages.Roact);
local v5 = require(l_CorePackages_0.UIBlox);
local v6 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_Images_0 = v5.App.ImageSet.Images;
local l_ImageSetButton_0 = v5.Core.ImageSet.ImageSetButton;
local l_Focusable_0 = v6.Focusable;
local l_useStyle_0 = v5.Core.Style.useStyle;
local l_withNavigationFocus_0 = require(l_CorePackages_0.RoactNavigation).withNavigationFocus;
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAppRoute);
local l_useSelectionCursor_0 = v5.App.SelectionImage.useSelectionCursor;
local l_CursorKind_0 = v5.App.SelectionImage.CursorKind;
local l_IconSize_0 = v5.App.Constant.IconSize;
local v17 = {
    [v12.AvatarEditor] = true,
    [v12.Catalog] = true,
    [v12.CatalogSearch] = true
};
local v18 = l_Images_0["icons/actions/adjust"];
local function _(v19)
    local l_isUIFullView_0 = v19.isUIFullView;
    local l_isSceneFullView_0 = v19.isSceneFullView;
    local l_name_0 = v19.avatarRoute.opaque.name;
    local v23 = false;
    if v17[l_name_0] ~= nil then
        v23 = v19.isFocused;
    end;
    return (v23 and not l_isUIFullView_0) and not l_isSceneFullView_0;
end;
local v37 = l_withNavigationFocus_0((v13(function(v25)
    local l_Theme_0 = l_useStyle_0().Theme;
    local v27 = v3.useRef(nil);
    local l_forwardRef_0 = v25.forwardRef;
    local v29 = v3.useCallback(function()
        v25.navigation.navigate(v12.AvatarRefinement);
    end);
    local l_createElement_0 = v3.createElement;
    local l_Frame_0 = l_Focusable_0.Frame;
    local v32 = {
        Size = UDim2.fromOffset(44, 44)
    };
    local l_isUIFullView_1 = v25.isUIFullView;
    local l_isSceneFullView_1 = v25.isSceneFullView;
    local l_name_1 = v25.avatarRoute.opaque.name;
    local v36 = false;
    if v17[l_name_1] ~= nil then
        v36 = v25.isFocused;
    end;
    v32.Visible = (v36 and not l_isUIFullView_1) and not l_isSceneFullView_1;
    v32.BackgroundColor3 = l_Theme_0.BackgroundMuted.Color;
    v32.BackgroundTransparency = l_Theme_0.BackgroundMuted.Transparency;
    v32.LayoutOrder = v25.layoutOrder;
    v32[v4.Ref] = l_forwardRef_0;
    v32.defaultChild = v27;
    return l_createElement_0(l_Frame_0, v32, {
        Corner = v3.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        Image = v3.createElement(l_Focusable_0[l_ImageSetButton_0], {
            Position = UDim2.fromScale(0.5, 0.5),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Size = UDim2.fromOffset(l_IconSize_0.Regular, l_IconSize_0.Regular),
            BackgroundTransparency = 1,
            Image = v18,
            ImageColor3 = l_Theme_0.IconEmphasis.Color,
            ImageTransparency = 0,
            ZIndex = 2,
            [v3.Event.Activated] = v29,
            [v4.Ref] = v27,
            NextSelectionLeft = v25.NextSelectionLeft,
            SelectionImageObject = l_useSelectionCursor_0(l_CursorKind_0.RoundedRect)
        })
    });
end)));
return v4.forwardRef(function(v38, v39)
    return v4.createElement(v37, v2.Dictionary.join(v38, {
        forwardRef = v39
    }));
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.Cryo);
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.Packages.Roact);
local v5 = require(l_CorePackages_0.Packages.RoactGamepad);
local v6 = require(l_CorePackages_0.RoactNavigation);
local v7 = require(l_CorePackages_0.UIBlox);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_Focusable_0 = v5.Focusable;
local l_IconButton_0 = v7.App.Button.IconButton;
local l_Images_0 = v7.App.ImageSet.Images;
local l_useStyle_0 = v7.Core.Style.useStyle;
local l_withNavigationFocus_0 = v6.withNavigationFocus;
local v14 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAppRoute);
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
local l_IconSize_0 = v7.App.Constant.IconSize;
local v18 = l_Images_0["icons/menu/clothing/accessories_on"];
local v19 = l_Images_0["icons/menu/clothing/accessories_off"];
local v20 = l_Images_0["icons/menu/clothing/clothing_off"];
local v21 = l_Images_0["icons/menu/clothing/clothing_on"];
local function v23(v22)
    return v22.DeviceOrientation == l_DeviceOrientationMode_0.Portrait;
end;
local function v25(v24)
    return v24.TopBar.topBarHeight;
end;
local v37 = l_withNavigationFocus_0((v15(function(v26)
    local v27 = v3.useRef(nil);
    local v28 = v3.useRef(nil);
    local l_Theme_0 = l_useStyle_0().Theme;
    local v30 = v3.useCallback(function()
        v26.navigation.navigate(v14.AccessoryAdjustment);
    end);
    local v31 = v3.useCallback(function()
        v26.navigation.navigate(v14.LayeredClothingSort);
    end);
    local v32 = l_useSelector_0(v23);
    local v33 = l_useSelector_0(v25);
    local v34 = not v32 and 88 or 24;
    local v35 = v26.avatarRoute.opaque.name == v14.AccessoryAdjustment;
    local v36 = v26.avatarRoute.opaque.name == v14.LayeredClothingSort;
    return v3.createElement(l_Focusable_0.Frame, {
        AutomaticSize = Enum.AutomaticSize.XY,
        Position = UDim2.new(0, v34, 0, v33 + 4),
        BackgroundColor3 = l_Theme_0.BackgroundMuted.Color,
        BackgroundTransparency = l_Theme_0.BackgroundMuted.Transparency,
        ZIndex = 2,
        [v4.Ref] = v26.defaultChildRef,
        defaultChild = v27,
        NextSelectionUp = v26.NextSelectionUp,
        NextSelectionRight = v26.NextSelectionRight
    }, {
        Corner = v3.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        UIListLayout = v3.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Padding = UDim.new(0, 16)
        }),
        UIPadding = v3.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 8),
            PaddingBottom = UDim.new(0, 8),
            PaddingLeft = UDim.new(0, 8),
            PaddingRight = UDim.new(0, 8)
        }),
        LCSort = v3.createElement(l_IconButton_0, {
            position = UDim2.fromScale(0.5, 0.5),
            anchorPoint = Vector2.new(0.5, 0.5),
            icon = if not v36 then v21 else v20,
            iconColor3 = if not v36 then l_Theme_0.IconDefault.Color else l_Theme_0.IconEmphasis.Color,
            iconTransparency = if not v36 then l_Theme_0.IconDefault.Transparency else l_Theme_0.IconEmphasis.Transparency,
            layoutOrder = 1,
            iconSize = l_IconSize_0.Medium,
            onActivated = v31,
            showBackground = true,
            buttonRef = v27,
            NextSelectionDown = v28
        }),
        AccessoryAdjustment = v3.createElement(l_IconButton_0, {
            position = UDim2.fromScale(0.5, 0.5),
            anchorPoint = Vector2.new(0.5, 0.5),
            layoutOrder = 2,
            showBackground = true,
            icon = if not v35 then v19 else v18,
            iconSize = l_IconSize_0.Medium,
            iconColor3 = if not v35 then l_Theme_0.IconDefault.Color else l_Theme_0.IconEmphasis.Color,
            iconTransparency = if not v35 then l_Theme_0.IconDefault.Transparency else l_Theme_0.IconEmphasis.Transparency,
            onActivated = v30,
            buttonRef = v28,
            NextSelectionUp = v27
        })
    });
end)));
return v3.forwardRef(function(v38, v39)
    return v3.createElement(v37, v2.Dictionary.join(v38, {
        defaultChildRef = v39
    }));
end);


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").RoactNavigation);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.AccessoryAdjustment.Components.AccessoryAdjustmentPage);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
return v1.createRobloxStackNavigator({
    {
        [v4.AccessoryAdjustment] = {
            screen = v3
        }
    },
    {
        [v4.AdjustAccessoryView] = {
            screen = require(l_Modules_0.AvatarExperience.AccessoryAdjustment.Components.AdjustAccessoryView)
        }
    }
}, {
    defaultNavigationOptions = {
        overlayEnabled = true,
        overlayTransparency = 1,
        absorbInput = false
    },
    mode = v1.StackPresentationStyle.Default,
    transitionConfig = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils).instantTransitionConfig
});


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactNavigation);
local v4 = require(l_CorePackages_0.RoactRodux);
local _ = require(l_CorePackages_0.Packages.React);
local v6 = require(l_Modules_0.LuaApp.Navigation.AndroidBackButtonNavigationHandler.Container);
local v7 = require(l_Modules_0.LuaApp.Navigation.isRootRouteInRN);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local v9 = require(l_CorePackages_0.Packages.t);
local v10 = require(l_Modules_0.LuaApp.Actions.ApplySetNavigationLocked);
local v11 = require(l_Modules_0.LuaApp.AppPage);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Debug.makeNavigationStateLogger);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.makeAppRouterRootContainer);
local v14 = v2.Component:extend("AvatarExperienceWrapper");
v14.validateProps = v9.strictInterface({
    routeName = v9.string,
    params = v9.interface({
        detail = v9.string
    }),
    currentAppPageName = v9.optional(v9.string),
    currentAppPageDetail = v9.optional(v9.string),
    unlockNavigation = v9.callback
});
v14.init = function(v15)
    v15.navigationAppContainer = v3.createAppContainer(v13(v15.props.routeName), nil);
    v15.isAndroidBackButtonHandlerDisabled = l_memoize_0(function(v16, v17, v18)
        local v19;
        if v16 ~= v11.AvatarExperienceWrapper then
            v19 = false;
            if not (v16 == v11.AvatarExperienceWrapperTransparent) then
                goto label0;
            end;
        end;
        v19 = v17 == v18;
        ::label0::;
        return not v19;
    end);
    v15.renderAndroidBackButtonNavigationHandler = l_memoize_0(function(v20)
        return function(v21)
            return v2.createElement(v6, {
                canGoBackInRN = not v7(v21.state),
                navigateBackInRN = v21.pop,
                disabled = v20
            });
        end;
    end);
    local v22 = v12("AvatarExperienceWrapper:" .. v15.props.routeName);
    v15.onNavigationStateChange = function(v23, v24, v25)
        v22(v23, v24, v25);
        if not v24.isTransitioning then
            v15.props.unlockNavigation();
        end;
    end;
end;
v14.render = function(v26)
    return v2.createElement(v26.navigationAppContainer, {
        onNavigationStateChange = v26.onNavigationStateChange,
        renderAndroidBackButtonNavigationHandler = v26.renderAndroidBackButtonNavigationHandler((v26.isAndroidBackButtonHandlerDisabled(v26.props.currentAppPageName, v26.props.currentAppPageDetail, not not v26.props.params and v26.props.params.detail or nil))),
        params = v26.props.params
    });
end;
return (v4.connect(function(v27, _)
    local v29 = v27.Navigation.history[#v27.Navigation.history];
    local v30 = v29[#v29];
    return {
        currentAppPageName = not not v30 and v30.name or nil,
        currentAppPageDetail = not not v30 and v30.detail or nil
    };
end, function(v31)
    return {
        unlockNavigation = function()
            v31(v10(false));
        end
    };
end)(v14));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v2 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.ItemDetailsScreen);
local v3 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.AssetManagement.OutfitDetailsScreen);
local v4 = require(l_Modules_0.AvatarExperience.Catalog.Components.Resellers.ResellersPage);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.SellPage.SellPage);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.ItemOwnershipPage.ItemOwnershipPage);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.SellPage.SellItemPeekView);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.TryOnItemScreen);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.AvatarBackground);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withStackVisibilityWrapper);
local v11 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXEnableOutfitAttribution);
local v12 = {
    [v1.ItemDetails] = v2,
    [v1.ResellersPage] = v4,
    [v1.SellItemPage] = v5,
    [v1.TryOnItem] = v8,
    [v1.ItemOwnershipPage] = v6,
    [v1.SellItemPeekView] = v7,
    [v1.AvatarBackground] = v10(v9)
};
if v11 then
    v12[v1.OutfitDetails] = v3;
end;
return v12;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_Modules_0.LuaApp.AppPage);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreenProperties);
local v5 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v6, v7, v8)
    local v9 = v4[v6];
    local v10 = v9 and v9.isTransparent;
    return function(v11)
        return v11:dispatch(v5({
            name = not not v10 and v3.AvatarExperienceWrapperTransparent or v3.AvatarExperienceWrapper,
            detail = v7,
            extraProps = {
                routeName = v6,
                params = v2.Dictionary.join(v8 or {}, {
                    detail = v7
                })
            }
        }));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.NavigateDownToAvatarScreen);
local v5 = v2.Component:extend("RedirectToAppRouterScreen");
v5.didMount = function(v6)
    local l_navigation_0 = v6.props.navigation;
    v6.props.navigateDownToAvatarScreen(l_navigation_0.state.routeName, l_navigation_0.state.key, l_navigation_0.state.params);
    l_navigation_0.pop();
end;
v5.render = function(_)
    return nil;
end;
return v3.connect(nil, function(v9)
    return {
        navigateDownToAvatarScreen = function(v10, v11, v12)
            return v9(v4(v10, v11, v12));
        end
    };
end)(v5);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_Modules_0.AvatarExperience.Common.Thunks.NavigateIntoAvatarExperience);
local v5 = v2.Component:extend("RedirectToAvatarScreen");
v5.didMount = function(v6)
    local l_navigation_0 = v6.props.navigation;
    v6.props.navigateIntoAvatarExperience(l_navigation_0.state.routeName, l_navigation_0.state.params);
    l_navigation_0.pop();
end;
v5.render = function(_)
    return nil;
end;
return v3.connect(nil, function(v9)
    return {
        navigateIntoAvatarExperience = function(v10, v11)
            return v9(v4(v10, v11, true));
        end
    };
end)(v5);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.RedirectToAppRouterScreen);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.RedirectToAvatarScreen);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarPromptDescriptors);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.AvatarExperienceWrapperScreens);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.withAppRouterParams);
return function(v9)
    local v10 = {};
    if not v7[v9] then
        error("Initial route is not supported by AvatarExperienceWrapper: " .. tostring(v9));
    end;
    local v11 = v8(v7[v9]);
    local function _(v12, v13)
        if not v10[v12] then
            v10[v12] = v13;
        end;
    end;
    local function _(v15)
        v10[v15] = nil;
    end;
    for _, v18 in v5, nil, nil do
        local v19 = not not (v7[v18] ~= nil) and v3 or v4;
        if not v10[v18] then
            v10[v18] = v19;
        end;
    end;
    for _, v21 in v6, nil, nil do
        for v22, _ in v21, nil, nil do
            v10[v22] = nil;
        end;
    end;
    v10[v5.AvatarExperienceMainStackNavigator] = nil;
    v10[v9] = nil;
    return (v2.List.join({
        {
            [v9] = v11
        }
    }, v2.List.map(v2.Dictionary.keys(v10), function(v24)
        return {
            [v24] = v10[v24]
        };
    end)));
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.RoactNavigation);
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.createAvatarExperienceStackNavigator);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.buildMainStackConfigTable);
return function(v5)
    return (v3(v4(v5), {
        mode = v2.StackPresentationStyle.Overlay,
        defaultNavigationOptions = {
            overlayEnabled = true,
            overlayTransparency = 1,
            absorbInput = false,
            renderUnderlyingPage = true
        }
    }));
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_Modules_0.LuaApp.AppPage);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v6 = require(l_Modules_0.LuaApp.AppPageProperties);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.AppRouterParamsContext);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.makeAppRouterRootNavigator);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRouteContext);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.makeAvatarRoute);
local v11 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreenProperties);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local function _(v13)
    local l_name_0 = v13.name;
    if not (l_name_0 ~= v4.AvatarExperienceWrapper) or l_name_0 == v4.AvatarExperienceWrapperTransparent then
        l_name_0 = v13.extraProps.routeName;
    end;
    return l_name_0;
end;
local function v28(v16, v17)
    local v18 = v5.getActiveScreenNavigationState(v16.state);
    local v19 = not not v18.params and v18.params.detail or nil;
    local l_routeName_0 = v18.routeName;
    local v21 = v11[l_routeName_0];
    local v22 = v21 and v21.isTransparent;
    local v23 = 0;
    for v24 = #v17, 1, -1 do
        local v25 = v17[v24];
        local l_name_1 = v25.name;
        if not (l_name_1 ~= v4.AvatarExperienceWrapper) or l_name_1 == v4.AvatarExperienceWrapperTransparent then
            l_name_1 = v25.extraProps.routeName;
        end;
        local l_l_name_1_0 = l_name_1;
        if l_l_name_1_0 == l_routeName_0 and v25.detail == v19 then
            return true;
        elseif not v6[l_l_name_1_0] or v6[l_l_name_1_0].renderUnderlyingPage then
            if v22 then
                v23 = v23 + 1;
                if v23 >= 1 then
                    return false;
                end;
            end;
        else
            return false;
        end;
    end;
    return false;
end;
return function(v29)
    local v30 = v8(v29);
    local v31 = v2.PureComponent:extend("AppRouterRootContainer");
    v31.render = function(v32)
        local l_navigation_0 = v32.props.navigation;
        return v2.createElement(v7.Provider, {
            value = v32.props.params
        }, {
            AvatarRouteProvider = v2.createElement(v9.Provider, {
                value = v10(l_navigation_0, (v28(l_navigation_0, v32.props.currentRoute)))
            }, {
                navigation = v2.createElement(v30, {
                    navigation = l_navigation_0
                }),
                androidBackButtonNavigationHandler = v32.props.renderAndroidBackButtonNavigationHandler(l_navigation_0)
            })
        });
    end;
    v31 = v3.connect(function(v34, _)
        local l_history_0 = v34.Navigation.history;
        return {
            currentRoute = l_history_0[#l_history_0]
        };
    end, nil)(v31);
    v31.router = v30.router;
    return v31;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.RoactNavigation);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarPromptDescriptors);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.makeAppRouterMainStackNavigator);
local function v8(v7)
    return (v2.List.join({
        {
            [v4.AvatarExperienceMainStackNavigator] = v6(v7)
        }
    }, v5));
end;
return function(v9)
    return (v3.createRobloxStackNavigator(v8(v9), {
        mode = v3.StackPresentationStyle.Overlay,
        defaultNavigationOptions = {
            absorbInput = false,
            overlayEnabled = true,
            overlayTransparency = 1
        }
    }));
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.AppRouterParamsContext);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v6 = require(l_Modules_0.LuaApp.Navigation.isRootRouteInRN);
return function(v7)
    local v8 = v3.PureComponent:extend("AppRouterParams");
    v8.init = function(v9)
        local l_navigation_0 = v9.props.navigation;
        if not (not v6(v5.getRootNavigation(l_navigation_0).state) or not v9.props.params) then
            l_navigation_0.setParams(v9.props.params);
        end;
    end;
    v8.render = function(v11)
        if v11.props.navigation.state.params == nil then
            return nil;
        else
            return v3.createElement(v7, v2.Dictionary.join(v11.props, {
                params = v2.None
            }));
        end;
    end;
    return function(v12)
        return v3.createElement(v4.Consumer, {
            render = function(v13)
                if v13.setNavigationForTests then
                    v13.setNavigationForTests(v12.navigation);
                    v13 = v2.Dictionary.join(v13, {
                        setNavigationForTests = v2.None
                    });
                end;
                return v3.createElement(v8, (v2.Dictionary.join(v12, {
                    params = v13
                })));
            end
        });
    end;
end;


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


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local l_SetTabBarVisible_0 = require(l_CorePackages_0.Workspace.Packages.AppTabBarRodux).Actions.SetTabBarVisible;
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarExperienceMainStackNavigator);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.getActiveChildNavigationOptionsSafely);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v11 = game:DefineFastFlag("AXStopUsingSystemBarAppPolicy", false);
local v12 = v3.Component:extend("AvatarExperienceMainStackContainer");
v12.didMount = function(v13)
    v13:setTabBarVisibility(v13.props);
end;
v12.willUpdate = function(v14, v15)
    v14:setTabBarVisibility(v15);
end;
v12.setTabBarVisibility = function(_, v17)
    if v17.avatarRoute.isVisible then
        local v18 = v8(v17.navigation);
        local v19 = nil;
        v19 = if not v11 then v17.shouldSystemBarUsuallyBePresent and true or v18.tabBarVisible == true else v18.tabBarVisible == true;
        if v19 ~= v17.tabBarVisible then
            v17.setTabBarVisible(v19);
        end;
        return ;
    else
        return ;
    end;
end;
v12.render = function(v20)
    return v3.createElement(v7, {
        navigation = v20.props.navigation
    });
end;
local function v23(v21, _)
    return {
        tabBarVisible = v21.TabBarVisible
    };
end;
local function v26(v24)
    return {
        setTabBarVisible = function(v25)
            v24(l_SetTabBarVisible_0(v25));
        end
    };
end;
if not v11 then
    v12 = l_RoactAppPolicy_0.connect(function(v27, _)
        return {
            shouldSystemBarUsuallyBePresent = v27.getShouldSystemBarUsuallyBePresent()
        };
    end)(v12);
end;
v12 = v4.connect(v23, v26)((v6(v12)));
v12.router = v7.router;
return v12;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.RoactNavigation);
local l_Components_0 = l_Modules_0.AvatarExperience.Common.Components;
local v5 = require(l_Components_0.RoactNavigation.AvatarScreen);
local v6 = require(l_Components_0.RoactNavigation.BackButtonAction);
local v7 = require(l_Components_0.RoactNavigation.LandingPageSwitchNavigator);
local v8 = require(l_Components_0.ItemDetails.ItemDetailsScreen);
local v9 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.AssetManagement.OutfitDetailsScreen);
local v10 = require(l_Components_0.RoactNavigation.createAvatarExperienceStackNavigator);
local v11 = require(l_Components_0.AvatarBackground);
local v12 = require(l_Components_0.RoactNavigation.AvatarRefinementSwitchNavigator);
local v13 = require(l_Components_0.ItemDetails.SellPage.SellPage);
local v14 = require(l_Components_0.ItemDetails.ItemOwnershipPage.ItemOwnershipPage);
local v15 = require(l_Components_0.ItemDetails.SellPage.SellItemPeekView);
local l_Components_1 = l_Modules_0.AvatarExperience.Catalog.Components;
local v17 = require(l_Components_1.Search.CatalogSearchPage);
local v18 = require(l_Components_1.Resellers.ResellersPage);
local v19 = require(l_Components_1.TryOnManager.TryOnManagerScreen);
local l_Components_2 = l_Modules_0.AvatarExperience.ProfilePictureEditor.Components;
local v21 = require(l_Components_2.ProfilePictureEditorCameraPage);
local v22 = require(l_Components_2.ProfilePictureEditorFinalPage);
local l_Components_3 = l_Modules_0.AvatarExperience.AvatarEditor.Components;
local v24 = require(l_Components_3.AssetManagement.UpdateOutfitPage);
local v25 = require(l_Components_3.AssetManagement.ManageOutfitPage);
local v26 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Components.LayeredClothingSortPage);
local v27 = require(l_Components_1.Filters.SortAndFiltersScreen);
local v28 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAccessoryAdjustmentEnabled);
local v29 = require(l_CorePackages_0.Workspace.Packages.TenFootUiCommon);
local l_ScreenKind_0 = v29.TenFootUiRNTypes.ScreenKind;
local l_GlobalNavDisplayOption_0 = v29.TenFootUiRNTypes.GlobalNavDisplayOption;
local v32 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXEnableOutfitAttribution);
local v33 = game:DefineFastFlag("AXEnabledShowLeftNavBarForDesktopAndVR1", false);
local v34 = nil;
local v35 = nil;
if v33 then
    local l_Platform_0 = game:GetService("UserInputService"):GetPlatform();
    local v37 = true;
    if l_Platform_0 ~= Enum.Platform.Windows then
        v37 = true;
        if l_Platform_0 ~= Enum.Platform.OSX then
            v37 = l_Platform_0 == Enum.Platform.Linux;
        end;
    end;
    v34 = v37;
    v35 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
end;
local v40 = {
    {
        [v5.LandingPageSwitchNavigator] = {
            screen = v7,
            navigationOptions = function(v38)
                local v39 = v3.getActiveChildNavigationOptions(v38.navigation);
                return {
                    tabBarVisible = v39.tabBarVisible,
                    backButtonAction = v39.backButtonAction
                };
            end
        }
    },
    {
        [v5.AvatarBackground] = {
            screen = v11,
            navigationOptions = {
                backButtonAction = v6.NoOp
            }
        }
    },
    {
        [v5.ItemDetails] = v8
    },
    {
        [v5.CatalogSearch] = v17
    },
    {
        [v5.SellItemPage] = v13
    },
    {
        [v5.ResellersPage] = v18
    },
    {
        [v5.UpdateOutfitPage] = v24
    },
    {
        [v5.ManageOutfitPage] = v25
    },
    {
        [v5.ProfilePictureEditorCamera] = v21
    },
    {
        [v5.ProfilePictureEditorFinal] = v22
    },
    {
        [v5.SortAndFilters] = v27
    },
    {
        [v5.TryOnManager] = v19
    },
    {
        [v5.ItemOwnershipPage] = v14
    },
    {
        [v5.SellItemPeekView] = v15
    }
};
if v28() then
    table.insert(v40, {
        [v5.AvatarRefinementSwitchNavigator] = {
            screen = v12
        }
    });
end;
if not v28() then
    table.insert(v40, {
        [v5.LayeredClothingSort] = v26
    });
end;
if v32 then
    table.insert(v40, {
        [v5.OutfitDetails] = v9
    });
end;
local v41 = false;
if not (not v33 or not v34 and not v35()) then
    v41 = true;
end;
return v10(v40, {
    defaultNavigationOptions = {
        overlayEnabled = true,
        overlayTransparency = 1,
        absorbInput = false,
        tabBarVisible = v41,
        screenKind = l_ScreenKind_0.FullScreen,
        globalNavDisplayOption = l_GlobalNavDisplayOption_0.HideAll
    },
    mode = v3.StackPresentationStyle.Overlay
});


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRouteContext);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.makeAvatarRoute);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.AvatarExperienceAlwaysMounted);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarExperienceRootNavigator);
local v9 = require(l_Modules_0.LuaApp.Navigation.CurrentTabContext);
local v10 = require(l_Modules_0.LuaApp.Navigation.SwitchNavigatorVisibleContext);
local v11 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v15 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v16 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.loadtime");
local l_IntervalPerformanceTracker_0 = require(l_CorePackages_0.Workspace.Packages.IntervalPerformanceTracker).IntervalPerformanceTracker;
local v18 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v19 = require(l_Modules_0.AvatarExperience.Common.Context.NamedRefsContext);
local v20 = v3.Component:extend("AvatarExperienceRootContainer");
local v21 = require(l_CorePackages_0.Packages.RoactGamepad);
local v22 = game:DefineFastFlag("EnableAXEnableAXClientLatencyLogging", false);
local v23 = game:DefineFastFlag("EnableAXFPSLogging", false);
local v24 = game:DefineFastFlag("EnableAXClientErrorLogging", false);
local v25 = game:DefineFastFlag("EnableAXClientLatencyLoggingByPlatform", false);
local v26 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v27 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Utils.GetTopLevelPageFPSCounterName);
local v28 = game:DefineFastInt("AvatarExperienceFPSDuration", 6);
v20.init = function(v29)
    v29.namedRefs = v21.createRefCache();
    if v22 then
        v29.startAXLatencyTimer = os.clock();
        v29.isNavigating = false;
    end;
    if v23 then
        v29:trackTopLevelPageFPS((v6(v29.props.navigation, false)));
    end;
end;
v20.render = function(v30)
    return v3.createElement(v9.Consumer, {
        render = function(v31)
            return v3.createElement(v10.Consumer, {
                render = function(v32)
                    local v33 = v30.props.screenProps and v30.props.screenProps.isVisible;
                    if not v33 then
                        if v32 then
                            v33 = true;
                            if not (v31 ~= v4.AvatarExperienceRoot) then
                                goto label0;
                            end;
                        end;
                        v33 = false;
                    end;
                    ::label0::;
                    return v3.createElement("Frame", {
                        Size = UDim2.fromScale(1, 1),
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        Visible = v33
                    }, {
                        AvatarExperienceRoot = v30:renderWithVisibility(v33)
                    });
                end
            });
        end
    });
end;
v20.renderWithVisibility = function(v34, v35)
    local l_navigation_0 = v34.props.navigation;
    local v37 = v6(l_navigation_0, v35);
    return v3.createElement(v19.Provider, {
        value = v34.namedRefs
    }, {
        AvatarRouteProvider = v3.createElement(v5.Provider, {
            value = v37
        }, {
            RootNavigator = v3.createElement(v8, {
                navigation = l_navigation_0,
                avatarRoute = v37
            }),
            AlwaysMounted = v3.createElement(v7, {
                navigation = l_navigation_0,
                avatarRoute = v37
            })
        })
    });
end;
local function v40(v38)
    local l_TopLevelErrors_0 = v11.Counter.TopLevelErrors;
    return {
        [v4.Catalog] = l_TopLevelErrors_0.CatalogViewError,
        [v4.CatalogSearch] = l_TopLevelErrors_0.SearchViewError,
        [v4.AvatarEditor] = l_TopLevelErrors_0.EditorViewError,
        [v4.ItemDetails] = not not v38 and l_TopLevelErrors_0.SearchItemDetailsViewError or l_TopLevelErrors_0.CatalogItemDetailsViewError,
        [v4.SortAndFilters] = not not v38 and l_TopLevelErrors_0.SearchFiltersViewError or l_TopLevelErrors_0.CatalogFiltersViewError
    };
end;
local function v44(v41, v42)
    local v43 = v40((v12.isWithinViewContext(v41, v4.CatalogSearch)))[v41.current.name] or v11.Counter.TopLevelErrors.UnknownViewError;
    task.spawn(function()
        v42.sendAXCounter(v43);
    end);
end;
local function v47(v45)
    local l_TopLevelLatency_0 = v11.Counter.TopLevelLatency;
    return {
        [v4.Catalog] = l_TopLevelLatency_0.CatalogViewLatency,
        [v4.CatalogSearch] = l_TopLevelLatency_0.SearchViewLatency,
        [v4.AvatarEditor] = l_TopLevelLatency_0.EditorViewLatency,
        [v4.ItemDetails] = not not v45 and l_TopLevelLatency_0.SearchItemDetailsViewLatency or l_TopLevelLatency_0.CatalogItemDetailsViewLatency,
        [v4.SortAndFilters] = not not v45 and l_TopLevelLatency_0.SearchFiltersViewLatency or l_TopLevelLatency_0.CatalogFiltersViewLatency
    };
end;
v20.trackTopLevelPageLatency = function(v48)
    local v49 = v6(v48.props.navigation, false);
    local l_appAnalytics_0 = v48.props.appAnalytics;
    local v51 = v47((v12.isWithinViewContext(v49, v4.CatalogSearch)))[v49.current.name] or v11.Counter.TopLevelLatency.UnknownViewLatency;
    local v52 = (os.clock() - v48.startAXLatencyTimer) * 1000;
    v16:info("Avatar experirence load time: {} ms", v52);
    if not v25 then
        l_appAnalytics_0.Diag:reportStats(v51, v52);
    else
        l_appAnalytics_0.Diag:reportStats(v51 .. "_" .. v18.getDeviceType(), v52);
    end;
    v48.startAXLatencyTimer = nil;
end;
v20.trackTopLevelPageFPS = function(_, v54)
    local v55 = v27(v54.current.name, v54);
    if not v28 or v28 <= 0 then
        v28 = 1;
    end;
    l_IntervalPerformanceTracker_0:startTracking(v55, v28);
end;
if v24 then
    v20.componentDidCatch = function(v56, v57, _)
        v44(v6(v56.props.navigation, false), v56.props.catalogAnalytics);
        error(v57);
    end;
    if v22 then
        v20.didMount = function(v59)
            v59:trackTopLevelPageLatency();
        end;
        v20.willUpdate = function(v60, v61)
            local v62 = v6(v61.navigation, false);
            if v62.current.name ~= v6(v60.props.navigation, false).current.name then
                v60.startAXLatencyTimer = os.clock();
                v60.isNavigating = true;
                if v23 then
                    v60:trackTopLevelPageFPS(v62);
                end;
            end;
        end;
        v20.didUpdate = function(v63, v64)
            local v65 = v6(v63.props.navigation, false);
            local l_name_0 = v6(v64.navigation, false).current.name;
            local l_name_1 = v65.current.name;
            if v63.isNavigating and l_name_1 ~= l_name_0 then
                v63:trackTopLevelPageLatency();
                v63.isNavigating = false;
            end;
        end;
    end;
    v20 = l_RoactServices_0.connect({
        catalogAnalytics = v15,
        appAnalytics = if not v22 then nil else v26
    })(v20);
end;
v20.router = v8.router;
return v20;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.RoactNavigation);
local v4 = require(l_CorePackages_0.Cryo);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.ModalPromptsStackNavigator);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarPromptDescriptors);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v9 = require(l_CorePackages_0.Workspace.Packages.TenFootUiCommon);
return v3.createRobloxStackNavigator(v4.List.join({
    {
        [v5.ModalPromptsStackNavigator] = {
            screen = v6,
            navigationOptions = function(v10)
                return {
                    overlayTransparency = 1,
                    absorbInput = false,
                    backButtonAction = v3.getActiveChildNavigationOptions(v10.navigation).backButtonAction
                };
            end
        }
    }
}, v7), {
    defaultNavigationOptions = {
        overlayEnabled = true,
        absorbInput = false,
        screenKind = v9.TenFootUiRNTypes.ScreenKind.FullScreen,
        globalNavDisplayOption = v9.TenFootUiRNTypes.GlobalNavDisplayOption.HideAll
    },
    transitionConfig = v8.instantTransitionConfig,
    mode = v3.StackPresentationStyle.Overlay
});


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_StackRouter_0 = require(l_CorePackages_0.RoactNavigation).StackRouter;
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarExperienceActions);
return function(v5, v6)
    local v9 = l_StackRouter_0(v5, (v3.Dictionary.join(v6 or {}, {
        getCustomActionCreators = function(_, _)
            return {
                clearScreens = v4.clearScreens
            };
        end
    })));
    local l_getStateForAction_0 = v9.getStateForAction;
    v9.getStateForAction = function(v11, v12)
        if v11.type == v4.ClearScreens then
            local v13 = v3.List.toSet(v11.routeNames);
            local v15 = v3.List.filter(v12.routes, function(v14)
                return not v13[v14.routeName];
            end);
            return (v3.Dictionary.join(v12, {
                routes = v15,
                index = #v15
            }));
        else
            return l_getStateForAction_0(v11, v12);
        end;
    end;
    return v9;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Workspace.Packages.SharedFlags);
local v4 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.Prompts.EquipOutfitConfirmation);
local v5 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.Prompts.CreateOrUpdateOutfitMenu);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.LeaveCatalogToAvatarPrompt);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.InsufficientRobuxPrompt);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.PremiumSellOnlyPrompt);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.PurchasePrompt);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.SellItemPrompt);
local v11 = require(l_Modules_0.LuaApp.Components.More.TwoStepRequiredContainer);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.RemoveCurrentlySellingItemPrompt);
local v13 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Components.Prompts.RemoveItemPrompt);
local v14 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Components.Prompts.ResetLCSortPrompt);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.ResetToNewCharacterPrompt);
local v16 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.OutfitIncompletePrompt);
local v17 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.PurchaseLookPrompt);
local v18 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.PurchaseOutfitPrompt);
local v19 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.CatalogContextFrame);
local v20 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.ContextFrame);
local v21 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Components.Prompts.LCSortContextFrame);
local v22 = require(l_Modules_0.AvatarExperience.Common.Components.AvatarExperienceQuickMenu);
local v23 = require(l_Modules_0.AvatarExperience.Common.Components.AXTransitionContextualMenu);
local v24 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.CatalogReport);
local v25 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.Prompts.SaveOutfitPrompt);
local v26 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.Prompts.RenameOutfitPrompt);
local v27 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.Prompts.DeleteOutfitPrompt);
local v28 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.Prompts.DuplicateOutfitNamePrompt);
local v29 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.Prompts.DuplicateOutfitInfoPrompt);
local v30 = require(l_Modules_0.AvatarExperience.Common.Components.Prompts.R15UpgradePrompt);
local v31 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.Prompts.LayeredClothingR6SwitchPrompt);
local v32 = require(l_Modules_0.LuaApp.Components.AbuseReporting.CatalogReportContainer);
local v33 = require(l_Modules_0.LuaApp.Components.PremiumUpsell.PremiumUpsellContainer);
local v34 = require(l_Modules_0.LuaApp.Components.RobuxUpsell.RobuxUpsellContainer);
local v35 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.CollectiblesInfoPrompt);
local v36 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.ResaleFeePolicyPrompt);
local v37 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.GenericPrompt);
local v38 = require(l_Modules_0.AvatarExperience.Catalog.Components.ItemToExperienceModal);
local v39 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.Prompts.OpenExperienceTraversalPrompt);
local v40 = require(l_Modules_0.AvatarExperience.ProfilePictureEditor.Components.ProfilePictureEditorRevertToDefaultPrompt);
local v41 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v42 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableCollectiblesInfoPrompt);
local l_GetFFlagLuafiedReportEntryPoints_0 = v3.GetFFlagLuafiedReportEntryPoints;
local v44 = require(l_Modules_0.AvatarExperience.Flags.GetAXInExperienceItemLinking);
local v45 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXEnableRevertPpeCustomizationFlow);
local v46 = {
    {
        [v41.PremiumUpsellPrompt] = v33
    },
    {
        [v41.CatalogReport] = v24
    },
    {
        [v41.SaveOutfitPrompt] = v25
    },
    {
        [v41.RenameOutfitPrompt] = v26
    },
    {
        [v41.DeleteOutfitPrompt] = v27
    },
    {
        [v41.DuplicateOutfitNamePrompt] = v28
    },
    {
        [v41.DuplicateOutfitInfoPrompt] = v29
    },
    {
        [v41.LayeredClothingR6SwitchPrompt] = v31
    },
    {
        [v41.EquipOutfitConfirmation] = v4
    },
    {
        [v41.LeaveCatalogToAvatarPrompt] = v6
    },
    {
        [v41.InsufficientRobuxPrompt] = v7
    },
    {
        [v41.RobuxUpsellPrompt] = v34
    },
    {
        [v41.TwoStepRequiredPrompt] = v11
    },
    {
        [v41.PremiumSellOnlyPrompt] = v8
    },
    {
        [v41.SellItemPrompt] = v10
    },
    {
        [v41.RemoveCurrentlySellingItemPrompt] = v12
    },
    {
        [v41.RemoveItemPrompt] = v13
    },
    {
        [v41.ResetLCSortPrompt] = v14
    },
    {
        [v41.ResetToNewCharacterPrompt] = v15
    },
    {
        [v41.OutfitIncompletePrompt] = v16
    },
    {
        [v41.PurchaseOutfitPrompt] = v18
    },
    {
        [v41.PurchaseCatalogItem] = v9
    },
    {
        [v41.CreateOrUpdateOutfitMenu] = v5
    },
    {
        [v41.AvatarExperienceQuickMenu] = v22
    },
    {
        [v41.CatalogContextMenu] = {
            screen = v19,
            navigationOptions = {
                overlayTransparency = 1
            }
        }
    },
    {
        [v41.LCSortContextMenu] = {
            screen = v21,
            navigationOptions = {
                overlayTransparency = 1
            }
        }
    },
    {
        [v41.AXTransitionContextualMenu] = {
            screen = v23,
            navigationOptions = {
                overlayTransparency = 1
            }
        }
    },
    {
        [v41.R15UpgradePrompt] = v30
    }
};
if v44() then
    table.insert(v46, {
        [v41.ItemExperiencesMenu] = v38
    });
end;
if v42() then
    table.insert(v46, {
        [v41.CollectiblesInfoPrompt] = v35
    });
end;
if l_GetFFlagLuafiedReportEntryPoints_0() then
    table.insert(v46, {
        [v41.ReportDialog] = v32
    });
end;
table.insert(v46, {
    [v41.ResaleFeePolicyPrompt] = v36
});
table.insert(v46, {
    [v41.GenericPrompt] = v37
});
table.insert(v46, {
    [v41.ContextMenu] = {
        screen = v20,
        navigationOptions = {
            overlayTransparency = 1
        }
    }
});
table.insert(v46, {
    [v41.PurchaseLookPrompt] = v17
});
table.insert(v46, {
    [v41.OpenExperienceTraversalPrompt] = v39
});
if v45() then
    table.insert(v46, {
        [v41.ProfilePictureEditorRevertToDefaultPrompt] = v40
    });
end;
return v46;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").RoactNavigation);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AccessoryAdjustmentStackNavigator);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.Refinement.AvatarRefinement);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
return v1.createRobloxSwitchNavigator({
    {
        [v5.AvatarRefinement] = v4
    },
    {
        [v5.AccessoryAdjustmentStackNavigator] = v3
    },
    {
        [v5.LayeredClothingSortStackNavigator] = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.LayeredClothingSortStackNavigator)
    }
}, {
    backBehavior = v1.BackBehavior.History,
    defaultNavigationOptions = {
        overlayEnabled = true,
        overlayTransparency = 1,
        absorbInput = false,
        renderUnderlyingPage = false,
        isTransparent = true
    },
    mode = v1.StackPresentationStyle.Default
});


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.RouteInfo);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = {};
v6.__index = v6;
v6.maxPreviousCount = 2;
v6.Interface = v5.strictInterface({
    current = v3.Interface,
    previousPages = v5.optional(v5.array(v3.Interface)),
    opaque = v3.Interface,
    isVisible = v5.boolean,
    isOverlayVisible = v5.boolean
});
v6.new = function(v7)
    local v8 = {
        current = v7.current or v3.EMPTY,
        previousPages = v7.previousPages or {},
        opaque = v7.opaque or v3.EMPTY,
        isVisible = v7.isVisible or false,
        isOverlayVisible = v7.isOverlayVisible or false
    };
    setmetatable(v8, v6);
    return v8;
end;
v6.__tostring = function(v9)
    local l_current_0 = v9.current;
    local l_opaque_0 = v9.opaque;
    local v12 = "AvatarRoute[" .. (not v9.isVisible and "Not Visible" or "Visible") .. (not v9.isOverlayVisible and "" or " *Overlay") .. ", " .. tostring(l_current_0);
    if l_current_0.name ~= l_opaque_0.name then
        v12 = v12 .. ", opaque: " .. tostring(l_opaque_0);
    end;
    return v12 .. "]";
end;
v6.__eq = function(v13, v14)
    if v13 and v14 then
        if not rawequal(v13, v14) then
            local v15 = false;
            if v13.isVisible == v14.isVisible then
                v15 = false;
                if v13.isOverlayVisible == v14.isOverlayVisible then
                    v15 = false;
                    if v13.current == v14.current then
                        v15 = v13.opaque == v14.opaque;
                    end;
                end;
            end;
            return v15;
        else
            return true;
        end;
    else
        return false;
    end;
end;
return v6;


return {
    None = "None",
    AvatarExperienceLandingPage = "AvatarExperienceLandingPage",
    AvatarEditor = "AvatarEditor",
    Catalog = "Catalog",
    CatalogSearch = "CatalogSearch",
    ItemDetails = "ItemDetails",
    OutfitDetails = "OutfitDetails",
    SellItemPage = "SellItemPage",
    ItemOwnershipPage = "ItemOwnershipPage",
    ResellersPage = "ResellersPage",
    AvatarBackground = "AvatarBackground",
    ProfilePictureEditorEmotes = "ProfilePictureEditorEmotes",
    TryOnItem = "TryOnItem",
    TryOnManager = "TryOnManager",
    AvatarRefinement = "AvatarRefinement",
    SortAndFilters = "SortAndFilters",
    AccessoryAdjustment = "AccessoryAdjustment",
    AdjustAccessoryView = "AdjustAccessoryView",
    LayeredClothingSort = "LayeredClothingSort",
    ProfilePictureEditorCamera = "ProfilePictureEditorCamera",
    ProfilePictureEditorFinal = "ProfilePictureEditorFinal",
    ProfilePictureEditorRevertToDefaultPrompt = "ProfilePictureEditorRevertToDefaultPrompt",
    PurchaseCatalogItem = "PurchaseCatalogItem",
    InsufficientRobuxPrompt = "InsufficientRobuxPrompt",
    LeaveCatalogToAvatarPrompt = "LeaveCatalogToAvatarPrompt",
    CatalogContextMenu = "CatalogContextMenu",
    ContextMenu = "ContextMenu",
    LCSortContextMenu = "LCSortContextMenu",
    SellItemPrompt = "SellItemPrompt",
    SellItemPeekView = "SellItemPeekView",
    RemoveCurrentlySellingItemPrompt = "RemoveCurrentlySellingItemPrompt",
    RemoveItemPrompt = "RemoveItemPrompt",
    ResetLCSortPrompt = "ResetLCSortPrompt",
    ResetToNewCharacterPrompt = "ResetToNewCharacterPrompt",
    OutfitIncompletePrompt = "OutfitIncompletePrompt",
    PurchaseLookPrompt = "PurchaseLookPrompt",
    PurchaseOutfitPrompt = "PurchaseOutfitPrompt",
    PremiumSellOnlyPrompt = "PremiumSellOnlyPrompt",
    AvatarExperienceQuickMenu = "AvatarExperienceQuickMenu",
    EquipOutfitConfirmation = "EquipOutfitConfirmation",
    PremiumUpsellPrompt = "PremiumUpsellPrompt",
    RobuxUpsellPrompt = "RobuxUpsellPrompt",
    TwoStepRequiredPrompt = "TwoStepRequiredPrompt",
    SaveOutfitPrompt = "SaveOutfitPrompt",
    RenameOutfitPrompt = "RenameOutfitPrompt",
    DeleteOutfitPrompt = "DeleteOutfitPrompt",
    DuplicateOutfitNamePrompt = "DuplicateOutfitNamePrompt",
    DuplicateOutfitInfoPrompt = "DuplicateOutfitInfoPrompt",
    R15UpgradePrompt = "R15UpgradePrompt",
    LayeredClothingR6SwitchPrompt = "LayeredClothingR6SwitchPrompt",
    CatalogReport = "CatalogReport",
    ReportDialog = "AvatarReportDialog",
    CreateOrUpdateOutfitMenu = "CreateOrUpdateOutfitMenu",
    AXTransitionContextualMenu = "AXTransitionContextualMenu",
    AXTransitionSegmentedMenu = "AXTransitionSegmentedMenu",
    CollectiblesInfoPrompt = "CollectiblesInfoPrompt",
    ResaleFeePolicyPrompt = "ResaleFeePolicyPrompt",
    GenericPrompt = "GenericPrompt",
    ItemExperiencesMenu = "ItemExperiencesMenu",
    OpenExperienceTraversalPrompt = "OpenExperienceTraversalPrompt",
    UpdateOutfitPage = "UpdateOutfitPage",
    ManageOutfitPage = "ManageOutfitPage",
    AvatarExperienceRoot = "AvatarExperienceRoot",
    AvatarExperienceMainStackNavigator = "AvatarExperienceMainStackNavigator",
    AvatarRefinementSwitchNavigator = "AvatarRefinementSwitchNavigator",
    AvatarRefinementStackNavigator = "AvatarRefinementStackNavigator",
    LandingPageSwitchNavigator = "LandingPageSwitchNavigator",
    ModalPromptsStackNavigator = "ModalPromptsStackNavigator",
    AccessoryAdjustmentStackNavigator = "AccessoryAdjustmentStackNavigator",
    LayeredClothingSortStackNavigator = "LayeredClothingSortStackNavigator"
};


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v4 = require(l_CorePackages_0.Cryo);
local v5 = require(l_CorePackages_0.Packages.Dash);
local v6 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.screenprops");
local _ = require(l_Modules_0.AvatarExperience.Common.Constants);
local v8 = game:DefineFastFlag("AXEnableMultiTryOnUI", false);
local v9 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXEnableOutfitAttribution);
local v10 = {
    isTransparent = false,
    coversSceneWhenExpanded = false,
    isMultiTryOn = false,
    isTryOnOutfitResetPage = false,
    isRefinementPage = false,
    refinementButtonVisible = false,
    VRPanelRoundedCorners = false,
    VRPanelPlacement = "Center"
};
local v11 = {
    [v3.AccessoryAdjustment] = {
        isRefinementPage = true,
        isMultiTryOn = v8
    },
    [v3.AvatarExperienceLandingPage] = {
        isTryOnOutfitResetPage = true
    },
    [v3.AvatarExperienceRoot] = {},
    [v3.AvatarBackground] = {
        isTransparent = false
    },
    [v3.Catalog] = {
        refinementButtonVisible = true,
        VRPanelPlacement = "None",
        VRPanelRoundedCorners = true,
        isMultiTryOn = v8
    },
    [v3.CatalogContextMenu] = {
        VRPanelPlacement = "Right"
    },
    [v3.CatalogSearch] = {
        refinementButtonVisible = true,
        VRPanelPlacement = "None",
        VRPanelRoundedCorners = true,
        isMultiTryOn = v8
    },
    [v3.ItemDetails] = {
        isTransparent = true,
        coversSceneWhenExpanded = true,
        VRPanelPlacement = "Right",
        VRPanelRoundedCorners = true
    },
    [v3.OutfitDetails] = if not v9 then nil else {
        isTransparent = true,
        coversSceneWhenExpanded = true,
        VRPanelPlacement = "Right",
        VRPanelRoundedCorners = true
    },
    [v3.ItemOwnershipPage] = {
        isTransparent = true
    },
    [v3.CreateOrUpdateOutfitMenu] = {
        VRPanelPlacement = "Left"
    },
    [v3.LayeredClothingSort] = {
        isRefinementPage = true,
        VRPanelPlacement = "Center",
        isMultiTryOn = v8
    },
    [v3.LCSortContextMenu] = {
        VRPanelPlacement = "Right"
    },
    [v3.AvatarEditor] = {
        isTryOnOutfitResetPage = true,
        refinementButtonVisible = true,
        VRPanelPlacement = "None",
        VRPanelRoundedCorners = true
    },
    [v3.AvatarRefinement] = {
        VRPanelPlacement = "Right",
        VRPanelRoundedCorners = true
    },
    [v3.ManageOutfitPage] = {
        isTransparent = true
    },
    [v3.ProfilePictureEditorEmotes] = {
        isTryOnOutfitResetPage = true
    },
    [v3.ResellersPage] = {
        isTransparent = true
    },
    [v3.SellItemPage] = {
        isTransparent = true
    },
    [v3.SellItemPeekView] = {
        isTransparent = true
    },
    [v3.SortAndFilters] = {
        isTransparent = true,
        VRPanelPlacement = "Left"
    },
    [v3.TryOnItem] = {
        isTransparent = false
    },
    [v3.TryOnManager] = {
        isTransparent = true
    },
    [v3.UpdateOutfitPage] = {
        isTransparent = true,
        VRPanelPlacement = "Left",
        VRPanelRoundedCorners = true
    },
    [v3.AdjustAccessoryView] = {
        isTransparent = false
    }
};
local v12 = {};
for _, v14 in v3, nil, nil do
    v12[v14] = v4.Dictionary.join(v10, v11[v14] or {});
end;
if v6.active[v6.Levels.Trace] then
    v6:trace("AvatarScreenProperties = {}", v5.pretty(v12, {
        multiline = true
    }));
end;
return v12;


return require(game:GetService("CorePackages").enumerate)("BackButtonAction", {
    "GoBack",
    "Unhandled",
    "NoOp"
});


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local v6 = require(l_CorePackages_0.Packages.t);
local v7 = require(l_Modules_0.LuaApp.Enum.NotificationType);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.BackButtonAction);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Debug.connectFakeBackButton);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v11 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.backButton");
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.getActiveChildNavigationOptionsSafely);
local v13 = require(l_Modules_0.LuaApp.Thunks.ResetNavigationHistory);
local v14 = require(l_Modules_0.LuaApp.Thunks.InstantResetNavigationHistory);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v16 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v18 = v4.Component:extend("BackButtonHandler");
v18.validateProps = v6.strictInterface({
    navigation = v6.table,
    avatarExperienceActive = v6.boolean,
    resetNavigationHistory = v6.optional(v6.callback),
    instantResetNavigationHistory = v6.optional(v6.callback),
    avatarRoute = v6.optional(v6.table),
    EventForTests = v6.optional(v6.table)
});
v18.init = function(v19)
    v19.backButtonConnection = nil;
    v19.onBackButtonPressed = function()
        local l_navigation_0 = v19.props.navigation;
        local v21 = v19:getBackButtonAction();
        v11:info("pressed: {}", v21);
        if v21 == v8.GoBack then
            local l_prevNavPage_0 = v19.props.avatarRoute.current.params.prevNavPage;
            local l_prevNavHistory_0 = v19.props.avatarRoute.current.params.prevNavHistory;
            if not l_prevNavPage_0 or not l_prevNavHistory_0 then
                v10.closeFocusedScreen(l_navigation_0);
                return ;
            elseif not rawget(v15, l_prevNavPage_0) then
                v19.props.resetNavigationHistory(l_prevNavHistory_0);
                return ;
            else
                l_navigation_0.navigate(l_prevNavPage_0);
                return ;
            end;
        elseif v21 == v8.Unhandled then
            l_GuiService_0:BroadcastNotification("", v7.BACK_BUTTON_NOT_CONSUMED);
            return ;
        elseif v21 == v8.NoOp then
            return ;
        else
            v11:warning("Invalid back button action: {}", v21);
            return ;
        end;
    end;
    v9(v19.onBackButtonPressed);
end;
v18.getBackButtonAction = function(v24)
    return v12(v24.props.navigation).backButtonAction or v8.GoBack;
end;
v18.render = function(_)
    return nil;
end;
v18.didMount = function(v26)
    if v26.props.avatarExperienceActive then
        v26:connectBackButton();
    end;
end;
v18.didUpdate = function(v27, v28, _)
    if v28.avatarExperienceActive ~= v27.props.avatarExperienceActive then
        if not v27.props.avatarExperienceActive then
            v27:disconnectBackButton();
        else
            v27:connectBackButton();
            return ;
        end;
    end;
end;
v18.willUnmount = function(v30)
    v30:disconnectBackButton();
end;
v18.connectBackButton = function(v31)
    if not v31.backButtonConnection then
        v11:info("connected");
        pcall(function()
            if not v31.props.EventForTests then
                v31.backButtonConnection = l_GuiService_0.ShowLeaveConfirmation:Connect(v31.onBackButtonPressed);
                return ;
            else
                v31.backButtonConnection = v31.props.EventForTests:Connect(v31.onBackButtonPressed);
                return ;
            end;
        end);
        return ;
    else
        return ;
    end;
end;
v18.disconnectBackButton = function(v32)
    v11:info("disconnected");
    if v32.backButtonConnection then
        v32.backButtonConnection:Disconnect();
        v32.backButtonConnection = nil;
    end;
end;
return (v5.connect(function(v33, _)
    local l_history_0 = v33.Navigation.history;
    local v36 = l_history_0[#l_history_0];
    return {
        avatarExperienceActive = v36[#v36].name == v15.AvatarExperienceRoot
    };
end, function(v37)
    return {
        resetNavigationHistory = function(v38)
            return v37(v13(nil, v38));
        end,
        instantResetNavigationHistory = function(v39)
            return v37(v14(nil, v39));
        end
    };
end)((v16(v18))));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Packages.React);
local l_NavigationEvents_0 = require(l_CorePackages_0.RoactNavigation).NavigationEvents;
local l_useRouteName_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useRouteName;
local v5 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.events");
if v5.active[v5.Levels.Debug] then
    return function()
        local v6 = l_useRouteName_0();
        local function _(v7)
            v5:debug("[{}] {}", v6, v7);
        end;
        v2.useEffect(function()
            v5:debug("[{}] {}", v6, "didMount");
            return function()
                v5:debug("[{}] {}", v6, "willUnmount");
            end;
        end, {});
        return v2.createElement(l_NavigationEvents_0, {
            onWillFocus = function()
                v5:debug("[{}] {}", v6, "onWillFocus");
            end,
            onWillBlur = function()
                v5:debug("[{}] {}", v6, "onWillBlur");
            end,
            onDidFocus = function()
                v5:debug("[{}] {}", v6, "onDidFocus");
            end,
            onDidBlur = function()
                v5:debug("[{}] {}", v6, "onDidBlur");
            end
        });
    end;
else
    return function()
    end;
end;


local l_UserInputService_0 = game:GetService("UserInputService");
if game:GetService("RunService"):IsStudio() then
    return function(v1)
        l_UserInputService_0.InputEnded:Connect(function(v2)
            local v3 = v2.UserInputType == Enum.UserInputType.Keyboard;
            local v4 = v2:isModifierKeyDown(Enum.ModifierKey.Shift);
            if not (not v3 or not v4) and v2.KeyCode == Enum.KeyCode.Backspace then
                v1();
            end;
        end);
    end;
else
    return function(_)
    end;
end;


local function v0(v1, v2)
    local v3 = "";
    v2 = v2 .. "   ";
    local l_index_0 = v1.index;
    if not (not v1 or not v1.routes) then
        for v5, v6 in v1.routes, nil, nil do
            local l_routeName_0 = v6.routeName;
            if v5 == l_index_0 then
                l_routeName_0 = "*" .. l_routeName_0;
            end;
            v3 = v3 .. v2 .. l_routeName_0 .. "\n" .. v0(v6, v2);
        end;
    end;
    return v3;
end;
return function(v8)
    return "[Navigation Root]\n" .. v0(v8, "");
end;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.overlay");
return function(v1, v2)
    v0:info("onOverlayClosed {}, captureFocus: {}", v1, v2);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Debug.dumpNavigationHierarchy);
local v2 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.state");
return function(v3, v4)
    if v4 == nil then
        v4 = v2.active[v2.Levels.Trace];
    end;
    if v4 then
        local v5 = nil;
        return function(_, v7, v8)
            local v9 = v1(v7);
            print(string.format("[%s] action: %s\n%s", v3, tostring(v8.type), v9 == v5 and "" or v9));
            v5 = v9;
        end;
    else
        return function(_, _, _)
        end;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactNavigation);
local v6 = require(l_CorePackages_0.RoactRodux);
local v7 = require(l_Modules_0.AvatarExperience.Common.Actions.CompleteExternalNavigation);
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v9 = v4.PureComponent:extend("ExternalNavigationHandler");
local v10 = require(l_Modules_0.AvatarExperience.Common.Utils);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v12 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.externalnav");
local v13 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXClothingSortingDeeplink);
v9.render = function(_)
    return nil;
end;
v9.didMount = function(v15)
    v15:processNavigationRequest();
end;
v9.didUpdate = function(v16, _)
    v16:processNavigationRequest();
end;
local function v20(v18, v19)
    return v5.Actions.navigate({
        routeName = v8.LandingPageSwitchNavigator,
        action = v5.Actions.navigate({
            routeName = v18,
            params = v19
        })
    });
end;
local function v22(v21)
    return v5.Actions.navigate({
        routeName = v8.ItemDetails,
        params = v3.Dictionary.join(v21, {
            isFirstItemDetails = true
        })
    });
end;
v9.processNavigationRequest = function(v23)
    local l_completeExternalNavigation_0 = v23.props.completeExternalNavigation;
    local l_externalNavigationRequest_0 = v23.props.externalNavigationRequest;
    if l_externalNavigationRequest_0.completedRequestId ~= l_externalNavigationRequest_0.requestId then
        l_completeExternalNavigation_0(l_externalNavigationRequest_0.requestId);
        v23:navigateToScreen(l_externalNavigationRequest_0.screen, l_externalNavigationRequest_0.params);
    end;
end;
v9.navigateToScreen = function(v26, v27, v28)
    v12:info("navigateToScreen: {}, params: {}", v27, v28);
    local l_navigation_0 = v26.props.navigation;
    local v30 = nil;
    if v13() then
        v30 = function(v31)
            l_navigation_0.navigate(v8.AvatarExperienceMainStackNavigator, {}, v5.StackActions.reset({
                actions = v31,
                index = 2
            }));
        end;
    end;
    if v27 == v8.ItemDetails then
        if not v13() then
            l_navigation_0.navigate(v8.AvatarExperienceMainStackNavigator, {}, v5.StackActions.reset({
                actions = {
                    v20(v8.Catalog, {}),
                    v22(v28)
                },
                index = 2
            }));
            return ;
        else
            v30({
                v20(v8.Catalog, {}),
                v22(v28)
            });
            return ;
        end;
    elseif v13() and v27 == v8.LayeredClothingSort then
        v30({
            v20(v8.Catalog, {}),
            v5.Actions.navigate({
                routeName = v27
            })
        });
        return ;
    elseif not (v27 ~= v8.AvatarExperienceLandingPage) or v27 == v8.AvatarEditor then
        l_navigation_0.navigate(v27);
        return ;
    elseif v10.isAvatarBackground(v27) or v27 == v8.Catalog then
        l_navigation_0.navigate(v27, v28);
        return ;
    else
        warn("[ExternalNavigationHandler] Invalid screen:", v27);
        return ;
    end;
end;
return (v6.connect(function(v32, _)
    return {
        externalNavigationRequest = v32.AvatarExperience.ExternalNavigationRequest
    };
end, function(v34)
    return {
        completeExternalNavigation = function(v35)
            v34(v7(v35));
        end
    };
end)(v9));


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").RoactNavigation);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
return v1.createRobloxStackNavigator({
    {
        [require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen).LayeredClothingSort] = {
            screen = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Components.LayeredClothingSortPage)
        }
    }
}, {
    defaultNavigationOptions = {
        overlayEnabled = true,
        overlayTransparency = 1,
        absorbInput = false
    },
    mode = v1.StackPresentationStyle.Default
});


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.RoactNavigation);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarExperienceMainStackContainer);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v6 = require(l_CorePackages_0.Workspace.Packages.TenFootUiCommon);
return v3.createRobloxStackNavigator({
    {
        [v5.AvatarExperienceMainStackNavigator] = {
            screen = v4,
            navigationOptions = function(v7)
                return {
                    overlayTransparency = 1,
                    absorbInput = false,
                    backButtonAction = v3.getActiveChildNavigationOptions(v7.navigation).backButtonAction
                };
            end
        }
    }
}, {
    defaultNavigationOptions = {
        overlayEnabled = true,
        absorbInput = true,
        screenKind = v6.TenFootUiRNTypes.ScreenKind.FullScreen,
        globalNavDisplayOption = v6.TenFootUiRNTypes.GlobalNavDisplayOption.HideAll
    },
    mode = v3.StackPresentationStyle.Modal
});


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local l_Actions_0 = require(l_CorePackages_0.RoactNavigation).Actions;
local v4 = require(l_CorePackages_0.Cryo);
local _ = require(l_CorePackages_0.Packages.Dash);
local v6 = require(l_CorePackages_0.Logging);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v8 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.navutils");
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarExperienceActions);
local v11 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local _ = require(l_Modules_0.AvatarExperience.Catalog.SearchTypes);
local v13 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXEnableOutfitAttribution);
local v14 = {};
local function _(v15)
    if not l_RunService_0:IsStudio() then
        warn(v15);
        return ;
    else
        error(v15);
        return ;
    end;
end;
v14.instantTransitionConfig = function()
    return {
        transitionSpec = {
            frequency = 100000,
            dampingRatio = 1
        }
    };
end;
v14.navigateToSearch = function(v17, v18, v19)
    v14.closeFiltersAndItemDetails(v17);
    v14.closeTryOnManager(v17);
    v17.dispatch(v10.clearScreens({
        v11.CatalogSearch
    }));
    v17.dispatch(l_Actions_0.navigate({
        routeName = v11.CatalogSearch,
        params = {
            detail = v18,
            searchParams = v19
        },
        key = tostring(v18)
    }));
end;
v14.isWithinViewContext = function(v20, v21)
    if not (not v20 or not v20.previousPages) and #v21 > 0 then
        return #v4.List.filter(v20.previousPages, function(v22)
            return v22.name == v21;
        end) > 0;
    else
        v6.warn("NavigationUtils.isWithinViewContext() failed because you forget to provide a valid avatarRoute");
        return false;
    end;
end;
v14.isFirstItemDetailsPage = function(v23)
    return v23 and v23.getParam("isFirstItemDetails");
end;
v14.closeFocusedScreen = function(v24)
    v24.dispatch(l_Actions_0.back(nil));
end;
v14.closeFiltersAndItemDetails = function(v25)
    local v26 = {
        v11.ItemDetails,
        v11.SortAndFilters
    };
    if v13 then
        v26 = v4.List.join(v26, {
            v11.OutfitDetails
        });
    end;
    v25.dispatch(v10.clearScreens(v26));
end;
v14.closeTryOnManager = function(v27)
    v27.dispatch(v10.clearScreens({
        v11.TryOnManager
    }));
end;
v14.getRootNavigation = function(v28)
    local l_v28_0 = v28;
    while l_v28_0 do
        v28 = l_v28_0;
        l_v28_0 = not not v28._dangerouslyGetParent and v28._dangerouslyGetParent() or nil;
    end;
    return v28;
end;
local v30 = {};
local function _(v31)
    local v32 = v30[v31];
    if v32 == nil then
        local v33 = "Invalid modal screen name: " .. v31;
        if not l_RunService_0:IsStudio() then
            warn(v33);
            return v31;
        else
            error(v33);
            return v31;
        end;
    else
        return v32;
    end;
end;
v14.showCatalogPrompt = function(v35, v36, v37, v38)
    if v37 then
        local l_v36_0 = v36;
        local v40 = v30[l_v36_0];
        if v40 == nil then
            local v41 = "Invalid modal screen name: " .. l_v36_0;
            if not l_RunService_0:IsStudio() then
                warn(v41);
            else
                error(v41);
            end;
            v36 = l_v36_0;
        else
            v36 = v40;
        end;
    end;
    v35.navigate(v36, v38);
end;
v14.closeAllDialogs = function(v42)
    v42.navigate(v11.AvatarExperienceMainStackNavigator);
end;
local function v43()
end;
local function _(v44)
    return (not not v44 and v44.state) and v44.state.routeName or "<UnknownRoute>";
end;
local function _(v46)
    if v46 == v43 then
        return "no-op";
    elseif v46 == nil then
        return "nil";
    else
        return "callback";
    end;
end;
v14.removeOnOverlayClosed = function(v48)
    local l_onOverlayClosed_0 = (v48.state.params or {}).onOverlayClosed;
    if l_onOverlayClosed_0 then
        v48.setParams({
            onOverlayClosed = v43
        });
    end;
    if v8.active[v8.Levels.Debug] then
        v8:debug("removeOnOverlayClosed, routeName={}", (not not v48 and v48.state) and v48.state.routeName or "<UnknownRoute>");
    end;
    return l_onOverlayClosed_0;
end;
v14.invokeOnOverlayClosed = function(v50)
    local v51 = v50.getParam("onOverlayClosed");
    if v8.active[v8.Levels.Debug] then
        v8:debug("invokeOnOverlayClosed, routeName={}, onOverlayClosed={}", (not not v50 and v50.state) and v50.state.routeName or "<UnknownRoute>", v51 == v43 and "no-op" or (v51 == nil and "nil" or "callback"));
    end;
    if v51 then
        v51();
    end;
end;
v14.closeOverlay = function(v52)
    v14.invokeOnOverlayClosed(v52);
    v52.goBack();
end;
v14.navigateFromOverlay = function(v53, ...)
    v14.invokeOnOverlayClosed(v53);
    v53.navigate(...);
end;
v14.navigateToNextOverlay = function(v54, v55, v56, ...)
    local v57 = v14.removeOnOverlayClosed(v54);
    if v8.active[v8.Levels.Debug] then
        v8:debug("navigateToNextOverlay {} -> {}, onOverlayClosed={}", (not not v54 and v54.state) and v54.state.routeName or "<UnknownRoute>", v55, v57 == v43 and "no-op" or (v57 == nil and "nil" or "callback"));
    end;
    v54.replace(v55, v4.Dictionary.join(v56 or {}, {
        onOverlayClosed = v57
    }), ...);
end;
v14.getActiveScreenNavigationState = function(v58)
    while v58.routes do
        v58 = v58.routes[v58.index];
    end;
    return v58;
end;
return v14;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Roact);
local l_SceneView_0 = require(l_CorePackages_0.RoactNavigation).SceneView;
local v4 = {
    keepVisitedScreensMounted = false
};
local v5 = v2.Component:extend("PreloadingSwitchView");
local v6 = require(l_CorePackages_0.Packages.t);
v5.validateProps = v6.interface({
    navigation = v6.interface({
        state = v6.interface({
            index = v6.number,
            routes = v6.array(v6.table)
        })
    }),
    navigationConfig = v6.optional(v6.interface({
        keepVisitedScreensMounted = v6.optional(v6.boolean)
    })),
    screenProps = v6.optional(v6.any),
    descriptors = v6.table
});
v5.getDerivedStateFromProps = function(v7, v8)
    local l_state_0 = v7.navigation.state;
    local l_key_0 = l_state_0.routes[l_state_0.index].key;
    local l_descriptors_0 = v7.descriptors;
    local l_keepVisitedScreensMounted_0 = v1.Dictionary.join(v4, v7.navigationConfig or {}).keepVisitedScreensMounted;
    local v13 = {
        [l_key_0] = true
    };
    if l_keepVisitedScreensMounted_0 then
        local v14 = v8.visitedScreenKeys or {};
        for v15 in v14, nil, nil do
            if l_descriptors_0[v15] ~= nil then
                v13[v15] = true;
            end;
        end;
    end;
    return {
        visitedScreenKeys = v13
    };
end;
local function _(v16)
    return v16.options and v16.options.alwaysRendered;
end;
v5.render = function(v18)
    local l_state_1 = v18.props.navigation.state;
    local l_screenProps_0 = v18.props.screenProps;
    local l_descriptors_1 = v18.props.descriptors;
    local l_visitedScreenKeys_0 = v18.state.visitedScreenKeys;
    local l_key_1 = l_state_1.routes[l_state_1.index].key;
    local v24 = {};
    for v25, v26 in l_descriptors_1, nil, nil do
        local v27 = v25 == l_key_1;
        if not (l_visitedScreenKeys_0[v25] ~= true and not (v26.options and v26.options.alwaysRendered)) then
            v24["card_" .. v25] = v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                ClipsDescendants = false,
                BorderSizePixel = 0,
                Visible = v27
            }, {
                Content = v2.createElement(l_SceneView_0, {
                    component = v26.getComponent(),
                    navigation = v26.navigation,
                    screenProps = l_screenProps_0
                })
            });
        end;
    end;
    return v2.createElement("Folder", nil, v24);
end;
return v5;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v4 = require(l_CorePackages_0.tutils);
local v5 = require(l_CorePackages_0.Packages.t);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v7 = {};
v7.__index = v7;
v7.Interface = v5.strictInterface({
    name = v5.string,
    key = v5.string,
    params = v5.table
});
v7.new = function(v8, v9, v10)
    local v11 = {
        name = v8,
        key = v9,
        params = v10 or {}
    };
    setmetatable(v11, v7);
    return v11;
end;
v7.EMPTY = v7.new(v3.None, v3.None);
v7.__tostring = function(v12)
    return string.format("%s(key=%s)", v12.name, (tostring(v12.key)));
end;
v7.__eq = function(v13, v14)
    if not rawequal(v13, v14) then
        local v15 = false;
        if v13.key == v14.key then
            v15 = false;
            if v13.name == v14.name then
                v15 = v4.shallowEqual(v13.params, v14.params, nil);
            end;
        end;
        return v15;
    else
        return true;
    end;
end;
return v7;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return function(v5, v6)
    local l_TopLevelFPS_0 = v2.Counter.TopLevelFPS;
    local v8 = v3.isWithinViewContext(v6, v1.CatalogSearch);
    return ({
        [v1.Catalog] = l_TopLevelFPS_0.Catalog,
        [v1.CatalogSearch] = l_TopLevelFPS_0.Search,
        [v1.AvatarEditor] = l_TopLevelFPS_0.Editor,
        [v1.ItemDetails] = not not v8 and l_TopLevelFPS_0.SearchItemDetails or l_TopLevelFPS_0.CatalogItemDetails,
        [v1.SortAndFilters] = not not v8 and l_TopLevelFPS_0.SearchFilters or l_TopLevelFPS_0.CatalogFilters
    })[v5] or v2.Counter.TopLevelFPS.Unknown;
end;


local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
local function _(v1, v2)
    return v1.state.key == v2.key;
end;
local _ = function(v4, v5)
    for _, v7 in v5, nil, nil do
        if v4.state.key == v7.key then
            return true;
        end;
    end;
    return false;
end;
return function(v9)
    local l_avatarRoute_0 = v9.avatarRoute;
    local l_navigation_0 = v9.navigation;
    local v12 = l_navigation_0.state.key == l_avatarRoute_0.current.key;
    local v13;
    for _, v15 in l_avatarRoute_0.previousPages, nil, nil do
        if l_navigation_0.state.key == v15.key then
            v13 = true;
            goto label0 --[[  true, false  ]];
        end;
    end;
    v13 = false;
    ::label0::;
    return (v12 or v13) or l_navigation_0.state.key == l_avatarRoute_0.opaque.key;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.RoactNavigation);
local l_createNavigator_0 = v2.createNavigator;
local l_RobloxStackView_0 = v2.RobloxStackView;
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarExperienceStackRouter);
return function(v6, v7)
    return l_createNavigator_0(l_RobloxStackView_0, v5(v6, v7), v7 or {});
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.RoactNavigation);
local l_createNavigator_0 = v2.createNavigator;
local l_SwitchRouter_0 = v2.SwitchRouter;
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.PreloadingSwitchView);
return function(v6, v7)
    return l_createNavigator_0(v5, l_SwitchRouter_0(v6, v7), v7 or {});
end;


local v0 = require(game:GetService("CorePackages").RoactNavigation);
local function _(v1)
    local v2 = v1._dangerouslyGetParent();
    return ((not not v2 and v1.state) and v1.state.key) and v2.getChildNavigation(v1.state.key) or v1;
end;
return function(v4)
    local v5 = v4._dangerouslyGetParent();
    return v0.getActiveChildNavigationOptions(((not not v5 and v4.state) and v4.state.key) and v5.getChildNavigation(v4.state.key) or v4);
end;