local l_CorePackages_0 = game:GetService("CorePackages");
local l_ScriptContext_0 = game:GetService("ScriptContext");
local _ = game:GetService("HttpService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v6 = require(l_Components_0.DataConsumer);
local v7 = require(l_Components_0.UtilAndTab);
local v8 = require(l_Components_0.BoxButton);
local v9 = require(script.Parent.LuauHeapView);
local _ = require(script.Parent.LuauHeapTypes);
local l_Actions_0 = script.Parent.Parent.Parent.Actions;
local v12 = require(l_Actions_0.SetLuauHeapState);
local v13 = require(l_Actions_0.SetLuauHeapProfileTarget);
local v14 = require(script.Parent.Parent.Parent.Constants);
local l_MainRowPadding_0 = v14.GeneralFormatting.MainRowPadding;
local v16 = v3.PureComponent:extend("MainViewLuauHeap");
local v17 = require(script.Parent.Parent.Parent.Util.getClientReplicator);
v16.getState = function(v18, v19)
    if not v19 then
        return v18.props.server;
    else
        return v18.props.client;
    end;
end;
v16.getActiveState = function(v20)
    return v20.props.isClientView, v20:getState(v20.props.isClientView);
end;
v16.init = function(v21)
    v21.onUtilTabHeightChanged = function(v22)
        v21:setState({
            utilTabHeight = v22
        });
    end;
    v21.onClientButton = function()
        v21.props.dispatchSetLuauHeapProfileTarget(true);
    end;
    v21.onServerButton = function()
        v21.props.dispatchSetLuauHeapProfileTarget(false);
    end;
    v21.onCreateSnapshot = function()
        local v23, v24 = v21:getActiveState();
        if not v23 then
            local v25 = v17();
            if v25 then
                v25:RequestServerLuauHeapData();
            end;
            return ;
        else
            local l_l_ScriptContext_0_LuauHeapMemoryReport_0 = l_ScriptContext_0:GetLuauHeapMemoryReport("game");
            l_l_ScriptContext_0_LuauHeapMemoryReport_0.Refs = l_ScriptContext_0:GetLuauHeapInstanceReferenceReport("game");
            local v27 = table.clone(v24);
            table.insert(v27.snapshots, l_l_ScriptContext_0_LuauHeapMemoryReport_0);
            v27.active = #v27.snapshots;
            v21.props.dispatchSetLuauHeapState(true, v27);
            return ;
        end;
    end;
    v21.onClearSnapshots = function()
        local v28, v29 = v21:getActiveState();
        local v30 = table.clone(v29);
        table.clear(v30.snapshots);
        v30.active = 0;
        v21.props.dispatchSetLuauHeapState(v28, v30);
    end;
    v21.utilRef = v3.createRef();
    v21.state = {
        utilTabHeight = 0
    };
end;
v16.didMount = function(v31)
    v31:setState({
        utilTabHeight = v31.utilRef.current.Size.Y.Offset
    });
    v31.statsConnector = v31.props.LuauHeapData:Signal():Connect(function(v32)
        local v33 = v31:getState(false);
        local l_Report_0 = v32.Report;
        l_Report_0.Refs = v32.Refs;
        local v35 = table.clone(v33);
        table.insert(v35.snapshots, l_Report_0);
        v35.active = #v35.snapshots;
        v31.props.dispatchSetLuauHeapState(false, v35);
    end);
end;
v16.willUnmount = function(v36)
    v36.statsConnector:Disconnect();
    v36.statsConnector = nil;
end;
v16.didUpdate = function(v37)
    local l_Size_0 = v37.utilRef.current.Size;
    if l_Size_0.Y.Offset ~= v37.state.utilTabHeight then
        v37:setState({
            utilTabHeight = l_Size_0.Y.Offset
        });
    end;
end;
v16.render = function(v39)
    local l_size_0 = v39.props.size;
    local l_formFactor_0 = v39.props.formFactor;
    local l_tabList_0 = v39.props.tabList;
    local l_utilTabHeight_0 = v39.state.utilTabHeight;
    local v44, v45 = v39:getActiveState();
    return v3.createElement("Frame", {
        Size = l_size_0,
        BackgroundColor3 = v14.Color.BaseGray,
        BackgroundTransparency = 1,
        LayoutOrder = 3
    }, {
        UIListLayout = v3.createElement("UIListLayout", {
            Padding = UDim.new(0, l_MainRowPadding_0),
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        UtilAndTab = v3.createElement(v7, {
            windowWidth = l_size_0.X.Offset,
            formFactor = l_formFactor_0,
            tabList = l_tabList_0,
            layoutOrder = 1,
            isClientView = v44,
            onClientButton = v39.onClientButton,
            onServerButton = v39.onServerButton,
            refForParent = v39.utilRef,
            onHeightChanged = v39.onUtilTabHeightChanged
        }, {
            v3.createElement(v8, {
                text = "Create Snaphot",
                onClicked = v39.onCreateSnapshot
            }),
            v3.createElement(v8, {
                text = "Clear Snapshots",
                onClicked = v39.onClearSnapshots
            })
        }),
        LuauHeapView = v3.createElement(v9, {
            size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
            layoutOrder = 2,
            data = v45.snapshots,
            activeSnapshot = v45.active,
            compareSnapshot = v45.compare
        })
    });
end;
return v4.UNSTABLE_connect2(function(v46, _)
    return {
        isClientView = v46.LuauHeap.isClientView,
        client = v46.LuauHeap.client,
        server = v46.LuauHeap.server
    };
end, function(v48)
    return {
        dispatchSetLuauHeapState = function(v49, v50)
            v48(v12(v49, v50));
        end,
        dispatchSetLuauHeapProfileTarget = function(v51)
            v48(v13(v51));
        end
    };
end)(v6(v16, "LuauHeapData"));


local v0 = require(game:GetService("CorePackages").Roact);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v2 = require(l_Components_0.DataConsumer);
local v3 = require(l_Components_0.Memory.MemoryView);
local v4 = v0.Component:extend("ClientMemory");
v4.render = function(v5)
    return v0.createElement(v3, {
        layoutOrder = v5.props.layoutOrder,
        size = v5.props.size,
        searchTerm = v5.props.searchTerm,
        targetMemoryData = v5.props.ClientMemoryData
    });
end;
return v2(v4, "ClientMemoryData");


local v0 = require(script.Parent.Parent.Parent.Signal);
local l_SoundService_0 = game:GetService("SoundService");
local l_TextService_0 = game:GetService("TextService");
local l_MeshContentProvider_0 = game:GetService("MeshContentProvider");
local l_KeyframeSequenceProvider_0 = game:GetService("KeyframeSequenceProvider");
local l_Stats_0 = game:GetService("Stats");
local v6 = require(script.Parent.Parent.Parent.Parent.Stats.StatsUtils);
local v7 = require(script.Parent.Parent.Parent.CircularBuffer);
local l_ChartHeaderNames_0 = require(script.Parent.Parent.Parent.Constants).MemoryFormatting.ChartHeaderNames;
local v9 = tonumber(settings():GetFVariable("NewDevConsoleMaxGraphCount"));
local v14 = {
    [l_ChartHeaderNames_0[1]] = function(v10, v11)
        return v10.name < v11.name;
    end,
    [l_ChartHeaderNames_0[2]] = function(v12, v13)
        return v12.dataStats.dataSet:back().data < v13.dataStats.dataSet:back().data;
    end
};
local v15 = {};
v15.__index = v15;
v15.new = function()
    local v16 = {};
    setmetatable(v16, v15);
    v16._pollingId = 0;
    v16._totalMemory = 0;
    v16._memoryData = {};
    v16._memoryDataSorted = {};
    v16._treeViewUpdatedSignal = v0.new();
    v16._totalMemoryUpdated = v0.new();
    v16._sortType = l_ChartHeaderNames_0[1];
    v16._isRunning = false;
    v16._doGranularMemUpdate = {};
    v16._granularMemTable = {};
    return v16;
end;
local function _()
    local v17 = l_Stats_0 and l_Stats_0:FindFirstChild("PerformanceStats");
    if v17 then
        return (v17:FindFirstChild(v6.StatNames[v6.StatType_Memory]));
    else
        return nil;
    end;
end;
local function v25()
    local l_l_SoundService_0_SoundMemoryData_0 = l_SoundService_0:GetSoundMemoryData();
    local v20 = {};
    for v21, v22 in pairs(l_l_SoundService_0_SoundMemoryData_0) do
        table.insert(v20, {
            name = v21,
            value = v22
        });
    end;
    table.sort(v20, function(v23, v24)
        return v24.value < v23.value;
    end);
    return v20;
end;
local function v36()
    local l_l_Stats_0_PaginatedMemoryByTexture_0 = l_Stats_0:GetPaginatedMemoryByTexture(Enum.TextureQueryType.NonHumanoid, 0, 100);
    local l_l_Stats_0_PaginatedMemoryByTexture_1 = l_Stats_0:GetPaginatedMemoryByTexture(Enum.TextureQueryType.NonHumanoidOrphaned, 0, 100);
    local v28 = {};
    local function v33(v29, v30)
        for _, v32 in ipairs(v30.Results) do
            table.insert(v29, {
                name = v32.TextureId,
                value = v32.MemoryInBytes / 1048576
            });
        end;
    end;
    v33(v28, l_l_Stats_0_PaginatedMemoryByTexture_0);
    v33(v28, l_l_Stats_0_PaginatedMemoryByTexture_1);
    table.sort(v28, function(v34, v35)
        return v35.value < v34.value;
    end);
    return v28;
end;
local function v61()
    local l_l_Stats_0_PaginatedMemoryByTexture_2 = l_Stats_0:GetPaginatedMemoryByTexture(Enum.TextureQueryType.Humanoid, 0, 100);
    local l_l_Stats_0_PaginatedMemoryByTexture_3 = l_Stats_0:GetPaginatedMemoryByTexture(Enum.TextureQueryType.HumanoidOrphaned, 0, 100);
    local v39 = {};
    local function v60(v40, v41)
        for _, v43 in ipairs(v41.Results) do
            local v44 = v43.MemoryInBytes / 1048576;
            local v45 = {};
            local l_TextureId_0 = v43.TextureId;
            local v47 = {};
            for _, v49 in pairs(string.split(l_TextureId_0, " ")) do
                if string.sub(v49, 1, 2) == "T[" then
                    table.insert(v47, v49);
                end;
            end;
            local _ = "";
            local v51 = {};
            for _, v53 in pairs(v47) do
                local v54 = string.split(v53, ".mesh:")[2];
                local v55 = string.find(v54, ":", 12);
                if v55 ~= nil then
                    v55 = v55 - 1;
                end;
                v51[string.sub(v54, 1, v55)] = true;
            end;
            for v56, _ in pairs(v51) do
                table.insert(v45, {
                    name = v56
                });
            end;
            table.sort(v45, function(v58, v59)
                return v58.name < v59.name;
            end);
            table.insert(v40, {
                name = "Composite Texture",
                value = v44,
                moreInfo = v45
            });
        end;
    end;
    v60(v39, l_l_Stats_0_PaginatedMemoryByTexture_2);
    v60(v39, l_l_Stats_0_PaginatedMemoryByTexture_3);
    return v39;
end;
local function v68()
    local v62 = l_MeshContentProvider_0:getContentMemoryData();
    local v63 = {};
    for v64, v65 in pairs(v62) do
        table.insert(v63, {
            name = v64,
            value = v65 / 1048576
        });
    end;
    table.sort(v63, function(v66, v67)
        return v67.value < v66.value;
    end);
    return v63;
end;
local function v75()
    local l_l_KeyframeSequenceProvider_0_MemStats_0 = l_KeyframeSequenceProvider_0:GetMemStats();
    local v70 = {};
    for v71, v72 in pairs(l_l_KeyframeSequenceProvider_0_MemStats_0) do
        table.insert(v70, {
            name = v71,
            value = v72 / 1048576
        });
    end;
    table.sort(v70, function(v73, v74)
        return v74.value < v73.value;
    end);
    return v70;
end;
local function v82()
    local l_l_TextService_0_FontMemoryData_0 = l_TextService_0:GetFontMemoryData();
    local v77 = {};
    for v78, v79 in pairs(l_l_TextService_0_FontMemoryData_0) do
        table.insert(v77, {
            name = v78,
            value = v79 / 1048576
        });
    end;
    table.sort(v77, function(v80, v81)
        return v81.value < v80.value;
    end);
    return v77;
end;
v15.updateCachedData = function(v83, v84, v85)
    if v83._doGranularMemUpdate[v84] then
        v83._doGranularMemUpdate[v84] = false;
        v83._granularMemTable[v84] = v85();
    end;
end;
v15.getAdditionalMemoryFunc = function(v86, v87)
    local v88 = nil;
    if v87 == "Sounds" then
        v88 = v25;
    elseif v87 == "GraphicsTexture" then
        v88 = v36;
    elseif v87 == "GraphicsTextureCharacter" then
        v88 = v61;
    elseif v87 == "GraphicsMeshParts" then
        v88 = v68;
    elseif not (v87 == "csgDictionary") then
        if v87 == "Animation" then
            v88 = v75;
        elseif not (not (v87 == "gui/FontData") or not game:GetEngineFeature("TextServiceGetFontMemoryData")) then
            v88 = v82;
        end;
    end;
    if not v88 then
        return nil;
    else
        return function()
            v86:updateCachedData(v87, v88);
            return v86._granularMemTable[v87];
        end;
    end;
end;
v15.recursiveUpdateEntry = function(v89, v90, v91, v92)
    local v93 = v6.GetMemoryAnalyzerStatName(v92.DisplayName);
    local l_v92_Value_0 = v92:GetValue();
    local l_v92_Children_0 = v92:GetChildren();
    if v90[v93] then
        local l_max_0 = v90[v93].max;
        local l_min_0 = v90[v93].min;
        local v98 = {
            data = l_v92_Value_0,
            time = v89._lastUpdate
        };
        if v90[v93].additionalInfoFunc and v90[v93].dataSet:back().data ~= v98.data then
            v89._doGranularMemUpdate[v93] = true;
        end;
        local v99 = v90[v93].dataSet:push_back(v98);
        if v99 then
            local v100 = v90[v93].dataSet:iterator();
            local v101 = v100:next();
            if l_max_0 == v99.data then
                l_max_0 = l_min_0;
                while v101 do
                    l_max_0 = v101.data < l_max_0 and l_max_0 or v101.data;
                    v101 = v100:next();
                end;
            end;
            if l_min_0 == v99.data then
                l_min_0 = l_max_0;
                while v101 do
                    l_min_0 = l_min_0 < v101.data and l_min_0 or v101.data;
                    v101 = v100:next();
                end;
            end;
        end;
        v90[v93].max = l_max_0 < l_v92_Value_0 and l_v92_Value_0 or l_max_0;
        v90[v93].min = l_min_0 < l_v92_Value_0 and l_min_0 or l_v92_Value_0;
    else
        local v102 = v7.new(v9);
        v102:push_back({
            data = l_v92_Value_0,
            time = v89._lastUpdate
        });
        local v103 = {
            min = l_v92_Value_0,
            max = l_v92_Value_0,
            dataSet = v102
        };
        local v104 = false;
        if #l_v92_Children_0 > 0 then
            v104 = {};
        end;
        v103.children = v104;
        v104 = false;
        if #l_v92_Children_0 > 0 then
            v104 = {};
        end;
        v103.sortedChildren = v104;
        v90[v93] = v103;
        v103 = v89:getAdditionalMemoryFunc(v93);
        if v103 then
            v90[v93].additionalInfoFunc = v103;
            v89._doGranularMemUpdate[v93] = true;
        end;
        table.insert(v91, {
            name = v93,
            dataStats = v90[v93]
        });
    end;
    local v105 = v90[v93];
    local v106 = {};
    for _, v108 in ipairs(l_v92_Children_0) do
        v106[v108.DisplayName] = true;
        v89:recursiveUpdateEntry(v105.children, v105.sortedChildren, v108);
    end;
    if v105.children then
        for v109, _ in pairs(v105.children) do
            if v106[v109] == nil then
                v105.children[v109] = nil;
                for v111, v112 in ipairs(v105.sortedChildren) do
                    if v109 == v112.name then
                        table.remove(v105.sortedChildren, v111);
                        break;
                    end;
                end;
            end;
        end;
    end;
end;
v15.totalMemSignal = function(v113)
    return v113._totalMemoryUpdated;
end;
v15.treeUpdatedSignal = function(v114)
    return v114._treeViewUpdatedSignal;
end;
v15.getSortType = function(v115)
    return v115._sortType;
end;
local function v116(v117, v118)
    table.sort(v117, v118);
    for _, v120 in pairs(v117) do
        if v120.dataStats.sortedChildren then
            v116(v120.dataStats.sortedChildren, v118);
        end;
    end;
end;
v15.setSortType = function(v121, v122)
    if not v14[v122] then
        error(string.format("attempted to pass invalid sortType: %s", (tostring(v122))), 2);
        return ;
    else
        v121._sortType = v122;
        v116(v121._memoryDataSorted, v14[v121._sortType]);
        return ;
    end;
end;
v15.getMemoryData = function(v123)
    return v123._memoryDataSorted;
end;
v15.isRunning = function(v124)
    return v124._isRunning;
end;
v15.start = function(v125)
    spawn(function()
        v125._pollingId = v125._pollingId + 1;
        local l__pollingId_0 = v125._pollingId;
        v125._isRunning = true;
        while true do
            if l__pollingId_0 == v125._pollingId then
                local v127 = l_Stats_0 and l_Stats_0:FindFirstChild("PerformanceStats");
                local v128 = if v127 then v127:FindFirstChild(v6.StatNames[v6.StatType_Memory]) else nil;
                if v128 then
                    v125._lastUpdate = os.time();
                    v125:recursiveUpdateEntry(v125._memoryData, v125._memoryDataSorted, v128);
                    if v125._totalMemory ~= v128:getValue() then
                        v125._totalMemory = v128:getValue();
                        v125._totalMemoryUpdated:Fire(v125._totalMemory);
                    end;
                    v125._treeViewUpdatedSignal:Fire(v125._memoryDataSorted);
                    wait(3);
                else
                    return ;
                end;
            else
                v125._isRunning = false;
                return ;
            end;
        end;
    end);
end;
v15.stop = function(v129)
    v129._pollingId = v129._pollingId + 1;
end;
return v15;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v4 = require(l_Components_0.Memory.ClientMemory);
local v5 = require(l_Components_0.Memory.ServerMemory);
local v6 = require(l_Components_0.UtilAndTab);
local v7 = require(l_Components_0.DataConsumer);
local l_Actions_0 = script.Parent.Parent.Parent.Actions;
local v9 = require(l_Actions_0.ClientMemoryUpdateSearchFilter);
local v10 = require(l_Actions_0.ServerMemoryUpdateSearchFilter);
local v11 = require(script.Parent.Parent.Parent.Constants);
local l_MainRowPadding_0 = v11.GeneralFormatting.MainRowPadding;
local v13 = v1.Component:extend("LogButton");
v13.init = function(v14)
    v14.onAction = function()
        local v15 = not not v14.props.isClientView and v14.props.ClientMemoryData or v14.props.ServerMemoryData;
        local v16 = "\n";
        local function _(v17)
            v16 = v16 .. v17 .. "\n";
        end;
        v16 = v16 .. "Name                                       Min   Max" .. "\n";
        v16 = v16 .. "----------------------------------------   ---   ---" .. "\n";
        local function v19(v20, v21, v22)
            v16 = v16 .. string.format("%s %s %s %3d   %3d", string.rep(" ", v22), v20, string.rep(" ", (40 - v22) - #v20), v21.min, v21.max) .. "\n";
            if v21.children then
                for v23, v24 in pairs(v21.children) do
                    v19(v23, v24, v22 + 2);
                end;
            end;
        end;
        v19("Memory", v15._memoryData.Memory, 0);
        print(v16);
    end;
end;
v13.render = function(v25)
    return v1.createElement("TextButton", {
        Text = "Log",
        Visible = true,
        BorderSizePixel = 1,
        BackgroundColor3 = v11.Color.UnselectedGray,
        TextColor3 = v11.Color.Text,
        [v1.Event.Activated] = v25.onAction
    });
end;
v13 = v7(v13, "ClientMemoryData", "ServerMemoryData");
local v26 = v1.Component:extend("MainViewMemory");
v26.init = function(v27)
    v27.onUtilTabHeightChanged = function(v28)
        v27:setState({
            utilTabHeight = v28
        });
    end;
    v27.onClientButton = function()
        v27:setState({
            isClientView = true
        });
    end;
    v27.onServerButton = function()
        v27:setState({
            isClientView = false
        });
    end;
    v27.onSearchTermChanged = function(v29)
        if not v27.state.isClientView then
            v27.props.dispatchServerMemoryUpdateSearchFilter(v29, {});
            return ;
        else
            v27.props.dispatchClientMemoryUpdateSearchFilter(v29, {});
            return ;
        end;
    end;
    v27.utilRef = v1.createRef();
    v27.state = {
        utilTabHeight = 0,
        isClientView = true
    };
end;
v26.didMount = function(v30)
    v30:setState({
        utilTabHeight = v30.utilRef.current.Size.Y.Offset
    });
end;
v26.didUpdate = function(v31)
    local l_Offset_0 = v31.utilRef.current.Size.Y.Offset;
    if l_Offset_0 ~= v31.state.utilTabHeight then
        v31:setState({
            utilTabHeight = l_Offset_0
        });
    end;
end;
v26.render = function(v33)
    local v34 = {};
    local l_size_0 = v33.props.size;
    local l_isDeveloperView_0 = v33.props.isDeveloperView;
    local l_formFactor_0 = v33.props.formFactor;
    local l_tabList_0 = v33.props.tabList;
    local l_utilTabHeight_0 = v33.state.utilTabHeight;
    local l_isClientView_0 = v33.state.isClientView;
    local v41 = not not l_isClientView_0 and v33.props.clientSearchTerm or v33.props.serverSearchTerm;
    v34.UIListLayout = v1.createElement("UIListLayout", {
        SortOrder = Enum.SortOrder.LayoutOrder,
        Padding = UDim.new(0, l_MainRowPadding_0)
    });
    v34.UtilAndTab = v1.createElement(v6, {
        windowWidth = l_size_0.X.Offset,
        formFactor = l_formFactor_0,
        tabList = l_tabList_0,
        isClientView = l_isClientView_0,
        searchTerm = v41,
        layoutOrder = 1,
        refForParent = v33.utilRef,
        onHeightChanged = v33.onUtilTabHeightChanged,
        onClientButton = l_isDeveloperView_0 and v33.onClientButton,
        onServerButton = l_isDeveloperView_0 and v33.onServerButton,
        onSearchTermChanged = v33.onSearchTermChanged
    }, {
        v13 and v1.createElement(v13, {
            isClientView = l_isClientView_0
        })
    });
    if l_utilTabHeight_0 > 0 then
        if not l_isClientView_0 then
            v34.ServerMemory = v1.createElement(v5, {
                size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
                searchTerm = v41,
                layoutOrder = 2
            });
        else
            v34.ClientMemory = v1.createElement(v4, {
                size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
                searchTerm = v41,
                layoutOrder = 2
            });
        end;
    end;
    return v1.createElement("Frame", {
        Size = l_size_0,
        BackgroundColor3 = v11.Color.BaseGray,
        BackgroundTransparency = 1,
        LayoutOrder = 3
    }, v34);
end;
return v2.UNSTABLE_connect2(function(v42, _)
    return {
        clientSearchTerm = v42.MemoryData.clientSearchTerm,
        clientTypeFilters = v42.MemoryData.clientTypeFilters,
        serverSearchTerm = v42.MemoryData.serverSearchTerm,
        serverTypeFilters = v42.MemoryData.serverTypeFilters
    };
end, function(v44)
    return {
        dispatchClientMemoryUpdateSearchFilter = function(v45, v46)
            v44(v9(v45, v46));
        end,
        dispatchServerMemoryUpdateSearchFilter = function(v47, v48)
            v44(v10(v47, v48));
        end
    };
end)(v26);


local v0 = require(game:GetService("CorePackages").Roact);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v2 = require(l_Components_0.CellLabel);
local v3 = require(l_Components_0.BannerButton);
local v4 = require(l_Components_0.LineGraph);
local v5 = require(script.Parent.Parent.Parent.Constants);
local l_LineWidth_0 = v5.GeneralFormatting.LineWidth;
local l_LineColor_0 = v5.GeneralFormatting.LineColor;
local l_ValueCellWidth_0 = v5.MemoryFormatting.ValueCellWidth;
local l_CellPadding_0 = v5.MemoryFormatting.CellPadding;
local l_ValuePadding_0 = v5.MemoryFormatting.ValuePadding;
local l_EntryFrameHeight_0 = v5.GeneralFormatting.EntryFrameHeight;
local l_DepthIndent_0 = v5.MemoryFormatting.DepthIndent;
local v13 = require(script.Parent.Parent.Parent.Util.convertTimeStamp);
return function(v14)
    local l_size_0 = v14.size;
    local l_depth_0 = v14.depth;
    local l_showGraph_0 = v14.showGraph;
    local l_dataStats_0 = v14.dataStats;
    local l_layoutOrder_0 = v14.layoutOrder;
    local l_onButtonPress_0 = v14.onButtonPress;
    local l_formatValueStr_0 = v14.formatValueStr;
    local l_getX_0 = v14.getX;
    local l_getY_0 = v14.getY;
    local v24 = l_depth_0 * l_DepthIndent_0;
    local l_name_0 = v14.name;
    local l_value_0 = v14.value;
    if l_dataStats_0 then
        l_value_0 = l_dataStats_0.dataSet:back().data;
    end;
    return v0.createElement("Frame", {
        Size = l_size_0,
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_0
    }, {
        button = v0.createElement(v3, {
            size = UDim2.new(1, -v24, 0, l_EntryFrameHeight_0),
            pos = UDim2.new(0, v24, 0, 0),
            isExpanded = l_showGraph_0,
            onButtonPress = l_onButtonPress_0
        }, {
            name = v0.createElement(v2, {
                text = l_name_0,
                size = UDim2.new(UDim.new(1 - l_ValueCellWidth_0, -v24), UDim.new(1, 0)),
                pos = UDim2.new(0, l_CellPadding_0, 0, 0)
            }),
            horizonal1 = v0.createElement("Frame", {
                Size = UDim2.new(1, -v24, 0, l_LineWidth_0),
                Position = UDim2.new(0, v24, 0, 0),
                BackgroundColor3 = l_LineColor_0,
                BorderSizePixel = 0
            }),
            horizonal2 = v0.createElement("Frame", {
                Size = UDim2.new(1, -v24, 0, l_LineWidth_0),
                Position = UDim2.new(0, v24, 1, 0),
                BackgroundColor3 = l_LineColor_0,
                BorderSizePixel = 0
            })
        }),
        value = l_value_0 and v0.createElement(v2, {
            text = l_formatValueStr_0(l_value_0),
            size = UDim2.new(l_ValueCellWidth_0, -l_ValuePadding_0, 0, l_EntryFrameHeight_0),
            pos = UDim2.new(1 - l_ValueCellWidth_0, l_ValuePadding_0, 0, 0)
        }),
        vertical = v0.createElement("Frame", {
            Size = UDim2.new(0, 1, 0, l_EntryFrameHeight_0),
            Position = UDim2.new(1 - l_ValueCellWidth_0, 0, 0, 0),
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        }),
        Graph = l_showGraph_0 and v0.createElement(v4, {
            pos = UDim2.new(0, 0, 0, l_EntryFrameHeight_0),
            size = UDim2.new(1, 0, 1, -l_EntryFrameHeight_0),
            graphData = l_dataStats_0.dataSet,
            maxY = l_dataStats_0.max,
            minY = l_dataStats_0.min,
            getX = l_getX_0,
            getY = l_getY_0,
            stringFormatX = v13,
            stringFormatY = l_formatValueStr_0,
            axisLabelX = "Timestamp",
            axisLabelY = l_name_0
        })
    });
end;


local v0 = require(game:GetService("CorePackages").Roact);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v2 = require(l_Components_0.DataConsumer);
local v3 = require(l_Components_0.Memory.MemoryView);
local v4 = v0.Component:extend("ServerMemory");
v4.render = function(v5)
    return v0.createElement(v3, {
        layoutOrder = v5.props.layoutOrder,
        size = v5.props.size,
        searchTerm = v5.props.searchTerm,
        targetMemoryData = v5.props.ServerMemoryData
    });
end;
return v2(v4, "ServerMemoryData");


local v0 = require(script.Parent.Parent.Parent.Signal);
local v1 = require(script.Parent.Parent.Parent.CircularBuffer);
local l_ChartHeaderNames_0 = require(script.Parent.Parent.Parent.Constants).MemoryFormatting.ChartHeaderNames;
local v3 = tonumber(settings():GetFVariable("NewDevConsoleMaxGraphCount"));
local v8 = {
    [l_ChartHeaderNames_0[1]] = function(v4, v5)
        return v4.name < v5.name;
    end,
    [l_ChartHeaderNames_0[2]] = function(v6, v7)
        return v6.dataStats.dataSet:back().data < v7.dataStats.dataSet:back().data;
    end
};
local v9 = require(script.Parent.Parent.Parent.Util.getClientReplicator);
local v10 = {};
v10.__index = v10;
v10.new = function()
    local v11 = {};
    setmetatable(v11, v10);
    v11._init = false;
    v11._isRunning = false;
    v11._totalMemory = 0;
    v11._memoryData = {};
    v11._memoryDataSorted = {};
    v11._coreTreeData = {};
    v11._coreTreeDataSorted = {};
    v11._placeTreeData = {};
    v11._placeTreeDataSorted = {};
    v11._placeScriptTreeData = {};
    v11._placeScriptTreeDataSorted = {};
    v11._coreScriptTreeData = {};
    v11._coreScriptTreeDataSorted = {};
    v11._treeViewUpdated = v0.new();
    v11._sortType = l_ChartHeaderNames_0[1];
    return v11;
end;
v10.updateEntry = function(v12, v13, v14, v15, v16)
    if v13[v15] then
        local l_max_0 = v13[v15].max;
        local l_min_0 = v13[v15].min;
        local v19 = v13[v15].dataSet:push_back({
            data = v16,
            time = v12._lastUpdate
        });
        if v19 then
            local v20 = v13[v15].dataSet:iterator();
            local v21 = v20:next();
            if l_max_0 == v19.data then
                l_max_0 = l_min_0;
                while v21 do
                    l_max_0 = v21.data < l_max_0 and l_max_0 or v21.data;
                    v21 = v20:next();
                end;
            end;
            if l_min_0 == v19.data then
                l_min_0 = l_max_0;
                while v21 do
                    l_min_0 = l_min_0 < v21.data and l_min_0 or v21.data;
                    v21 = v20:next();
                end;
            end;
        end;
        v13[v15].max = l_max_0 < v16 and v16 or l_max_0;
        v13[v15].min = l_min_0 < v16 and l_min_0 or v16;
        return ;
    else
        local v22 = v1.new(v3);
        v22:push_back({
            data = v16,
            time = v12._lastUpdate
        });
        v13[v15] = {
            min = v16,
            max = v16,
            dataSet = v22
        };
        table.insert(v14, {
            name = v15,
            dataStats = v13[v15]
        });
        return ;
    end;
end;
v10.updateEntryList = function(v23, v24, v25, v26)
    local v27 = 0;
    for v28, v29 in pairs(v26) do
        local v30 = v29 / 1048576;
        v27 = v27 + v30;
        v23:updateEntry(v24, v25, v28, v30);
    end;
    for v31, _ in pairs(v24) do
        if v26[v31] == nil then
            v24[v31] = nil;
            for v33, v34 in ipairs(v25) do
                if v31 == v34.name then
                    table.remove(v25, v33);
                    break;
                end;
            end;
        end;
    end;
    return v27;
end;
v10.updateWithTreeStats = function(v35, v36)
    local v37 = {
        PlaceMemory = 0,
        CoreMemory = 0,
        UntrackedMemory = 0,
        PlaceScriptMemory = 0,
        CoreScriptMemory = 0
    };
    for v38, v39 in pairs(v36) do
        if v38 == "totalServerMemory" then
            v35._totalMemory = v39 / 1048576;
        elseif v38 == "developerTags" then
            v37.PlaceMemory = v35:updateEntryList(v35._placeTreeData, v35._placeTreeDataSorted, v39);
        elseif v38 == "internalCategories" then
            v37.CoreMemory = v35:updateEntryList(v35._coreTreeData, v35._coreTreeDataSorted, v39);
        elseif v38 == "placeScriptMemoryCategories" then
            v37.PlaceScriptMemory = v35:updateEntryList(v35._placeScriptTreeData, v35._placeScriptTreeDataSorted, v39);
        elseif v38 == "coreScriptMemoryCategories" then
            v37.CoreScriptMemory = v35:updateEntryList(v35._coreScriptTreeData, v35._coreScriptTreeDataSorted, v39);
        end;
    end;
    v37.UntrackedMemory = (v35._totalMemory - v37.PlaceMemory) - v37.CoreMemory;
    if not v35._init then
        local v40 = {};
        local v41 = {};
        for v42, v43 in pairs(v37) do
            v35:updateEntry(v40, v41, v42, v43);
        end;
        v35:updateEntry(v35._memoryData, v35._memoryDataSorted, "Memory", v35._totalMemory);
        v40.PlaceMemory.children = v35._placeTreeData;
        v40.PlaceMemory.sortedChildren = v35._placeTreeDataSorted;
        v40.CoreMemory.children = v35._coreTreeData;
        v40.CoreMemory.sortedChildren = v35._coreTreeDataSorted;
        v40.PlaceScriptMemory.children = v35._placeScriptTreeData;
        v40.PlaceScriptMemory.sortedChildren = v35._placeScriptTreeDataSorted;
        v40.CoreScriptMemory.children = v35._coreScriptTreeData;
        v40.CoreScriptMemory.sortedChildren = v35._coreScriptTreeDataSorted;
        v35._memoryData.Memory.children = v40;
        v35._memoryData.Memory.sortedChildren = v41;
        v35._init = true;
        return ;
    else
        for v44, v45 in pairs(v37) do
            v35:updateEntry(v35._memoryData.Memory.children, v35._memoryData.Memory.sortedChildren, v44, v45);
        end;
        v35:updateEntry(v35._memoryData, v35._memoryDataSorted, "Memory", v35._totalMemory);
        return ;
    end;
end;
v10.totalMemSignal = function(v46)
    return v46._totalMemoryUpdated;
end;
v10.treeUpdatedSignal = function(v47)
    return v47._treeViewUpdated;
end;
v10.getSortType = function(v48)
    return v48._sortType;
end;
local function v49(v50, v51)
    table.sort(v50, v51);
    for _, v53 in pairs(v50) do
        if v53.dataStats.sortedChildren then
            v49(v53.dataStats.sortedChildren, v51);
        end;
    end;
end;
v10.setSortType = function(v54, v55)
    if not v8[v55] then
        error(string.format("attempted to pass invalid sortType: %s", (tostring(v55))), 2);
        return ;
    else
        v54._sortType = v55;
        v49(v54._memoryDataSorted, v8[v54._sortType]);
        return ;
    end;
end;
v10.getMemoryData = function(v56)
    return v56._memoryDataSorted;
end;
v10.isRunning = function(v57)
    return v57._isRunning;
end;
v10.start = function(v58)
    local v59 = v9();
    if not (not v59 or v58._statsListenerConnection) then
        v58._statsListenerConnection = v59.StatsReceived:connect(function(v60)
            if v60.ServerMemoryTree then
                v58._lastUpdate = os.time();
                local l_ServerMemoryTree_0 = v60.ServerMemoryTree;
                if l_ServerMemoryTree_0 then
                    v58:updateWithTreeStats(l_ServerMemoryTree_0);
                    v58._treeViewUpdated:Fire(v58._memoryDataSorted);
                end;
                return ;
            else
                return ;
            end;
        end);
        v59:RequestServerStats(true);
        v58._isRunning = true;
    end;
end;
v10.stop = function(v62)
    local v63 = v9();
    if v63 then
        v63:RequestServerStats(false);
        v62._statsListenerConnection:Disconnect();
        v62._isRunning = false;
    end;
end;
return v10;


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = game:GetService("LogService");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_GameSettings_0 = UserSettings().GameSettings;
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(script.Parent.Parent.Parent.Components.UtilAndTab);
local v6 = require(script.Parent.ServerProfilerInterface);
local v7 = require(script.Parent.Parent.Parent.Constants);
local l_MainRowPadding_0 = v7.GeneralFormatting.MainRowPadding;
local l_ButtonWidth_0 = v7.MicroProfilerFormatting.ButtonWidth;
local l_ButtonTextSize_0 = v7.MicroProfilerFormatting.ButtonTextSize;
local _ = v7.Font.MainWindow;
local l_MainWindowHeader_0 = v7.Font.MainWindowHeader;
local l_UnselectedGray_0 = v7.Color.UnselectedGray;
local l_SelectedBlue_0 = v7.Color.SelectedBlue;
local l_UnselectedGray_1 = v7.Color.UnselectedGray;
local v16 = v4.Component:extend("MainViewProfiler");
v16.init = function(v17)
    v17.onUtilTabHeightChanged = function(v18)
        v17:setState({
            utilTabHeight = v18
        });
    end;
    v17.changeProfilerState = function(v19)
        return function()
            l_GameSettings_0.OnScreenProfilerEnabled = v19;
            v17:setState({
                clientProfilerEnabled = v19
            });
            l_RbxAnalyticsService_0:ReportCounter("MicroprofilerDevConsolePressed");
        end;
    end;
    v17.microProfilerChangedConnection = l_GameSettings_0:GetPropertyChangedSignal("OnScreenProfilerEnabled"):Connect(function()
        v17:setState({
            clientProfilerEnabled = l_GameSettings_0.OnScreenProfilerEnabled
        });
    end);
    v17.utilRef = v4.createRef();
    v17.state = {
        utilTabHeight = 0
    };
end;
v16.didMount = function(v20)
    v20:setState({
        utilTabHeight = v20.utilRef.current.Size.Y.Offset
    });
end;
v16.willUnmount = function(v21)
    if v21.microProfilerChangedConnection then
        v21.microProfilerChangedConnection:Disconnect();
        v21.microProfilerChangedConnection = nil;
    end;
end;
v16.didUpdate = function(v22)
    local l_Size_0 = v22.utilRef.current.Size;
    if l_Size_0.Y.Offset ~= v22.state.utilTabHeight then
        v22:setState({
            utilTabHeight = l_Size_0.Y.Offset
        });
    end;
end;
v16.render = function(v24)
    local l_size_0 = v24.props.size;
    local l_formFactor_0 = v24.props.formFactor;
    local l_tabList_0 = v24.props.tabList;
    local l_utilTabHeight_0 = v24.state.utilTabHeight;
    local _ = v24.state.frameRate;
    local _ = v24.state.timeFrame;
    local _ = v24.state.waitingForData;
    local l_clientProfilerEnabled_0 = v24.state.clientProfilerEnabled;
    local _ = v24.state.outputPath;
    local _ = UDim2.new(0.8, -l_ButtonWidth_0, 0, 30);
    local _ = UDim2.new(0.6, l_ButtonWidth_0, 0, 0);
    return v4.createElement("Frame", {
        Size = l_size_0,
        BackgroundColor3 = v7.Color.BaseGray,
        BackgroundTransparency = 1,
        LayoutOrder = 3
    }, {
        UIListLayout = v4.createElement("UIListLayout", {
            Padding = UDim.new(0, l_MainRowPadding_0),
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        UtilAndTab = v4.createElement(v5, {
            windowWidth = l_size_0.X.Offset,
            formFactor = l_formFactor_0,
            tabList = l_tabList_0,
            layoutOrder = 1,
            refForParent = v24.utilRef,
            onHeightChanged = v24.onUtilTabHeightChanged
        }),
        MainFrame = v4.createElement("ScrollingFrame", {
            Size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
            CanvasSize = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
            BackgroundTransparency = 1,
            LayoutOrder = 2
        }, {
            UIListLayout = v4.createElement("UIListLayout", {
                Padding = UDim.new(0, l_MainRowPadding_0 * 2),
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            MicroProfilerRow = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 90),
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }, {
                Label = v4.createElement("TextLabel", {
                    Size = UDim2.new(0, l_ButtonWidth_0, 0, 30),
                    Position = UDim2.new(0.1, 0, 0, 0),
                    Text = "MicroProfiler",
                    Font = l_MainWindowHeader_0,
                    TextSize = l_ButtonTextSize_0,
                    TextColor3 = v7.Color.Text,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    BackgroundColor3 = l_UnselectedGray_1,
                    BackgroundTransparency = 1
                }),
                HorizontalLine = v4.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 1),
                    Position = UDim2.new(0, 0, 0, 30)
                }),
                ToggleButton = v4.createElement("TextLabel", {
                    Size = UDim2.new(0.8, -l_ButtonWidth_0, 0, 30),
                    Position = UDim2.new(0.09999999999999998, l_ButtonWidth_0, 0, 37.5),
                    BackgroundTransparency = 1
                }, {
                    OffButton = v4.createElement("TextButton", {
                        Size = UDim2.new(0.5, 0, 1, 0),
                        Text = "Off",
                        Font = l_MainWindowHeader_0,
                        TextSize = l_ButtonTextSize_0,
                        TextColor3 = v7.Color.Text,
                        TextXAlignment = Enum.TextXAlignment.Center,
                        TextYAlignment = Enum.TextYAlignment.Center,
                        BackgroundColor3 = not not l_clientProfilerEnabled_0 and l_UnselectedGray_0 or l_SelectedBlue_0,
                        [v4.Event.Activated] = v24.changeProfilerState(false)
                    }),
                    ClientButton = v4.createElement("TextButton", {
                        Size = UDim2.new(0.5, 0, 1, 0),
                        Position = UDim2.new(0.5, 0, 0, 0),
                        Text = "Client",
                        Font = l_MainWindowHeader_0,
                        TextSize = l_ButtonTextSize_0,
                        TextColor3 = v7.Color.Text,
                        TextXAlignment = Enum.TextXAlignment.Center,
                        TextYAlignment = Enum.TextYAlignment.Center,
                        BackgroundColor3 = not not l_clientProfilerEnabled_0 and l_SelectedBlue_0 or l_UnselectedGray_0,
                        [v4.Event.Activated] = v24.changeProfilerState(true)
                    })
                })
            }),
            HorizontalLine = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, l_MainRowPadding_0),
                BackgroundTransparency = 1,
                LayoutOrder = 3
            }),
            ServerProfiler = v4.createElement(v6, {
                Size = UDim2.new(1, 0, 0, 135),
                BackgroundTransparency = 1,
                LayoutOrder = 4
            })
        })
    });
end;
return v16;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(script.Parent.Parent.Parent.Util.getClientReplicator);
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(script.Parent.Parent.Parent.Actions.SetRCCProfilerState);
local v5 = v2.Component:extend("RCCProfilerDataCompleteListener");
v5.didMount = function(v6)
    local v7 = v1();
    if v7 then
        v6.completeSignal = v7.RCCProfilerDataComplete:Connect(function(v8, v9)
            if v6.props.waitingForRecording then
                if v8 then
                    v6.props.dispatchSetRCCProfilerState(false, v9);
                else
                    warn(v9);
                    v6.props.dispatchSetRCCProfilerState(false);
                    return ;
                end;
            end;
        end);
    end;
end;
v5.willUnmount = function(v10)
    if v10.completeSignal then
        v10.completeSignal:Disconnect();
        v10.completeSignal = nil;
    end;
end;
v5.render = function(_)
    return nil;
end;
return v3.UNSTABLE_connect2(function(v12, _)
    return {
        waitingForRecording = v12.MicroProfiler.waitingForRecording
    };
end, function(v14)
    return {
        dispatchSetRCCProfilerState = function(v15, v16)
            v14(v4(v15, v16));
        end
    };
end)(v5);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GameSettings_0 = UserSettings().GameSettings;
local v2 = require(script.Parent.Parent.Parent.Util.getClientReplicator);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local _ = script.Parent.Parent.Parent.Components;
local v6 = require(script.Parent.Parent.Parent.Actions.SetRCCProfilerState);
local v7 = require(script.Parent.Parent.Parent.Constants);
local _ = v7.GeneralFormatting.MainRowPadding;
local l_ButtonWidth_0 = v7.MicroProfilerFormatting.ButtonWidth;
local l_ButtonTextSize_0 = v7.MicroProfilerFormatting.ButtonTextSize;
local l_MainWindow_0 = v7.Font.MainWindow;
local l_MainWindowHeader_0 = v7.Font.MainWindowHeader;
local l_UnselectedGray_0 = v7.Color.UnselectedGray;
local l_SelectedBlue_0 = v7.Color.SelectedBlue;
local l_UnselectedGray_1 = v7.Color.UnselectedGray;
local v16 = v3.Component:extend("ServerProfilerInteraface");
v16.init = function(v17)
    v17.onUtilTabHeightChanged = function(v18)
        v17:setState({
            utilTabHeight = v18
        });
    end;
    v17.onFocusLostFrameRate = function(v19, _, _)
        l_GameSettings_0.RCCProfilerRecordFrameRate = v19.Text;
        v19.Text = l_GameSettings_0.RCCProfilerRecordFrameRate;
    end;
    v17.onFocusLostTimeFrame = function(v22, _, _)
        l_GameSettings_0.RCCProfilerRecordTimeFrame = v22.Text;
        v22.Text = l_GameSettings_0.RCCProfilerRecordTimeFrame;
    end;
    v17.requestRCCProfilerData = function(_)
        local v26 = v2();
        if v26 then
            v26:RequestRCCProfilerData(l_GameSettings_0.RCCProfilerRecordFrameRate, l_GameSettings_0.RCCProfilerRecordTimeFrame);
            v17.props.dispatchSetRCCProfilerState(true);
        end;
    end;
    v17.changeProfilerState = function(v27)
        return function()
            l_GameSettings_0.OnScreenProfilerEnabled = v27;
            v17:setState({
                clientProfilerEnabled = v27
            });
        end;
    end;
    v17.state = {
        frameRate = l_GameSettings_0.RCCProfilerRecordFrameRate,
        timeFrame = l_GameSettings_0.RCCProfilerRecordTimeFrame
    };
end;
v16.render = function(v28)
    local _ = v28.props.size;
    local _ = v28.props.formFactor;
    local _ = v28.props.tabList;
    local l_waitingForRecording_0 = v28.props.waitingForRecording;
    local l_lastFileOutputLocation_0 = v28.props.lastFileOutputLocation;
    local _ = v28.state.utilTabHeight;
    local l_frameRate_0 = v28.state.frameRate;
    local l_timeFrame_0 = v28.state.timeFrame;
    local _ = v28.state.clientProfilerEnabled;
    local v38 = not l_waitingForRecording_0 and #l_lastFileOutputLocation_0 > 0;
    local v39 = UDim2.new(0.8, -l_ButtonWidth_0, 0, 30);
    local _ = UDim2.new(0.6, l_ButtonWidth_0, 0, 0);
    return v3.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 135),
        BackgroundTransparency = 1,
        LayoutOrder = 4
    }, {
        Label = v3.createElement("TextLabel", {
            Size = UDim2.new(0, l_ButtonWidth_0, 0, 30),
            Position = UDim2.new(0.1, 0, 0, 0),
            Text = "ServerProfiler",
            Font = l_MainWindowHeader_0,
            TextSize = l_ButtonTextSize_0,
            TextColor3 = v7.Color.Text,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            BackgroundColor3 = l_UnselectedGray_1,
            BackgroundTransparency = 1
        }),
        HorizontalLine = v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 1),
            Position = UDim2.new(0, 0, 0, 30)
        }),
        LabelFPS = v3.createElement("TextLabel", {
            Size = UDim2.new(0, l_ButtonWidth_0, 0, 30),
            Position = UDim2.new(0.1, 0, 0, 37.5),
            Text = "Frames Per Second",
            Font = l_MainWindow_0,
            TextSize = l_ButtonTextSize_0,
            TextColor3 = v7.Color.Text,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            BackgroundColor3 = l_UnselectedGray_1,
            BackgroundTransparency = 1
        }),
        FPSTextBox = v3.createElement("TextBox", {
            Size = v39,
            Position = UDim2.new(0.09999999999999998, l_ButtonWidth_0, 0, 37.5),
            Text = l_frameRate_0,
            Font = l_MainWindow_0,
            TextSize = l_ButtonTextSize_0,
            TextColor3 = v7.Color.Text,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center,
            BackgroundColor3 = l_UnselectedGray_1,
            BackgroundTransparency = 0,
            [v3.Event.FocusLost] = v28.onFocusLostFrameRate
        }),
        LabelTimeFrame = v3.createElement("TextLabel", {
            Size = UDim2.new(0, l_ButtonWidth_0, 0, 30),
            Position = UDim2.new(0.1, 0, 0, 67.5),
            Text = "Seconds to Record",
            Font = l_MainWindow_0,
            TextSize = l_ButtonTextSize_0,
            TextColor3 = v7.Color.Text,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            BackgroundTransparency = 1
        }),
        TimeFrameTextBox = v3.createElement("TextBox", {
            Size = v39,
            Position = UDim2.new(0.09999999999999998, l_ButtonWidth_0, 0, 67.5),
            Text = l_timeFrame_0,
            Font = l_MainWindow_0,
            TextSize = l_ButtonTextSize_0,
            TextColor3 = v7.Color.Text,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center,
            BackgroundColor3 = l_UnselectedGray_1,
            BackgroundTransparency = 0,
            [v3.Event.FocusLost] = v28.onFocusLostTimeFrame
        }, {
            GetDumpButton = v3.createElement("TextButton", {
                Size = UDim2.new(0, l_ButtonWidth_0 * 0.7, 0, 30),
                Position = UDim2.new(1, -l_ButtonWidth_0 * 0.7, 1, 30),
                Text = not l_waitingForRecording_0 and "Start Recording" or "Recording",
                Font = l_MainWindow_0,
                TextSize = l_ButtonTextSize_0,
                TextColor3 = v7.Color.Text,
                TextXAlignment = Enum.TextXAlignment.Center,
                TextYAlignment = Enum.TextYAlignment.Center,
                BackgroundColor3 = not not l_waitingForRecording_0 and l_UnselectedGray_0 or l_SelectedBlue_0,
                BackgroundTransparency = not l_waitingForRecording_0 and 0 or 0.3,
                AutoButtonColor = not l_waitingForRecording_0,
                Active = not l_waitingForRecording_0,
                [v3.Event.Activated] = v28.requestRCCProfilerData
            })
        }),
        OutputPath = v38 and v3.createElement("TextLabel", {
            Size = UDim2.new(1, 0, 0, 30),
            Position = UDim2.new(0, 0, 0, 97.5),
            Text = l_lastFileOutputLocation_0,
            Font = l_MainWindow_0,
            TextSize = l_ButtonTextSize_0,
            TextColor3 = v7.Color.Text,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center
        })
    });
end;
return v4.UNSTABLE_connect2(function(v41, _)
    return {
        waitingForRecording = v41.MicroProfiler.waitingForRecording,
        lastFileOutputLocation = v41.MicroProfiler.lastFileOutputLocation
    };
end, function(v43)
    return {
        dispatchSetRCCProfilerState = function(v44, v45)
            v43(v6(v44, v45));
        end
    };
end)(v16);


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.Parent.Parent.Components.DataConsumer);
local v2 = require(script.Parent.NetworkView);
local v3 = v0.Component:extend("ClientNetwork");
v3.init = function(v4, _)
    v4.state = {
        targetNetworkData = v4.props.ClientNetworkData
    };
end;
v3.render = function(v6)
    return v0.createElement(v2, {
        size = v6.props.size,
        searchTerm = v6.props.searchTerm,
        layoutOrder = v6.props.layoutOrder,
        targetNetworkData = v6.state.targetNetworkData
    });
end;
return v1(v3, "ClientNetworkData");


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v4 = require(l_Components_0.Network.ClientNetwork);
local v5 = require(l_Components_0.Network.ServerNetwork);
local v6 = require(l_Components_0.UtilAndTab);
local l_Actions_0 = script.Parent.Parent.Parent.Actions;
local v8 = require(l_Actions_0.ClientNetworkUpdateSearchFilter);
local v9 = require(l_Actions_0.ServerNetworkUpdateSearchFilter);
local v10 = require(l_Actions_0.SetActiveTab);
local v11 = require(script.Parent.Parent.Parent.Constants);
local l_MainRowPadding_0 = v11.GeneralFormatting.MainRowPadding;
local v13 = v1.Component:extend("MainViewNetwork");
v13.init = function(v14)
    v14.onUtilTabHeightChanged = function(v15)
        v14:setState({
            utilTabHeight = v15
        });
    end;
    v14.onClientButton = function()
        v14.props.dispatchSetActiveTab("Network", true);
    end;
    v14.onServerButton = function()
        v14.props.dispatchSetActiveTab("Network", false);
    end;
    v14.onSearchTermChanged = function(v16)
        if not v14.props.isClientView then
            v14.props.dispatchServerNetworkUpdateSearchFilter(v16, {});
            return ;
        else
            v14.props.dispatchClientNetworkUpdateSearchFilter(v16, {});
            return ;
        end;
    end;
    v14.utilRef = v1.createRef();
    v14.state = {
        utilTabHeight = 0
    };
end;
v13.didMount = function(v17)
    v17:setState({
        utilTabHeight = v17.utilRef.current.Size.Y.Offset
    });
end;
v13.didUpdate = function(v18)
    local l_Size_0 = v18.utilRef.current.Size;
    if l_Size_0.Y.Offset ~= v18.state.utilTabHeight then
        v18:setState({
            utilTabHeight = l_Size_0.Y.Offset
        });
    end;
end;
v13.render = function(v20)
    local v21 = {};
    local l_size_0 = v20.props.size;
    local l_formFactor_0 = v20.props.formFactor;
    local l_tabList_0 = v20.props.tabList;
    local l_isClientView_0 = v20.props.isClientView;
    local l_utilTabHeight_0 = v20.state.utilTabHeight;
    local v27 = not not l_isClientView_0 and v20.props.clientSearchTerm or v20.props.serverSearchTerm;
    v21.UIListLayout = v1.createElement("UIListLayout", {
        SortOrder = Enum.SortOrder.LayoutOrder,
        Padding = UDim.new(0, l_MainRowPadding_0)
    });
    v21.UtilAndTab = v1.createElement(v6, {
        windowWidth = l_size_0.X.Offset,
        formFactor = l_formFactor_0,
        tabList = l_tabList_0,
        isClientView = l_isClientView_0,
        searchTerm = v27,
        layoutOrder = 1,
        refForParent = v20.utilRef,
        onHeightChanged = v20.onUtilTabHeightChanged,
        onClientButton = v20.onClientButton,
        onServerButton = v20.onServerButton,
        onSearchTermChanged = v20.onSearchTermChanged
    });
    if l_utilTabHeight_0 > 0 then
        if not l_isClientView_0 then
            v21.ServerNetwork = v1.createElement(v5, {
                size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
                searchTerm = v27,
                layoutOrder = 2
            });
        else
            v21.ClientNetwork = v1.createElement(v4, {
                size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
                searchTerm = v27,
                layoutOrder = 2
            });
        end;
    end;
    return v1.createElement("Frame", {
        Size = l_size_0,
        BackgroundColor3 = v11.Color.BaseGray,
        BackgroundTransparency = 1,
        LayoutOrder = 3
    }, v21);
end;
return v2.UNSTABLE_connect2(function(v28, _)
    return {
        isClientView = v28.MainView.isClientView,
        clientSearchTerm = v28.NetworkData.clientSearchTerm,
        serverSearchTerm = v28.NetworkData.serverSearchTerm
    };
end, function(v30)
    return {
        dispatchClientNetworkUpdateSearchFilter = function(v31, v32)
            v30(v8(v31, v32));
        end,
        dispatchServerNetworkUpdateSearchFilter = function(v33, v34)
            v30(v9(v33, v34));
        end,
        dispatchSetActiveTab = function(v35, v36)
            v30(v10(v35, v36));
        end
    };
end)(v13);


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.Parent.Parent.Constants);
local l_SummaryHeaderNames_0 = v1.NetworkFormatting.SummaryHeaderNames;
local l_SummaryCellWidths_0 = v1.NetworkFormatting.SummaryCellWidths;
local l_HeaderFrameHeight_0 = v1.NetworkFormatting.HeaderFrameHeight;
local l_EntryFrameHeight_0 = v1.NetworkFormatting.EntryFrameHeight;
local l_LineWidth_0 = v1.GeneralFormatting.LineWidth;
local l_LineColor_0 = v1.GeneralFormatting.LineColor;
local l_CellPadding_0 = v1.NetworkFormatting.CellPadding;
local l_Text_0 = v1.Color.Text;
local v10 = require(script.Parent.Parent.Parent.Components.CellLabel);
local v11 = require(script.Parent.Parent.Parent.Components.HeaderButton);
local v12 = 0;
for _, v14 in pairs(l_SummaryCellWidths_0) do
    v12 = v12 + v14;
end;
local v15 = -v12;
local v16 = {};
local v17 = {};
local v18 = {};
table.insert(v16, UDim2.new(0, l_CellPadding_0, 0, 0));
table.insert(v17, UDim2.new(1, -v12 - l_CellPadding_0, 0, l_HeaderFrameHeight_0));
table.insert(v18, UDim2.new(1, -v12 - l_CellPadding_0, 0, l_EntryFrameHeight_0));
for _, v20 in ipairs(l_SummaryCellWidths_0) do
    table.insert(v16, UDim2.new(1, v15 + l_CellPadding_0, 0, 0));
    table.insert(v17, UDim2.new(0, v20 - l_CellPadding_0, 0, l_HeaderFrameHeight_0));
    table.insert(v18, UDim2.new(0, v20 - l_CellPadding_0, 0, l_EntryFrameHeight_0));
    v15 = v15 + v20;
end;
local v21 = {};
for v22, v23 in ipairs(v16) do
    v21[v22] = UDim2.new(v23.X.Scale, v23.X.Offset - l_CellPadding_0, v23.Y.Scale, v23.Y.Offset);
end;
local v24 = v0.Component:extend("NetworkSummary");
v24.render = function(v25)
    local l_width_0 = v25.props.width;
    local v27 = v25.props.httpSummaryTable or {};
    local l_layoutOrder_0 = v25.props.layoutOrder;
    local v29 = {
        UIListLayout = v0.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            SortOrder = Enum.SortOrder.LayoutOrder
        })
    };
    local v30 = {
        UpperHorizontalLine = v0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, l_LineWidth_0),
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        }),
        LowerHorizontalLine = v0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, l_LineWidth_0),
            Position = UDim2.new(0, 0, 1, 0),
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        })
    };
    for v31 = 2, #v21 do
        v30[string.format("VerticalLine_%d", v31)] = v0.createElement("Frame", {
            Size = UDim2.new(0, l_LineWidth_0, 0, l_HeaderFrameHeight_0),
            Position = v21[v31],
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        });
    end;
    for v32, v33 in ipairs(l_SummaryHeaderNames_0) do
        v30[v33] = v0.createElement(v11, {
            text = v33,
            size = v17[v32],
            pos = v16[v32]
        });
    end;
    v29.Header = v0.createElement("Frame", {
        Size = UDim2.new(0, l_width_0, 0, l_HeaderFrameHeight_0),
        BackgroundTransparency = 1,
        LayoutOrder = 1
    }, v30);
    local v34 = 0;
    for _, v36 in pairs(v27) do
        v34 = v34 + 1;
        local v37 = {
            RequestType = v0.createElement(v10, {
                text = v36.RequestType,
                size = v17[1],
                pos = v16[1]
            }),
            RequestCount = v0.createElement(v10, {
                text = v36.RequestCount,
                size = v17[2],
                pos = v16[2]
            }),
            FailedCount = v0.createElement(v10, {
                text = v36.FailedCount,
                size = v17[3],
                pos = v16[3]
            }),
            AverageTime = v0.createElement(v10, {
                text = string.format("%.3f", v36.AverageTime),
                size = v17[4],
                pos = v16[4]
            }),
            MinTime = v0.createElement(v10, {
                text = string.format("%.3f", v36.MinTime),
                size = v17[5],
                pos = v16[5]
            }),
            MaxTime = v0.createElement(v10, {
                text = string.format("%.3f", v36.MaxTime),
                size = v17[6],
                pos = v16[6]
            }),
            LowerHorizontalLine = v0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, l_LineWidth_0),
                Position = UDim2.new(0, 0, 1, 0),
                BackgroundColor3 = l_LineColor_0,
                BorderSizePixel = 0
            })
        };
        for v38 = 2, #v21 do
            v37[string.format("VerticalLine_%d", v38)] = v0.createElement("Frame", {
                Size = UDim2.new(0, l_LineWidth_0, 1, 0),
                Position = v21[v38],
                BackgroundColor3 = l_LineColor_0,
                BorderSizePixel = 0
            });
        end;
        v29[v36.RequestType] = v0.createElement("Frame", {
            Size = UDim2.new(0, l_width_0, 0, l_EntryFrameHeight_0),
            BackgroundTransparency = 1,
            LayoutOrder = v34 + 1
        }, v37);
    end;
    if v34 == 0 then
        v29.Padding = v0.createElement("TextLabel", {
            Size = UDim2.new(0, l_width_0, 0, l_EntryFrameHeight_0),
            Text = "No Summary Data Found",
            TextColor3 = l_Text_0,
            BackgroundTransparency = 1,
            LayoutOrder = 2
        });
        v34 = 1;
    end;
    return v0.createElement("ScrollingFrame", {
        Size = UDim2.new(1, 0, 0, v34 * l_EntryFrameHeight_0 + l_HeaderFrameHeight_0),
        ScrollingEnabled = false,
        ScrollBarThickness = 0,
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_0
    }, v29);
end;
return v24;


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.Parent.Parent.Constants);
local l_HeaderFrameHeight_0 = v1.NetworkFormatting.HeaderFrameHeight;
local l_EntryFrameHeight_0 = v1.NetworkFormatting.EntryFrameHeight;
local l_SummaryButtonHeight_0 = v1.NetworkFormatting.SummaryButtonHeight;
local l_MinFrameWidth_0 = v1.NetworkFormatting.MinFrameWidth;
local l_MainWindow_0 = v1.DefaultFontSize.MainWindow;
local l_MainWindowHeader_0 = v1.Font.MainWindowHeader;
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v9 = require(l_Components_0.BannerButton);
local v10 = require(l_Components_0.Network.NetworkSummary);
local v11 = require(l_Components_0.Network.NetworkChart);
local v12 = v0.Component:extend("NetworkView");
v12.init = function(v13, v14)
    assert(v14.targetNetworkData, "Make sure the NetworkData is assigned for this NetworkView");
    local v15 = v14.targetNetworkData:getCurrentData();
    v13.onSortChanged = function(v16)
        if v16 == v14.targetNetworkData:getSortType() then
            v13:setState({
                reverseSort = not v13.state.reverseSort
            });
            return ;
        else
            v14.targetNetworkData:setSortType(v16);
            v13:setState({
                reverseSort = false
            });
            return ;
        end;
    end;
    v13.onSummaryButton = function(_, _)
        v13:setState({
            summaryExpanded = not v13.state.summaryExpanded
        });
    end;
    v13.onDetailButton = function(_, _)
        v13:setState({
            entriesExpanded = not v13.state.entriesExpanded
        });
    end;
    v13.ref = v0.createRef();
    v13.state = {
        httpSummaryTable = v15.summaryTable,
        httpSummaryCount = v15.summaryCount,
        httpEntryList = v15.entryList,
        summaryExpanded = true,
        entriesExpanded = true,
        indexOfEntryExpanded = 0,
        reverseSort = false,
        absWidth = 0
    };
end;
v12.didUpdate = function(v21)
    if v21.ref.current and v21.state.absWidth ~= v21.ref.current.AbsoluteSize.X then
        v21:setState({
            absWidth = v21.ref.current.AbsoluteSize.X
        });
    end;
end;
v12.didMount = function(v22)
    v22.httpEntryAddedConnector = v22.props.targetNetworkData:Signal():Connect(function(v23, v24, v25)
        v22:setState({
            httpSummaryTable = v23,
            httpSummaryCount = v24,
            httpEntryList = v25
        });
    end);
    if v22.ref.current then
        v22:setState({
            absWidth = v22.ref.current.AbsoluteSize.X
        });
    end;
end;
v12.willUnmount = function(v26)
    v26.httpEntryAddedConnector:Disconnect();
    v26.httpEntryAddedConnector = nil;
end;
v12.render = function(v27)
    local l_layoutOrder_0 = v27.props.layoutOrder;
    local l_searchTerm_0 = v27.props.searchTerm;
    local l_size_0 = v27.props.size;
    local l_summaryExpanded_0 = v27.state.summaryExpanded;
    local l_entriesExpanded_0 = v27.state.entriesExpanded;
    local l_reverseSort_0 = v27.state.reverseSort;
    local l_httpSummaryTable_0 = v27.state.httpSummaryTable;
    local l_httpEntryList_0 = v27.state.httpEntryList;
    local l_httpSummaryCount_0 = v27.state.httpSummaryCount;
    local v37 = math.max(l_MinFrameWidth_0, v27.state.absWidth);
    local v38 = l_SummaryButtonHeight_0 * 2;
    if l_summaryExpanded_0 then
        v38 = (v38 + l_httpSummaryCount_0 * l_EntryFrameHeight_0) + l_HeaderFrameHeight_0;
    end;
    local _ = nil;
    return v0.createElement("Frame", {
        Size = l_size_0,
        BackgroundTransparency = 1,
        ClipsDescendants = true,
        LayoutOrder = l_layoutOrder_0,
        [v0.Ref] = v27.ref
    }, {
        UIListLayout = v0.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        SummaryButton = v0.createElement(v9, {
            size = UDim2.new(1, 0, 0, l_SummaryButtonHeight_0),
            pos = UDim2.new(),
            isExpanded = l_summaryExpanded_0,
            onButtonPress = v27.onSummaryButton,
            layoutOrder = 1
        }, {
            Text = v0.createElement("TextLabel", {
                Text = "Summary",
                TextColor3 = v1.Color.Text,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextSize = l_MainWindow_0,
                Font = l_MainWindowHeader_0,
                Size = UDim2.new(1, -30, 0, l_SummaryButtonHeight_0),
                Position = UDim2.new(0, 30, 0, 0),
                BackgroundTransparency = 1
            })
        }),
        Summary = l_summaryExpanded_0 and v0.createElement(v10, {
            width = v37,
            httpSummaryTable = l_httpSummaryTable_0,
            layoutOrder = 2
        }),
        DetailsButton = v0.createElement(v9, {
            size = UDim2.new(1, 0, 0, l_SummaryButtonHeight_0),
            pos = UDim2.new(),
            isExpanded = l_entriesExpanded_0,
            onButtonPress = v27.onDetailButton,
            layoutOrder = 3
        }, {
            Text = v0.createElement("TextLabel", {
                Text = "Details",
                TextColor3 = v1.Color.Text,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextSize = l_MainWindow_0,
                Font = l_MainWindowHeader_0,
                Size = UDim2.new(1, -30, 0, l_SummaryButtonHeight_0),
                Position = UDim2.new(0, 30, 0, 0),
                BackgroundTransparency = 1
            })
        }),
        Entries = l_entriesExpanded_0 and v0.createElement(v11, {
            httpEntryList = l_httpEntryList_0,
            chartHeight = math.max(0, if not v27.ref.current then l_size_0.Y.Offset - v38 else v27.ref.current.AbsoluteSize.Y - v38),
            width = v37,
            searchTerm = l_searchTerm_0,
            reverseSort = l_reverseSort_0,
            layoutOrder = 4,
            onSortChanged = v27.onSortChanged
        })
    });
end;
return v12;


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.Parent.Parent.Components.DataConsumer);
local v2 = require(script.Parent.NetworkView);
local v3 = v0.Component:extend("ServerNetwork");
v3.init = function(v4, _)
    v4.state = {
        targetNetworkData = v4.props.ServerNetworkData
    };
end;
v3.render = function(v6)
    return v0.createElement(v2, {
        size = v6.props.size,
        searchTerm = v6.props.searchTerm,
        layoutOrder = v6.props.layoutOrder,
        targetNetworkData = v6.state.targetNetworkData
    });
end;
return v1(v3, "ServerNetworkData");


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0)
    return {
        isClient = v0
    };
end);


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0, v1)
    return {
        isClient = v0,
        average = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0, v1)
    return {
        isClient = v0,
        state = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0, v1)
    return {
        isClient = v0,
        isFunctionsView = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0, v1)
    return {
        isClient = v0,
        frequency = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0, v1)
    return {
        isClient = v0,
        isProfiling = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0, v1)
    return {
        isClient = v0,
        liveUpdate = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0, v1)
    return {
        isClient = v0,
        showGC = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Action)("ScriptProfiler" .. script.Name, function(v0, v1)
    return {
        isClient = v0,
        showPlugins = v1
    };
end);