local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v2 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
local v3 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagColorPickerSliderIXPEnabled);
local v4 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagColorPickerSliderIXPEnabledForAll);
return v2.defineIXPTest({
    name = "ColorPickerSlider",
    layer = game:DefineFastString("ColorPickerIXPLayer", v1.AvatarExperienceColorPickerExposure),
    recordExposure = false,
    getDependentFlagsEnabled = function()
        return true;
    end,
    getEnabledFlag = function()
        return v3();
    end,
    getEnabledForAllFlag = function()
        return v4();
    end,
    variables = {
        EnabledForUser = function(v5, v6)
            return (v6 or v5.colorPickerSliderEnabled) or false;
        end
    }
});


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


local v0 = require(script.Parent.FFlagAXAvatarWidgetData);
game:DefineFastFlag("AXAvatarWidgetTryOn4", false);
return function()
    return v0() and game:GetFastFlag("AXAvatarWidgetTryOn4");
end;


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


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


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


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


return game:DefineFastFlag("ShowCreateCostumeXBoxSignalR", false) and game:GetEngineFeature("XboxEnableSignalR");


game:DefineFastString("AXImpressionsEventName", "UserJourney");
return function()
    return game:GetFastString("AXImpressionsEventName");
end;


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


local v0 = require(script.Parent.GetFFlagAXLimitedBundlesHandleNewData);
game:DefineFastFlag("AXGateUGC4ACollectibleAssetsBundles", false);
return function()
    return game:GetFastFlag("AXGateUGC4ACollectibleAssetsBundles") and not v0();
end;


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


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


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


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
game:DefineFastFlag("AXItemDetailsContainer", false);
local v1 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
return function()
    if v1 then
        return game:GetFastFlag("AXItemDetailsContainer");
    else
        return false;
    end;
end;


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


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


local v0 = require(script.Parent.FFlagAXAvatarWidgetData);
game:DefineFastFlag("AXRefactorTryOnItems4", false);
return function()
    return v0() and game:GetFastFlag("AXRefactorTryOnItems4");
end;


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


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


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


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


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


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


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


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


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


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


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


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


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


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


return function()
    return game:GetEngineFeature("AvatarEditorServiceCreateOutfitSupportsGears");
end;


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


game:DefineFastFlag("UseAESGetOutfitDetailsInApp2", false);
return function()
    return game:GetFastFlag("UseAESGetOutfitDetailsInApp2") and game:GetEngineFeature("AESAddGetOutfitDetails");
end;


game:DefineFastInt("AXMinSecsToRefreshRecommendedCatalogPage", 60);
return function()
    return game:GetFastInt("AXMinSecsToRefreshRecommendedCatalogPage");
end;


game:DefineFastString("AXTallTilesThumbnailSize", "w=150&h=150");
return function()
    return game:GetFastString("AXTallTilesThumbnailSize");
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v2 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
game:DefineFastFlag("AXTileSizeIXPEnabled", false);
game:DefineFastString("AXTileSizeIXPLayer", v1.AvatarExperienceUAMarketplaceView);
return v2.defineIXPTest({
    name = "Avatar.ItemTileSize.Catalog.LearningTest.1",
    layer = game:GetFastString("AXTileSizeIXPLayer"),
    getDependentFlagsEnabled = function()
        return true;
    end,
    getEnabledFlag = function()
        return game:GetFastFlag("AXTileSizeIXPEnabled");
    end,
    getEnabledForAllFlag = function()
        return false;
    end,
    variables = {
        IsLargeCatalogItemTileForUser = function(v3, _)
            return v3.isLargeCatalogItemTile == true;
        end,
        IsSmallCatalogItemTileForUser = function(v5, _)
            return v5.isSmallCatalogItemTile == true;
        end
    }
});


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v2 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
game:DefineFastFlag("AXItemCardTallIXPEnabled", false);
game:DefineFastString("AXTallTileIXPLayer", v1.AvatarExperienceUAMarketplaceView);
return v2.defineIXPTest({
    name = "AvatarMarketplace.TallTileSize.Catalog.LearningTest.2",
    layer = game:GetFastString("AXTallTileIXPLayer"),
    getDependentFlagsEnabled = function()
        return true;
    end,
    getEnabledFlag = function()
        return game:GetFastFlag("AXItemCardTallIXPEnabled");
    end,
    getEnabledForAllFlag = function()
        return false;
    end,
    variables = {
        IsTallCatalogItemTileForUser = function(v3, _)
            return v3.isTallCatalogItemTile == true;
        end
    }
});


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v2 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
game:DefineFastFlag("AXRemovePriceFiltersIXPEnabled", false);
game:DefineFastFlag("AXRemovePriceRangeQueryIXPEnabledForAll", false);
game:DefineFastFlag("AXRemovePriceSortIXPEnabledForAll", false);
game:DefineFastString("AXRemovePriceFiltersIXPLayer", v1.AvatarExperienceUAFilterAndSortView);
return v2.defineIXPTest({
    name = "AXRemovePriceFilters",
    layer = game:GetFastString("AXRemovePriceFiltersIXPLayer"),
    getDependentFlagsEnabled = function()
        return true;
    end,
    getEnabledFlag = function()
        return game:GetFastFlag("AXRemovePriceFiltersIXPEnabled");
    end,
    getEnabledForAllFlag = function()
        return false;
    end,
    variables = {
        RemovePriceRangeQueryForUser = function(v3, _)
            local l_removePriceRangeQuery_0 = v3.removePriceRangeQuery;
            local l_AXRemovePriceRangeQueryIXPEnabledForAll_0 = game:GetFastFlag("AXRemovePriceRangeQueryIXPEnabledForAll");
            if not l_AXRemovePriceRangeQueryIXPEnabledForAll_0 then
                l_AXRemovePriceRangeQueryIXPEnabledForAll_0 = true;
                if l_removePriceRangeQuery_0 ~= true then
                    l_AXRemovePriceRangeQueryIXPEnabledForAll_0 = false;
                end;
            end;
            return l_AXRemovePriceRangeQueryIXPEnabledForAll_0;
        end,
        RemovePriceSortForUser = function(v7, _)
            local l_removePriceSort_0 = v7.removePriceSort;
            local l_AXRemovePriceSortIXPEnabledForAll_0 = game:GetFastFlag("AXRemovePriceSortIXPEnabledForAll");
            if not l_AXRemovePriceSortIXPEnabledForAll_0 then
                l_AXRemovePriceSortIXPEnabledForAll_0 = true;
                if l_removePriceSort_0 ~= true then
                    l_AXRemovePriceSortIXPEnabledForAll_0 = false;
                end;
            end;
            return l_AXRemovePriceSortIXPEnabledForAll_0;
        end
    }
});


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v2 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
game:DefineFastFlag("SponsoredItemsIXPEnabled4", false);
game:DefineFastFlag("SponsoredItemsEnabledForAll4", false);
game:DefineFastInt("DebugSponsoredItemsRow", 0);
local v3 = game:DefineFastString("SponsoredItemsIXPLayer", v1.AvatarMarketplaceAdsLayer);
local v4 = game:DefineFastString("SponsoredItemsIXPRowNum", "sponsoredItemsRowNum");
return v2.defineIXPTest({
    name = "SponsoredItems",
    layer = v3,
    getDependentFlagsEnabled = function()
        return true;
    end,
    getEnabledFlag = function()
        return game:GetFastFlag("SponsoredItemsIXPEnabled4");
    end,
    getEnabledForAllFlag = function()
        return game:GetFastFlag("SponsoredItemsEnabledForAll4");
    end,
    variables = {
        EnabledForUser = function(v5, v6)
            local v7;
            if not v6 then
                v7 = v5[v4] or 0;
            else
                local l_game_FastInt_0 = game:GetFastInt("DebugSponsoredItemsRow");
                v7 = if l_game_FastInt_0 > 0 then l_game_FastInt_0 else 3;
            end;
            return v7 > 0;
        end,
        Row = function(v9, v10)
            if not v10 then
                return v9[v4] or 0;
            else
                local l_game_FastInt_1 = game:GetFastInt("DebugSponsoredItemsRow");
                if l_game_FastInt_1 > 0 then
                    return l_game_FastInt_1;
                else
                    return 3;
                end;
            end;
        end
    }
});


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v2 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
local v3 = game:DefineFastString("LuaTopicsIXPLayer", v1.AvatarMarketplaceGuidedFeaturesLayer);
game:DefineFastFlag("TopicsIXPEnabled7", false);
game:DefineFastFlag("TopicsEnabledForAllInSearch", false);
game:DefineFastFlag("TopicsEnabledForAllInCategories", false);
local function _(v4)
    return v4.topicsVariant or 0;
end;
return v2.defineIXPTest({
    name = "Topics",
    layer = v3,
    recordExposure = false,
    getDependentFlagsEnabled = function()
        return true;
    end,
    getEnabledFlag = function()
        return game:GetFastFlag("TopicsIXPEnabled7");
    end,
    getEnabledForAllFlag = function()
        return false;
    end,
    variables = {
        ShowInCategories = function(v6, _)
            local v8 = v6.topicsVariant or 0;
            local v9 = true;
            if v8 ~= 1 then
                v9 = true;
                if v8 ~= 3 then
                    v9 = game:GetFastFlag("TopicsEnabledForAllInCategories");
                end;
            end;
            return v9;
        end,
        ShowInSearch = function(v10, _)
            local v12 = v10.topicsVariant or 0;
            local v13 = true;
            if v12 ~= 2 then
                v13 = true;
                if v12 ~= 3 then
                    v13 = game:GetFastFlag("TopicsEnabledForAllInSearch");
                end;
            end;
            return v13;
        end
    }
});


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v2 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
game:DefineFastFlag("UniversalAppCameraEnabled4", false);
local v3 = require(l_Modules_0.AvatarExperience.Flags.FFlagUniversalAppCameraEnabledForAll);
return v2.defineIXPTest({
    name = "CameraButton",
    getDependentFlagsEnabled = function()
        return game:GetEngineFeature("FacialAnimationStreaming2") and game:GetEngineFeature("VideoCaptureService");
    end,
    layer = game:DefineFastString("UniversalAppCameraIXPLayer", v1.CameraButton),
    recordExposure = false,
    getEnabledFlag = function()
        return game:GetFastFlag("UniversalAppCameraEnabled4");
    end,
    getEnabledForAllFlag = function()
        return v3;
    end,
    variables = {
        EnabledForUser = function(v4, v5)
            return v5 or v4.cameraButtonEnabled;
        end
    }
});


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        removedAssetId = v0,
        removedAssetTypeId = v1
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        currentSort = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        entryPage = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        savedAccessories = v0
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Rodux);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return v2.makeActionCreator(script.Name, function(v4)
    return {
        assetIdToOrderAndAssetTypeId = v4
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_AppStorageService_0 = game:GetService("AppStorageService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(l_CorePackages_0.Packages.RoactGamepad);
local v6 = require(l_CorePackages_0.Packages.t);
local v7 = require(l_CorePackages_0.Cryo);
local v8 = require(l_CorePackages_0.UIBlox);
local l_withNavigationFocus_0 = require(l_CorePackages_0.RoactNavigation).withNavigationFocus;
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_withStyle_0 = v8.Style.withStyle;
local l_withTooltip_0 = v8.App.Dialog.TooltipV2.withTooltip;
local l_TooltipOrientation_0 = v8.App.Dialog.Enum.TooltipOrientation;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAppRoute);
local v16 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v17 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v18 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Components.LayeredClothingSortEntryButton);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v20 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectIsPortrait);
local v21 = v3.PureComponent:extend("AvatarRefinementButtons");
v21.validateProps = v6.strictInterface({
    isUIFullView = v6.optional(v6.boolean),
    isSceneFullView = v6.optional(v6.boolean),
    layoutOrder = v6.optional(v6.number),
    topBarHeight = v6.number,
    isPortrait = v6.boolean,
    equippedAssets = v6.optional(v6.table),
    avatarRoute = v6.table,
    navigation = v6.table,
    isFocused = v6.boolean,
    NextSelectionRight = v6.optional(v6.table),
    NextSelectionLeft = v6.optional(v6.table),
    NextSelectionUp = v6.optional(v6.table),
    NextSelectionDown = v6.optional(v6.table),
    forwardRef = v6.optional(v6.table)
});
v21.init = function(v22)
    v22.lcSortEntryRef = v3.createRef();
    v22:setState({
        showToolTip = l_AppStorageService_0:GetItem("ShowTooltipLCSortEntry") == "true"
    });
    v22.onTooltipDismiss = function()
        v22:setState({
            showToolTip = false
        });
        l_AppStorageService_0:SetItem("ShowTooltipLCSortEntry", "false");
        l_AppStorageService_0:flush();
    end;
end;
v21.didUpdate = function(v23, v24, v25)
    if not (not v23.props.isFocused or v24.isFocused) then
        local v26 = l_AppStorageService_0:GetItem("ShowTooltipLCSortEntry") == "true";
        if v26 ~= v25.showToolTip then
            v23:setState({
                showToolTip = v26
            });
        end;
    end;
end;
v21.render = function(v27)
    return l_withStyle_0(function(v28)
        return l_withLocalization_0({
            tooltipText = "Feature.Avatar.Message.LCSortEntry"
        })(function(v29)
            return v27:renderWithProviders(v28, v29);
        end);
    end);
end;
v21.renderWithProviders = function(v30, v31, v32)
    local l_Theme_0 = v31.Theme;
    local l_SceneButtonSize_0 = v16.SceneButtonSize;
    local v35 = nil;
    v35 = if not l_IsVRAppBuild_0() then v30.state.showToolTip and v30.props.equippedAssets ~= nil else false;
    local v36 = not v30.props.equippedAssets;
    local v37 = v17.isAvatarSceneButtonsVisible(v30.props.avatarRoute, v30.props.isFocused, v30.props.isUIFullView, v30.props.isSceneFullView, v30.props.navigation);
    return l_withTooltip_0({
        bodyText = v32.tooltipText,
        useLargeDropShadow = true
    }, {
        preferredOrientation = l_TooltipOrientation_0.Right,
        guiTarget = l_CoreGui_0,
        active = v37 and v35
    }, function(v38)
        return v3.createElement(v5.Focusable.Frame, {
            Size = UDim2.fromOffset(l_SceneButtonSize_0, l_SceneButtonSize_0),
            Visible = v37,
            BackgroundColor3 = l_Theme_0.BackgroundMuted.Color,
            BackgroundTransparency = if not v36 then l_Theme_0.BackgroundMuted.Transparency else 0.5,
            LayoutOrder = v30.props.layoutOrder,
            [v3.Ref] = v30.props.forwardRef,
            [v3.Change.AbsoluteSize] = v38,
            [v3.Change.AbsolutePosition] = v38,
            NextSelectionLeft = v30.props.NextSelectionLeft,
            defaultChild = v30.lcSortEntryRef
        }, {
            Corner = v3.createElement("UICorner", {
                CornerRadius = v16.SceneButtonCornerRadius
            }),
            LayeredClothingSortEntryButton = v3.createElement(v18, {
                disabled = v36,
                onTooltipDismiss = v30.onTooltipDismiss,
                [v3.Ref] = v30.lcSortEntryRef
            })
        });
    end);
end;
v21 = v15((l_withNavigationFocus_0((v4.connect(function(v39, _)
    local _ = nil;
    local _ = nil;
    return {
        isPortrait = v20(v39),
        topBarHeight = if not l_IsVRAppBuild_0() then v39.TopBar.topBarHeight else 0,
        equippedAssets = v39.AvatarExperience.AvatarEditor.Character.EquippedAssets
    };
end, nil)(v21)))));
return v3.forwardRef(function(v43, v44)
    return v3.createElement(v21, v7.Dictionary.join(v43, {
        forwardRef = v44
    }));
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = v1.PureComponent:extend("DismissMenuBackground");
v4.validateProps = v3.strictInterface({
    Visible = v3.union(v3.boolean, v3.table),
    ZIndex = v3.number,
    onDismiss = v3.callback,
    screenSize = v3.Vector2
});
v4.defaultProps = {
    ZIndex = 1
};
v4.render = function(v5)
    return v1.createElement("TextButton", {
        BackgroundTransparency = 1,
        Text = "",
        Visible = v5.props.Visible,
        ZIndex = v5.props.ZIndex,
        Size = UDim2.fromOffset(v5.props.screenSize.X, v5.props.screenSize.Y),
        Position = UDim2.fromOffset(0, -13),
        [v1.Event.Activated] = v5.props.onDismiss
    });
end;
return (v2.connect(function(v6, _)
    return {
        screenSize = v6.ScreenSize
    };
end, nil)(v4));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_NotificationService_0 = game:GetService("NotificationService");
local l_CorePackages_0 = game:GetService("CorePackages");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v5.Style.withStyle;
local l_LoadableImage_0 = v5.App.Loading.LoadableImage;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local l_ExternalEventConnection_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).ExternalEventConnection;
local v10 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v11 = v3.PureComponent:extend("DraggableTile");
v11.validateProps = v4.strictInterface({
    thumbnail = v4.string,
    ZIndex = v4.number,
    isSelectedByTap = v4.boolean,
    imageTransparency = v4.number,
    AnchorPoint = v4.Vector2,
    Position = v4.UDim2,
    Size = v4.UDim2,
    assetTypeId = v4.string
});
v11.defaultProps = {
    isSelectedByTap = false,
    ZIndex = 1,
    imageTransparency = 0,
    AnchorPoint = Vector2.new(0, 0),
    Position = UDim2.fromScale(0, 0),
    Size = UDim2.fromScale(1, 1)
};
local v12 = UDim.new(0, 10);
v11.init = function(v13)
    v13:setState({
        style = string.lower(l_NotificationService_0.SelectedTheme)
    });
    v13.updateTheme = function()
        v13:setState({
            style = string.lower(l_NotificationService_0.SelectedTheme)
        });
    end;
end;
v11.render = function(v14)
    return l_withStyle_0(function(v15)
        local l_Theme_0 = v15.Theme;
        local v17 = nil;
        if v10.GradientBackgroundAssetTypeIds[v14.props.assetTypeId] or v14.props.assetTypeId == v10.AssetTypeIdStrings.HairAccessory then
            v17 = v14.state.style == "dark" and "rbxasset://textures/ui/AvatarExperience/glowLight.png" or "rbxasset://textures/ui/AvatarExperience/glowDark.png";
        end;
        return v3.createElement("Frame", {
            Size = v14.props.Size,
            BackgroundTransparency = 0,
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            SizeConstraint = Enum.SizeConstraint.RelativeXX,
            ZIndex = v14.props.ZIndex,
            AnchorPoint = v14.props.AnchorPoint,
            Position = v14.props.Position
        }, {
            BackgroundImage = v3.createElement(l_ImageSetLabel_0, {
                Image = v17,
                ImageTransparency = v14.props.imageTransparency,
                BackgroundTransparency = l_Theme_0.PlaceHolder.Transparency,
                BackgroundColor3 = l_Theme_0.PlaceHolder.Color,
                BorderSizePixel = 0,
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.fromScale(1, 1),
                ZIndex = 0
            }, {
                Image = v3.createElement(l_LoadableImage_0, {
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    BackgroundTransparency = 1,
                    Image = v14.props.thumbnail,
                    ImageTransparency = v14.props.imageTransparency,
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    Size = UDim2.fromScale(1, 1),
                    ZIndex = 0,
                    cornerRadius = v12,
                    showFailedStateWhenLoadingFailed = true,
                    useShimmerAnimationWhileLoading = true
                }),
                UICorner = v3.createElement("UICorner", {
                    CornerRadius = v12
                })
            }),
            ThemeConnection = v3.createElement(l_ExternalEventConnection_0, {
                event = l_NotificationService_0:GetPropertyChangedSignal("SelectedTheme"),
                callback = v14.updateTheme
            }),
            UICorner = v3.createElement("UICorner", {
                CornerRadius = v12
            })
        });
    end);
end;
return v11;


local l_RunService_0 = game:GetService("RunService");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
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_CorePackages_0.UIBlox);
local l_withStyle_0 = v7.Style.withStyle;
local l_Images_0 = v7.App.ImageSet.Images;
local l_ImageSetLabel_0 = v7.Core.ImageSet.ImageSetLabel;
local v11 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Constants);
local v12 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.SetOrder);
local v13 = require(l_Modules_0.AvatarExperience.Common.Actions.SetOrderForTryOns);
local v14 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.SetCurrentSort);
local v15 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.LayeredClothingSortUtils);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v17 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Services.Analytics);
local v18 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Thunks.SendRefinementAnalytics);
local v19 = l_Images_0["icons/navigation/cycleUp"];
local v20 = l_Images_0["icons/navigation/cycleDown"];
local v21 = v4.PureComponent:extend("LCSortArrowNav");
v21.validateProps = v6.strictInterface({
    Visible = v6.union(v6.boolean, v6.table),
    index = v6.number,
    asset = v6.table,
    currentSort = v6.table,
    equippedAssets = v6.table,
    tryOnItems = v6.table,
    setOrder = v6.callback,
    setOrderForTryOns = v6.callback,
    setCurrentSort = v6.callback,
    sendAnalytics = v6.callback,
    analytics = v6.table
});
v21.moveTile = function(v22, v23)
    local v24 = {};
    for v25, v26 in v22.props.currentSort, nil, nil do
        if v25 ~= v22.props.index then
            table.insert(v24, v26);
        end;
    end;
    table.insert(v24, v22.props.index + v23, {
        id = v22.props.asset.id,
        typeId = v22.props.asset.typeId
    });
    local v27, v28 = v15.formatForSetOrderWithTryOns(v24, v22.props.equippedAssets, v22.props.tryOnItems);
    v22.props.setOrder(v27);
    v22.props.setOrderForTryOns(v28);
    v22.props.setCurrentSort(v24);
    v22.props.sendAnalytics(v22.props.analytics.avatarRefineAutosaved);
end;
v21.init = function(v29)
    v29.animLoopConn = nil;
    v29.animOutConn = nil;
    v29.animInConn = nil;
    v29.animating = false;
    local v30, v31 = v4.createBinding(UDim2.fromOffset(0, 4));
    v29.upArrowPos = v30;
    v29.updateUpArrowPos = v31;
    v30, v31 = v4.createBinding(UDim2.fromScale(0, 0));
    v29.downArrowPos = v30;
    v29.updateDownArrowPos = v31;
    v29.onUpActivated = function()
        v29:moveTile(-1);
    end;
    v29.onDownActivated = function()
        v29:moveTile(1);
    end;
end;
v21.animateOut = function(v32)
    local v33 = 4;
    local v34 = 0;
    v32.animOutConn = l_RunService_0.RenderStepped:connect(function(v35)
        v33 = v33 - v35 * 14;
        v34 = v34 + v35 * 14;
        local v36 = math.max(v33, 0);
        local v37 = math.min(v34, 4);
        v32.updateUpArrowPos(UDim2.new(0, 0, 0, v36));
        v32.updateDownArrowPos(UDim2.new(0, 0, 0, v37));
        if v36 == 0 then
            v32.animOutConn:Disconnect();
            v32.animOutConn = nil;
            v32:animateIn();
        end;
    end);
end;
v21.animateIn = function(v38)
    local v39 = 0;
    local v40 = 4;
    v38.animInConn = l_RunService_0.RenderStepped:connect(function(v41)
        v39 = v39 + v41 * 14;
        v40 = v40 - v41 * 14;
        local v42 = math.min(v39, 4);
        local v43 = math.max(v40, 0);
        v38.updateUpArrowPos(UDim2.new(0, 0, 0, v42));
        v38.updateDownArrowPos(UDim2.new(0, 0, 0, v43));
        if v42 == 4 then
            v38.animInConn:Disconnect();
            v38.animInConn = nil;
            v38.timeOfLastAnimation = tick();
            v38.animating = false;
        end;
    end);
end;
v21.render = function(v44)
    return l_withStyle_0(function(v45)
        local l_Theme_0 = v45.Theme;
        return v4.createFragment({
            UpArrowButton = v4.createElement("TextButton", {
                Text = "",
                BackgroundTransparency = 1,
                Visible = v44.props.Visible and v44.props.index ~= 1,
                Size = UDim2.fromOffset(v11.Tile.ArrowSize.X.Offset, v11.Tile.ArrowSize.Y.Offset + 4),
                AnchorPoint = Vector2.new(0.5, 1),
                Position = UDim2.fromScale(0.5, 0),
                [v4.Event.Activated] = v44.onUpActivated
            }, {
                UpArrowIcon = v4.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Size = v11.Tile.ArrowSize,
                    Position = v44.upArrowPos,
                    Image = v19,
                    ImageColor3 = l_Theme_0.IconEmphasis.Color
                })
            }),
            DownArrowButton = v4.createElement("TextButton", {
                Text = "",
                BackgroundTransparency = 1,
                Visible = v44.props.Visible and v44.props.index ~= #v44.props.currentSort,
                Size = UDim2.fromOffset(v11.Tile.ArrowSize.X.Offset, v11.Tile.ArrowSize.Y.Offset + 4),
                AnchorPoint = Vector2.new(0.5, 0),
                Position = UDim2.new(0.5, 0, 0, v11.Tile.SelectedSize),
                [v4.Event.Activated] = v44.onDownActivated
            }, {
                DownArrowIcon = v4.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Size = v11.Tile.ArrowSize,
                    Position = v44.downArrowPos,
                    Image = v20,
                    ImageColor3 = l_Theme_0.IconEmphasis.Color
                })
            })
        });
    end);
end;
v21.didMount = function(v47)
    v47.timeOfLastAnimation = tick();
    v47.animLoopConn = l_RunService_0.RenderStepped:connect(function(_)
        if not (not (tick() - v47.timeOfLastAnimation >= 1) or v47.animating) then
            v47.animating = true;
            v47:animateOut();
        end;
    end);
end;
v21.willUnmount = function(v49)
    if v49.animLoopConn then
        v49.animLoopConn:Disconnect();
        v49.animLoopConn = nil;
    end;
    if v49.animOutConn then
        v49.animOutConn:Disconnect();
        v49.animOutConn = nil;
    end;
    if v49.animInConn then
        v49.animInConn:Disconnect();
        v49.animInConn = nil;
    end;
end;
return (v5.connect(function(v50, _)
    return {
        currentSort = v50.AvatarExperience.LayeredClothingSort.CurrentSort.OrderedList,
        equippedAssets = v50.AvatarExperience.AvatarEditor.Character.EquippedAssets,
        tryOnItems = v50.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems
    };
end, function(v52)
    return {
        setOrder = function(v53)
            v52(v12(v53));
        end,
        setOrderForTryOns = function(v54)
            v52(v13(v54));
        end,
        setCurrentSort = function(v55)
            v52(v14(v55));
        end,
        sendAnalytics = function(v56)
            v52(v18(v56));
        end
    };
end)((l_RoactServices_0.connect({
    analytics = v17
})(v21))));


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.Packages.t);
local v5 = require(l_CorePackages_0.UIBlox);
local l_withNavigation_0 = require(l_CorePackages_0.RoactNavigation).withNavigation;
local l_withStyle_0 = v5.Style.withStyle;
local l_Images_0 = v5.App.ImageSet.Images;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v11 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Constants);
local v12 = UDim.new(0, 10);
local v13 = l_Images_0["icons/menu/more_off"];
local v14 = v3.PureComponent:extend("LCSortMoreButton");
v14.validateProps = v4.strictInterface({
    Visible = v4.union(v4.boolean, v4.table),
    ZIndex = v4.number,
    asset = v4.table,
    onUnequip = v4.optional(v4.callback),
    navigation = v4.table
});
v14.init = function(v15)
    v15.menuRef = v3.createRef();
    v15.contextMenuOpen = function()
        v15.props.navigation.navigate(v10.LCSortContextMenu, {
            asset = v15.props.asset,
            tilePositionY = not not v15.menuRef:getValue() and v15.menuRef:getValue().AbsolutePosition.Y or 0,
            onUnequip = v15.props.onUnequip
        });
    end;
end;
v14.render = function(v16)
    return l_withStyle_0(function(v17)
        local l_Theme_0 = v17.Theme;
        return v3.createElement("TextButton", {
            Text = "",
            AnchorPoint = Vector2.new(1, 0),
            Position = UDim2.fromOffset(v11.Tile.ContextWidth - v11.Tile.ShownContextWidth, 0),
            Size = UDim2.new(0, v11.Tile.ContextWidth, 1, 0),
            BackgroundColor3 = l_Theme_0.BackgroundUIContrast.Color,
            BackgroundTransparency = l_Theme_0.BackgroundUIContrast.Transparency,
            SizeConstraint = Enum.SizeConstraint.RelativeXX,
            ZIndex = v16.props.ZIndex,
            Visible = v16.props.Visible,
            [v3.Event.Activated] = v16.contextMenuOpen,
            [v3.Ref] = v16.menuRef
        }, {
            UICorner = v3.createElement("UICorner", {
                CornerRadius = v12
            }),
            ImageSetLabel = v3.createElement(l_ImageSetLabel_0, {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Size = UDim2.fromOffset(v11.Tile.MoreIconSize, v11.Tile.MoreIconSize),
                Position = UDim2.new(0.5, -4, 0.5, 0),
                BackgroundTransparency = 1,
                Image = v13,
                ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
                ImageColor3 = l_Theme_0.IconEmphasis.Color
            })
        });
    end);
end;
return (l_withNavigation_0(v14));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.RoactGamepad);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(l_CorePackages_0.Cryo);
local v7 = require(l_CorePackages_0.UIBlox);
local l_withNavigation_0 = require(l_CorePackages_0.RoactNavigation).withNavigation;
local l_Images_0 = v7.App.ImageSet.Images;
local l_ImageSetButton_0 = v7.Core.ImageSet.ImageSetButton;
local l_withStyle_0 = v7.Style.withStyle;
local l_IconSize_0 = v7.App.Constant.IconSize;
local l_IconSize_1 = v7.App.ImageSet.Enum.IconSize;
local l_getIconSize_0 = v7.App.ImageSet.getIconSize;
local l_withSelectionCursorProvider_0 = v7.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v7.App.SelectionImage.CursorKind;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v18 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAppRoute);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v20 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Services.Analytics);
local v21 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Thunks.NavigateIntoRefinementPage);
local v22 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixLayeredClothingEntryIconSize10ft);
local v23 = l_Images_0["icons/actions/adjust"];
local v24 = v2.PureComponent:extend("LayeredClothingSortEntryButton");
v24.validateProps = v5.strictInterface({
    disabled = v5.optional(v5.boolean),
    onTooltipDismiss = v5.optional(v5.callback),
    waitingOnLCUpdates = v5.boolean,
    navigateIntoRefinementPage = v5.callback,
    navigation = v5.table,
    avatarRoute = v5.table,
    analytics = v5.table,
    forwardRef = v5.optional(v5.table)
});
v24.defaultProps = {
    disabled = false
};
v24.init = function(v25)
    v25.navigateToLCSort = function()
        v25.props.navigateIntoRefinementPage(v25.props.navigation, v25.props.avatarRoute, v25.props.analytics, v25.props.onTooltipDismiss);
    end;
end;
v24.isDisabled = function(v26)
    return v26.props.disabled or v26.props.waitingOnLCUpdates;
end;
v24.render = function(v27)
    return l_withStyle_0(function(v28)
        return l_withSelectionCursorProvider_0(function(v29)
            return v27:renderWithProviders(v28, v29);
        end);
    end);
end;
v24.renderWithProviders = function(v30, v31, v32)
    local l_Theme_0 = v31.Theme;
    local v34 = v30:isDisabled();
    local v35 = if not v22 then l_IconSize_0.Regular else l_getIconSize_0(l_IconSize_1.Medium, v31);
    return v2.createElement(v4.Focusable[l_ImageSetButton_0], {
        Position = UDim2.fromScale(0.5, 0.5),
        AnchorPoint = Vector2.new(0.5, 0.5),
        Size = UDim2.fromOffset(v35, v35),
        BackgroundTransparency = 1,
        Image = v23,
        ImageColor3 = l_Theme_0.IconEmphasis.Color,
        ImageTransparency = not v34 and 0 or 0.5,
        ZIndex = 2,
        [v2.Event.Activated] = v30.navigateToLCSort,
        [v2.Ref] = v30.props.forwardRef,
        SelectionImageObject = v32(l_CursorKind_0.RoundedRect)
    });
end;
v24 = l_RoactServices_0.connect({
    analytics = v20
})((v3.connect(function(v36, _)
    return {
        waitingOnLCUpdates = v36.AvatarExperience.AvatarScene.Character.WaitingOnLayeredClothingUpdates
    };
end, function(v38)
    return {
        navigateIntoRefinementPage = function(v39, v40, v41, v42)
            v38(v21(v39, v40, v41, v42));
        end
    };
end)((v18((l_withNavigation_0(v24)))))));
return v2.forwardRef(function(v43, v44)
    return v2.createElement(v24, v6.Dictionary.join(v43, {
        forwardRef = v44
    }));
end);


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.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.tutils);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v7 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.ClearCurrentSort);
local v8 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.ClearRemovedItems);
local v9 = v2.PureComponent:extend("LayeredClothingSortHandler");
v9.validateProps = v4.strictInterface({
    avatarRoute = v4.table,
    tryOnItems = v4.table,
    currentSort = v4.optional(v4.table),
    clearCurrentSort = v4.callback,
    clearRemovedItems = v4.callback
});
v9.render = function(_)
    return nil;
end;
local function _(v11, v12)
    local v13 = 0;
    for v14 in v11, nil, nil do
        v13 = v13 + 1;
        if v12[v14] == nil then
            return false;
        end;
    end;
    return v13 == v5.fieldCount(v12);
end;
v9.didSwitchTryOn = function(v16, v17)
    local l_tryOnItems_0 = v17.tryOnItems;
    local l_tryOnItems_1 = v16.props.tryOnItems;
    local v20 = 0;
    local v21;
    for v22 in l_tryOnItems_0, nil, nil do
        v20 = v20 + 1;
        if l_tryOnItems_1[v22] == nil then
            v21 = false;
            goto label0 --[[  true, false  ]];
        end;
    end;
    v21 = v20 == v5.fieldCount(l_tryOnItems_1);
    ::label0::;
    return not v21;
end;
v9.didUpdate = function(v23, v24)
    local l_name_0 = v23.props.avatarRoute.opaque.name;
    local l_name_1 = v24.avatarRoute.opaque.name;
    local v27 = v23:didSwitchTryOn(v24);
    if not (not (l_name_0 ~= v6.LayeredClothingSort) or not v27) and #v23.props.currentSort > 0 then
        v23.props.clearCurrentSort();
    end;
    if l_name_0 ~= l_name_1 and l_name_1 == v6.LayeredClothingSort then
        v23.props.clearRemovedItems();
    end;
end;
return (v3.connect(function(v28, _)
    return {
        tryOnItems = v28.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems,
        currentSort = v28.AvatarExperience.LayeredClothingSort.CurrentSort.OrderedList
    };
end, function(v30)
    return {
        clearCurrentSort = function()
            v30(v7());
        end,
        clearRemovedItems = function()
            v30(v8());
        end
    };
end)(v9));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_UserInputService_0 = game:GetService("UserInputService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Packages.RoactGamepad);
local v5 = require(l_CorePackages_0.RoactRodux);
local v6 = require(l_CorePackages_0.Packages.t);
local l_ExternalEventConnection_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).ExternalEventConnection;
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v9 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v9.Style.withStyle;
local l_Images_0 = v9.App.ImageSet.Images;
local l_ImageSetLabel_0 = v9.Core.ImageSet.ImageSetLabel;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Debug.logOnOverlayClosed);
local v16 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local v17 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withMappedNavigationParams);
local v18 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withStackVisibilityWrapper);
local v19 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Components.VerticalClothingList);
local v20 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Components.ResetButton);
local v21 = require(l_Modules_0.AvatarExperience.Common.Components.Scene.SceneInteractionFrame);
local v22 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v23 = require(l_Modules_0.LuaApp.Components.TopBar.TopBar);
local v24 = require(l_Modules_0.AvatarExperience.Common.Components.TopBar.makeAvatarBackButton);
local v25 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.SetLastSavedSort);
local v26 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.SetCurrentSort);
local v27 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v28 = require(l_Modules_0.AvatarExperience.Common.Thunks.SetFullView);
local v29 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.ClearRemovedItems);
local v30 = require(l_Modules_0.LuaApp.Enum.ToastType);
local v31 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
local v32 = require(l_Modules_0.AvatarExperience.Common.Components.GamepadFocusHandlerForPage);
local v33 = require(l_Modules_0.AvatarExperience.Common.Components.Scene.VRAvatarRotateHandler);
local v34 = require(l_Modules_0.AvatarExperience.Common.Components.BoundInputsUpdater);
local v35 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Constants);
local v36 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Selectors.selectEquippedLCAccessoriesOrdered);
local v37 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectIsPortrait);
local v38 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Selectors.hasClassicAccessories);
local v39 = require(l_Modules_0.AvatarExperience.Common.Services.Analytics);
local v40 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Services.Analytics);
local v41 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.SetEntryPage);
local v42 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.UnlockCharacterUpdates);
local v43 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Thunks.SendRefinementAnalytics);
local v44 = require(l_Modules_0.AvatarExperience.Common.Components.Refinement.RefinementNavBar);
local l_isGamepadInput_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).isGamepadInput;
local v46 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAccessoryAdjustmentEnabled);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v48 = {
    toastMessage = "Feature.Avatar.Message.LCSortClassicWarning",
    isLocalized = false,
    toastType = v30.InformationMessage
};
local v49 = l_Images_0["icons/menu/about_large"];
local v50 = UDim.new(0, 10);
local v51 = v3.PureComponent:extend("LayeredClothingSortPage");
v51.validateProps = v6.strictInterface({
    isPortrait = v6.boolean,
    topBarHeight = v6.number,
    equippedLCAssetIdsOrdered = v6.table,
    equippedAssets = v6.table,
    hasClassicAccessories = v6.boolean,
    removedList = v6.optional(v6.table),
    setLastSavedSort = v6.callback,
    setCurrentToastMessage = v6.callback,
    setFullView = v6.callback,
    setCurrentSort = v6.callback,
    sendAnalytics = v6.callback,
    setEntryPage = v6.callback,
    clearRemovedItems = v6.callback,
    unlockCharacterUpdates = v6.callback,
    navigation = v6.table,
    avatarRoute = v6.table,
    avatarExperienceAnalytics = v6.table,
    analytics = v6.table
});
v51.init = function(v52)
    v52.numAssetsUponPageEntry = nil;
    v52.frameRef = v3.createRef();
    v52.verticalClothingListRef = v3.createRef();
    v52.topBarRef = v3.createRef();
    v52.focusController = v4.createFocusController();
    v52:setState({
        lastInputIsGamepad = if not l_IsVRAppBuild_0() then l_isGamepadInput_0(l_UserInputService_0:GetLastInputType()) else false,
        isDragging = false
    });
    v52.onBackFromTopBar = function()
        v52.props.unlockCharacterUpdates();
        if not v46() then
            v52.props.navigation.goBack();
        else
            v52.props.navigation.pop();
        end;
        v52.props.sendAnalytics(v52.props.analytics.avatarRefineGoBack);
        v52.props.setEntryPage(v22.None);
    end;
    v52.lastInputTypeChangedCallback = function(v53)
        local v54 = l_isGamepadInput_0(v53);
        if v54 ~= v52.state.lastInputIsGamepad then
            v52:setState({
                lastInputIsGamepad = v54
            });
        end;
    end;
    v52.onOverlayClosed = function()
        return function()
            if v52.state.lastInputIsGamepad and v52.props.avatarRoute.opaque.name == v22.LayeredClothingSort then
                v15("LayeredClothingSort");
                v52.focusController.captureFocus();
            end;
        end;
    end;
    v52.onDragChange = function(v55)
        v52:setState({
            isDragging = v55
        });
    end;
    v52.backButton = v24(v52.onBackFromTopBar);
end;
v51.saveSortOnPageEnter = function(v56)
    local v57 = {};
    for _, v59 in v56.props.equippedLCAssetIdsOrdered, nil, nil do
        if not (not v56.props.equippedAssets[v59.typeId] or not v56.props.equippedAssets[v59.typeId][v59.id]) then
            v59.equipped = true;
        end;
        table.insert(v57, v59);
    end;
    v56.props.setLastSavedSort(v57);
    v56.props.setCurrentSort(v56.props.equippedLCAssetIdsOrdered);
    v56.numAssetsUponPageEntry = #v56.props.equippedLCAssetIdsOrdered;
end;
v51.onPageEntry = function(v60)
    v60:saveSortOnPageEnter();
    v60.props.setFullView(v60.props.avatarExperienceAnalytics, v31.SceneFullView);
    if v60.props.hasClassicAccessories then
        v60.props.setCurrentToastMessage(v48);
    end;
end;
v51.renderTopBar = function(v61)
    return l_withLocalization_0({
        clothingSorting = "Feature.Avatar.Title.LCSortPage"
    })(function(v62)
        return v3.createElement(v23.Container, {
            titleText = v62.clothingSorting,
            transparentBackground = true,
            hideSiteMessageBanner = v61.props.isPortrait,
            leftItem = v61.backButton,
            ZIndex = 1,
            [v3.Ref] = v61.topBarRef,
            NextSelectionRight = v61.verticalClothingListRef
        });
    end);
end;
v51.render = function(v63)
    return l_withStyle_0(function(v64)
        return l_withLocalization_0({
            noItemText = "Feature.Avatar.Message.LCSortNoEquipped"
        })(function(v65)
            return v63:renderWithProviders(v64, v65);
        end);
    end);
end;
v51.renderWithProviders = function(v66, v67, v68)
    local l_Font_0 = v67.Font;
    local l_Theme_0 = v67.Theme;
    local v71 = #v66.props.equippedLCAssetIdsOrdered > 0;
    local v72 = not v71 and v66.numAssetsUponPageEntry == 0;
    local v73 = if not v71 then v66.topBarRef else v66.verticalClothingListRef;
    local v74 = v3.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, -v66.props.topBarHeight),
        Position = UDim2.fromOffset(0, v66.props.topBarHeight),
        BackgroundTransparency = 1,
        ZIndex = 2
    }, {
        SceneInteractionFrame = v3.createElement(v21),
        VerticalClothingList = not v72 and v3.createElement(v4.Focusable[v19], {
            [v3.Ref] = v66.verticalClothingListRef,
            NextSelectionLeft = v66.topBarRef,
            lastInputIsGamepad = v66.state.lastInputIsGamepad,
            topBarRef = v66.topBarRef,
            focusControllerProp = v66.focusController,
            onDragChange = v66.onDragChange
        }),
        ResetButton = not v72 and v3.createElement(v20, {
            lastInputIsGamepad = v66.state.lastInputIsGamepad,
            isDragging = v66.state.isDragging
        }),
        VRAvatarRotateHandler = if not l_IsVRAppBuild_0() then nil else v3.createElement(v33),
        NoItemsMessage = v72 and v3.createElement("Frame", {
            AnchorPoint = Vector2.new(0, 1),
            Position = UDim2.new(0, 0, 1, v35.NoItem.BottomPadding),
            Size = if not l_IsVRAppBuild_0() then UDim2.new(1, 0, 0, 100) else UDim2.new(1, 0, 0, 50),
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            BackgroundTransparency = not l_IsVRAppBuild_0() and 1 or 0
        }, {
            UICorner = if not l_IsVRAppBuild_0() then nil else v3.createElement("UICorner", {
                CornerRadius = v50
            }),
            NoItemsTextLabel = v3.createElement("TextLabel", {
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.XY,
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.fromScale(0, 0),
                Text = v68.noItemText,
                Font = l_Font_0.CaptionHeader.Font,
                TextSize = v35.NoItem.TextSize,
                TextColor3 = l_Theme_0.IconEmphasis.Color,
                TextWrapped = true,
                TextXAlignment = Enum.TextXAlignment.Left
            }, {
                NoItemsIcon = v3.createElement(l_ImageSetLabel_0, {
                    Image = v49,
                    AnchorPoint = Vector2.new(1, 0.5),
                    BackgroundTransparency = 1,
                    Position = UDim2.new(0, -2, 0.5, 0),
                    Size = UDim2.fromOffset(v35.NoItem.IconSize, v35.NoItem.IconSize),
                    ImageColor3 = l_Theme_0.IconEmphasis.Color
                })
            })
        })
    });
    if not l_IsVRAppBuild_0() then
        return v3.createElement(v4.Focusable.Frame, {
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1,
            focusController = v66.focusController,
            [v3.Ref] = v66.frameRef,
            defaultChild = v73,
            inputBindings = {
                Back = v4.Input.onBegin(Enum.KeyCode.ButtonB, v66.onBackFromTopBar),
                OpenResetPrompt = not v72 and v4.Input.onBegin(Enum.KeyCode.ButtonY, function()
                    v66.props.navigation.navigate(v22.ResetLCSortPrompt, {
                        onOverlayClosed = v66.onOverlayClosed()
                    });
                end, {
                    key = "CommonUI.Messages.Action.Reset"
                }) or nil
            }
        }, {
            TopBar = v66:renderTopBar(v68),
            RefinementNavBar = if not v46() then nil else v3.createElement(v44),
            LayeredClothingSortPageFrame = v74,
            GamepadFocusHandlerForPage = v3.createElement(v32, {
                focusController = v66.focusController,
                captureFocusOnMount = true
            }),
            LastInputTypeChangedConnection = v3.createElement(l_ExternalEventConnection_0, {
                event = l_UserInputService_0.LastInputTypeChanged,
                callback = v66.lastInputTypeChangedCallback
            }),
            BoundInputsUpdater = v3.createElement(v34)
        });
    else
        return v74;
    end;
end;
v51.didMount = function(v75)
    v75:onPageEntry();
end;
v51.didUpdate = function(v76, v77, _)
    if v76.props.avatarRoute.opaque.name ~= v77.avatarRoute.opaque.name and v76.props.avatarRoute.opaque.name == v22.LayeredClothingSort then
        v76:onPageEntry();
    end;
    if not ((not (v76.props.avatarRoute.opaque.name == v22.LayeredClothingSort) or not v76.props.avatarRoute.isVisible) or v77.avatarRoute.isVisible) then
        v76:onPageEntry();
    end;
    if (v76.state.lastInputIsGamepad and #v76.props.equippedLCAssetIdsOrdered == 0) and #v77.equippedLCAssetIdsOrdered > 0 then
        v76.focusController.moveFocusTo(v76.topBarRef);
    end;
end;
v51.willUnmount = function(v79)
    v79.props.unlockCharacterUpdates();
end;
return (v18((v16((v17((v5.connect(function(v80, _)
    local _ = nil;
    local _ = nil;
    return {
        isPortrait = v37(v80),
        topBarHeight = if not l_IsVRAppBuild_0() then v80.TopBar.topBarHeight else 0,
        equippedLCAssetIdsOrdered = v36(v80),
        equippedAssets = v80.AvatarExperience.AvatarEditor.Character.EquippedAssets,
        hasClassicAccessories = v38(v80),
        removedList = v80.AvatarExperience.LayeredClothingSort.CurrentSort.RemovedList
    };
end, function(v84)
    return {
        setLastSavedSort = function(v85)
            v84(v25(v85));
        end,
        setCurrentSort = function(v86)
            v84(v26(v86));
        end,
        setCurrentToastMessage = function(v87)
            v84(v27(v87));
        end,
        setFullView = function(v88, v89)
            v84(v28(v88, v22.LayeredClothingSort, v89));
        end,
        sendAnalytics = function(v90)
            v84(v43(v90));
        end,
        setEntryPage = function(v91)
            v84(v41(v91));
        end,
        clearRemovedItems = function()
            v84(v29());
        end,
        unlockCharacterUpdates = function()
            v84(v42());
        end
    };
end)((l_RoactServices_0.connect({
    analytics = v40,
    avatarExperienceAnalytics = v39
})(v51))))))))));


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.RoactRodux);
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_CorePackages_0.Packages.t);
local l_ContextualMenu_0 = v4.App.Menu.ContextualMenu;
local l_MenuDirection_0 = v4.App.Menu.MenuDirection;
local v8 = require(l_Modules_0.AvatarExperience.Common.Components.withOverlayFocusHandling);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v11 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withMappedNavigationParams);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v14 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v15 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Constants);
local v16 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectIsPortrait);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v18 = not l_IsVRAppBuild_0() and 0 or 120;
local v19 = v2.PureComponent:extend("LCSortContextFrame");
v19.validateProps = v5.strictInterface({
    navigation = v5.table,
    asset = v5.table,
    onUnequip = v5.optional(v5.callback),
    tilePositionY = v5.number,
    avatarRoute = v5.table,
    screenSize = v5.Vector2,
    isPortrait = v5.boolean,
    globalGuiInset = v5.table,
    focusController = v5.optional(v5.table),
    defaultChildRef = v5.optional(v5.table)
});
v19.init = function(v20)
    local v21, v22 = v2.createBinding(UDim2.fromScale(1, 1));
    v20.contextMenuSize = v21;
    v20.updateContextMenuSize = v22;
    v20.openUnequipPrompt = function()
        v13.navigateToNextOverlay(v20.props.navigation, v12.RemoveItemPrompt, {
            asset = v20.props.asset,
            onUnequip = v20.props.onUnequip
        });
    end;
    v20.closePrompt = function()
        v13.closeOverlay(v20.props.navigation);
    end;
end;
v19.renderLocalized = function(v23, v24)
    local l_closePrompt_0 = v23.closePrompt;
    local l_screenSize_0 = v23.props.screenSize;
    local v27 = {};
    table.insert(v27, {
        icon = nil,
        text = v24.unequip,
        onActivated = function()
            v23.openUnequipPrompt();
        end
    });
    local l_isPortrait_0 = v23.props.isPortrait;
    return v2.createElement("Frame", {
        BackgroundTransparency = 1,
        Position = UDim2.new(if not l_isPortrait_0 then v14.LandscapeNavWidth else 0, not l_IsVRAppBuild_0() and 0 or v15.VerticalList.Width + v15.Tile.ContextWidth, 0, 0),
        Size = UDim2.fromScale(if not l_isPortrait_0 then v14.LandscapeSceneWidth else 1, 1)
    }, {
        SizeFrame = v2.createElement("Frame", {
            BackgroundTransparency = 1,
            Position = UDim2.fromScale(0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0),
            Size = v23.contextMenuSize
        }, {
            ContextMenu = v2.createElement(l_ContextualMenu_0, {
                buttonProps = v27,
                open = true,
                menuDirection = l_MenuDirection_0.Up,
                openPositionY = UDim.new(1, (((((v23.props.tilePositionY - v23.props.screenSize.Y) + v15.Tile.SelectedSize) + 56) + 11) + v23.props.globalGuiInset.bottom) + v18),
                closeBackgroundVisible = not l_IsVRAppBuild_0() and true or false,
                screenSize = l_screenSize_0,
                onDismiss = l_closePrompt_0
            })
        })
    });
end;
v19.render = function(v29)
    return l_withLocalization_0({
        unequip = "Feature.Avatar.Action.Unequip"
    })(function(v30)
        return v29:renderLocalized(v30);
    end);
end;
return (v11((v9((v8((v3.connect(function(v31, _)
    return {
        screenSize = v31.ScreenSize,
        globalGuiInset = v31.GlobalGuiInset,
        isPortrait = v16(v31)
    };
end, nil)(v19))))))));


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.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.UIBlox);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_InteractiveAlert_0 = v5.App.Dialog.Alert.InteractiveAlert;
local l_ButtonType_0 = v5.App.Button.Enum.ButtonType;
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withMappedNavigationParams);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.withOverlayFocusHandling);
local v11 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v12 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.ToggleEquipAsset);
local v13 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.SetCurrentSort);
local v14 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.AddRemovedItem);
local v15 = v2.PureComponent:extend("RemoveItemPrompt");
v15.validateProps = v4.strictInterface({
    screenSize = v4.Vector2,
    equippedAssets = v4.optional(v4.table),
    currentSort = v4.table,
    toggleEquipAsset = v4.callback,
    setCurrentSort = v4.callback,
    addRemovedItem = v4.callback,
    asset = v4.table,
    onUnequip = v4.optional(v4.callback),
    navigation = v4.table,
    focusController = v4.optional(v4.table),
    defaultChildRef = v4.optional(v4.table),
    onOverlayClosed = v4.optional(v4.callback)
});
v15.init = function(v16)
    v16.removeItem = function()
        local l_id_0 = v16.props.asset.id;
        local l_typeId_0 = v16.props.asset.typeId;
        if not ((not v16.props.equippedAssets or not v16.props.equippedAssets[l_typeId_0]) or not v16.props.equippedAssets[l_typeId_0][l_id_0]) then
            v16.props.toggleEquipAsset(l_typeId_0, l_id_0);
        end;
        local v19 = {};
        for _, v21 in v16.props.currentSort, nil, nil do
            if v21.id ~= l_id_0 then
                table.insert(v19, v21);
            end;
        end;
        v16.props.setCurrentSort(v19);
        v16.props.addRemovedItem(l_id_0, l_typeId_0);
        if v16.props.onUnequip then
            v16.props.onUnequip();
        end;
        v16.closePrompt();
    end;
    v16.closePrompt = function()
        v11.closeOverlay(v16.props.navigation);
    end;
end;
v15.renderAlertLocalized = function(v22, v23)
    return v2.createElement(l_InteractiveAlert_0, {
        title = v23.title,
        bodyText = v23.body,
        buttonStackInfo = {
            buttons = {
                {
                    props = {
                        onActivated = v22.closePrompt,
                        text = v23.no
                    },
                    isDefaultChild = true
                },
                {
                    buttonType = l_ButtonType_0.PrimarySystem,
                    props = {
                        onActivated = v22.removeItem,
                        text = v23.yes
                    }
                }
            }
        },
        screenSize = v22.props.screenSize,
        defaultChildRef = v22.props.defaultChildRef
    });
end;
v15.render = function(v24)
    return l_withLocalization_0({
        no = "Feature.GameDetails.Label.No",
        yes = "Feature.GameDetails.Label.Yes",
        title = "Feature.Avatar.Title.LCSortUnequip",
        body = "Feature.Avatar.Message.LCSortUnequipBody"
    })(function(v25)
        return v24:renderAlertLocalized(v25);
    end);
end;
return (v9((v10((v3.connect(function(v26, _)
    return {
        screenSize = v26.ScreenSize,
        equippedAssets = v26.AvatarExperience.AvatarEditor.Character.EquippedAssets,
        currentSort = v26.AvatarExperience.LayeredClothingSort.CurrentSort.OrderedList
    };
end, function(v28)
    return {
        toggleEquipAsset = function(v29, v30)
            v28(v12(v29, v30));
        end,
        setCurrentSort = function(v31)
            v28(v13(v31));
        end,
        addRemovedItem = function(v32, v33)
            v28(v14(v32, v33));
        end
    };
end)(v15))))));


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.RoactRodux);
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_CorePackages_0.Packages.t);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_InteractiveAlert_0 = v4.App.Dialog.Alert.InteractiveAlert;
local l_ButtonType_0 = v4.App.Button.Enum.ButtonType;
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withMappedNavigationParams);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.withOverlayFocusHandling);
local v11 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v12 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.LayeredClothingSortUtils);
local v13 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.SetCurrentSort);
local v14 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Actions.ClearRemovedItems);
local v15 = require(l_Modules_0.AvatarExperience.AvatarEditor.Actions.EquipOutfit);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v17 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Services.Analytics);
local v18 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Thunks.SendRefinementAnalytics);
local v19 = v2.PureComponent:extend("ResetLCSortPrompt");
v19.validateProps = v5.strictInterface({
    screenSize = v5.Vector2,
    lastSavedSort = v5.table,
    equippedAssets = v5.optional(v5.table),
    setCurrentSort = v5.callback,
    equipOutfit = v5.callback,
    clearRemovedItems = v5.callback,
    sendAnalytics = v5.callback,
    analytics = v5.table,
    navigation = v5.table,
    focusController = v5.optional(v5.table),
    defaultChildRef = v5.optional(v5.table),
    onOverlayClosed = v5.optional(v5.callback)
});
v19.init = function(v20)
    v20.resetToDefault = function()
        v20.props.sendAnalytics(v20.props.analytics.avatarRefineLayersResetConfirm);
        v20.props.equipOutfit((v12.formatForEquipOutfit(v20.props.lastSavedSort, v20.props.equippedAssets)));
        v20.props.setCurrentSort(v20.props.lastSavedSort);
        v20.props.clearRemovedItems();
        v20.closePrompt();
    end;
    v20.closePrompt = function()
        v11.closeOverlay(v20.props.navigation);
    end;
end;
v19.renderAlertLocalized = function(v21, v22)
    return v2.createElement(l_InteractiveAlert_0, {
        title = v22.title,
        bodyText = v22.body,
        buttonStackInfo = {
            buttons = {
                {
                    props = {
                        onActivated = v21.closePrompt,
                        text = v22.cancelButtonText
                    },
                    isDefaultChild = true
                },
                {
                    buttonType = l_ButtonType_0.PrimarySystem,
                    props = {
                        onActivated = v21.resetToDefault,
                        text = v22.resetButtonText
                    }
                }
            }
        },
        screenSize = v21.props.screenSize,
        defaultChildRef = v21.props.defaultChildRef
    });
end;
v19.render = function(v23)
    return l_withLocalization_0({
        title = "Feature.Avatar.Title.LCSortReset",
        body = "Feature.Avatar.Message.LCSortResetBody",
        cancelButtonText = "Feature.Catalog.Action.Cancel",
        resetButtonText = "CommonUI.Messages.Action.Reset"
    })(function(v24)
        return v23:renderAlertLocalized(v24);
    end);
end;
return (v9((v10((l_RoactServices_0.connect({
    analytics = v17
})((v3.connect(function(v25, _)
    return {
        screenSize = v25.ScreenSize,
        equippedAssets = v25.AvatarExperience.AvatarEditor.Character.EquippedAssets,
        lastSavedSort = v25.AvatarExperience.LayeredClothingSort.LastSavedSort
    };
end, function(v27)
    return {
        setCurrentSort = function(v28)
            v27(v13(v28));
        end,
        clearRemovedItems = function()
            v27(v14());
        end,
        equipOutfit = function(v29)
            v27(v15(v29, false));
        end,
        sendAnalytics = function(v30)
            v27(v18(v30));
        end
    };
end)(v19))))))));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.RoactNavigation);
local v6 = require(l_CorePackages_0.UIBlox);
local l_withNavigation_0 = v5.withNavigation;
local l_Images_0 = v6.App.ImageSet.Images;
local l_ImageSetButton_0 = v6.Core.ImageSet.ImageSetButton;
local l_useStyle_0 = v6.Core.Style.useStyle;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v13 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Constants);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v15 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Services.Analytics);
local v16 = require(l_Modules_0.AvatarExperience.LayeredClothingSort.Thunks.SendRefinementAnalytics);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v18 = l_Images_0["icons/actions/reset"];
local v19 = UDim.new(0, 10);
local function v22(v20)
    local l_Theme_0 = l_useStyle_0().Theme;
    return v2.createElement("Frame", {
        AnchorPoint = Vector2.new(1, 1),
        Position = UDim2.new(1, -v13.RightMargin, 0, -9),
        Size = UDim2.fromOffset(34, 34),
        BackgroundTransparency = 1,
        LayoutOrder = 1,
        Visible = not v20.lastInputIsGamepad
    }, {
        Button = v2.createElement(l_ImageSetButton_0, {
            BackgroundTransparency = 1,
            AnchorPoint = Vector2.new(0, 0.5),
            Position = UDim2.fromScale(0, 0.5),
            Size = UDim2.fromScale(1, 1),
            Image = v18,
            ImageColor3 = l_Theme_0.SystemPrimaryDefault.Color,
            ImageTransparency = l_Theme_0.SystemPrimaryDefault.Transparency,
            [v2.Event.Activated] = v20.onActivated
        })
    });
end;
local function v25(v23)
    local l_Theme_1 = l_useStyle_0().Theme;
    return v2.createElement("Frame", {
        AnchorPoint = Vector2.new(0.5, 0),
        Position = UDim2.new(1, -v13.VerticalList.Width / 2, 0, 0),
        Size = UDim2.fromOffset(v13.Tile.MoreIconSize, v13.Tile.MoreIconSize),
        LayoutOrder = 1,
        Visible = not v23.lastInputIsGamepad,
        BackgroundColor3 = l_Theme_1.BackgroundDefault.Color,
        BackgroundTransparency = l_Theme_1.BackgroundDefault.Transparency
    }, {
        UICorner = v2.createElement("UICorner", {
            CornerRadius = v19
        }),
        Button = v2.createElement(l_ImageSetButton_0, {
            BackgroundTransparency = 1,
            AnchorPoint = Vector2.new(0, 0.5),
            Position = UDim2.fromScale(0, 0.5),
            Size = UDim2.fromScale(1, 1),
            Image = v18,
            ImageColor3 = l_Theme_1.IconEmphasis.Color,
            ImageTransparency = l_Theme_1.IconEmphasis.Transparency,
            [v2.Event.Activated] = v23.onActivated
        })
    });
end;
local v26 = v2.PureComponent:extend("ResetButton");
v26.validateProps = v4.strictInterface({
    lastInputIsGamepad = v4.boolean,
    isDragging = v4.boolean,
    navigation = v4.table,
    analytics = v4.table,
    sendAnalytics = v4.callback
});
v26.defaultProps = {
    lastInputIsGamepad = false,
    isDragging = false
};
v26.init = function(v27)
    v27.openResetConfirmation = function()
        if not v27.props.isDragging then
            v27.props.sendAnalytics(v27.props.analytics.avatarRefineLayersResetTap);
            v27.props.navigation.navigate(v12.ResetLCSortPrompt);
            return ;
        else
            return ;
        end;
    end;
end;
v26.render = function(v28)
    if not l_IsVRAppBuild_0() then
        return v2.createElement(v22, {
            onActivated = v28.openResetConfirmation,
            lastInputIsGamepad = v28.props.lastInputIsGamepad
        });
    else
        return v2.createElement(v25, {
            onActivated = v28.openResetConfirmation,
            lastInputIsGamepad = v28.props.lastInputIsGamepad
        });
    end;
end;
return (v3.connect(nil, function(v29)
    return {
        sendAnalytics = function(v30)
            v29(v16(v30));
        end
    };
end)((l_RoactServices_0.connect({
    analytics = v15
})((l_withNavigation_0(v26, nil))))));