local l_script_FirstAncestor_0 = script:FindFirstAncestor("ModerationDialog");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_DockWidget_0 = v2.UI.DockWidget;
local l_ContextServices_0 = v2.ContextServices;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Mouse_0 = l_ContextServices_0.Mouse;
local l_Design_0 = l_ContextServices_0.Design;
local l_StudioTheme_0 = v2.Style.Themes.StudioTheme;
local l_registerPluginStyles_0 = v2.Styling.registerPluginStyles;
local l_SourceStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.LocalizedStrings;
local v12 = require(l_script_FirstAncestor_0.Src.Components.DialogContainer);
local v13 = v1.PureComponent:extend("MainPlugin");
v13.init = function(v14, v15)
    v14.state = {
        enabled = false
    };
    v14.toggleEnabled = function()
        v14:setState(function(v16)
            return {
                enabled = not v16.enabled
            };
        end);
    end;
    v14.onClose = function()
        v14:setState({
            enabled = false
        });
    end;
    v14.onRestore = function(v17)
        v14:setState({
            enabled = v17
        });
    end;
    v14.onWidgetEnabledChanged = function(v18)
        v14:setState({
            enabled = v18.Enabled
        });
    end;
    v14.onDockWidgetCreated = function()
        v14.props.PluginLoaderContext.mainButtonClickedSignal:Connect(v14.toggleEnabled);
    end;
    v14.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "ModerationDialog"
    });
    v14.analytics = l_ContextServices_0.Analytics.new(function()
        return {};
    end, {});
    v14.DEPRECATED_stylizer = l_StudioTheme_0.new();
    v14.design = l_registerPluginStyles_0(v15.Plugin);
end;
v13.didUpdate = function(v19)
    v19.props.PluginLoaderContext.mainButton:SetActive(v19.state.enabled);
end;
local v20 = {
    punishedUserId = 123456789,
    interventionId = "af9j230-34j1-2314-jfji-123j43i2oj",
    punishmentId = 0,
    messageToUser = "Roblox does not permit discriminatory language, behavior, or content of any kind.",
    punishmentTypeDescription = "Ban 1 Day",
    beginDate = "2024-05-01T22:27:27.378Z",
    endDate = "2024-05-02T22:27:27.378Z",
    badUtterances = {
        {
            abuseType = "ABUSE_TYPE_DISCRIMINATORY",
            utteranceText = "some discriminatory text",
            imageUrl = "null"
        },
        {
            abuseType = "ABUSE_TYPE_SPAM",
            utteranceText = "XDDDDD",
            imageUrl = "null"
        },
        {
            abuseType = "ABUSE_TYPE_SEXUAL_CONTENT",
            utteranceText = "Asset Name:TEST Asset ID:17357472299",
            imageUrl = "null"
        }
    },
    verificationCategory = "",
    consequenceTransparencyMessage = "",
    showAppealsProcessLink = false,
    agreedCheckBoxExperimentVariant = "null"
};
v13.render = function(v21)
    local l_props_0 = v21.props;
    local l_state_0 = v21.state;
    local l_Plugin_1 = l_props_0.Plugin;
    local l_enabled_0 = l_state_0.enabled;
    local _ = v21.localization;
    return l_ContextServices_0.provide({
        l_Plugin_0.new(l_Plugin_1),
        l_Mouse_0.new(l_Plugin_1:getMouse()),
        v21.localization,
        v21.analytics,
        l_Design_0.new(v21.design)
    }, {
        MainWidget = v1.createElement(l_DockWidget_0, {
            Id = "ModerationDialog",
            Enabled = false,
            Title = v21.localization:getText("Plugin", "Name"),
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
            InitialDockState = Enum.InitialDockState.Bottom,
            Size = Vector2.new(640, 480),
            MinSize = Vector2.new(250, 200),
            OnClose = v21.onClose,
            Widget = l_props_0.PluginLoaderContext.mainDockWidget,
            OnWidgetCreated = v21.onDockWidgetCreated,
            [v1.Change.Enabled] = v21.onWidgetEnabledChanged
        }, {
            DialogContainer = v1.createElement(v12, {
                Reason = v20.badUtterances[1],
                ReviewDateTime = v20.beginDate,
                ModeratorNote = v20.messageToUser,
                Enabled = l_enabled_0
            }),
            StyleLink = v1.createElement("StyleLink", {
                StyleSheet = v21.design
            })
        })
    });
end;
return v13;


return require(script:FindFirstAncestor("ModerationDialog").Packages.Framework).Styling.createStyleSheet("ModerationDialogDarkTheme", {}, {
    CheckboxHoveredImage = "rbxasset://textures/DeveloperFramework/checkbox_unchecked_hover_dark.png"
});


return require(script:FindFirstAncestor("ModerationDialog").Packages.Framework).Styling.createStyleSheet("ModerationDialogLightTheme", {}, {
    CheckboxHoveredImage = "rbxasset://textures/DeveloperFramework/checkbox_unchecked_hover_light.png"
});


local v0 = require(script:FindFirstAncestor("ModerationDialog").Packages.Framework);
local l_TestHelpers_0 = v0.TestHelpers;
local l_ContextServices_0 = v0.ContextServices;
local v3 = {
    l_ContextServices_0.Analytics.mock(),
    l_ContextServices_0.Localization.mock()
};
return function(v4)
    assert(type(v4) == "table", "Expected children to be a table");
    return l_TestHelpers_0.provideMockContext(v3, v4);
end;


if plugin then
    local l_Parent_0 = script.Parent.Parent.Parent;
    local v1 = require(script.Parent.Parent.Common.commonInit);
    v1();
    local v2 = require(l_Parent_0.Packages.TestLoader);
    v2.launch("Notifications", l_Parent_0.Src);
    if not v2.isCli() then
        local l_MultipleDocumentInterfaceInstance_0 = plugin.MultipleDocumentInterfaceInstance;
        local v4 = nil;
        local function _()
            if plugin.HostDataModelTypeIsCurrent then
                return ;
            else
                return ;
            end;
        end;
        (function()
            v1();
            local l_FocusedDataModelSession_0 = l_MultipleDocumentInterfaceInstance_0.FocusedDataModelSession;
            l_FocusedDataModelSession_0.CurrentDataModelTypeAboutToChange:Connect(function()
                if v4 then
                    v4:destroy();
                    v4 = nil;
                end;
            end);
            l_FocusedDataModelSession_0.CurrentDataModelTypeChanged:Connect(function()
                if plugin.HostDataModelTypeIsCurrent then
                    return ;
                else
                    return ;
                end;
            end);
            if plugin.HostDataModelTypeIsCurrent then
                return ;
            else
                return ;
            end;
        end)();
        return ;
    else
        return ;
    end;
else
    return ;
end;


local l_Common_0 = script.Parent.Parent.Common;
require(l_Common_0.defineLuaFlags);
if plugin then
    local l_Parent_0 = script.Parent.Parent.Parent;
    require(l_Common_0.commonInit)();
    if not require(l_Parent_0.Packages.TestLoader).isCli() then
        local l_Frame_0 = Instance.new("Frame");
        local v3 = require(l_Parent_0.Packages.React);
        local v4 = require(l_Parent_0.Packages.ReactRoblox);
        local v5 = require(l_Parent_0.Src.MainPlugin);
        local v6 = nil;
        local function v8()
            plugin.Name = l_Parent_0.Name;
            local v7 = v3.createElement(v5, {
                Plugin = plugin
            });
            v6 = v4.createRoot(l_Frame_0);
            v6:render(v7);
        end;
        plugin.Unloading:Connect(function()
            if v6 then
                v6:render(nil);
                v6 = nil;
            end;
        end);
        v8();
        return ;
    else
        return ;
    end;
else
    return ;
end;


local v0 = require(script.Parent.Parent.Parent.Src.Enums.NotificationTargetType);
return {
    function(v1)
        return {
            notificationId = tostring(v1),
            createdUtcTimeInMs = DateTime.now().UnixTimestampMillis - 5000,
            read = false,
            notificationType = "Notification_Type_A",
            parameters = {
                titleParam = ("Testing titleParameter with index %*."):format(v1)
            },
            creatorStreamNotificationContent = {
                title = "DevForum Product Announcement: Studio Notifications",
                body = "Studio Notifications have been released. Click here to learn more.",
                targetId = "CreateFilledEmphasis",
                targetType = v0.Static.rawValue(),
                clickAction = "https://create.roblox.com"
            }
        };
    end,
    function(v2)
        return {
            notificationId = tostring(v2),
            createdUtcTimeInMs = DateTime.now().UnixTimestampMillis - 120000,
            read = false,
            notificationType = "Notification_Type_B",
            parameters = {
                titleParam = ("Parameter test with index: %*."):format(v2)
            },
            creatorStreamNotificationContent = {
                title = "LinksGoat sent you a new message.",
                body = "ChatGPTum dialogus continuo generat contentum. Linguae machinales potentiam demonstrant in generatione textus. Conversatio artificialis",
                targetId = "2067243959",
                targetType = v0.User.rawValue(),
                clickAction = "https://www.roblox.com/users/2067243959/profile"
            }
        };
    end,
    function(v3)
        return {
            notificationId = tostring(v3),
            createdUtcTimeInMs = DateTime.now().UnixTimestampMillis - 3700000,
            read = false,
            notificationType = "Notification_Type_C",
            parameters = {
                titleParam = ("Parameter test with index: %*."):format(v3)
            },
            creatorStreamNotificationContent = {
                title = "You've received an invitation to collaborate on Word Bomb.",
                body = "",
                targetId = "2653064683",
                targetType = v0.Universe.rawValue(),
                clickAction = "https://www.roblox.com/games/2653064683/Word-Bomb"
            }
        };
    end,
    function(v4)
        return {
            notificationId = tostring(v4),
            createdUtcTimeInMs = DateTime.now().UnixTimestampMillis,
            read = false,
            notificationType = "Notification_Type_D",
            parameters = {
                titleParam = ("Testing titleParameter with index %*."):format(v4)
            },
            creatorStreamNotificationContent = {
                title = "This is an example of a notification w/o an action. {titleParam}",
                body = "This is the body of the notification",
                targetId = "",
                targetType = v0.Static.rawValue(),
                clickAction = ""
            }
        };
    end
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local v2 = require(l_Parent_0.Src.Clients.NotificationClient);
local v3 = require(l_Parent_0.Src.Contexts.NotificationsProvider);
local v4 = require(l_Parent_0.Src.Contexts.MenuVisibleProvider);
local v5 = require(l_Parent_0.Src.Components.NotificationTray);
return function()
    return v1.createElement(v4, {}, {
        v1.createElement(v3, {
            notificationClient = v2
        }, {
            NotificationTray = v1.createElement(v5)
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local v2 = require(l_Parent_0.Packages.Framework);
local l_Localization_0 = v2.ContextServices.Localization;
local l_LoadingIndicator_0 = v2.UI.LoadingIndicator;
return function(v5)
    local v6 = l_Localization_0:use();
    local v7 = v1.useCallback(function()
        v5.OnRetry(true);
    end, {
        v5.OnRetry
    });
    return v1.createElement("Frame", {
        LayoutOrder = v5.LayoutOrder,
        [v1.Tag] = "Component-EmptyNotificationTray"
    }, (v1.useMemo(function()
        if not v5.Loading then
            if not v5.OnLoadError then
                return {
                    EmptyState = v1.createElement("Frame", {
                        [v1.Tag] = "Component-EmptyNotificationTray-Centering"
                    }, {
                        EmptyImage = v1.createElement("ImageLabel", {
                            LayoutOrder = 1
                        }),
                        TextLabel = v1.createElement("TextLabel", {
                            LayoutOrder = 2,
                            Text = v6:getText("EmptyNotificationTray", "NoNewNotifications"),
                            [v1.Tag] = "Component-EmptyNotificationTray-SubText"
                        })
                    })
                };
            else
                return {
                    ErrorState = v1.createElement("Frame", {
                        [v1.Tag] = "Component-EmptyNotificationTray-Centering Component-EmptyNotificationTray-ErrorLayout"
                    }, {
                        ErrorImage = v1.createElement("ImageLabel", {
                            LayoutOrder = 1
                        }),
                        TextContent = v1.createElement("Frame", {
                            LayoutOrder = 2,
                            Size = UDim2.new(1, 0, 0, 0),
                            AutomaticSize = Enum.AutomaticSize.Y,
                            BackgroundTransparency = 1,
                            BorderSizePixel = 0,
                            [v1.Tag] = "X-Column"
                        }, {
                            Mainline = v1.createElement("TextLabel", {
                                LayoutOrder = 1,
                                Text = v6:getText("EmptyNotificationTray", "LoadErrorMain"),
                                [v1.Tag] = "Component-EmptyNotificationTray-MainText"
                            }),
                            Subline = v1.createElement("TextLabel", {
                                LayoutOrder = 2,
                                Text = v6:getText("EmptyNotificationTray", "LoadErrorSub"),
                                [v1.Tag] = "Component-EmptyNotificationTray-SubText"
                            })
                        }),
                        RefreshButton = v1.createElement("TextButton", {
                            LayoutOrder = 3,
                            Text = v6:getText("EmptyNotificationTray", "RefreshAction"),
                            [v1.Event.MouseButton1Click] = v7
                        })
                    })
                };
            end;
        else
            return {
                LoadingContent = v1.createElement(l_LoadingIndicator_0, {
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    AnchorPoint = Vector2.new(0.5, 0.5)
                })
            };
        end;
    end, {
        v5.Loading,
        v5.OnLoadError
    })));
end;


local l_createStyleRule_0 = require(script.Parent.Parent.Parent.Parent.Packages.Framework).Styling.createStyleRule;
local v1 = UDim2.new(0, 96, 0, 96);
return l_createStyleRule_0(".Component-EmptyNotificationTray", {
    BackgroundTransparency = 1,
    Size = UDim2.new(1, 0, 1, -43),
    BorderSizePixel = 0
}, {
    l_createStyleRule_0("::UIPadding", {
        PaddingLeft = UDim.new(0, 12),
        PaddingRight = UDim.new(0, 12)
    }),
    l_createStyleRule_0("> #ErrorState", {}, {
        l_createStyleRule_0("::UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 24)
        }),
        l_createStyleRule_0("> #ErrorImage", {
            Image = "$NotificationErrorIcon",
            Size = v1,
            BackgroundTransparency = 1
        }),
        l_createStyleRule_0("> #RefreshButton", {
            AutomaticSize = Enum.AutomaticSize.XY,
            BackgroundColor3 = "$BackgroundPaper",
            TextColor3 = "$TextPrimary",
            TextSize = 24,
            TextWrapped = true,
            Font = Enum.Font.SourceSansSemibold
        }, {
            l_createStyleRule_0("::UICorner", {
                CornerRadius = UDim.new(0, 8)
            }),
            l_createStyleRule_0("::UIStroke", {
                Color = "$SecondaryRestingOutlineBorder",
                Thickness = 1,
                LineJoinMode = Enum.LineJoinMode.Round,
                ApplyStrokeMode = Enum.ApplyStrokeMode.Border
            }),
            l_createStyleRule_0("::UIPadding", {
                PaddingTop = UDim.new(0, 4),
                PaddingBottom = UDim.new(0, 4),
                PaddingLeft = UDim.new(0, 10),
                PaddingRight = UDim.new(0, 10)
            })
        })
    }),
    l_createStyleRule_0("> #EmptyState", {}, {
        l_createStyleRule_0("::UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 6)
        }),
        l_createStyleRule_0("> #EmptyImage", {
            Image = "$NotificationEmptyTrayIcon",
            Size = v1,
            BackgroundTransparency = 1
        })
    }),
    l_createStyleRule_0(">> .Component-EmptyNotificationTray-Centering", {
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        Position = UDim2.new(0.5, 0, 0.5, 0),
        AnchorPoint = Vector2.new(0.5, 0.5)
    }),
    l_createStyleRule_0(">> .Component-EmptyNotificationTray-MainText", {
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        TextColor3 = "$TextPrimary",
        TextSize = 18,
        TextWrapped = true,
        Font = Enum.Font.SourceSansSemibold
    }),
    l_createStyleRule_0(">> .Component-EmptyNotificationTray-SubText", {
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        TextColor3 = "$TextSecondary",
        TextSize = 18,
        TextWrapped = true,
        Font = Enum.Font.SourceSansSemibold
    })
});


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local l_Styling_0 = require(l_Parent_0.Packages.Framework).Styling;
local l_GuiService_0 = game:GetService("GuiService");
local v4 = require(script.Parent.NotificationText);
local _ = require(l_Parent_0.Src.Clients.NotificationClient);
local v6 = require(l_Parent_0.Src.Contexts.NotificationsContext);
local v7 = require(l_Parent_0.Src.Contexts.AnalyticsContext);
local v8 = require(l_Parent_0.Src.Contexts.MenuVisibleContext);
local v9 = require(l_Parent_0.Src.Enums.NotificationTargetType);
local v10 = require(l_Parent_0.Src.Util.IconGetters);
local l_getDynamicIconPath_0 = v10.getDynamicIconPath;
local l_getReadStatusIconTag_0 = v10.getReadStatusIconTag;
local l_getStaticIconTag_0 = v10.getStaticIconTag;
local v14 = require(l_Parent_0.Src.Util.interpolateNotificationSubject);
local v15 = require(l_Parent_0.Src.Util.useRelativeTime);
local v16 = require(l_Parent_0.Src.Util.optional);
local v17 = require(l_Parent_0.Src.Util.TimeConstants);
return function(v18)
    local v19 = v16(v18, "Notification", "notificationId");
    local v20 = v16(v18, "Notification", "creatorStreamNotificationContent", "title");
    local v21 = v16(v18, "Notification", "parameters");
    local v22 = v16(v18, "Notification", "creatorStreamNotificationContent", "body");
    local v23 = v16(v18, "Notification", "creatorStreamNotificationContent", "targetId");
    local v24 = v16(v18, "Notification", "creatorStreamNotificationContent", "targetType");
    local v25 = v16(v18, "Notification", "read");
    local v26 = v16(v18, "Notification", "creatorStreamNotificationContent", "clickAction");
    local v27 = v16(v18, "Notification", "createdUtcTimeInMs");
    local v28 = v1.useMemo(function()
        if v27 == nil then
            return nil;
        else
            return (math.floor(v27 / v17.SECONDS_IN_MS));
        end;
    end, {
        v27
    });
    local v29 = v1.useMemo(function()
        return v9.fromRawValue(v24);
    end, {
        v24
    });
    local v30 = v1.useContext(v6);
    local v31 = v1.useContext(v8);
    local v32 = v7:use();
    local v33 = v15(v28);
    local v35 = v1.useMemo(function()
        local v34 = true;
        if v26 ~= nil then
            v34 = v26 == "";
        end;
        return v34;
    end, {
        v26
    });
    local v36 = v1.useMemo(function()
        return l_getDynamicIconPath_0(v23, v29);
    end, {
        v23,
        v29
    });
    local v37 = v1.useMemo(function()
        return l_getStaticIconTag_0(v23, v29);
    end, {
        v23,
        v29
    });
    local v38 = v1.useMemo(function()
        return v14(v20, v21);
    end, {
        v20,
        v21
    });
    local v39 = v1.useMemo(function()
        return l_getReadStatusIconTag_0(v25, v35);
    end, {
        v25,
        v35
    });
    local v40 = v1.useCallback(function()
        if not v35 then
            l_GuiService_0:OpenBrowserWindow(v26);
            v30.markNotificationRead(v18.Index);
            v32.eventHandlers.notificationClicked(v18.Notification, v18.Index);
            if not (v25 or v35) then
                v30.notificationClient.markNotificationRead(v19);
            end;
            return ;
        else
            return ;
        end;
    end, {
        v26,
        v35,
        v19,
        v25,
        v18.Index,
        v18.Notification,
        v30,
        v32
    });
    local v41 = v1.useMemo(function()
        return not v35 and not v31.menuVisible;
    end, {
        v35,
        v31.menuVisible
    });
    return v1.createElement("Frame", {
        LayoutOrder = v18.LayoutOrder,
        [v1.Tag] = "Component-InnerNotificationCard"
    }, {
        InnerCard = v1.createElement("TextButton", {
            LayoutOrder = v18.LayoutOrder,
            Selectable = v41,
            AutoButtonColor = false,
            [v1.Event.MouseButton1Click] = v40,
            [v1.Tag] = l_Styling_0.joinTags("X-Left", not v41 and "Plugin-NotificationCard-HoverDisabled" or "Plugin-NotificationCard-Hover")
        }, {
            Icon = v1.createElement("ImageLabel", {
                Image = v36,
                LayoutOrder = 1,
                [v1.Tag] = l_Styling_0.joinTags(("%*"):format(v37), v29 == v9.User and "Component-NotificationCard-User" or nil)
            }),
            Content = v1.createElement(v4, {
                Subject = v38,
                Subline = v22,
                ElapsedTime = v33,
                LayoutOrder = 2
            }),
            StatusIndicator = v1.createElement("Frame", {
                [v1.Tag] = "X-Middle",
                LayoutOrder = 3
            }, {
                Indicator = v1.createElement("ImageLabel", {
                    Position = UDim2.new(0, 0, 0.5, 0),
                    [v1.Tag] = ("%*"):format(v39)
                })
            })
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_createStyleRule_0 = require(l_Parent_0.Packages.Framework).Styling.createStyleRule;
local l_TRAY_WIDTH_0 = require(l_Parent_0.Src.Util.TraySize).TRAY_WIDTH;
return l_createStyleRule_0(".Component-InnerNotificationCard", {
    BackgroundColor3 = "$BackgroundPaper",
    BorderSizePixel = 0,
    Size = UDim2.new(0, l_TRAY_WIDTH_0 - 11, 0, 0),
    AutomaticSize = Enum.AutomaticSize.Y
}, {
    l_createStyleRule_0("::UIPadding", {
        PaddingLeft = UDim.new(0, 6),
        PaddingRight = UDim.new(0, 3),
        PaddingTop = UDim.new(0, 0),
        PaddingBottom = UDim.new(0, 0)
    }),
    l_createStyleRule_0("> #InnerCard", {
        Size = UDim2.new(1, 0, 1, 0),
        TextTransparency = 1
    }, {
        l_createStyleRule_0("::UIPadding", {
            PaddingLeft = "$NotificationContentPadding",
            PaddingRight = "$NotificationContentPaddingXL",
            PaddingTop = "$NotificationContentPadding",
            PaddingBottom = "$NotificationContentPadding"
        }),
        l_createStyleRule_0("::UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = "$NotificationContentPadding"
        }),
        l_createStyleRule_0("::UICorner", {
            CornerRadius = UDim.new(0, 4)
        }),
        l_createStyleRule_0("> .Component-NotificationCard-User", {}, {
            l_createStyleRule_0("::UICorner", {
                CornerRadius = UDim.new(1, 0)
            })
        }),
        l_createStyleRule_0("> #Icon", {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Size = UDim2.new(0, 20, 0, 20)
        }),
        l_createStyleRule_0("> #Content", {
            Size = UDim2.new(0, (l_TRAY_WIDTH_0 - 20) - 65, 0, 0)
        }),
        l_createStyleRule_0("> #StatusIndicator", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            l_createStyleRule_0("> #Indicator", {
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = UDim2.new(0, 16, 0, 16)
            })
        })
    })
}, {
    NotificationContentPadding = UDim.new(0, 6),
    NotificationContentPaddingXL = UDim.new(0, 12)
});


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local l_Localization_0 = require(l_Parent_0.Packages.Framework).ContextServices.Localization;
local v3 = require(l_Parent_0.Src.Contexts.TrayVisibleContext);
local v4 = require(l_Parent_0.Src.Contexts.MenuVisibleContext);
local v5 = require(script.Parent.NotificationMenu);
return function(v6)
    local v7 = l_Localization_0:use();
    local v8 = v1.useContext(v3);
    local v9 = v1.useContext(v4);
    local v10 = v1.useCallback(function()
        v9.setMenuVisible(not v9.menuVisible);
    end, {
        v9
    });
    local v14 = v1.useCallback(function(_, _, _)
        v9.setMenuVisible(false);
    end, {});
    v1.useEffect(function()
        if not v8.trayVisible then
            v9.setMenuVisible(false);
        end;
    end, {
        v8.trayVisible
    });
    return v1.createElement("Frame", {
        LayoutOrder = v6.LayoutOrder,
        [v1.Tag] = "Component-NotificationHeader"
    }, {
        Title = v1.createElement("TextLabel", {
            Text = v7:getText("Plugin", "Name")
        }),
        MoreOptionsFrame = v1.createElement("Frame", {}, {
            MoreOptionsButton = v1.createElement("ImageButton", {
                AutoButtonColor = false,
                [v1.Event.MouseButton1Click] = v10,
                [v1.Tag] = "Plugin-Icon-ThreeDots"
            })
        }),
        DropdownMenu = if not v9.menuVisible then nil else v1.createElement(v5, {
            OnDropdownMenuFocusLost = v14
        })
    });
end;


local l_createStyleRule_0 = require(script.Parent.Parent.Parent.Parent.Packages.Framework).Styling.createStyleRule;
return l_createStyleRule_0(".Component-NotificationHeader", {
    Size = UDim2.new(1, 0, 0, 34),
    BackgroundColor3 = "$BackgroundPaper",
    BorderSizePixel = 0
}, {
    l_createStyleRule_0("::UIPadding", {
        PaddingLeft = UDim.new(0, 8),
        PaddingRight = UDim.new(0, 10),
        PaddingTop = UDim.new(0, 0),
        PaddingBottom = UDim.new(0, 0)
    }),
    l_createStyleRule_0("> #Title", {
        Size = UDim2.new(0.75, 0, 0, 40),
        Position = UDim2.new(0, 0, 0, 0),
        BackgroundColor3 = "$BackgroundPaper",
        TextColor3 = "$TextPrimary",
        TextSize = 20,
        BorderSizePixel = 0,
        Font = Enum.Font.SourceSansSemibold,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Center
    }, {
        l_createStyleRule_0("::UIPadding", {
            PaddingLeft = UDim.new(0, 3)
        })
    }),
    l_createStyleRule_0("> #MoreOptionsFrame", {
        Size = UDim2.new(0.25, 0, 0, 40),
        Position = UDim2.new(1, 0, 0, 0),
        AnchorPoint = Vector2.new(1, 0),
        BackgroundColor3 = "$BackgroundPaper",
        BorderSizePixel = 0
    }, {
        l_createStyleRule_0("> #MoreOptionsButton", {
            Size = UDim2.new(0, 28, 0, 28),
            Position = UDim2.new(1, 0, 0.5, 0),
            AnchorPoint = Vector2.new(1, 0.5),
            BackgroundColor3 = "$BackgroundPaper",
            BorderSizePixel = 0
        }, {
            l_createStyleRule_0(":hover", {
                BackgroundColor3 = "$ActionHover"
            }),
            l_createStyleRule_0(":pressed", {
                BackgroundColor3 = "$ActionActivated"
            }),
            l_createStyleRule_0("::UICorner", {
                CornerRadius = UDim.new(0, 4)
            })
        })
    })
});


local v0 = {
    "MarkAllAsRead",
    "Settings"
};
local l_SourceSans_0 = Enum.Font.SourceSans;
local v2 = #v0;
local v3 = v2 * 36;
local v4 = v3 - 2;
return {
    MENU_OPTIONS = v0,
    BORDER_SIZE = 1,
    HORIZONTAL_BUFFER = 4,
    LEFT_RIGHT_BUTTON_PADDING = 8,
    TEXT_FONT = l_SourceSans_0,
    TEXT_SIZE = 18,
    NUMBER_OF_OPTIONS = v2,
    TOTAL_MENU_HEIGHT = v3,
    TEXT_WIDTH_PADDING = 20,
    INNER_MENU_HEIGHT = v4,
    BUTTON_HEIGHT = v4 / v2
};


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_createStyleRule_0 = require(l_Parent_0.Packages.Framework).Styling.createStyleRule;
local v2 = require(l_Parent_0.Src.Components.NotificationMenu.constants);
return l_createStyleRule_0(".Component-NotificationMenu", {
    BackgroundColor3 = "$BackgroundPaper"
}, {
    l_createStyleRule_0("::UICorner", {
        CornerRadius = UDim.new(0, 4)
    }),
    l_createStyleRule_0(">> .Component-NotificationMenuInner", {
        BackgroundColor3 = "$SecondaryMain"
    }, {
        l_createStyleRule_0("::UICorner", {
            CornerRadius = UDim.new(0, 4)
        }),
        l_createStyleRule_0("::UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top
        }),
        l_createStyleRule_0(">> .Component-NotificationMenuOptionButton", {
            BorderSizePixel = 0,
            Font = v2.TEXT_FONT,
            TextSize = v2.TEXT_SIZE,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            TextColor3 = "$TextPrimary",
            BackgroundColor3 = "$SecondaryMain"
        }, {
            l_createStyleRule_0("::UICorner", {
                CornerRadius = UDim.new(0, 4)
            }),
            l_createStyleRule_0("::UISizeConstraint", {
                MaxSize = Vector2.new(math.huge, 48)
            }),
            l_createStyleRule_0("::UIPadding", {
                PaddingLeft = UDim.new(0, v2.LEFT_RIGHT_BUTTON_PADDING),
                PaddingRight = UDim.new(0, v2.LEFT_RIGHT_BUTTON_PADDING),
                PaddingTop = UDim.new(0, 4),
                PaddingBottom = UDim.new(0, 4)
            }),
            l_createStyleRule_0(":hover", {
                BackgroundColor3 = "$ActionHover"
            }),
            l_createStyleRule_0(":pressed", {
                BackgroundColor3 = "$ActionActivated"
            })
        })
    })
});


local v0 = require(script.Parent.Parent.Parent.Packages.React);
return v0.memo(function(v1)
    return v0.createElement("Frame", {
        Size = v1.Size,
        LayoutOrder = v1.LayoutOrder,
        [v0.Tag] = "Component-NotificationText X-Column"
    }, {
        Subject = v0.createElement("TextLabel", {
            Text = v1.Subject,
            LayoutOrder = 1
        }),
        Subline = if v1.Subline ~= nil and v1.Subline ~= "" then v0.createElement("TextLabel", {
            Text = v1.Subline,
            LayoutOrder = 2
        }) else nil,
        ElapsedTime = v0.createElement("TextLabel", {
            Text = v1.ElapsedTime,
            LayoutOrder = 3
        })
    });
end);


local l_createStyleRule_0 = require(script.Parent.Parent.Parent.Parent.Packages.Framework).Styling.createStyleRule;
return l_createStyleRule_0(".Component-NotificationText", {
    AutomaticSize = Enum.AutomaticSize.Y,
    BackgroundTransparency = 1,
    BorderSizePixel = 0
}, {
    l_createStyleRule_0("> #Subject", {
        RichText = true,
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        TextColor3 = "$TextPrimary",
        TextSize = 18,
        Font = Enum.Font.SourceSans,
        TextWrapped = true,
        TextTruncate = Enum.TextTruncate.AtEnd,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Top
    }, {
        l_createStyleRule_0("::UISizeConstraint", {
            MaxSize = Vector2.new(math.huge, 36),
            MinSize = Vector2.new(0, 18)
        })
    }),
    l_createStyleRule_0("> #Subline", {
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        TextColor3 = "$TextSecondary",
        TextSize = 18,
        Font = Enum.Font.SourceSans,
        TextWrapped = true,
        TextTruncate = Enum.TextTruncate.AtEnd,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Top
    }, {
        l_createStyleRule_0("::UISizeConstraint", {
            MaxSize = Vector2.new(math.huge, 36),
            MinSize = Vector2.new(0, 18)
        })
    }),
    l_createStyleRule_0("> #ElapsedTime", {
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        TextColor3 = "$TextSecondary",
        TextSize = 15,
        Font = Enum.Font.SourceSans,
        TextTruncate = Enum.TextTruncate.AtEnd,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Top
    })
});


local l_createStyleRule_0 = require(script.Parent.Parent.Parent.Parent.Packages.Framework).Styling.createStyleRule;
return l_createStyleRule_0(".Component-NotificationTray", {
    Size = UDim2.new(1, 0, 1, 0),
    BackgroundColor3 = "$BackgroundPaper",
    BorderSizePixel = 0
}, {
    l_createStyleRule_0(">> .Component-NotificationTrayScrollingFrame", {
        Size = UDim2.new(1, -4, 1, -38),
        Position = UDim2.new(0, 0, 0, 38),
        CanvasSize = UDim2.new(1, -4, 1, -38),
        AutomaticCanvasSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        ScrollBarThickness = 6,
        ScrollBarImageColor3 = "$NotificationScrollBarColor",
        VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar,
        ScrollingDirection = Enum.ScrollingDirection.Y
    }, {
        l_createStyleRule_0("::UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            Padding = UDim.new(0, 4)
        })
    }),
    l_createStyleRule_0(">> .Component-NotificationTrayLoading", {
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1
    }, {
        l_createStyleRule_0("::UIPadding", {
            PaddingTop = UDim.new(0, 12),
            PaddingBottom = UDim.new(0, 12)
        })
    })
});


local l_Parent_0 = script.Parent.Parent.Parent;
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.Src.Util.optional);
local _ = require(l_Parent_0.Src.Clients.NotificationClient);
createAnalyticsHandler = function(v5)
    local function v8(v6, v7)
        v5:SendEventDeferred("studio", "NotificationTray", v6, (v2.Dictionary.join({
            studioSid = v5:GetSessionId(),
            clientId = v5:GetClientId(),
            placeId = game.PlaceId
        }, v7 or {})));
    end;
    return {
        notificationClicked = function(v9, v10)
            v8("NotificationClicked", {
                id = v3(v9, "notificationId"),
                type = v3(v9, "creatorStreamNotificationContent", "clickAction"),
                clickAction = v3(v9, "notificationType"),
                read = v3(v9, "read"),
                trayIndex = v10
            });
        end,
        markAllAsRead = function()
            v8("MarkAllAsRead");
        end,
        settingsButtonClicked = function()
            v8("SettingsButtonClicked");
        end,
        trayOpened = function(v11)
            v8("NotificationTrayOpened", {
                bellUnseen = v11
            });
        end,
        logNotificationImpressions = function(v12)
            v8("NotificationImpressions", {
                notificationIds = v12
            });
        end
    };
end;
return (l_ContextServices_0.Analytics.new(createAnalyticsHandler));


return (require(script.Parent.Parent.Parent.Packages.React).createContext({
    menuVisible = false,
    setMenuVisible = function()
    end
}));


local v0 = require(script.Parent.Parent.Parent.Packages.React);
local v1 = require(script.Parent.MenuVisibleContext);
return function(v2)
    local v3, v4 = v0.useState(false);
    return v0.createElement(v1.Provider, {
        value = v0.useMemo(function()
            return {
                menuVisible = v3,
                setMenuVisible = v4
            };
        end, {
            v3,
            v4
        })
    }, v2.children);
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local _ = require(l_Parent_0.Src.Clients.NotificationClient);
return (v1.createContext({
    notifications = {},
    allLoaded = false,
    setNotifications = function()
    end,
    setCursor = function()
    end,
    setAllLoaded = function()
    end,
    markNotificationRead = function()
    end,
    markAllNotificationsRead = function()
    end,
    logNotificationImpressions = function()
    end,
    notificationClient = nil
}));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local v2 = require(l_Parent_0.Packages.Framework);
local l_HttpService_0 = game:GetService("HttpService");
local l_deepCopy_0 = v2.Util.deepCopy;
local v5 = require(l_Parent_0.Src.Contexts.TrayVisibleContext);
local v6 = require(l_Parent_0.Src.Contexts.AnalyticsContext);
local v7 = require(l_Parent_0.Src.Clients.NotificationClient);
local v8 = require(script.Parent.NotificationsContext);
return function(v9)
    local v10 = v1.useContext(v5);
    local v11 = v6:use();
    local v12, v13 = v1.useState({});
    local v14, v15 = v1.useState(nil);
    local v16, v17 = v1.useState(false);
    local v18 = v1.useRef("");
    local v25 = v1.useCallback(function(v19, v20)
        local v21 = {};
        for _, v23 in pairs(v19) do
            if not v21[v23.notificationType] then
                v21[v23.notificationType] = {
                    v23.notificationId
                };
            else
                table.insert(v21[v23.notificationType], v23.notificationId);
            end;
        end;
        local v24 = l_HttpService_0:JSONEncode(v21);
        if not v20 or v10.trayVisible then
            v11.eventHandlers.logNotificationImpressions(v24);
            return ;
        else
            v18.current = v24;
            return ;
        end;
    end, {
        v11,
        v10.trayVisible
    });
    v1.useEffect(function()
        if v10.trayVisible and v18.current ~= "" then
            v11.eventHandlers.logNotificationImpressions(v18.current);
            v18.current = "";
        end;
    end, {
        v10.trayVisible
    });
    local v32 = v1.useCallback(function(v26)
        v13(function(v27)
            local v28 = l_deepCopy_0(v27[v26]);
            v28.read = true;
            local v29 = {};
            for _, v31 in pairs(v27) do
                table.insert(v29, v31);
            end;
            v29[v26] = v28;
            return v29;
        end);
    end, {
        v12,
        v13
    });
    local v39 = v1.useCallback(function(_)
        v13(function(v34)
            local v35 = {};
            for _, v37 in pairs(v34) do
                local v38 = l_deepCopy_0(v37);
                v38.read = true;
                table.insert(v35, v38);
            end;
            return v35;
        end);
    end, {
        v12,
        v13
    });
    return v1.createElement(v8.Provider, {
        value = v1.useMemo(function()
            return {
                notifications = v12,
                cursor = v14,
                allLoaded = v16,
                setNotifications = v13,
                setCursor = v15,
                setAllLoaded = v17,
                markNotificationRead = v32,
                markAllNotificationsRead = v39,
                logNotificationImpressions = v25,
                notificationClient = v9.notificationClient
            };
        end, {
            v12,
            v14,
            v16,
            v13,
            v15,
            v17,
            v32,
            v39,
            v25,
            v7
        })
    }, v9.children);
end;


return (require(script.Parent.Parent.Parent.Packages.React).createContext({
    trayVisible = false
}));


local v0 = require(script.Parent.Parent.Parent.Packages.React);
local v1 = require(script.Parent.TrayVisibleContext);
return function(v2)
    return v0.createElement(v1.Provider, {
        value = v0.useMemo(function()
            return {
                trayVisible = v2.trayVisible
            };
        end, {
            v2.trayVisible
        })
    }, v2.children);
end;


return require(script.Parent.Parent.Parent.Packages.Framework).Util.enumerate("NotificationChannel", {
    Studio = 7
});


return require(script.Parent.Parent.Parent.Packages.Framework).Util.enumerate("NotificationTargetType", {
    Invalid = 0,
    Universe = 1,
    User = 2,
    Static = 3
});


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local v2 = require(l_Parent_0.Packages.Framework);
local l_UI_0 = v2.UI;
local l_Styling_0 = v2.Styling;
local l_DockWidget_0 = l_UI_0.DockWidget;
local l_status_0, l_result_0 = pcall(function()
    return game:GetService("StudioWidgetsService");
end);
local v8 = if not l_status_0 then nil else l_result_0;
local l_status_1, l_result_1 = pcall(function()
    return game:GetService("RibbonNotificationService");
end);
local v11 = if not l_status_1 then nil else l_result_1;
local l_ContextServices_0 = v2.ContextServices;
local l_registerPluginStyles_0 = l_Styling_0.registerPluginStyles;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Mouse_0 = l_ContextServices_0.Mouse;
local l_Focus_0 = l_ContextServices_0.Focus;
local v17 = require(l_Parent_0.Src.Contexts.AnalyticsContext);
local v18 = require(l_Parent_0.Src.Contexts.TrayVisibleProvider);
local v19 = require(l_Parent_0.Src.Resources.MakeTheme);
local v20 = require(l_Parent_0.Src.Util.AttachmentConstants);
local l_SourceStrings_0 = l_Parent_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_Parent_0.Src.Resources.Localization.LocalizedStrings;
local v23 = require(l_Parent_0.Src.Util.TraySize);
local l_TRAY_WIDTH_0 = v23.TRAY_WIDTH;
local l_TRAY_HEIGHT_0 = v23.TRAY_HEIGHT;
local v26 = require(l_Parent_0.Src.Components.App);
local l_NotificationsRibbonAttachment_0 = game:GetFastFlag("NotificationsRibbonAttachment");
local v28 = v1.PureComponent:extend("MainPlugin");
v28.init = function(v29, v30)
    v29.state = {
        enabled = false,
        widget = nil
    };
    v29.attachmentInfo = v20.DatamodelSessionUnloadedAttachmentInfo;
    v29.toggleEnabled = function(v31, v32, v33)
        local v34 = not v29.state.enabled and v31;
        if not (not v29.state.widget or not v34 and not v32) then
            if not l_NotificationsRibbonAttachment_0 then
                local l_v8_WidgetFromLabel_0 = v8:GetWidgetFromLabel("whatsNewAction");
                local l_StudioAttachment_0 = Instance.new("StudioAttachment");
                l_StudioAttachment_0.IsArrowVisible = false;
                l_StudioAttachment_0.SourceAnchorPoint = v29.attachmentInfo.SourceAnchorPoint;
                l_StudioAttachment_0.TargetAnchorPoint = v29.attachmentInfo.TargetAnchorPoint;
                l_StudioAttachment_0.Offset = v29.attachmentInfo.Offset;
                v29.state.widget.Enabled = true;
                v8:AttachPluginGui(l_v8_WidgetFromLabel_0, v29.state.widget, l_StudioAttachment_0);
            else
                local l_Uri_0 = v30.Plugin:GetUri();
                v30.Plugin:GetPluginComponent("Panels"):SetAttachment({
                    DataModel = l_Uri_0.DataModel,
                    PluginType = l_Uri_0.PluginType,
                    PluginId = l_Uri_0.PluginId,
                    Category = "Panels",
                    ItemId = "Notifications"
                }, {
                    TargetWidgetUri = {
                        DataModel = "Standalone",
                        PluginType = "Standalone",
                        PluginId = "Ribbon",
                        Category = "Widgets",
                        ItemId = "RightMezzanine/Notifications"
                    },
                    TargetAnchorPoint = Vector2.new(1, 1),
                    SubjectAnchorPoint = Vector2.new(1, 0),
                    Offset = Vector2.new(0, 0)
                });
                v29.state.widget.Enabled = true;
            end;
        end;
        if not ((not v29.state.widget or not v34) or not v33) then
            v17.eventHandlers.trayOpened();
        end;
        v29:setState({
            enabled = v31
        });
    end;
    v29.onRestore = function(v38)
        v29:setState({
            enabled = v38
        });
    end;
    v29.onWidgetEnabledChanged = function(v39)
        v29:setState({
            enabled = v39.Enabled
        });
    end;
    v29.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "Notifications"
    });
    v29.design = l_registerPluginStyles_0(v30.Plugin);
    v29.toggleNotificationTrayConnection = v11.ToggleNotificationTray:Connect(function(v40, v41)
        v29.toggleEnabled(v40, false, v41);
    end);
    local l_MultipleDocumentInterfaceInstance_0 = v30.Plugin.MultipleDocumentInterfaceInstance;
    v29.dmOpenSession = l_MultipleDocumentInterfaceInstance_0.DataModelSessionStarted:Connect(function(_)
        v29.attachmentInfo = v20.DatamodelSessionLoadedAttachmentInfo;
        if v29.state.enabled then
            v29.toggleEnabled(v29.state.enabled, true, false);
        end;
    end);
    v29.dmCloseSession = l_MultipleDocumentInterfaceInstance_0.DataModelSessionEnded:Connect(function(_)
        v29.attachmentInfo = v20.DatamodelSessionUnloadedAttachmentInfo;
        if v29.state.enabled then
            v29.toggleEnabled(v29.state.enabled, true, false);
        end;
    end);
end;
v28.didMount = function(v45)
    if not v45.state.widget then
        v45:setState({
            widget = v45.props.Plugin:CreateQWidgetPluginGui(l_Parent_0.Name, {
                Size = Vector2.new(l_TRAY_WIDTH_0, l_TRAY_HEIGHT_0),
                MinSize = Vector2.new(l_TRAY_WIDTH_0, l_TRAY_HEIGHT_0),
                Modal = false,
                Callout = true,
                InitialEnabled = false
            })
        });
        return ;
    else
        return ;
    end;
end;
v28.willUnmount = function(v46)
    v46.toggleNotificationTrayConnection:Disconnect();
    v46.dmOpenSession:Disconnect();
    v46.dmCloseSession:Disconnect();
end;
v28.render = function(v47)
    local l_props_0 = v47.props;
    local l_state_0 = v47.state;
    local l_Plugin_1 = l_props_0.Plugin;
    local l_enabled_0 = l_state_0.enabled;
    if v47.state.widget then
        return l_ContextServices_0.provide({
            l_Plugin_0.new(l_Plugin_1),
            l_Mouse_0.new(l_Plugin_1:getMouse()),
            l_Focus_0.new(v47.state.widget),
            v19(),
            v47.localization,
            v17
        }, {
            MainWidget = v1.createElement(l_DockWidget_0, {
                Id = "StudioNotifications",
                Enabled = l_enabled_0,
                Title = v47.localization:getText("Plugin", "Name"),
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                InitialDockState = Enum.InitialDockState.Left,
                Size = Vector2.new(l_TRAY_WIDTH_0, l_TRAY_HEIGHT_0),
                MinSize = Vector2.new(l_TRAY_WIDTH_0, l_TRAY_HEIGHT_0),
                ShouldRestore = true,
                OnWidgetRestored = v47.onRestore,
                Widget = v47.state.widget,
                [v1.Change.Enabled] = v47.onWidgetEnabledChanged
            }, {
                AppWithProvider = v1.createElement(v18, {
                    trayVisible = l_enabled_0
                }, {
                    App = v1.createElement(v26)
                }),
                StyleLink = v1.createElement("StyleLink", {
                    StyleSheet = v47.design
                })
            })
        }, true);
    else
        return ;
    end;
end;
return v28;


local _ = script.Parent.Parent.Parent;
return {
    "CampaignFilledNeutral",
    "CheckFilledPositive",
    "CreateFilledEmphasis",
    "CreateFilledNeutral",
    "CreateFilledWarning",
    "EditOffFilledNegative",
    "ErrorFilledError",
    "HappyFilledNeutral",
    "NotificationBell",
    "NotificationSettings",
    "PlayArrowFilledEmphasis",
    "PlayArrowFilledNeutral",
    "PlayArrowFilledWarning",
    "PlayDisabledFilledNegative",
    "ThreeDots",
    "TranslateFilledNeutral",
    "UpdateFilledEmphasis",
    "UpdateFilledNegative",
    "UpdateFilledPositive",
    "UpdateFilledWarning",
    "WarningFilledWarning"
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Framework);
local l_createStyleRule_0 = v1.Styling.createStyleRule;
local l_createStyleSheet_0 = v1.Styling.createStyleSheet;
local v4 = require(l_Parent_0.Src.Resources.NotificationLuaIcons);
local v5 = {
    l_createStyleRule_0(".Plugin-NotificationCard-Hover", {
        BackgroundColor3 = "$ForegroundMain"
    }, {
        l_createStyleRule_0(":hover", {
            BackgroundColor3 = "$ActionHover"
        }),
        l_createStyleRule_0(":pressed", {
            BackgroundColor3 = "$ActionActivated"
        })
    }),
    l_createStyleRule_0(".Plugin-NotificationCard-HoverDisabled", {
        BackgroundColor3 = "$ForegroundMain"
    }),
    l_createStyleRule_0(".Plugin-Icon-StatusDisabled", {
        Image = "$NotificationStatusDisabledIcon"
    }),
    l_createStyleRule_0(".Plugin-Icon-StatusUnread", {
        Image = "$NotificationStatusUnreadIcon"
    })
};
for _, v7 in ipairs(v4) do
    table.insert(v5, l_createStyleRule_0((".Plugin-Icon-%*"):format(v7), {
        Image = ("$%*Icon"):format(v7)
    }));
end;
return l_createStyleSheet_0("NotificationsPlugin", v5);


local l_Parent_0 = script.Parent.Parent.Parent;
local l_createStyleSheet_0 = require(l_Parent_0.Packages.Framework).Styling.createStyleSheet;
local v2 = require(l_Parent_0.Src.Resources.NotificationLuaIcons);
local v3 = {
    NotificationScrollBarColor = Color3.fromHex("#939393"),
    NotificationStatusDisabledIcon = "rbxasset://studio_svg_textures/Lua/Notifications/Dark/Standard/NotificationBadgeDisabled.png",
    NotificationStatusUnreadIcon = "rbxasset://studio_svg_textures/Lua/Notifications/Dark/Standard/NotificationBadgeUnread.png",
    NotificationEmptyTrayIcon = "rbxasset://studio_svg_textures/Lua/Notifications/Dark/SI-Standard/Celebration.png",
    NotificationErrorIcon = "rbxasset://studio_svg_textures/Lua/Notifications/Dark/SI-Standard/Oof.png"
};
for _, v5 in ipairs(v2) do
    v3[("%*Icon"):format(v5)] = ("rbxasset://studio_svg_textures/Lua/Notifications/Dark/Large/%*.png"):format(v5);
end;
return l_createStyleSheet_0("NotificationsPluginDarkTheme", {}, v3);


local l_Parent_0 = script.Parent.Parent.Parent;
local l_createStyleSheet_0 = require(l_Parent_0.Packages.Framework).Styling.createStyleSheet;
local v2 = require(l_Parent_0.Src.Resources.NotificationLuaIcons);
local v3 = {
    NotificationScrollBarColor = Color3.fromHex("#565656"),
    NotificationStatusDisabledIcon = "rbxasset://studio_svg_textures/Lua/Notifications/Light/Standard/NotificationBadgeDisabled.png",
    NotificationStatusUnreadIcon = "rbxasset://studio_svg_textures/Lua/Notifications/Light/Standard/NotificationBadgeUnread.png",
    NotificationEmptyTrayIcon = "rbxasset://studio_svg_textures/Lua/Notifications/Light/SI-Standard/Celebration.png",
    NotificationErrorIcon = "rbxasset://studio_svg_textures/Lua/Notifications/Light/SI-Standard/Oof.png"
};
for _, v5 in ipairs(v2) do
    v3[("%*Icon"):format(v5)] = ("rbxasset://studio_svg_textures/Lua/Notifications/Light/Large/%*.png"):format(v5);
end;
return l_createStyleSheet_0("NotificationsPluginLightTheme", {}, v3);


return {
    DatamodelSessionLoadedAttachmentInfo = {
        SourceAnchorPoint = Vector2.new(1, 0),
        TargetAnchorPoint = Vector2.new(1, 1),
        Offset = Vector2.new(0, 0)
    },
    DatamodelSessionUnloadedAttachmentInfo = {
        SourceAnchorPoint = Vector2.new(1, 0),
        TargetAnchorPoint = Vector2.new(1, 1),
        Offset = Vector2.new(0, 0)
    }
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Src.Enums.NotificationTargetType);
local v2 = require(l_Parent_0.Src.Resources.NotificationLuaIcons);
local v3 = {};
for _, v5 in ipairs(v2) do
    v3[v5] = ("Plugin-Icon-%*"):format(v5);
end;
local v8 = {
    [v1.Universe] = function(v6)
        return (("rbxthumb://type=GameIcon&id=%*&w=50&h=50"):format(v6));
    end,
    [v1.User] = function(v7)
        return (("rbxthumb://type=AvatarHeadShot&id=%*&w=48&h=48"):format(v7));
    end
};
return {
    getDynamicIconPath = function(v9, v10)
        if not v8[v10] then
            return nil;
        else
            return v8[v10](v9);
        end;
    end,
    getReadStatusIconTag = function(v11, v12)
        if not v12 then
            if not v11 then
                return "Plugin-Icon-StatusUnread";
            else
                return "";
            end;
        else
            return "Plugin-Icon-StatusDisabled";
        end;
    end,
    getStaticIconTag = function(v13, v14)
        if v14 ~= v1.Static then
            return nil;
        elseif not v3[v13] then
            return "Plugin-Icon-NotificationBell";
        else
            return v3[v13];
        end;
    end
};


local v0 = require(script.Parent.TimeConstants);
local l_ELAPSED_TIME_TRANSLATION_SCOPE_0 = v0.ELAPSED_TIME_TRANSLATION_SCOPE;
local function v4(v2)
    if v2 then
        local v3 = DateTime.now().UnixTimestamp - v2;
        if v3 < v0.MINUTE_IN_SECONDS then
            return {
                scope = l_ELAPSED_TIME_TRANSLATION_SCOPE_0,
                key = "Now"
            };
        elseif v3 < v0.HOUR_IN_SECONDS then
            return {
                scope = l_ELAPSED_TIME_TRANSLATION_SCOPE_0,
                key = "Minutes",
                paramName = "minutes",
                paramValue = tostring((math.floor(v3 / v0.MINUTE_IN_SECONDS)))
            };
        elseif v3 < v0.DAY_IN_SECONDS then
            return {
                scope = l_ELAPSED_TIME_TRANSLATION_SCOPE_0,
                key = "Hours",
                paramName = "hours",
                paramValue = tostring((math.floor(v3 / v0.HOUR_IN_SECONDS)))
            };
        elseif v3 < v0.WEEK_IN_SECONDS then
            return {
                scope = l_ELAPSED_TIME_TRANSLATION_SCOPE_0,
                key = "Days",
                paramName = "days",
                paramValue = tostring((math.floor(v3 / v0.DAY_IN_SECONDS)))
            };
        elseif v3 < v0.MONTH_IN_SECONDS then
            return {
                scope = l_ELAPSED_TIME_TRANSLATION_SCOPE_0,
                key = "Weeks",
                paramName = "weeks",
                paramValue = tostring((math.floor(v3 / v0.WEEK_IN_SECONDS)))
            };
        elseif v3 < v0.YEAR_IN_SECONDS then
            return {
                scope = l_ELAPSED_TIME_TRANSLATION_SCOPE_0,
                key = "Months",
                paramName = "months",
                paramValue = tostring((math.floor(v3 / v0.MONTH_IN_SECONDS)))
            };
        else
            return {
                scope = l_ELAPSED_TIME_TRANSLATION_SCOPE_0,
                key = "Years",
                paramName = "years",
                paramValue = tostring((math.floor(v3 / v0.YEAR_IN_SECONDS)))
            };
        end;
    else
        return {
            scope = "",
            key = ""
        };
    end;
end;
local v5 = v0.MINUTE_IN_SECONDS * v0.SECONDS_IN_MS;
local v6 = v0.HOUR_IN_SECONDS * v0.SECONDS_IN_MS;
return {
    calculateRelativeTime = v4,
    getRefreshIntervalInMS = function(v7)
        if v7 then
            local v8 = DateTime.now().UnixTimestamp - v7;
            if v8 < v0.HOUR_IN_SECONDS then
                return v5;
            elseif v8 < v0.DAY_IN_SECONDS then
                return v6;
            else
                return nil;
            end;
        else
            return nil;
        end;
    end
};


return {
    SECONDS_IN_MS = 1000,
    MINUTE_IN_SECONDS = 60,
    HOUR_IN_SECONDS = 3600,
    DAY_IN_SECONDS = 86400,
    WEEK_IN_SECONDS = 604800,
    MONTH_IN_SECONDS = 2628000,
    YEAR_IN_SECONDS = 31536000,
    ELAPSED_TIME_TRANSLATION_SCOPE = "ElapsedTime"
};


return function(v0, v1)
    if not v0 then
        return "";
    elseif not v1 then
        return v0;
    else
        return v0:gsub("{(.-)}", v1);
    end;
end;


optional = function(v0, ...)
    local l_v0_0 = v0;
    for _, v3 in ipairs({
        ...
    }) do
        if l_v0_0 == nil then
            return nil;
        else
            l_v0_0 = l_v0_0[v3];
        end;
    end;
    return l_v0_0;
end;
return optional;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.LuauPolyfill);
local l_Localization_0 = v2.ContextServices.Localization;
local l_setTimeout_0 = v3.setTimeout;
local l_clearTimeout_0 = v3.clearTimeout;
local v7 = require(l_Parent_0.Src.Util.RelativeTime);
local l_calculateRelativeTime_0 = v7.calculateRelativeTime;
local l_getRefreshIntervalInMS_0 = v7.getRefreshIntervalInMS;
return function(v10)
    local v11, v12 = v1.useState("");
    local v13 = l_Localization_0:use();
    local v16 = v1.useCallback(function()
        local v14 = l_calculateRelativeTime_0(v10);
        local v15 = {};
        if not (not v14.paramName or not v14.paramValue) then
            v15[v14.paramName] = v14.paramValue;
        end;
        v12(v13:getText(v14.scope, v14.key, v15));
    end, {
        v10,
        v12,
        v13
    });
    v1.useEffect(function()
        v16();
    end, {
        v16
    });
    v1.useEffect(function()
        local v17 = l_setTimeout_0(function()
            v16();
        end, (l_getRefreshIntervalInMS_0(v10)));
        return function()
            l_clearTimeout_0(v17);
        end;
    end, {
        v10,
        v16,
        v11
    });
    return v11;
end;


if plugin then
    local l_script_FirstAncestor_0 = script:FindFirstAncestor("PlaceAnnotations");
    local v1 = require(l_script_FirstAncestor_0.Packages.TestLoader);
    v1.launch("PlaceAnnotations", l_script_FirstAncestor_0.Src);
    if not v1.isCli() then
        if require(l_script_FirstAncestor_0.Bin.Common.defineLuaFlags).getFFlagEnablePlaceAnnotations() then
            local v2 = require(l_script_FirstAncestor_0.Bin.Common.pluginType);
            if v2.get() ~= v2.Asset then
                return ;
            else
                require(l_script_FirstAncestor_0.Bin.Common.setup)(plugin, (require(l_script_FirstAncestor_0.Bin.Common.setupMain)));
                return ;
            end;
        else
            return ;
        end;
    else
        return ;
    end;
else
    return ;
end;


game:DefineFastFlag("EnablePlaceAnnotations", false);
return {
    getFFlagEnablePlaceAnnotations = function()
        return game:GetFastFlag("EnablePlaceAnnotations");
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("PlaceAnnotations");
local v1 = require(l_script_FirstAncestor_0.Packages.PluginLoader.PluginLoaderBuilder);
local l_SourceStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.LocalizedStrings;
local v4 = require(l_script_FirstAncestor_0.Bin.Common.pluginType);
return function(v5, v6)
    v5.Name = l_script_FirstAncestor_0.Name;
    local v13 = {
        getName = function(v7, v8, v9)
            return v7(v8, v9, "Plugin", "Button");
        end,
        getDescription = function(v10, v11, v12)
            return v10(v11, v12, "Plugin", "Description");
        end,
        icon = "rbxlocaltheme://GameSettings",
        enabled = false
    };
    local v17 = {
        plugin = v5,
        pluginName = "PlaceAnnotations",
        translationResourceTable = l_LocalizedStrings_0,
        fallbackResourceTable = l_SourceStrings_0,
        getToolbarName = function(v14, v15, v16)
            return v14(v15, v16, "Plugin", "Toolbar");
        end,
        buttonInfo = v13
    };
    local l_RunService_0 = game:GetService("RunService");
    local v19 = v4.get() == v4.Standalone;
    local v20 = l_RunService_0:IsEdit();
    if not v19 and not v20 then
        v1.build(v17);
        return ;
    else
        v13.enabled = true;
        v17.dockWidgetInfo = {
            id = "PlaceAnnotations",
            dockWidgetPluginGuiInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Bottom, false, false, 640, 480, 250, 200),
            getDockTitle = function(v21, v22, v23)
                return v21(v22, v23, "Plugin", "Name");
            end,
            zIndexBehavior = Enum.ZIndexBehavior.Sibling
        };
        local v24 = v1.build(v17);
        if v24.pluginLoader:waitForUserInteraction() then
            v6(v5, v24);
            return ;
        else
            return ;
        end;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("PlaceAnnotations");
return function(v1, v2)
    local v3 = require(l_script_FirstAncestor_0.Packages.React);
    local v4 = require(l_script_FirstAncestor_0.Packages.ReactRoblox);
    local v5 = v3.createElement(require(l_script_FirstAncestor_0.Src.MainPlugin), {
        Plugin = v1,
        PluginLoaderContext = v2
    });
    local v6 = v4.createRoot((Instance.new("Frame")));
    assert(v6);
    v6:render(v5);
    v1.Unloading:Connect(function()
        if v6 then
            v6:render(nil);
            v6 = nil;
        end;
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("PlaceAnnotations");
if require(l_script_FirstAncestor_0.Bin.Common.defineLuaFlags).getFFlagEnablePlaceAnnotations() then
    if not require(l_script_FirstAncestor_0.Packages.TestLoader).isCli() then
        local v1 = require(l_script_FirstAncestor_0.Bin.Common.pluginType);
        if v1.get() ~= v1.Standalone then
            return ;
        else
            require(l_script_FirstAncestor_0.Bin.Common.setup)(plugin, (require(l_script_FirstAncestor_0.Bin.Common.setupMain)));
            return ;
        end;
    else
        error("roblox-cli should not be loading standalone plugins");
        return ;
    end;
else
    return ;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("PlaceAnnotations");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local l_Localization_0 = require(l_script_FirstAncestor_0.Packages.Framework).ContextServices.Localization;
return function(v3)
    return v1.createElement("Frame", {
        [v1.Tag] = "Component-BasicExample X-Fit"
    }, {
        OptionalContent = if not v3.showContent then nil else v1.createElement("TextLabel", {
            Text = l_Localization_0:use():getText("BasicExample", "Text")
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("PlaceAnnotations");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local l_Localization_0 = require(l_script_FirstAncestor_0.Packages.Framework).ContextServices.Localization;
return function(_)
    local v4 = l_Localization_0:use();
    local v5, v6 = v1.useState(0);
    return v1.createElement("Frame", {
        [v1.Tag] = "Component-BasicExample X-Fit X-Column"
    }, {
        Label = v1.createElement("TextLabel", {
            Text = v4:getText("CounterExample", "CounterLabel", {
                counter = v5
            })
        }),
        Button = v1.createElement("TextButton", {
            Text = v4:getText("CounterExample", "Button"),
            [v1.Event.Activated] = function()
                v6(v5 + 1);
            end
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("PlaceAnnotations");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_DockWidget_0 = v2.UI.DockWidget;
local l_PluginToolbar_0 = v2.UI.PluginToolbar;
local l_ContextServices_0 = v2.ContextServices;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Mouse_0 = l_ContextServices_0.Mouse;
local l_StudioTheme_0 = v2.Style.Themes.StudioTheme;
local l_registerPluginStyles_0 = v2.Styling.registerPluginStyles;
local l_SourceStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.LocalizedStrings;
local v12 = v1.PureComponent:extend("MainPlugin");
v12.init = function(v13, v14)
    v13.state = {
        enabled = false
    };
    v13.toggleEnabled = function()
        v13:setState(function(v15)
            return {
                enabled = not v15.enabled
            };
        end);
    end;
    v13.onClose = function()
        v13:setState({
            enabled = false
        });
    end;
    v13.onRestore = function(v16)
        v13:setState({
            enabled = v16
        });
    end;
    v13.onWidgetEnabledChanged = function(v17)
        v13:setState({
            enabled = v17.Enabled
        });
    end;
    v13.onDockWidgetCreated = function()
        v13.props.PluginLoaderContext.mainButtonClickedSignal:Connect(v13.toggleEnabled);
    end;
    v13.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "PlaceAnnotations"
    });
    v13.analytics = l_ContextServices_0.Analytics.new(function()
        return {};
    end, {});
    v13.DEPRECATED_stylizer = l_StudioTheme_0.new();
    v13.design = l_registerPluginStyles_0(v14.Plugin);
end;
v12.didUpdate = function(v18)
    v18.props.PluginLoaderContext.mainButton:SetActive(v18.state.enabled);
end;
v12.render = function(v19)
    local l_props_0 = v19.props;
    local l_state_0 = v19.state;
    local l_Plugin_1 = l_props_0.Plugin;
    return l_ContextServices_0.provide({
        l_Plugin_0.new(l_Plugin_1),
        l_Mouse_0.new(l_Plugin_1:getMouse()),
        v19.localization,
        v19.analytics
    }, {
        Toolbar = v1.createElement(l_PluginToolbar_0, {
            Title = v19.localization:getText("Plugin", "Toolbar"),
            RenderButtons = function(v23)
                return v19:renderButtons(v23);
            end
        }),
        MainWidget = v1.createElement(l_DockWidget_0, {
            Id = "PlaceAnnotations",
            Enabled = l_state_0.enabled,
            Title = v19.localization:getText("Plugin", "Name"),
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
            InitialDockState = Enum.InitialDockState.Bottom,
            Size = Vector2.new(640, 480),
            MinSize = Vector2.new(250, 200),
            OnClose = v19.onClose,
            Widget = l_props_0.PluginLoaderContext.mainDockWidget,
            OnWidgetCreated = v19.onDockWidgetCreated,
            [v1.Change.Enabled] = v19.onWidgetEnabledChanged
        }, {
            Wrapper = v1.createElement("Frame", {
                [v1.Tag] = "X-Fill X-Column"
            }),
            StyleLink = v1.createElement("StyleLink", {
                StyleSheet = v19.design
            })
        })
    });
end;
return v12;


local v0 = require(script:FindFirstAncestor("PlaceAnnotations").Packages.Framework);
local l_TestHelpers_0 = v0.TestHelpers;
local l_ContextServices_0 = v0.ContextServices;
local v3 = {
    l_ContextServices_0.Analytics.mock(),
    l_ContextServices_0.Localization.mock()
};
return function(v4)
    assert(type(v4) == "table", "Expected children to be a table");
    return l_TestHelpers_0.provideMockContext(v3, v4);
end;


local l_Action_0 = script.Parent._IndexLegacy.Action.Packages.Action;
if l_Action_0.ClassName == "ModuleScript" then
    return require(l_Action_0);
else
    return l_Action_0;
end;


local l_Http_0 = script.Parent._IndexLegacy.Http.Packages.Http;
if l_Http_0.ClassName == "ModuleScript" then
    return require(l_Http_0);
else
    return l_Http_0;
end;


local l_Promise_0 = script.Parent._IndexLegacy.Promise.Packages.Promise;
if l_Promise_0.ClassName == "ModuleScript" then
    return require(l_Promise_0);
else
    return l_Promise_0;
end;


local l_Signal_0 = script.Parent._IndexLegacy.Signal.Packages.Signal;
if l_Signal_0.ClassName == "ModuleScript" then
    return require(l_Signal_0);
else
    return l_Signal_0;
end;


local l_Symbol_0 = script.Parent._IndexLegacy.Symbol.Packages.Symbol;
if l_Symbol_0.ClassName == "ModuleScript" then
    return require(l_Symbol_0);
else
    return l_Symbol_0;
end;


local l_TestHelpers_0 = script.Parent._IndexLegacy.TestHelpers.Packages.TestHelpers;
if l_TestHelpers_0.ClassName == "ModuleScript" then
    return require(l_TestHelpers_0);
else
    return l_TestHelpers_0;
end;


local l_DeepJoin_0 = script.Parent._IndexLegacy.DeepJoin.Packages.DeepJoin;
if l_DeepJoin_0.ClassName == "ModuleScript" then
    return require(l_DeepJoin_0);
else
    return l_DeepJoin_0;
end;


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function()
    return {};
end);


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function(v0)
    assert(type(v0) == "string", "Expected pluginId to be a string");
    return {
        pluginId = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function(v0)
    return {
        pluginId = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function(v0)
    assert(type(v0) == "table", "Expected permissions to be a table");
    return {
        permissions = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function(v0)
    assert(type(v0) == "table", "Expected pluginData to be a table.");
    if next(v0) ~= nil then
        assert(type((next(v0))) == "number", "Expected pluginData to be a map.");
    end;
    return {
        pluginData = v0
    };
end);


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function(v0, v1)
    return {
        assetId = v0,
        enabled = v1
    };
end);


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function(v0, v1, v2)
    assert(type(v0) == "string", "Expected pluginId to be a string");
    assert(type(v1) == "number", "Expected statusCode to be a number");
    assert(type(v2) == "string", "Expected message to be a string");
    return {
        pluginId = v0,
        statusCode = v1,
        message = v2
    };
end);


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function(v0, v1, v2, v3, v4, v5)
    assert(type(v0) == "string", "Expected pluginId to be a string");
    assert(type(v1) == "string", "Expected name to be a string");
    assert(type(v2) == "string", "Expected description to be a string");
    assert(type(v3) == "string", "Expected versionId to be a string");
    assert(type(v4) == "string", "Expected created to be a string");
    assert(type(v5) == "string", "Expected updated to be a string");
    return {
        pluginId = v0,
        name = v1,
        description = v2,
        versionId = v3,
        created = v4,
        updated = v5
    };
end);


return require(script.Parent.Parent.Parent.Packages.Action)(script.Name, function(v0, v1)
    return {
        assetId = v0,
        status = v1
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Cryo);
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.FitFrame);
local l_FitFrameVertical_0 = v3.FitFrameVertical;
local l_FitTextLabel_0 = v3.FitTextLabel;
local v6 = v2.Component:extend("FluidFitTextLabel");
v6.init = function(v7)
    v7.state = {
        frameWidth = 0
    };
    v7.resizeContainer = function(v8)
        if v7.state.frameWidth ~= v8.AbsoluteSize.X then
            v7:setState({
                frameWidth = v8.AbsoluteSize.X
            });
        end;
    end;
end;
v6.render = function(v9)
    return v2.createElement(l_FitFrameVertical_0, {
        BackgroundTransparency = 1,
        LayoutOrder = v9.props.LayoutOrder,
        width = UDim.new(1, 0),
        [v2.Change.AbsoluteSize] = v9.resizeContainer
    }, {
        Text = v2.createElement(l_FitTextLabel_0, (v1.Dictionary.join(v9.props, {
            maximumWidth = v9.state.frameWidth,
            width = UDim.new(1, 0)
        })))
    });
end;
return v6;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.FitFrame);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_LayoutOrderIterator_0 = require(l_Parent_0.Packages.Framework).Util.LayoutOrderIterator;
local v7 = require(l_Parent_0.Src.Util.Constants);
local v8 = require(l_Parent_0.Src.ContextServices.PluginAPI2);
local v9 = require(l_Parent_0.Src.ContextServices.Navigation);
local v10 = require(l_Parent_0.Src.Components.IconWithText);
local l_FitTextLabel_0 = v3.FitTextLabel;
local v12 = v1.PureComponent:extend("HttpRequestOverview");
v12.defaultProps = {
    assetId = nil,
    LayoutOrder = 1,
    navigation = nil
};
v12.init = function(v13)
    v13.openPluginDetails = function()
        v13.props.Navigation:get().navigation.navigate({
            routeName = v7.APP_PAGE.Detail,
            params = {
                assetId = v13.props.assetId
            }
        });
    end;
end;
v12.render = function(v14)
    local l_acceptedRequestsCount_0 = v14.props.acceptedRequestsCount;
    local l_deniedRequestsCount_0 = v14.props.deniedRequestsCount;
    local l_allowedScriptInjection_0 = v14.props.allowedScriptInjection;
    local v18 = true;
    if l_acceptedRequestsCount_0 <= 0 then
        v18 = l_deniedRequestsCount_0 > 0;
    end;
    local v19 = l_allowedScriptInjection_0 ~= nil;
    local v20 = v18 or v19;
    local l_LayoutOrder_0 = v14.props.LayoutOrder;
    local l_Localization_0 = v14.props.Localization;
    local l_Stylizer_0 = v14.props.Stylizer;
    local v24 = l_LayoutOrderIterator_0.new();
    local l_createElement_0 = v1.createElement;
    local v26 = "TextButton";
    local v27 = {
        BackgroundTransparency = 1,
        LayoutOrder = l_LayoutOrder_0,
        Size = UDim2.new(1, 0, 0, 16),
        Text = "",
        [v1.Event.Activated] = v14.openPluginDetails
    };
    local v28 = {
        Layout = v1.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            Padding = UDim.new(0, 8),
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top
        }),
        NoPermissionsRequested = not v20 and v1.createElement(l_FitTextLabel_0, {
            BackgroundTransparency = 1,
            Font = l_Stylizer_0.Font,
            LayoutOrder = v24:getNextOrder(),
            Size = UDim2.new(1, 0, 0, 16),
            TextSize = 16,
            Text = l_Localization_0:getText("PluginEntry", "NoPermissionsRequested"),
            TextXAlignment = Enum.TextXAlignment.Left,
            TextColor3 = l_Stylizer_0.HttpOverviewTextColor,
            width = l_FitTextLabel_0.Width.FitToText
        }),
        Label = v18 and v1.createElement(l_FitTextLabel_0, {
            BackgroundTransparency = 1,
            Font = l_Stylizer_0.Font,
            LayoutOrder = v24:getNextOrder(),
            Size = UDim2.new(1, 0, 0, 16),
            TextSize = 16,
            Text = l_Localization_0:getText("PluginEntry", "HttpRequest"),
            TextXAlignment = Enum.TextXAlignment.Left,
            TextColor3 = l_Stylizer_0.HttpOverviewTextColor,
            width = l_FitTextLabel_0.Width.FitToText
        })
    };
    local v29 = false;
    if l_acceptedRequestsCount_0 > 0 then
        v29 = v1.createElement(v10, {
            Image = "rbxasset://textures/PluginManagement/allowed.png",
            imageSize = v7.HTTP_OVERVIEW_ICON_SIZE,
            imageTopPadding = 1,
            LayoutOrder = v24:getNextOrder(),
            Text = l_acceptedRequestsCount_0,
            TextColor3 = l_Stylizer_0.HttpOverviewTextColor,
            TextSize = 16
        });
    end;
    v28.Allowed = v29;
    v29 = false;
    if l_deniedRequestsCount_0 > 0 then
        v29 = v1.createElement(v10, {
            Image = "rbxasset://textures/PluginManagement/declined.png",
            imageSize = v7.HTTP_OVERVIEW_ICON_SIZE,
            imageTopPadding = 1,
            LayoutOrder = v24:getNextOrder(),
            Text = l_deniedRequestsCount_0,
            TextColor3 = l_Stylizer_0.HttpOverviewTextColor,
            TextSize = 16
        });
    end;
    v28.Denied = v29;
    v28.Border = v18 and v1.createElement("Frame", {
        BorderSizePixel = 0,
        BackgroundColor3 = l_Stylizer_0.BorderColor,
        LayoutOrder = v24:getNextOrder(),
        Size = UDim2.new(0, 1, 0, v7.HTTP_OVERVIEW_ICON_SIZE)
    });
    v28.ScriptInjection = v19 and v1.createElement(l_FitTextLabel_0, {
        BackgroundTransparency = 1,
        Font = l_Stylizer_0.Font,
        LayoutOrder = v24:getNextOrder(),
        Size = UDim2.new(1, 0, 0, 16),
        TextSize = 16,
        Text = l_Localization_0:getText("PluginEntry", not l_allowedScriptInjection_0 and "ScriptInjectionDenied" or "ScriptInjectionAllowed"),
        TextXAlignment = Enum.TextXAlignment.Left,
        TextColor3 = l_Stylizer_0.HttpOverviewTextColor,
        width = l_FitTextLabel_0.Width.FitToText
    });
    v28.Border2 = v19 and v1.createElement("Frame", {
        BorderSizePixel = 0,
        BackgroundColor3 = l_Stylizer_0.BorderColor,
        LayoutOrder = v24:getNextOrder(),
        Size = UDim2.new(0, 1, 0, v7.HTTP_OVERVIEW_ICON_SIZE)
    });
    v28.EditButton = v20 and v1.createElement("ImageLabel", {
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/PluginManagement/edit.png",
        ImageColor3 = l_Stylizer_0.HttpOverviewTextColor,
        LayoutOrder = v24:getNextOrder(),
        Size = UDim2.new(0, v7.HTTP_OVERVIEW_ICON_SIZE, 0, v7.HTTP_OVERVIEW_ICON_SIZE)
    });
    return l_createElement_0(v26, v27, v28);
end;
return v2.connect(function(v30, v31)
    local v32 = v30.PluginPermissions[v31.assetId];
    return {
        acceptedRequestsCount = not not v32 and v32.allowedHttpCount or 0,
        deniedRequestsCount = not not v32 and v32.deniedHttpCount or 0,
        allowedScriptInjection = v32 and v32.allowedScriptInjection
    };
end, nil)((l_withContext_0({
    Navigation = v9,
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer,
    API = v8
})(v12)));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.FitFrame);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_FitFrameHorizontal_0 = v2.FitFrameHorizontal;
local l_FitTextLabel_0 = v2.FitTextLabel;
local v7 = v1.PureComponent:extend("IconWithText");
v7.defaultProps = {
    Image = "",
    imageSize = 16,
    imageTopPadding = 0,
    TextSize = 14
};
v7.render = function(v8)
    local l_Stylizer_0 = v8.props.Stylizer;
    local l_Image_0 = v8.props.Image;
    local l_imageSize_0 = v8.props.imageSize;
    local l_imageTopPadding_0 = v8.props.imageTopPadding;
    local l_LayoutOrder_0 = v8.props.LayoutOrder;
    local l_Text_0 = v8.props.Text;
    local v15 = v8.props.TextColor3 or l_Stylizer_0.TextColor;
    local l_TextSize_0 = v8.props.TextSize;
    return v1.createElement(l_FitFrameHorizontal_0, {
        BackgroundTransparency = 1,
        FillDirection = Enum.FillDirection.Horizontal,
        height = UDim.new(0, l_TextSize_0),
        LayoutOrder = l_LayoutOrder_0,
        VerticalAlignment = Enum.VerticalAlignment.Center
    }, {
        IconContainer = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            LayoutOrder = 0,
            Size = UDim2.new(0, l_imageSize_0, 0, l_imageSize_0)
        }, {
            Padding = v1.createElement("UIPadding", {
                PaddingTop = UDim.new(0, l_imageTopPadding_0)
            }),
            Icon = v1.createElement("ImageLabel", {
                BackgroundTransparency = 1,
                Image = l_Image_0,
                ImageColor3 = v15,
                LayoutOrder = 0,
                Size = UDim2.new(0, l_imageSize_0, 0, l_imageSize_0)
            })
        }),
        CountText = v1.createElement(l_FitTextLabel_0, {
            BackgroundTransparency = 1,
            LayoutOrder = 1,
            Font = l_Stylizer_0.Font,
            Text = l_Text_0,
            TextColor3 = v15,
            TextSize = l_TextSize_0,
            width = l_FitTextLabel_0.Width.FitToText
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v7));


local _ = Vector2.new(400, 217);
local _ = Vector2.new(120, 32);
local l_Parent_0 = script.Parent.Parent.Parent;
local v3 = require(l_Parent_0.Packages.Roact);
local v4 = require(l_Parent_0.Packages.RoactRodux);
local _ = require(l_Parent_0.Packages.Cryo);
local v6 = require(l_Parent_0.Src.Constants.PluginInstalledStatus);
local v7 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v7.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local _ = l_ContextServices_0.Localization;
local l_StyledDialog_0 = v7.UI.StyledDialog;
local v12 = v3.PureComponent:extend("InstallationDialog");
v12.init = function(v13)
    v13.state = {
        hasDataLoaded = false
    };
end;
v12.didUpdate = function(v14)
    local v15 = v14.props.info.installStatus ~= v6.UNKNOWN;
    local v16 = v14.state.hasDataLoaded == false;
    if not (not v15 or not v16) then
        spawn(function()
            v14:setState({
                hasDataLoaded = true
            });
        end);
    end;
end;
v12.render = function(v17)
    local l_hasDataLoaded_0 = v17.state.hasDataLoaded;
    local l_Localization_1 = v17.props.Localization;
    return l_hasDataLoaded_0 and v3.createElement(l_StyledDialog_0, {
        Title = l_Localization_1:getText("DialogTitle", "InstallPlugin"),
        Buttons = {
            {
                Key = true,
                Text = l_Localization_1:getText("Dialog", "Ok"),
                Style = "RoundPrimary"
            }
        },
        Resizable = false,
        MinContentSize = Vector2.new(400, 120),
        OnButtonPressed = v17.props.OnButtonClicked,
        OnClose = v17.props.OnClose
    }, v17.props[v3.Children]);
end;
return v4.connect(function(v20, v21)
    return {
        info = v20.PluginInfo.plugins[v21.pluginId]
    };
end)((l_withContext_0({
    Localization = l_ContextServices_0.Localization
})(v12)));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v5 = require(l_Parent_0.Src.Constants.PluginInstalledStatus);
local v6 = v1.Component:extend("MainView");
v6.renderContentNotReady = function(v7, v8, v9)
    return {
        SimpleLabel = v1.createElement("TextLabel", {
            Text = v9:getText("Main", "InstallingPlugin", {
                v7.props.pluginId
            }),
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1,
            TextColor3 = v8.TextColor,
            TextSize = 18,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center
        })
    };
end;
v6.renderInstallSuccess = function(v10, v11, v12)
    return {
        ListLayout = v1.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        Title = v1.createElement("TextLabel", {
            Text = v12:getText("Progress", "Completed"),
            TextColor3 = v11.TextColor,
            TextSize = 16,
            Font = Enum.Font.SourceSansSemibold,
            BackgroundTransparency = 1,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            Size = UDim2.new(1, 0, 0, 18),
            LayoutOrder = 1
        }),
        Padding = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, 24),
            LayoutOrder = 2
        }),
        Message = v1.createElement("TextLabel", {
            Text = v12:getText("Progress", "CompletedMessage", {
                "\"" .. (v10.props.info.name or "") .. "\""
            }),
            TextColor3 = v11.TextColor,
            TextSize = 16,
            Font = Enum.Font.SourceSans,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            Size = UDim2.new(1, 0, 0, 48),
            BackgroundTransparency = 1,
            LayoutOrder = 3
        })
    };
end;
v6.renderInstallProgress = function(v13, v14, v15)
    local l_pluginId_0 = v13.props.pluginId;
    local l_info_0 = v13.props.info;
    local l_installStatus_0 = l_info_0.installStatus;
    local l_installationMsg_0 = l_info_0.installationMsg;
    local v20 = nil;
    if l_installStatus_0 == v5.UNKNOWN then
        v20 = v15:getText("Main", "InstallingPlugin", {
            l_pluginId_0
        });
    elseif l_installStatus_0 == v5.HTTP_ERROR then
        v20 = v15:getText("Progress", "HttpError", {
            l_installationMsg_0
        });
    elseif l_installStatus_0 == v5.PLUGIN_NOT_OWNED then
        v20 = v15:getText("Progress", "NotOwned", {
            l_installationMsg_0
        });
    elseif l_installStatus_0 == v5.PLUGIN_DETAILS_UNAVAILABLE then
        v20 = v15:getText("Progress", "Unavailable", {
            l_installationMsg_0
        });
    elseif l_installStatus_0 == v5.PLUGIN_NOT_INSTALLED then
        v20 = v15:getText("Progress", "NotInstalled", {
            l_installationMsg_0
        });
    elseif l_installStatus_0 == v5.PLUGIN_AlREADY_INSTALLED then
        v20 = v15:getText("Progress", "AlreadyInstalled", {
            l_installationMsg_0
        });
    end;
    return {
        SimpleLabel = v1.createElement("TextLabel", {
            Text = v20,
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1,
            TextColor3 = v14.TextColor,
            TextSize = 18,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center
        })
    };
end;
v6.render = function(v21)
    local l_info_1 = v21.props.info;
    local l_Stylizer_0 = v21.props.Stylizer;
    local l_Localization_0 = v21.props.Localization;
    local _ = nil;
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        Position = UDim2.new(0, 0, 0, 0),
        BackgroundTransparency = 1
    }, if l_info_1 then if l_info_1.installStatus == v5.PLUGIN_INSTALLED_SUCCESSFULLY then v21:renderInstallSuccess(l_Stylizer_0, l_Localization_0) else v21:renderInstallProgress(l_Stylizer_0, l_Localization_0) else v21:renderContentNotReady(l_Stylizer_0, l_Localization_0));
end;
return v2.connect(function(v26, v27)
    return {
        info = v26.PluginInfo.plugins[v27.pluginId]
    };
end)((l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v6)));


local v0 = game:DefineFastFlag("PluginManagementFixBlankPage", false);
local l_StudioFixPluginWidgetLocalizedIds_0 = game:GetFastFlag("StudioFixPluginWidgetLocalizedIds");
local l_Parent_0 = script.Parent.Parent.Parent;
local v3 = require(l_Parent_0.Packages.Roact);
local _ = require(l_Parent_0.Src.Components.ManagementMainView);
local v5 = require(l_Parent_0.Src.Components.Navigation.NavigationContainer);
local v6 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v6.ContextServices;
local v8 = require(l_Parent_0.Src.ContextServices.PluginAPI2);
local _ = require(l_Parent_0.Src.Util.Constants);
local l_UI_0 = v6.UI;
local l_DockWidget_0 = l_UI_0.DockWidget;
local l_PluginButton_0 = l_UI_0.PluginButton;
local l_PluginToolbar_0 = l_UI_0.PluginToolbar;
local l_SourceStrings_0 = l_Parent_0.Src.Resources.SourceStrings;
local l_LocalizedStrings_0 = l_Parent_0.Src.Resources.LocalizedStrings;
local v16 = require(l_Parent_0.Src.Resources.makeTheme);
local v17 = v3.PureComponent:extend("ManagementApp");
v17.init = function(v18)
    local _ = v18.props.plugin;
    v18.state = {
        enabled = false,
        killDockWidget = false
    };
    v18.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "PluginInstallation"
    });
    v18.theme = v16;
    v18.toggleState = function()
        v18:setState({
            enabled = not v18.state.enabled
        });
    end;
    v18.onClose = function()
        v18:setState({
            enabled = false
        });
    end;
    if v0 then
        v18.onWidgetEnabledChanged = function(v20)
            v18:setState({
                enabled = v20.Enabled
            });
        end;
    end;
    v18.props.plugin.MultipleDocumentInterfaceInstance.DataModelSessionEnded:connect(function(_)
        v18:setState({
            enabled = false,
            killDockWidget = true
        });
    end);
end;
v17.getDerivedStateFromProps = function(_, v23)
    if not v23.enabled then
        return ;
    else
        return {
            killDockWidget = false
        };
    end;
end;
v17.renderButtons = function(v24, v25)
    return {
        Toggle = v3.createElement(l_PluginButton_0, {
            Toolbar = v25,
            Active = v24.state.enabled,
            Title = "luaManagePluginsButton",
            OnClick = v24.toggleState
        })
    };
end;
v17.render = function(v26)
    local l_props_0 = v26.props;
    local l_plugin_1 = l_props_0.plugin;
    local l_store_0 = l_props_0.store;
    local l_api_0 = l_props_0.api;
    local l_analytics_0 = l_props_0.analytics;
    local l_enabled_0 = v26.state.enabled;
    return l_ContextServices_0.provide({
        l_ContextServices_0.Plugin.new(l_plugin_1),
        v8.new(l_api_0)
    }, {
        Toolbar = v3.createElement(l_PluginToolbar_0, {
            Title = "luaManagePluginsToolbar",
            RenderButtons = function(v33)
                return v26:renderButtons(v33);
            end
        }),
        MainWidget = not v26.state.killDockWidget and v3.createElement(l_DockWidget_0, {
            Id = if not l_StudioFixPluginWidgetLocalizedIds_0 then nil else "PluginManagement",
            Enabled = l_enabled_0,
            Title = v26.localization:getText("Manage", "WindowTitle"),
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
            InitialDockState = Enum.InitialDockState.Float,
            Size = Vector2.new(600, 560),
            MinSize = Vector2.new(600, 180),
            OnClose = v26.onClose,
            ShouldRestore = false,
            [v3.Change.Enabled] = if not v0 then nil else v26.onWidgetEnabledChanged
        }, {
            MainProvider = l_enabled_0 and l_ContextServices_0.provide({
                v26.localization,
                v26.theme,
                l_ContextServices_0.Store.new(l_store_0),
                l_ContextServices_0.Mouse.new(l_plugin_1:GetMouse()),
                l_analytics_0
            }, {
                MainView = v3.createElement(v5)
            })
        })
    });
end;
return v17;